From 23ce2eda41cfb503b581086b3009da96ca9b5445 Mon Sep 17 00:00:00 2001 From: Amey Bhagwat Date: Wed, 6 May 2026 09:26:05 +0530 Subject: [PATCH] First Commit --- README.md | 17 + android/.gitignore | 101 + android/.idea/.gitignore | 3 + android/.idea/AndroidProjectSystem.xml | 6 + android/.idea/compiler.xml | 6 + android/.idea/deploymentTargetSelector.xml | 18 + android/.idea/kotlinc.xml | 6 + android/.idea/migrations.xml | 10 + android/.idea/misc.xml | 10 + android/.idea/runConfigurations.xml | 17 + android/app/.gitignore | 2 + android/app/build.gradle | 57 + android/app/capacitor.build.gradle | 31 + android/app/google-services.json | 314 + android/app/proguard-rules.pro | 21 + .../myapp/ExampleInstrumentedTest.java | 26 + android/app/src/main/AndroidManifest.xml | 67 + .../stratawiz/mainrapport/MainActivity.java | 5 + .../main/res/drawable-land-hdpi/splash.png | Bin 0 -> 34231 bytes .../main/res/drawable-land-mdpi/splash.png | Bin 0 -> 17132 bytes .../main/res/drawable-land-xhdpi/splash.png | Bin 0 -> 48661 bytes .../main/res/drawable-land-xxhdpi/splash.png | Bin 0 -> 37592 bytes .../main/res/drawable-land-xxxhdpi/splash.png | Bin 0 -> 67319 bytes .../main/res/drawable-port-hdpi/splash.png | Bin 0 -> 27559 bytes .../main/res/drawable-port-mdpi/splash.png | Bin 0 -> 17331 bytes .../main/res/drawable-port-xhdpi/splash.png | Bin 0 -> 46254 bytes .../main/res/drawable-port-xxhdpi/splash.png | Bin 0 -> 66257 bytes .../main/res/drawable-port-xxxhdpi/splash.png | Bin 0 -> 55405 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 + .../res/drawable/ic_launcher_background.xml | 170 + android/app/src/main/res/drawable/splash.png | Bin 0 -> 16388 bytes android/app/src/main/res/ic_launcher-web.png | Bin 0 -> 27648 bytes .../app/src/main/res/layout/activity_main.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3915 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 9107 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 6141 bytes .../src/main/res/mipmap-ldpi/ic_launcher.png | Bin 0 -> 1572 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2090 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 4339 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3535 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4361 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 10542 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7207 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9418 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 36842 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 14107 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 11028 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 47823 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 17218 bytes android/app/src/main/res/playstore-icon.png | Bin 0 -> 30564 bytes android/app/src/main/res/values/colors.xml | 3 + .../res/values/ic_launcher_background.xml | 4 + android/app/src/main/res/values/strings.xml | 7 + android/app/src/main/res/values/styles.xml | 30 + android/app/src/main/res/xml/file_paths.xml | 5 + .../getcapacitor/myapp/ExampleUnitTest.java | 18 + android/build.gradle | 30 + android/capacitor.settings.gradle | 42 + android/gradle.properties | 22 + android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + android/gradlew | 252 + android/gradlew.bat | 94 + android/settings.gradle | 5 + android/variables.gradle | 16 + capacitor.config.json | 30 + dist/Rectangle-empty.svg | 3 + dist/Rectangle-filled.svg | 3 + dist/assets/DailyMotion-D4uW8REe.js | 1 + dist/assets/DailyMotion-i-TJ9DOC.js | 1 + dist/assets/Facebook-DJ0hneLF.js | 1 + dist/assets/Facebook-GdwjnNFJ.js | 1 + dist/assets/FilePlayer-BgLtBIje.js | 1 + dist/assets/FilePlayer-CKq2ehRf.js | 1 + dist/assets/Kaltura-Bvtx45-y.js | 1 + dist/assets/Kaltura-DDJp8-tW.js | 1 + dist/assets/Mixcloud-CXhqduaQ.js | 1 + dist/assets/Mixcloud-c3jBxJWc.js | 1 + dist/assets/Preview-CRUaPRKG.js | 1 + dist/assets/Preview-DE052SrE.js | 1 + dist/assets/SoundCloud-BHo3DXFQ.js | 1 + dist/assets/SoundCloud-BI71e4_l.js | 1 + dist/assets/Streamable-CLR8-BXj.js | 1 + dist/assets/Streamable-CnBBuBIV.js | 1 + dist/assets/Twitch-CNaDXULh.js | 1 + dist/assets/Twitch-D8aS7IV_.js | 1 + dist/assets/Vidyard-D-tpEbuM.js | 1 + dist/assets/Vidyard-DU1jnJxN.js | 1 + dist/assets/Vimeo-7wPXSkaO.js | 1 + dist/assets/Vimeo-Dxa-X4z9.js | 1 + dist/assets/Wistia-C0mY-yNe.js | 1 + dist/assets/Wistia-CeioMyv4.js | 1 + dist/assets/YouTube-Bccsz9Yl.js | 1 + dist/assets/YouTube-DOJoJw1y.js | 1 + .../cursor-editorTextHighlight-kG3uUOwL.svg | 8 + dist/assets/index-Br6gItOh.css | 5 + dist/assets/index-CQwTocWK.js | 379 + dist/assets/pdf.worker-DcN26wb1.mjs | 58148 ++++++++++++++++ dist/assets/web-AScraMDr.js | 7 + dist/assets/web-BCDAlWew.js | 1 + dist/assets/web-C7IvoHDb.js | 1 + dist/assets/web-CYAAqD_l.js | 1 + dist/assets/web-CihKQVmt.js | 1 + dist/assets/web-Cpi5fhcy.js | 1 + dist/assets/web-D0EvZq7o.js | 1 + dist/assets/web-DJ_H0FsA.js | 1 + dist/assets/web-Dzl3-xxO.js | 1 + dist/assets/web-PsETgseH.js | 1 + dist/assets/web-aBKShXG8.js | 1 + dist/img/appreciations-icon.png | Bin 0 -> 3306 bytes dist/img/approval-icon.png | Bin 0 -> 3872 bytes dist/img/badges-icon.png | Bin 0 -> 3161 bytes dist/img/banner1.jpg | Bin 0 -> 30482 bytes dist/img/default-bg-low-quality.jpg | Bin 0 -> 11962 bytes dist/img/default-bg.jpg | Bin 0 -> 39259 bytes dist/img/default-profile.jpg | Bin 0 -> 15115 bytes dist/img/down-arrow-icon.png | Bin 0 -> 1034 bytes dist/img/groups-icon.png | Bin 0 -> 4862 bytes dist/img/happy-birthday.png | Bin 0 -> 224590 bytes dist/img/idea-sharing-icon.png | Bin 0 -> 4067 bytes dist/img/login-user.png | Bin 0 -> 9784 bytes dist/img/logo-large.png | Bin 0 -> 10120 bytes dist/img/logo-medium.png | Bin 0 -> 9020 bytes dist/img/logo-small-old.png | Bin 0 -> 3207 bytes dist/img/logo-small.png | Bin 0 -> 3207 bytes dist/img/mail-icon.png | Bin 0 -> 1964 bytes dist/img/menu-icon.png | Bin 0 -> 1486 bytes dist/img/notifications-icon.png | Bin 0 -> 3641 bytes dist/img/profile-pic.png | Bin 0 -> 28549 bytes dist/img/quick-action-icon.png | Bin 0 -> 1209 bytes dist/img/quick-actions-icon.png | Bin 0 -> 1209 bytes dist/img/rewards-icon.png | Bin 0 -> 2775 bytes dist/img/sample-hq-small.jpg | Bin 0 -> 610623 bytes dist/img/sample.pdf | Bin 0 -> 1349240 bytes dist/img/search-icon.png | Bin 0 -> 1123 bytes dist/img/star-icon.png | Bin 0 -> 3458 bytes dist/img/user-profile.jpg | Bin 0 -> 4842 bytes dist/img/user.jpg | Bin 0 -> 3339 bytes dist/img/warranty-icon.png | Bin 0 -> 6003 bytes dist/index.html | 24 + dist/logo.png | Bin 0 -> 10120 bytes dist/vite.svg | 1 + index.html | 23 + ios/.gitignore | 13 + ios/App/App.xcodeproj/project.pbxproj | 426 + .../App.xcworkspace/contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + ios/App/App/App.entitlements | 8 + ios/App/App/AppDelegate.swift | 67 + .../AppIcon.appiconset/AppIcon-512@2x.png | Bin 0 -> 40280 bytes .../AppIcon.appiconset/Contents.json | 14 + .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 454 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1415 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 3022 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 905 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 2778 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 5039 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1415 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 5297 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 10742 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 10742 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 16801 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 4348 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 15035 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 16589 bytes .../AppIcon.appiconset/ItunesArtwork@2x.png | Bin 0 -> 40280 bytes ios/App/App/Assets.xcassets/Contents.json | 6 + .../Splash.imageset/Contents.json | 38 + .../Splash.imageset/iphoneplus_splash.png | Bin 0 -> 66817 bytes .../Splash.imageset/iphonex_splash.png | Bin 0 -> 62539 bytes .../Splash.imageset/iphonexsmax_splash.png | Bin 0 -> 74314 bytes .../Splash.imageset/splash-2732x2732 1.png | Bin 0 -> 150997 bytes .../Splash.imageset/splash-2732x2732 2.png | Bin 0 -> 148539 bytes .../Splash.imageset/splash-2732x2732-1.png | Bin 0 -> 147288 bytes .../Splash.imageset/splash-2732x2732-2.png | Bin 0 -> 147288 bytes .../Splash.imageset/splash-2732x2732.png | Bin 0 -> 147288 bytes .../App/Base.lproj/LaunchScreen.storyboard | 32 + ios/App/App/Base.lproj/Main.storyboard | 19 + ios/App/App/GoogleService-Info-old.plist | 32 + ios/App/App/GoogleService-Info.plist | 32 + ios/App/App/Info.plist | 59 + ios/App/Podfile | 36 + ios/App/Podfile.lock | 173 + ios/App/PrivacyInfo.xcprivacy | 18 + package-lock.json | 10672 +++ package.json | 74 + public/Rectangle-empty.svg | 3 + public/Rectangle-filled.svg | 3 + public/img/appreciations-icon.png | Bin 0 -> 3306 bytes public/img/approval-icon.png | Bin 0 -> 3872 bytes public/img/badges-icon.png | Bin 0 -> 3161 bytes public/img/banner1.jpg | Bin 0 -> 30482 bytes public/img/default-bg-low-quality.jpg | Bin 0 -> 11962 bytes public/img/default-bg.jpg | Bin 0 -> 39259 bytes public/img/default-profile.jpg | Bin 0 -> 15115 bytes public/img/down-arrow-icon.png | Bin 0 -> 1034 bytes public/img/groups-icon.png | Bin 0 -> 4862 bytes public/img/happy-birthday.png | Bin 0 -> 224590 bytes public/img/idea-sharing-icon.png | Bin 0 -> 4067 bytes public/img/login-user.png | Bin 0 -> 9784 bytes public/img/logo-large.png | Bin 0 -> 10120 bytes public/img/logo-medium.png | Bin 0 -> 9020 bytes public/img/logo-small-old.png | Bin 0 -> 3207 bytes public/img/logo-small.png | Bin 0 -> 3207 bytes public/img/mail-icon.png | Bin 0 -> 1964 bytes public/img/menu-icon.png | Bin 0 -> 1486 bytes public/img/notifications-icon.png | Bin 0 -> 3641 bytes public/img/profile-pic.png | Bin 0 -> 28549 bytes public/img/quick-action-icon.png | Bin 0 -> 1209 bytes public/img/quick-actions-icon.png | Bin 0 -> 1209 bytes public/img/rewards-icon.png | Bin 0 -> 2775 bytes public/img/sample-hq-small.jpg | Bin 0 -> 610623 bytes public/img/sample.pdf | Bin 0 -> 1349240 bytes public/img/search-icon.png | Bin 0 -> 1123 bytes public/img/star-icon.png | Bin 0 -> 3458 bytes public/img/user-profile.jpg | Bin 0 -> 4842 bytes public/img/user.jpg | Bin 0 -> 3339 bytes public/img/warranty-icon.png | Bin 0 -> 6003 bytes public/logo.png | Bin 0 -> 10120 bytes public/vite.svg | 1 + src/App-bk-apr-2026.jsx | 641 + src/App.css | 42 + src/App.jsx | 588 + src/AppContext.js | 5 + src/ThemeContext.js | 5 + src/assets/react.svg | 1 + .../AgoraVideo/AgoraVideoModal copy 2.jsx | 543 + .../AgoraVideo/AgoraVideoModal copy.jsx | 507 + src/components/AgoraVideo/AgoraVideoModal.css | 198 + src/components/AgoraVideo/AgoraVideoModal.jsx | 495 + src/components/AgoraVideo/VideoRecording.css | 226 + src/components/AgoraVideo/VideoRecording.jsx | 148 + .../AppNavigation/AppNavigation.css | 75 + .../AppNavigation/AppNavigation.jsx | 153 + .../AppreciationDetailsModal.css | 40 + .../AppreciationDetailsModal.jsx | 220 + .../Appreciations/AppreciationListCard.css | 6 + .../Appreciations/AppreciationListCard.jsx | 196 + .../Appreciations/AppreciationsReceived.jsx | 53 + .../Appreciations/AppreciationsSent.jsx | 48 + src/components/Badges/BadgeCard.css | 11 + src/components/Badges/BadgeCard.jsx | 185 + src/components/Badges/BadgeDetailsModal.css | 14 + src/components/Badges/BadgeDetailsModal.jsx | 194 + .../CampaignsCard copy.jsx | 368 + .../CompetitionContestsCard.css | 6 + .../CompetitionContestsCard.jsx | 371 + .../DashboardCompetitionContestsCard.jsx | 291 + ...boardCompetitionContestsContainer copy.jsx | 190 + .../DashboardCompetitionContestsContainer.jsx | 117 + src/components/Contests/ContestCard.css | 27 + src/components/Contests/ContestCard.jsx | 228 + .../Contests/ContestDetailsCard.css | 4 + .../Contests/ContestDetailsCard.jsx | 389 + .../Contests/ContestMediaViewerModal.css | 20 + .../Contests/ContestMediaViewerModal.jsx | 380 + .../Contests/DashboardContestCard.css | 25 + .../Contests/DashboardContestCard.jsx | 60 + .../DashboardContestsContainer copy.jsx | 154 + .../Contests/DashboardContestsContainer.jsx | 122 + .../Contests/EvaluationStatusCard.css | 56 + .../Contests/EvaluationStatusCard.jsx | 134 + src/components/Contests/LikesViewer.jsx | 65 + .../Contests/SubmissionCard copy.jsx | 439 + src/components/Contests/SubmissionCard.css | 55 + src/components/Contests/SubmissionCard.jsx | 631 + .../Contests/SubmissionCommentsListModal.jsx | 38 + .../Contests/UploadResponseMediaFile copy.jsx | 471 + ...UploadResponseMediaFile-copy-02-Aug-24.jsx | 1355 + ...loadResponseMediaFile-latest-27-Mar-24.jsx | 733 + .../Contests/UploadResponseMediaFile.css | 57 + .../Contests/UploadResponseMediaFile.jsx | 1204 + .../Contests/UploadResponseTypeModal.jsx | 133 + .../UploadResponseTypeModalWithALLTypes.jsx | 92 + .../Contests/UploadVideoResponseMediaFile.jsx | 1022 + src/components/CustomIcon/CustomIcon.jsx | 33 + .../DashboardAdvertiseModal.css | 0 .../DashboardAdvertiseModal.jsx | 100 + .../DashboardBanner/DashboardBanner.jsx | 107 + .../DashboardCampaignsContainer.jsx | 97 + .../DashboardComments/AddComment.jsx | 203 + .../DashboardComments/CommentCard.jsx | 41 + .../DashboardComments/CommentList.jsx | 54 + .../DashboardComments/DashboardComments.css | 107 + .../DashboardComments/DashboardComments.jsx | 24 + .../DashboardComments/useAutosizeTextArea.jsx | 21 + .../DashboardFooter/DashboardFooter.jsx | 144 + .../DashboardHeader/DashboardHeader.jsx | 225 + .../DashboardMagazinesContainer copy.jsx | 156 + .../DashboardMagazinesContainer.jsx | 118 + .../PerformanceStatsContainer copy.jsx | 209 + .../PerformanceStatsContainer.jsx | 165 + src/components/IconWrapper/IconWrapper.css | 29 + src/components/IconWrapper/IconWrapper.jsx | 33 + src/components/Login/ForgotPasswordModal.jsx | 281 + src/components/Login/Login.css | 39 + src/components/Login/Login.jsx | 221 + src/components/Login/OTPInput.jsx | 98 + src/components/Login/Password.jsx | 307 + src/components/Login/VerifyOTP.jsx | 153 + src/components/Login/VerifyOTPInput.jsx | 329 + .../Magazines/DashboardMagazineCard.css | 21 + .../Magazines/DashboardMagazineCard.jsx | 81 + src/components/Magazines/LikesListCard.css | 0 src/components/Magazines/LikesListCard.jsx | 35 + src/components/Magazines/Magazine.jsx | 21 + src/components/Magazines/MagazineCard.css | 27 + src/components/Magazines/MagazineCard.jsx | 118 + src/components/Magazines/MediaCard.css | 71 + src/components/Magazines/MediaCard.jsx | 385 + .../Magazines/MediaCommentsListModal.jsx | 40 + .../Magazines/MediaLikesListModal.jsx | 49 + .../Magazines/MediaViewAlertModal.jsx | 33 + src/components/Magazines/MediaViewerModal.css | 20 + src/components/Magazines/MediaViewerModal.jsx | 538 + .../MediaListCard/MediaListCard.css | 20 + .../MediaListCard/MediaListCard.jsx | 68 + .../NotificationListCard copy.jsx | 93 + .../Notifications/NotificationListCard.css | 33 + .../Notifications/NotificationListCard.jsx | 258 + .../OverlayNotificationModal.css | 69 + .../OverlayNotificationModal.jsx | 161 + .../Notifications/notificationsUtil.js | 128 + .../PageComponent/PageComponent.jsx | 18 + .../PlaceholderCard/PlaceholderCard.css | 38 + .../PlaceholderCard/PlaceholderCard.jsx | 495 + .../QuickActionCard/QuickActionCard copy.jsx | 52 + .../QuickActionCard/QuickActionCard.css | 0 .../QuickActionCard/QuickActionCard.jsx | 198 + src/components/Rewards/RewardCard.css | 0 src/components/Rewards/RewardCard.jsx | 21 + src/components/StatsCard/StatsCard.css | 0 src/components/StatsCard/StatsCard.jsx | 42 + .../AppAccessForbidden/AppAccessForbidden.css | 25 + .../AppAccessForbidden/AppAccessForbidden.jsx | 78 + .../AppVersionUpdateModal.css | 21 + .../AppVersionUpdateModal.jsx | 142 + .../ApproveRejectFormModal.css | 46 + .../ApproveRejectFormModal.jsx | 132 + .../FormSubmissionMessage.jsx | 48 + .../RejectReasonForm.jsx | 146 + .../AudioRecorderModal/AudioRecorderModal.css | 7 + .../AudioRecorderModal/AudioRecorderModal.jsx | 150 + .../ConfirmationModal/ConfirmationModal.css | 120 + .../ConfirmationModal/ConfirmationModal.jsx | 214 + .../CustomCheckboxListButton.jsx | 135 + .../CustomImgGalleryRadioButton.jsx | 61 + .../CustomRadioListButton.css | 146 + .../CustomRadioListButton.jsx | 144 + src/components/UI/CustomImage/CustomImage.css | 8 + src/components/UI/CustomImage/CustomImage.jsx | 43 + .../UI/CustomImage/MyCustomImage.jsx | 67 + .../CustomMediaViewer/CustomMediaViewer.css | 0 .../CustomMediaViewer/CustomMediaViewer.jsx | 122 + .../UI/CustomPDFViewer/CustomPDFViewer.css | 14 + .../UI/CustomPDFViewer/CustomPDFViewer.jsx | 44 + .../UI/CustomRating/CustomRating.css | 44 + .../UI/CustomRating/CustomRating.jsx | 91 + .../CustomSelectImageButton.jsx | 43 + .../CustomSelectListButton.css | 106 + .../CustomSelectListButton.jsx | 63 + .../FloatingActionButton.css | 3 + .../FloatingActionButton.jsx | 78 + .../UI/LikeViewerModal/LikesViewerModal.css | 0 .../UI/LikeViewerModal/LikesViewerModal.jsx | 139 + .../UI/ListViewCard/ListViewCard.css | 24 + .../UI/ListViewCard/ListViewCard.jsx | 35 + .../UI/LoadingComponent/LoadMoreItemsCard.jsx | 26 + src/components/UI/MediaViewer/AudioViewer.css | 17 + src/components/UI/MediaViewer/AudioViewer.jsx | 90 + .../UI/MediaViewer/CustomPDFViewer.jsx | 345 + src/components/UI/MediaViewer/ImageViewer.jsx | 7 + src/components/UI/MediaViewer/PDFViewer.jsx | 49 + .../UI/MediaViewer/VideoViewer copy.jsx | 47 + src/components/UI/MediaViewer/VideoViewer.jsx | 89 + .../UI/MessageModal/MessageModal.jsx | 61 + .../UI/ReadMoreText/ReadMoreText.css | 19 + .../UI/ReadMoreText/ReadMoreText.jsx | 61 + .../UI/SearchBar/DataListViewPage.jsx | 51 + src/components/UI/SearchBar/SearchBar.jsx | 112 + src/components/UI/SearchBar/SearchBar2.jsx | 68 + src/components/UI/SearchBar/data.js | 232 + .../UI/SectionHeading/SectionHeading.css | 32 + .../UI/SectionHeading/SectionHeading.jsx | 49 + .../UI/SelectedItemList/SelectedItemsList.css | 0 .../UI/SelectedItemList/SelectedItemsList.jsx | 106 + .../UI/SelectedItemList/SelectedUsersList.jsx | 114 + src/components/UI/TermsModal/TermsModal.css | 0 src/components/UI/TermsModal/TermsModal.jsx | 56 + src/components/UI/TimerCount/TimerCount.jsx | 19 + src/components/UI/TimerCount/useCounter.jsx | 53 + .../useGetVerticalScrollDirection.jsx | 28 + .../AudioWavesAnimation.css | 89 + .../AudioWavesAnimation.jsx | 29 + src/components/UploadFile/UploadFile copy.jsx | 58 + src/components/UploadFile/UploadFile.css | 9 + src/components/UploadFile/UploadFile.jsx | 92 + src/components/UploadFile/UploadFile2.jsx | 123 + src/components/UploadFile/UploadFile3.css | 29 + src/components/UploadFile/UploadFile3.jsx | 136 + .../UserProfile/CustomImageCropper.jsx | 221 + src/components/UserProfile/ProfileCard.css | 57 + src/components/UserProfile/ProfileCard.jsx | 121 + .../UserProfile/ProfileContactListCard.css | 4 + .../UserProfile/ProfileContactListCard.jsx | 48 + .../UserProfile/ProfileMoreInfo.jsx | 90 + .../UserProfile/UpdateProfilePhotoModal.jsx | 33 + .../UserProfile/UpdateUserProfileForm.jsx | 390 + .../UserProfile/UpdateUserProfileModal.jsx | 34 + .../UserProfile/UploadProfileMediaFile.css | 53 + .../UserProfile/UploadProfileMediaFile.jsx | 472 + .../UserProfile/UserProfileContent.css | 7 + .../UserProfile/UserProfileContent.jsx | 109 + src/components/UserProfile/canvasPreview.jsx | 64 + .../UserProfile/useDebounceEffect.jsx | 13 + .../WallMessages/UploadMessageMediaFile.css | 57 + .../WallMessages/UploadMessageMediaFile.jsx | 960 + .../UploadMessageMediaTypeModal.jsx | 99 + .../WallMessages/WallMessageCard.css | 71 + .../WallMessages/WallMessageCard.jsx | 493 + .../WallMessageCommentsListModal.jsx | 38 + .../WallMessageDetailsCard copy.jsx | 350 + .../WallMessages/WallMessageDetailsCard.css | 4 + .../WallMessages/WallMessageDetailsCard.jsx | 295 + .../WallMessages/WallMessageDetailsModal.jsx | 333 + .../WallMessageLikesListModal.jsx | 72 + src/config/Config.js | 5 + src/data/appreciations.js | 42 + src/data/badges.js | 38 + src/data/dashboardContests.js | 41 + src/data/notificationTypes.js | 111 + src/data/notifications.js | 488 + src/data/rewards.js | 38 + src/data/userProfileData.js | 18 + src/index.css | 1455 + src/layouts/DashboardLayout.jsx | 33 + src/layouts/InnerPageLayout.jsx | 17 + src/main.jsx | 26 + src/pages/AppIcons.jsx | 644 + .../Appreciations copy 26 Aug 2025.jsx | 157 + .../Appreciations/Appreciations copy.jsx | 279 + src/pages/Appreciations/Appreciations.jsx | 185 + src/pages/Appreciations/SendAppreciation.css | 3 + src/pages/Appreciations/SendAppreciation.jsx | 665 + .../Appreciations/SendAppreciation22.jsx | 833 + .../ApproveRejectFormSubmission copy.jsx | 179 + src/pages/ApproveRejectFormSubmission.jsx | 265 + src/pages/Badges/Badges copy 26 Aug 2025.jsx | 122 + src/pages/Badges/Badges copy.jsx | 220 + src/pages/Badges/Badges.jsx | 154 + src/pages/Badges/SendBadge.css | 3 + src/pages/Badges/SendBadge.jsx | 443 + src/pages/Badges/SendBadge22.jsx | 584 + src/pages/ChangePassword.jsx | 141 + src/pages/CompetitionContestDetails.jsx | 37 + src/pages/CompetitionContests.jsx | 93 + src/pages/ContestDetails.jsx | 104 + src/pages/Contests.jsx | 127 + src/pages/Dashboard copy.jsx | 312 + src/pages/Dashboard.jsx | 482 + .../EvaluateDetailingContestResponse.jsx | 454 + src/pages/HomeGuest.jsx | 13 + src/pages/MagazineDetails.jsx | 158 + src/pages/Magazines copy.jsx | 248 + src/pages/Magazines.jsx | 265 + src/pages/MetricReports.jsx | 37 + src/pages/Notifications.jsx | 152 + src/pages/Profile.jsx | 148 + src/pages/QuickActions copy.jsx | 117 + src/pages/QuickActions.jsx | 200 + src/pages/QuickActionsContent.jsx | 47 + src/pages/Rewards.jsx | 28 + src/pages/UploadResponse.jsx | 142 + src/pages/WallMessages/MessageDetails.jsx | 244 + src/pages/WallMessages/Messages copy.jsx | 377 + src/pages/WallMessages/Messages.jsx | 286 + src/pages/WallMessages/SendMessage.jsx | 636 + src/pages/WallMessages/SendMessage22.jsx | 958 + src/pages/WallMessages/SendMessages.css | 3 + src/sample.pdf | Bin 0 -> 1010601 bytes src/services/AppreciationServices.js | 50 + src/services/Auth.js | 200 + src/services/AuthGuard.jsx | 104 + src/services/Axios.js | 120 + src/services/BadgeServices.js | 40 + src/services/ContestServices.js | 148 + src/services/Dashboard.js | 150 + src/services/FormServices.js | 41 + src/services/HomeGuard.jsx | 63 + src/services/MessageServices.js | 77 + src/services/NotificationServices.js | 25 + src/services/authUtility.js | 96 + src/util/app-icons.jsx | 2779 + src/util/constants.js | 32 + src/util/promise-polyfill.js | 64 + src/util/util.js | 343 + vite.config.js | 8 + 499 files changed, 118667 insertions(+) create mode 100644 README.md create mode 100644 android/.gitignore create mode 100644 android/.idea/.gitignore create mode 100644 android/.idea/AndroidProjectSystem.xml create mode 100644 android/.idea/compiler.xml create mode 100644 android/.idea/deploymentTargetSelector.xml create mode 100644 android/.idea/kotlinc.xml create mode 100644 android/.idea/migrations.xml create mode 100644 android/.idea/misc.xml create mode 100644 android/.idea/runConfigurations.xml create mode 100644 android/app/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/capacitor.build.gradle create mode 100644 android/app/google-services.json create mode 100644 android/app/proguard-rules.pro create mode 100644 android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/java/com/stratawiz/mainrapport/MainActivity.java create mode 100644 android/app/src/main/res/drawable-land-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 android/app/src/main/res/drawable/splash.png create mode 100755 android/app/src/main/res/ic_launcher-web.png create mode 100644 android/app/src/main/res/layout/activity_main.xml create mode 100755 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100755 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100755 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100755 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100755 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100755 android/app/src/main/res/mipmap-ldpi/ic_launcher.png create mode 100755 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100755 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100755 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100755 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100755 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100755 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100755 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100755 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100755 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100755 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100755 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100755 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100755 android/app/src/main/res/playstore-icon.png create mode 100644 android/app/src/main/res/values/colors.xml create mode 100755 android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 android/app/src/main/res/values/strings.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/main/res/xml/file_paths.xml create mode 100644 android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java create mode 100644 android/build.gradle create mode 100644 android/capacitor.settings.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.jar create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100755 android/gradlew create mode 100644 android/gradlew.bat create mode 100644 android/settings.gradle create mode 100644 android/variables.gradle create mode 100644 capacitor.config.json create mode 100644 dist/Rectangle-empty.svg create mode 100644 dist/Rectangle-filled.svg create mode 100644 dist/assets/DailyMotion-D4uW8REe.js create mode 100644 dist/assets/DailyMotion-i-TJ9DOC.js create mode 100644 dist/assets/Facebook-DJ0hneLF.js create mode 100644 dist/assets/Facebook-GdwjnNFJ.js create mode 100644 dist/assets/FilePlayer-BgLtBIje.js create mode 100644 dist/assets/FilePlayer-CKq2ehRf.js create mode 100644 dist/assets/Kaltura-Bvtx45-y.js create mode 100644 dist/assets/Kaltura-DDJp8-tW.js create mode 100644 dist/assets/Mixcloud-CXhqduaQ.js create mode 100644 dist/assets/Mixcloud-c3jBxJWc.js create mode 100644 dist/assets/Preview-CRUaPRKG.js create mode 100644 dist/assets/Preview-DE052SrE.js create mode 100644 dist/assets/SoundCloud-BHo3DXFQ.js create mode 100644 dist/assets/SoundCloud-BI71e4_l.js create mode 100644 dist/assets/Streamable-CLR8-BXj.js create mode 100644 dist/assets/Streamable-CnBBuBIV.js create mode 100644 dist/assets/Twitch-CNaDXULh.js create mode 100644 dist/assets/Twitch-D8aS7IV_.js create mode 100644 dist/assets/Vidyard-D-tpEbuM.js create mode 100644 dist/assets/Vidyard-DU1jnJxN.js create mode 100644 dist/assets/Vimeo-7wPXSkaO.js create mode 100644 dist/assets/Vimeo-Dxa-X4z9.js create mode 100644 dist/assets/Wistia-C0mY-yNe.js create mode 100644 dist/assets/Wistia-CeioMyv4.js create mode 100644 dist/assets/YouTube-Bccsz9Yl.js create mode 100644 dist/assets/YouTube-DOJoJw1y.js create mode 100644 dist/assets/cursor-editorTextHighlight-kG3uUOwL.svg create mode 100644 dist/assets/index-Br6gItOh.css create mode 100644 dist/assets/index-CQwTocWK.js create mode 100644 dist/assets/pdf.worker-DcN26wb1.mjs create mode 100644 dist/assets/web-AScraMDr.js create mode 100644 dist/assets/web-BCDAlWew.js create mode 100644 dist/assets/web-C7IvoHDb.js create mode 100644 dist/assets/web-CYAAqD_l.js create mode 100644 dist/assets/web-CihKQVmt.js create mode 100644 dist/assets/web-Cpi5fhcy.js create mode 100644 dist/assets/web-D0EvZq7o.js create mode 100644 dist/assets/web-DJ_H0FsA.js create mode 100644 dist/assets/web-Dzl3-xxO.js create mode 100644 dist/assets/web-PsETgseH.js create mode 100644 dist/assets/web-aBKShXG8.js create mode 100755 dist/img/appreciations-icon.png create mode 100755 dist/img/approval-icon.png create mode 100755 dist/img/badges-icon.png create mode 100755 dist/img/banner1.jpg create mode 100644 dist/img/default-bg-low-quality.jpg create mode 100644 dist/img/default-bg.jpg create mode 100755 dist/img/default-profile.jpg create mode 100755 dist/img/down-arrow-icon.png create mode 100644 dist/img/groups-icon.png create mode 100644 dist/img/happy-birthday.png create mode 100755 dist/img/idea-sharing-icon.png create mode 100755 dist/img/login-user.png create mode 100755 dist/img/logo-large.png create mode 100755 dist/img/logo-medium.png create mode 100755 dist/img/logo-small-old.png create mode 100755 dist/img/logo-small.png create mode 100755 dist/img/mail-icon.png create mode 100755 dist/img/menu-icon.png create mode 100755 dist/img/notifications-icon.png create mode 100755 dist/img/profile-pic.png create mode 100755 dist/img/quick-action-icon.png create mode 100755 dist/img/quick-actions-icon.png create mode 100755 dist/img/rewards-icon.png create mode 100644 dist/img/sample-hq-small.jpg create mode 100644 dist/img/sample.pdf create mode 100755 dist/img/search-icon.png create mode 100755 dist/img/star-icon.png create mode 100755 dist/img/user-profile.jpg create mode 100755 dist/img/user.jpg create mode 100755 dist/img/warranty-icon.png create mode 100644 dist/index.html create mode 100755 dist/logo.png create mode 100644 dist/vite.svg create mode 100644 index.html create mode 100644 ios/.gitignore create mode 100644 ios/App/App.xcodeproj/project.pbxproj create mode 100644 ios/App/App.xcworkspace/contents.xcworkspacedata create mode 100644 ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/App/App/App.entitlements create mode 100644 ios/App/App/AppDelegate.swift create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png create mode 100644 ios/App/App/Assets.xcassets/Contents.json create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/Contents.json create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/iphoneplus_splash.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/iphonex_splash.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/iphonexsmax_splash.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732 1.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732 2.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png create mode 100644 ios/App/App/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/App/App/Base.lproj/Main.storyboard create mode 100644 ios/App/App/GoogleService-Info-old.plist create mode 100644 ios/App/App/GoogleService-Info.plist create mode 100644 ios/App/App/Info.plist create mode 100644 ios/App/Podfile create mode 100644 ios/App/Podfile.lock create mode 100644 ios/App/PrivacyInfo.xcprivacy create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/Rectangle-empty.svg create mode 100644 public/Rectangle-filled.svg create mode 100755 public/img/appreciations-icon.png create mode 100755 public/img/approval-icon.png create mode 100755 public/img/badges-icon.png create mode 100755 public/img/banner1.jpg create mode 100644 public/img/default-bg-low-quality.jpg create mode 100644 public/img/default-bg.jpg create mode 100755 public/img/default-profile.jpg create mode 100755 public/img/down-arrow-icon.png create mode 100644 public/img/groups-icon.png create mode 100644 public/img/happy-birthday.png create mode 100755 public/img/idea-sharing-icon.png create mode 100755 public/img/login-user.png create mode 100755 public/img/logo-large.png create mode 100755 public/img/logo-medium.png create mode 100755 public/img/logo-small-old.png create mode 100755 public/img/logo-small.png create mode 100755 public/img/mail-icon.png create mode 100755 public/img/menu-icon.png create mode 100755 public/img/notifications-icon.png create mode 100755 public/img/profile-pic.png create mode 100755 public/img/quick-action-icon.png create mode 100755 public/img/quick-actions-icon.png create mode 100755 public/img/rewards-icon.png create mode 100644 public/img/sample-hq-small.jpg create mode 100644 public/img/sample.pdf create mode 100755 public/img/search-icon.png create mode 100755 public/img/star-icon.png create mode 100755 public/img/user-profile.jpg create mode 100755 public/img/user.jpg create mode 100755 public/img/warranty-icon.png create mode 100755 public/logo.png create mode 100644 public/vite.svg create mode 100644 src/App-bk-apr-2026.jsx create mode 100644 src/App.css create mode 100644 src/App.jsx create mode 100755 src/AppContext.js create mode 100755 src/ThemeContext.js create mode 100644 src/assets/react.svg create mode 100644 src/components/AgoraVideo/AgoraVideoModal copy 2.jsx create mode 100644 src/components/AgoraVideo/AgoraVideoModal copy.jsx create mode 100644 src/components/AgoraVideo/AgoraVideoModal.css create mode 100644 src/components/AgoraVideo/AgoraVideoModal.jsx create mode 100644 src/components/AgoraVideo/VideoRecording.css create mode 100644 src/components/AgoraVideo/VideoRecording.jsx create mode 100755 src/components/AppNavigation/AppNavigation.css create mode 100755 src/components/AppNavigation/AppNavigation.jsx create mode 100644 src/components/Appreciations/AppreciationDetailsModal.css create mode 100644 src/components/Appreciations/AppreciationDetailsModal.jsx create mode 100755 src/components/Appreciations/AppreciationListCard.css create mode 100755 src/components/Appreciations/AppreciationListCard.jsx create mode 100755 src/components/Appreciations/AppreciationsReceived.jsx create mode 100755 src/components/Appreciations/AppreciationsSent.jsx create mode 100755 src/components/Badges/BadgeCard.css create mode 100755 src/components/Badges/BadgeCard.jsx create mode 100644 src/components/Badges/BadgeDetailsModal.css create mode 100644 src/components/Badges/BadgeDetailsModal.jsx create mode 100644 src/components/CompetitionContests/CampaignsCard copy.jsx create mode 100644 src/components/CompetitionContests/CompetitionContestsCard.css create mode 100644 src/components/CompetitionContests/CompetitionContestsCard.jsx create mode 100644 src/components/CompetitionContests/DashboardCompetitionContestsCard.jsx create mode 100755 src/components/CompetitionContests/DashboardCompetitionContestsContainer copy.jsx create mode 100755 src/components/CompetitionContests/DashboardCompetitionContestsContainer.jsx create mode 100644 src/components/Contests/ContestCard.css create mode 100644 src/components/Contests/ContestCard.jsx create mode 100644 src/components/Contests/ContestDetailsCard.css create mode 100644 src/components/Contests/ContestDetailsCard.jsx create mode 100644 src/components/Contests/ContestMediaViewerModal.css create mode 100644 src/components/Contests/ContestMediaViewerModal.jsx create mode 100644 src/components/Contests/DashboardContestCard.css create mode 100644 src/components/Contests/DashboardContestCard.jsx create mode 100644 src/components/Contests/DashboardContestsContainer copy.jsx create mode 100644 src/components/Contests/DashboardContestsContainer.jsx create mode 100644 src/components/Contests/EvaluationStatusCard.css create mode 100644 src/components/Contests/EvaluationStatusCard.jsx create mode 100644 src/components/Contests/LikesViewer.jsx create mode 100644 src/components/Contests/SubmissionCard copy.jsx create mode 100644 src/components/Contests/SubmissionCard.css create mode 100644 src/components/Contests/SubmissionCard.jsx create mode 100644 src/components/Contests/SubmissionCommentsListModal.jsx create mode 100644 src/components/Contests/UploadResponseMediaFile copy.jsx create mode 100644 src/components/Contests/UploadResponseMediaFile-copy-02-Aug-24.jsx create mode 100644 src/components/Contests/UploadResponseMediaFile-latest-27-Mar-24.jsx create mode 100644 src/components/Contests/UploadResponseMediaFile.css create mode 100644 src/components/Contests/UploadResponseMediaFile.jsx create mode 100644 src/components/Contests/UploadResponseTypeModal.jsx create mode 100644 src/components/Contests/UploadResponseTypeModalWithALLTypes.jsx create mode 100644 src/components/Contests/UploadVideoResponseMediaFile.jsx create mode 100755 src/components/CustomIcon/CustomIcon.jsx create mode 100644 src/components/DashboardAdvertiseModal/DashboardAdvertiseModal.css create mode 100644 src/components/DashboardAdvertiseModal/DashboardAdvertiseModal.jsx create mode 100644 src/components/DashboardBanner/DashboardBanner.jsx create mode 100755 src/components/DashboardCampaign/DashboardCampaignsContainer.jsx create mode 100755 src/components/DashboardComments/AddComment.jsx create mode 100755 src/components/DashboardComments/CommentCard.jsx create mode 100644 src/components/DashboardComments/CommentList.jsx create mode 100755 src/components/DashboardComments/DashboardComments.css create mode 100644 src/components/DashboardComments/DashboardComments.jsx create mode 100644 src/components/DashboardComments/useAutosizeTextArea.jsx create mode 100755 src/components/DashboardFooter/DashboardFooter.jsx create mode 100755 src/components/DashboardHeader/DashboardHeader.jsx create mode 100644 src/components/DashboardMagazines/DashboardMagazinesContainer copy.jsx create mode 100644 src/components/DashboardMagazines/DashboardMagazinesContainer.jsx create mode 100755 src/components/DashboardPerformanceStats/PerformanceStatsContainer copy.jsx create mode 100755 src/components/DashboardPerformanceStats/PerformanceStatsContainer.jsx create mode 100644 src/components/IconWrapper/IconWrapper.css create mode 100644 src/components/IconWrapper/IconWrapper.jsx create mode 100644 src/components/Login/ForgotPasswordModal.jsx create mode 100755 src/components/Login/Login.css create mode 100755 src/components/Login/Login.jsx create mode 100755 src/components/Login/OTPInput.jsx create mode 100755 src/components/Login/Password.jsx create mode 100755 src/components/Login/VerifyOTP.jsx create mode 100755 src/components/Login/VerifyOTPInput.jsx create mode 100644 src/components/Magazines/DashboardMagazineCard.css create mode 100644 src/components/Magazines/DashboardMagazineCard.jsx create mode 100644 src/components/Magazines/LikesListCard.css create mode 100644 src/components/Magazines/LikesListCard.jsx create mode 100644 src/components/Magazines/Magazine.jsx create mode 100644 src/components/Magazines/MagazineCard.css create mode 100644 src/components/Magazines/MagazineCard.jsx create mode 100644 src/components/Magazines/MediaCard.css create mode 100644 src/components/Magazines/MediaCard.jsx create mode 100644 src/components/Magazines/MediaCommentsListModal.jsx create mode 100644 src/components/Magazines/MediaLikesListModal.jsx create mode 100644 src/components/Magazines/MediaViewAlertModal.jsx create mode 100644 src/components/Magazines/MediaViewerModal.css create mode 100644 src/components/Magazines/MediaViewerModal.jsx create mode 100755 src/components/MediaListCard/MediaListCard.css create mode 100755 src/components/MediaListCard/MediaListCard.jsx create mode 100755 src/components/Notifications/NotificationListCard copy.jsx create mode 100755 src/components/Notifications/NotificationListCard.css create mode 100755 src/components/Notifications/NotificationListCard.jsx create mode 100644 src/components/Notifications/OverlayNotificationModal.css create mode 100644 src/components/Notifications/OverlayNotificationModal.jsx create mode 100644 src/components/Notifications/notificationsUtil.js create mode 100755 src/components/PageComponent/PageComponent.jsx create mode 100755 src/components/PlaceholderCard/PlaceholderCard.css create mode 100644 src/components/PlaceholderCard/PlaceholderCard.jsx create mode 100644 src/components/QuickActionCard/QuickActionCard copy.jsx create mode 100644 src/components/QuickActionCard/QuickActionCard.css create mode 100644 src/components/QuickActionCard/QuickActionCard.jsx create mode 100755 src/components/Rewards/RewardCard.css create mode 100755 src/components/Rewards/RewardCard.jsx create mode 100644 src/components/StatsCard/StatsCard.css create mode 100644 src/components/StatsCard/StatsCard.jsx create mode 100644 src/components/UI/AppAccessForbidden/AppAccessForbidden.css create mode 100644 src/components/UI/AppAccessForbidden/AppAccessForbidden.jsx create mode 100644 src/components/UI/AppVersionCheckAndUpdate/AppVersionUpdateModal.css create mode 100644 src/components/UI/AppVersionCheckAndUpdate/AppVersionUpdateModal.jsx create mode 100644 src/components/UI/ApproveRejectFormModal/ApproveRejectFormModal.css create mode 100644 src/components/UI/ApproveRejectFormModal/ApproveRejectFormModal.jsx create mode 100644 src/components/UI/ApproveRejectFormModal/FormSubmissionMessage.jsx create mode 100644 src/components/UI/ApproveRejectFormModal/RejectReasonForm.jsx create mode 100644 src/components/UI/AudioRecorderModal/AudioRecorderModal.css create mode 100644 src/components/UI/AudioRecorderModal/AudioRecorderModal.jsx create mode 100755 src/components/UI/ConfirmationModal/ConfirmationModal.css create mode 100755 src/components/UI/ConfirmationModal/ConfirmationModal.jsx create mode 100644 src/components/UI/CustomCheckRadioButton/CustomCheckboxListButton.jsx create mode 100644 src/components/UI/CustomCheckRadioButton/CustomImgGalleryRadioButton.jsx create mode 100644 src/components/UI/CustomCheckRadioButton/CustomRadioListButton.css create mode 100644 src/components/UI/CustomCheckRadioButton/CustomRadioListButton.jsx create mode 100644 src/components/UI/CustomImage/CustomImage.css create mode 100644 src/components/UI/CustomImage/CustomImage.jsx create mode 100644 src/components/UI/CustomImage/MyCustomImage.jsx create mode 100644 src/components/UI/CustomMediaViewer/CustomMediaViewer.css create mode 100644 src/components/UI/CustomMediaViewer/CustomMediaViewer.jsx create mode 100644 src/components/UI/CustomPDFViewer/CustomPDFViewer.css create mode 100644 src/components/UI/CustomPDFViewer/CustomPDFViewer.jsx create mode 100755 src/components/UI/CustomRating/CustomRating.css create mode 100755 src/components/UI/CustomRating/CustomRating.jsx create mode 100644 src/components/UI/CustomSelectListButton/CustomSelectImageButton.jsx create mode 100644 src/components/UI/CustomSelectListButton/CustomSelectListButton.css create mode 100644 src/components/UI/CustomSelectListButton/CustomSelectListButton.jsx create mode 100644 src/components/UI/FloatingActionButton/FloatingActionButton.css create mode 100644 src/components/UI/FloatingActionButton/FloatingActionButton.jsx create mode 100644 src/components/UI/LikeViewerModal/LikesViewerModal.css create mode 100644 src/components/UI/LikeViewerModal/LikesViewerModal.jsx create mode 100644 src/components/UI/ListViewCard/ListViewCard.css create mode 100644 src/components/UI/ListViewCard/ListViewCard.jsx create mode 100644 src/components/UI/LoadingComponent/LoadMoreItemsCard.jsx create mode 100644 src/components/UI/MediaViewer/AudioViewer.css create mode 100644 src/components/UI/MediaViewer/AudioViewer.jsx create mode 100644 src/components/UI/MediaViewer/CustomPDFViewer.jsx create mode 100644 src/components/UI/MediaViewer/ImageViewer.jsx create mode 100644 src/components/UI/MediaViewer/PDFViewer.jsx create mode 100644 src/components/UI/MediaViewer/VideoViewer copy.jsx create mode 100644 src/components/UI/MediaViewer/VideoViewer.jsx create mode 100644 src/components/UI/MessageModal/MessageModal.jsx create mode 100644 src/components/UI/ReadMoreText/ReadMoreText.css create mode 100644 src/components/UI/ReadMoreText/ReadMoreText.jsx create mode 100644 src/components/UI/SearchBar/DataListViewPage.jsx create mode 100644 src/components/UI/SearchBar/SearchBar.jsx create mode 100644 src/components/UI/SearchBar/SearchBar2.jsx create mode 100644 src/components/UI/SearchBar/data.js create mode 100644 src/components/UI/SectionHeading/SectionHeading.css create mode 100644 src/components/UI/SectionHeading/SectionHeading.jsx create mode 100644 src/components/UI/SelectedItemList/SelectedItemsList.css create mode 100644 src/components/UI/SelectedItemList/SelectedItemsList.jsx create mode 100644 src/components/UI/SelectedItemList/SelectedUsersList.jsx create mode 100644 src/components/UI/TermsModal/TermsModal.css create mode 100644 src/components/UI/TermsModal/TermsModal.jsx create mode 100644 src/components/UI/TimerCount/TimerCount.jsx create mode 100644 src/components/UI/TimerCount/useCounter.jsx create mode 100644 src/components/UI/VerticalScrollDirection/useGetVerticalScrollDirection.jsx create mode 100644 src/components/UI/WavesLinesAnimation/AudioWavesAnimation.css create mode 100644 src/components/UI/WavesLinesAnimation/AudioWavesAnimation.jsx create mode 100644 src/components/UploadFile/UploadFile copy.jsx create mode 100644 src/components/UploadFile/UploadFile.css create mode 100644 src/components/UploadFile/UploadFile.jsx create mode 100644 src/components/UploadFile/UploadFile2.jsx create mode 100644 src/components/UploadFile/UploadFile3.css create mode 100644 src/components/UploadFile/UploadFile3.jsx create mode 100644 src/components/UserProfile/CustomImageCropper.jsx create mode 100755 src/components/UserProfile/ProfileCard.css create mode 100755 src/components/UserProfile/ProfileCard.jsx create mode 100755 src/components/UserProfile/ProfileContactListCard.css create mode 100755 src/components/UserProfile/ProfileContactListCard.jsx create mode 100755 src/components/UserProfile/ProfileMoreInfo.jsx create mode 100644 src/components/UserProfile/UpdateProfilePhotoModal.jsx create mode 100644 src/components/UserProfile/UpdateUserProfileForm.jsx create mode 100644 src/components/UserProfile/UpdateUserProfileModal.jsx create mode 100644 src/components/UserProfile/UploadProfileMediaFile.css create mode 100644 src/components/UserProfile/UploadProfileMediaFile.jsx create mode 100755 src/components/UserProfile/UserProfileContent.css create mode 100755 src/components/UserProfile/UserProfileContent.jsx create mode 100644 src/components/UserProfile/canvasPreview.jsx create mode 100644 src/components/UserProfile/useDebounceEffect.jsx create mode 100644 src/components/WallMessages/UploadMessageMediaFile.css create mode 100644 src/components/WallMessages/UploadMessageMediaFile.jsx create mode 100644 src/components/WallMessages/UploadMessageMediaTypeModal.jsx create mode 100644 src/components/WallMessages/WallMessageCard.css create mode 100644 src/components/WallMessages/WallMessageCard.jsx create mode 100644 src/components/WallMessages/WallMessageCommentsListModal.jsx create mode 100644 src/components/WallMessages/WallMessageDetailsCard copy.jsx create mode 100644 src/components/WallMessages/WallMessageDetailsCard.css create mode 100644 src/components/WallMessages/WallMessageDetailsCard.jsx create mode 100644 src/components/WallMessages/WallMessageDetailsModal.jsx create mode 100644 src/components/WallMessages/WallMessageLikesListModal.jsx create mode 100755 src/config/Config.js create mode 100755 src/data/appreciations.js create mode 100755 src/data/badges.js create mode 100644 src/data/dashboardContests.js create mode 100644 src/data/notificationTypes.js create mode 100755 src/data/notifications.js create mode 100755 src/data/rewards.js create mode 100755 src/data/userProfileData.js create mode 100755 src/index.css create mode 100755 src/layouts/DashboardLayout.jsx create mode 100755 src/layouts/InnerPageLayout.jsx create mode 100644 src/main.jsx create mode 100755 src/pages/AppIcons.jsx create mode 100755 src/pages/Appreciations/Appreciations copy 26 Aug 2025.jsx create mode 100755 src/pages/Appreciations/Appreciations copy.jsx create mode 100755 src/pages/Appreciations/Appreciations.jsx create mode 100644 src/pages/Appreciations/SendAppreciation.css create mode 100644 src/pages/Appreciations/SendAppreciation.jsx create mode 100644 src/pages/Appreciations/SendAppreciation22.jsx create mode 100644 src/pages/ApproveRejectFormSubmission copy.jsx create mode 100644 src/pages/ApproveRejectFormSubmission.jsx create mode 100755 src/pages/Badges/Badges copy 26 Aug 2025.jsx create mode 100755 src/pages/Badges/Badges copy.jsx create mode 100755 src/pages/Badges/Badges.jsx create mode 100644 src/pages/Badges/SendBadge.css create mode 100644 src/pages/Badges/SendBadge.jsx create mode 100644 src/pages/Badges/SendBadge22.jsx create mode 100644 src/pages/ChangePassword.jsx create mode 100755 src/pages/CompetitionContestDetails.jsx create mode 100644 src/pages/CompetitionContests.jsx create mode 100644 src/pages/ContestDetails.jsx create mode 100644 src/pages/Contests.jsx create mode 100755 src/pages/Dashboard copy.jsx create mode 100755 src/pages/Dashboard.jsx create mode 100644 src/pages/EvaluateDetailingContestResponse.jsx create mode 100755 src/pages/HomeGuest.jsx create mode 100644 src/pages/MagazineDetails.jsx create mode 100644 src/pages/Magazines copy.jsx create mode 100644 src/pages/Magazines.jsx create mode 100755 src/pages/MetricReports.jsx create mode 100755 src/pages/Notifications.jsx create mode 100755 src/pages/Profile.jsx create mode 100755 src/pages/QuickActions copy.jsx create mode 100755 src/pages/QuickActions.jsx create mode 100644 src/pages/QuickActionsContent.jsx create mode 100755 src/pages/Rewards.jsx create mode 100644 src/pages/UploadResponse.jsx create mode 100644 src/pages/WallMessages/MessageDetails.jsx create mode 100644 src/pages/WallMessages/Messages copy.jsx create mode 100644 src/pages/WallMessages/Messages.jsx create mode 100644 src/pages/WallMessages/SendMessage.jsx create mode 100644 src/pages/WallMessages/SendMessage22.jsx create mode 100644 src/pages/WallMessages/SendMessages.css create mode 100644 src/sample.pdf create mode 100644 src/services/AppreciationServices.js create mode 100644 src/services/Auth.js create mode 100755 src/services/AuthGuard.jsx create mode 100644 src/services/Axios.js create mode 100644 src/services/BadgeServices.js create mode 100644 src/services/ContestServices.js create mode 100644 src/services/Dashboard.js create mode 100644 src/services/FormServices.js create mode 100755 src/services/HomeGuard.jsx create mode 100644 src/services/MessageServices.js create mode 100644 src/services/NotificationServices.js create mode 100644 src/services/authUtility.js create mode 100755 src/util/app-icons.jsx create mode 100644 src/util/constants.js create mode 100644 src/util/promise-polyfill.js create mode 100755 src/util/util.js create mode 100644 vite.config.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..254edca --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +Error codes to handle: + +404 - User not found +405 - OTP Missmatch +406 - User is deleted +407 - User is disabled +501 - Error in Execution, Please try after some time +500 - Server Error, Please try after some time diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..48354a3 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,101 @@ +# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore + +# Built application files +*.apk +*.aar +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ +# Uncomment the following line in case you need and you don't have the release build type files in your app +# release/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/assetWizardSettings.xml +.idea/dictionaries +.idea/libraries +# Android Studio 3 in .gitignore file. +.idea/caches +.idea/modules.xml +# Comment next line if keeping position of elements in Navigation Editor is relevant for you +.idea/navEditor.xml + +# Keystore files +# Uncomment the following lines if you do not want to check your keystore files in. +#*.jks +#*.keystore + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild +.cxx/ + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Version control +vcs.xml + +# lint +lint/intermediates/ +lint/generated/ +lint/outputs/ +lint/tmp/ +# lint/reports/ + +# Android Profiling +*.hprof + +# Cordova plugins for Capacitor +capacitor-cordova-android-plugins + +# Copied web assets +app/src/main/assets/public + +# Generated Config files +app/src/main/assets/capacitor.config.json +app/src/main/assets/capacitor.plugins.json +app/src/main/res/xml/config.xml diff --git a/android/.idea/.gitignore b/android/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/android/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/android/.idea/AndroidProjectSystem.xml b/android/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /dev/null +++ b/android/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/android/.idea/compiler.xml b/android/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/android/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/android/.idea/deploymentTargetSelector.xml b/android/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..6c87c7c --- /dev/null +++ b/android/.idea/deploymentTargetSelector.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/android/.idea/kotlinc.xml b/android/.idea/kotlinc.xml new file mode 100644 index 0000000..4cb7457 --- /dev/null +++ b/android/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/android/.idea/migrations.xml b/android/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/android/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml new file mode 100644 index 0000000..74dd639 --- /dev/null +++ b/android/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/android/.idea/runConfigurations.xml b/android/.idea/runConfigurations.xml new file mode 100644 index 0000000..16660f1 --- /dev/null +++ b/android/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/android/app/.gitignore b/android/app/.gitignore new file mode 100644 index 0000000..043df80 --- /dev/null +++ b/android/app/.gitignore @@ -0,0 +1,2 @@ +/build/* +!/build/.npmkeep diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..fbfb3f1 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,57 @@ +apply plugin: 'com.android.application' + +android { + namespace "com.stratawiz.mainrapport" + compileSdk rootProject.ext.compileSdkVersion + defaultConfig { + applicationId "com.stratawiz.mainrapport" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 19 + versionName "2.7" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + aaptOptions { + // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. + // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 + ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +repositories { + flatDir{ + dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" + implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion" + implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion" + implementation "androidx.datastore:datastore-preferences:1.0.0" + implementation project(':capacitor-android') + testImplementation "junit:junit:$junitVersion" + androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" + androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" + implementation project(':capacitor-cordova-android-plugins') +} + +apply from: 'capacitor.build.gradle' +apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.firebase.crashlytics' + +try { + def servicesJSON = file('google-services.json') + if (servicesJSON.text) { + apply plugin: 'com.google.gms.google-services' + } +} catch(Exception e) { + logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work") +} diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle new file mode 100644 index 0000000..81c46af --- /dev/null +++ b/android/app/capacitor.build.gradle @@ -0,0 +1,31 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN + +android { + compileOptions { + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 + } +} + +apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" +dependencies { + implementation project(':capacitor-community-device-security-detect') + implementation project(':capacitor-app') + implementation project(':capacitor-browser') + implementation project(':capacitor-device') + implementation project(':capacitor-geolocation') + implementation project(':capacitor-preferences') + implementation project(':capacitor-push-notifications') + implementation project(':capacitor-splash-screen') + implementation project(':capacitor-status-bar') + implementation project(':capawesome-capacitor-android-edge-to-edge-support') + implementation project(':capgo-capacitor-navigation-bar') + implementation project(':ottimis-capacitor-volumes') + implementation project(':capacitor-voice-recorder') + +} + + +if (hasProperty('postBuildExtras')) { + postBuildExtras() +} diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..e4aca3b --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,314 @@ +{ + "project_info": { + "project_number": "258980910883", + "project_id": "rapport-react", + "storage_bucket": "rapport-react.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:76cc0bdfd61b383bde9e96", + "android_client_info": { + "package_name": "com.stratawiz.bfconnect2" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:5b96b0266d99e092de9e96", + "android_client_info": { + "package_name": "com.stratawiz.copdcore" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:2cd5f6a339dbc74dde9e96", + "android_client_info": { + "package_name": "com.stratawiz.creastapp" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:ddd423a48893b7e7de9e96", + "android_client_info": { + "package_name": "com.stratawiz.glycopedia" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:087ea03cd39fafccde9e96", + "android_client_info": { + "package_name": "com.stratawiz.inventiaapp" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:de4c3d7ea62f6144de9e96", + "android_client_info": { + "package_name": "com.stratawiz.iva" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:c1a03f1e8d02174cde9e96", + "android_client_info": { + "package_name": "com.stratawiz.mainrapport" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:ee23a5805a471049de9e96", + "android_client_info": { + "package_name": "com.stratawiz.mpowerx1" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:3fda2320d4ab4f75de9e96", + "android_client_info": { + "package_name": "com.stratawiz.pitchperfectcore" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:d2e6ab776ca8b4a1de9e96", + "android_client_info": { + "package_name": "com.stratawiz.pulmocarecore" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:703cd2a580a1924ade9e96", + "android_client_info": { + "package_name": "com.stratawiz.team4" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:47ecd1bfbd7bf44fde9e96", + "android_client_info": { + "package_name": "com.stratawiz.teamthree" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:1387d468d7d10b69de9e96", + "android_client_info": { + "package_name": "com.stratawiz.vitalis1" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:6a3005f2e3eb8e79de9e96", + "android_client_info": { + "package_name": "com.stratawiz.vitalis5" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:0bfc8e225c929343de9e96", + "android_client_info": { + "package_name": "com.stratawiz.wematter" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:258980910883:android:f9fcdd34f722e74bde9e96", + "android_client_info": { + "package_name": "com.stratawiz.xennex" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDxcoOZeYxBAowHFzyBb4ld4RQUaL7t0hU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java new file mode 100644 index 0000000..f2c2217 --- /dev/null +++ b/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import android.content.Context; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("com.getcapacitor.app", appContext.getPackageName()); + } +} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..50ede2e --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/java/com/stratawiz/mainrapport/MainActivity.java b/android/app/src/main/java/com/stratawiz/mainrapport/MainActivity.java new file mode 100644 index 0000000..52d56b6 --- /dev/null +++ b/android/app/src/main/java/com/stratawiz/mainrapport/MainActivity.java @@ -0,0 +1,5 @@ +package com.stratawiz.mainrapport; + +import com.getcapacitor.BridgeActivity; + +public class MainActivity extends BridgeActivity {} diff --git a/android/app/src/main/res/drawable-land-hdpi/splash.png b/android/app/src/main/res/drawable-land-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..d57e7308714210539dba527d358185af5ca0c8df GIT binary patch literal 34231 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Ξ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
>994(l;xNH9pVPw%Kt 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 OU(yl^;uT_s{{IK%E%1y0 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-land-mdpi/splash.png b/android/app/src/main/res/drawable-land-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c28b5ff03194aa245d40994588aa555c3a57e3 GIT binary patch literal 17132 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 G@ZSJqob71< literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-land-xhdpi/splash.png b/android/app/src/main/res/drawable-land-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..a12a42066addac6156d102f1fcbd55cd269b948a GIT binary patch literal 48661 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 a6Yxzu@QC$Jv783=Z@>?}UXJ^`4;~cT3|z~I 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 RB(o*Ep``I^;kA2y{{vlA5AOf~ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-port-hdpi/splash.png b/android/app/src/main/res/drawable-port-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..0f57eab915e24ad4027ebce9a969e46b6033212f GIT binary patch literal 27559 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 ae$su^ZF^{bYB5p+czjRzdon$u3jPGR3mpdl literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-port-mdpi/splash.png b/android/app/src/main/res/drawable-port-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..b8bbc996cafcc3485e122c81d99864266d1c2f13 GIT binary patch literal 17331 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

Fo81UFuVKn)MVAVU5eyFZ*gu)HRH zH3~WF*Y?bP&oD?N(k*S=kSPea%NPAe)s!Oj`{$sx3 zvC~!O)g{0FDt(&EqVQU2VxK*jC$x6SjN6j1_-cJobP?L827{-7RS)hG18gUX6xq$8kOjqW>DTbl`cm4=4%ox z8I4VPipKQu{t!n+SaIt}uZOt3^sZSgO~~Cdae3xgfsWr+M^WLO!=1=VVI6SlrmdwZyEFkYoU2n9remh3)fFeH$1g_tfOuxb|TeVCSgA}aY7#pT=`l!UBs`QPWsPa z>y7z^Tj}i^6%Vme1>8HDgp=4{_PbP_z6-FpRDZrmn<@bf>pC5e?meMj&3chT;c@JZ z7B!yU$$^@&?ydE3M@XtDWbcNw&(_xO2KEi|>1TwPkefom`nI*~7LzvkI~3|&J$$k5 z=A0?W(VX|6d`jc7zsyrst`b0q&kojGph(k0TO#&7NUC(gw^nqCor zUUS(I3|5rHcCUgxJK(VRtB0W8m+9Iu-XZz1ixI;p=iSwA`khz~2#Z;S@_ zYS)|O`~t*q9DVSLU$Cs1Q18@~+KYQA{kz9>4DtTB|AzF~4?9N74G`1pVrV!WmA!xc zSX?LcS!aMo2>8U~aXT6NE=8KpU2Q?JTReOIKRr?l9!%T2l=W`i!-(T?%Ms4;{hJn% z=RTW;QD}QGg$8OjGetW&kFpGu)KHDSDOyQy8diO8dau0s zA^n%ywv?!CoH~xYHPykn_zu8v$P{@>lORQdiwi$h+o_^ce?bL8fnj!AB9P0 zd&dU04)KYwnZ55ITrb;R8bDHgJ$E_Ir4R<$p7vI@J}cD e9}N7sBpD8Utw*!jS$(xi8#8bT6U0t84< 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..98d03bdf5a064c81d9f8518aa674ff929ba2241f GIT binary patch literal 66257 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 Z7NXIo>b@&as0W}zPU#qG7oR|0{Vz0H#UB6w literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..7f083817433d8cd5a3b69d11685faa7d88c5e901 GIT binary patch literal 55405 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_launcher_background.xml b/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..d5fccc5 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/splash.png b/android/app/src/main/res/drawable/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..9f5ff571bb19f863771abe1909e069e4e7ce5411 GIT binary patch literal 16388 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/ic_launcher-web.png b/android/app/src/main/res/ic_launcher-web.png new file mode 100755 index 0000000000000000000000000000000000000000..723e691b655125f0340633fc2ee61509abac2a29 GIT binary patch literal 27648 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�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 KQ6*Zo;r|EgMYr<+ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/layout/activity_main.xml b/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b5ad138 --- /dev/null +++ b/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100755 index 0000000..036d09b --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100755 index 0000000..036d09b --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..4a149f9012166a19d552478ae6c69f71f678b453 GIT binary patch literal 3915 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 Z@V^}Aiq}JuHuwMl002ovPDHLkV1n?muW$eW literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100755 index 0000000000000000000000000000000000000000..073973eca1c9e9ba128940d6cca167ea2d6a48bd GIT binary patch literal 9107 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 U+Q4z)y8r+H07*qoM6N<$g1xN%IsgCw literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100755 index 0000000000000000000000000000000000000000..b115ea79fccb5e744b07272dd745fc17eb8a9bec GIT binary patch literal 4339 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..d24f27ed5a8d8fc40a545c902d42a4732597a314 GIT binary patch literal 3535 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 JPDHLkV1jUVhqC|x literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..fe7ac559abe70ac08d7a3cd296f1b422898883c1 GIT binary patch literal 4361 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 Dcy5R= literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100755 index 0000000000000000000000000000000000000000..87452ed89e81e2527f13dc1c46868c216ec16325 GIT binary patch literal 10542 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 p;FyD3qSw>002ovPDHLkV1gK5i@N{- literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..de17156e5f7f21e0e80913700ac3b78527651c79 GIT binary patch literal 9418 zcmX9^bzD@>*QQxQO4^l1>5^LM1*8$AcIl9kW|i((Tv%eI1eTU&Nu`wr>5}de1f?5= zcfY^)k9+UubMM?aGiT16=RD^OLQhxi0Vy*n4i3%(4Rw`Q*k{sz7k~(R-+8gognf{B zszYHoI21kqUAU?I6pwIl*l;vdlnnjQe}V&3fF{8|eLduE{-M)99S`q1L+b=1AJqDh zxFVw&AP<2MWyt0OIKdIf8XpRyIi#NG#5Jqbz>#6k8tEdD4+q+^ajBnhxYj2zDkBB| zCW%j~Gmjx1#HZw@4y&qKeD6ySa`yJhGeZn7KW|-+W|Wl&wzr(O{Hs_!Y)$0A;lVMs zH0|WAo~n7?02)EqSvCy*Qpt#C@hx&OH%i#8iKHu4&M^~Nft+4LY2c{_-&)Gb1@r;@m0R7W^6rMUQA|%}NuEM2$;eepz5q*PTf)m?3l;e%5Z@HdB z)$|G2qB@T{cU(|+tZ<$T@_^OmfgFXEh}x+yM}Hyxd;{U#`{kSfLN*2pOP%a_ zYu)ckyuDGI(a9Zrmteu@5t6k0+0Y@r1a+=!JEAGm!FwWh_wM0WLx1G1q59JI+JH2J zTE&WEMQhlSWner8%0~QF1+miT!OEr4b#uPo2~rbbtd!$nUqjCdnyD5cbv=z2O49So z`Re8cUX{^K{u00Vvp6fkTI$@h>9ypy84n!Ln2?$s?2$3W#A>E=CoL-wT z^XRRzXx*KgW27Tc`jj##pF74H*BfD3Ju4hr012UT*`*QJu`7C|F|czQt-^uQH~Nz2 zoQbEHotgRSA%dXw@Z0Tzysnvi((HaOrg24c^=77VGCVwdZFhH4qw`s^U7L(+wxa;>EZ5-`a0Ut&`7R=XVBvzq9=cTetuO~M@NT& zG+MhBVo0cD-MH+NwS6s#ha12xW+lpBQtzEp#Oc}p*mqnm@Zx>ABHQP{%Y&>KIQ)P# z8XU@{F)5KUsRVwXNX79v$j8NrIEspc2K+aItuo#Ix?GRvYz89Gz)MR?HxmQosq=2j*+h#-CVmw zE+Rz>g#KJCdh~a6gh|WFwt?v5f}JoY=6*?Bzdo$5ubbJ{&N=AQeyxQd6XN4>bx1$; zeS7Xx4%1oq{v9CczNF5raq^;YVpjdb8J}GUx4D$C%s_LJ5&()(U?wN>?cY4MK*QR( zGzw<-3DNtC7OPb+n4h^!UL39_`pF83^>v}tw=gM_%&9drbRW~Rx6HqCFDb<0zj$ipYg?Vl$S4@-RZ;}r@|-V{-s}&;&VqCK6)*9Vgj7meBH7q^J+iM z9piPzfwP159z7?1b8qg}?YGHanc=0$V6<%m{O(MC8Vmnaz>e|eK`Yzc>}!1@pkW6f z2t=WZ?E)RbdgF0J0GabRDeTHWVuCmkn!WsLg0_;Oz~MpKiB)fuso)A1$N32rSu0H> z88MMEtD#^{=G71!Ma0U_O=>_}3LBf=nLojA(!d%{uFZue22Ocuv9Ebne{>7QhMnKh zzlYj0pDi1ITx1O8UIO#F3kyk1z_W9TFzG*cB&NrFo;cr&LzdBeTf${js*EAt0p0#mT z`gTi!jn^-fQ1~Jy;@~s!(^q3XnqMkQaZBpB(SvD6l)@#o+-#efrNn_Tcz(f4G1R$$ z+RIhncX#p1mP26Mk)*8Y1|ef01$LfC=LT`o;#u7Y+IQ2gms%-v=3f#llt+Y`lX(vc`iCJ9zLd6AAC>jeQ5RxKK_QVK+yxjMzN;d z5Op~A>3H^`mUJ5LwD)6-7AN|rK+p37E-%9RF)Q$nEe7zuipU8Nc8LGNSH%E$iaX!%|es6S2!kz#wn685+(20*87s8-R z$HM{?BR} zS?|l5tffV|z5q`g6>VxP-R;9ZeoyO=R{J_2qGm$xjPc}iUW%~ObqVj57C{NFUs&aK zGbBDmK{R}J*+1TbP54s$W9b-YHT+YYD`twIWGT~(2MVa3@P`^)n%h%s)1mZ3nT21* z%78q&}R$`2}-G zyy~0T7HKc!{s2w)T{_Lx27qLSI#=z-V9S{3<1?J!f1PzK5d!GNu;RE5&GH;Vnh}Q z!=SR#IVvclVs1RNPI$J#4|a;iwU1M#+tQDjfvSB+smELtV-61#s-|O73ke`*1#bd+ z@jxVDBc^%ST|=zP<>HZG)Z}tq={8ze*KP*HS}c1&1yHSuqAwhOQv*GcUU_LjICl-= zhq5uI8$0#k(MiD7N~ZkyppYljd3-0-yN?`p8upHuPb$G@KGNIDi>4~D_bYt;s8(bN z4WaDw?C?qdXFog{JsRt4srZW)B*@;17p*-iNly}Da@SNH-t4){F#)A2JWOxxfXeSv zTr1Z6goNWbr>=YG3a>k9*8XgYfp`0z>i#TBWp-Xn(N`*@e~*84V94ArMp|zCV$7m} zw4=^wt#sQ{*>dC#veIsma17~l>n?alQ3*2UdCEG(b9FG}{Iv>Z8K{tD-l$|?6I8fi zqb5@Abah)_wr%;T&qWMAmHN(hgNiJNdWl6!Hw9eMU%Ur2t(VUg!8NptsyGk0)U&YF=yT2;&Ck z3_%q{WGZStM8EO5PnDKKcEdpEKggyzL%Z_kiUNOUy1r^ZB7V>WutS)J5dED;l5+UT zXZIdwiNkTB7-`R8o5l*@#&-}(|Hy+xd27M{2NUCLbPuVqcR_M2T)7?^v*H^s&1pP} z^q*2qNRC{hrtsauI&R{}hxz+8h6N_7>geH$t8?4@57q|i=c^}^C(!De|6l90LZbxE z*__k;Uc4u#kKH(7J>?{bu@YMJa4H|kIica>B~5h;l6@VZ?HUBM#E_BX^z%P>3UU9$*8s#w}PTvCKSYJ<2{YVBKg@NRM$cYo9IX|!xCvfVqXXP_;X zxA4M_0u#UQ;G(1rwC#Kr(c1G%?5xE#B;C}mJa5C*GI$$+XxFCAs}y(b-7T5B&NjYF z^2);668F*GeX2`cftPId_g4Qac(e-j7vp}R%Esr4Lw@WQl{zA3bR7!|kQdez{_(%t zX&h4(%kLjmj0k_Sc=rht!T+YV5|;8@h)aw@w$ZQ|k~QA;q5u3J_on&tCyoZW>Ej$z zO_A)-PXsKQiX#sFgV%!92H-WiGyBK=Kp&G2B;jgoR3x1zKvjxwEqFWRy(T=YNLA$ zt=!T>MMr3^u-5$!Kg9KcIvc^q?`3|jk};g8AOU98FWx-A830uYe#aO2IF^skJCsR2 zkap)c3*>wp+cd0-%9P?;PXcr{ghgdZ5qRnRh-=bD=`n_62&~m&+gR}JQ4Z7kcwA^T z*^DPjUEbD?a&lCN%I5NIOk|MfyyX2}KKynb7+e=N+t=3QA58Tq2=C52hyWYz5yqzozb37=-Doe?Hy%<3Ml5^X7Y5 zs_oDrWjE3~iprch<){oJ+7>EJ01kV|L`cx_Gb~DBfwuRLoy`?bCm0bPw)wz|)qS3- zM{4ZT(RdHX6TTZ7T-m4%yDW|-JAsIJToRb-1Mbn|J)Yk9$dJE*bz%5VKlr%{naQ!T z7WvKI;2bOgdtC}xUW+Fb(R9<<#AdL{V z8D~otPDu!)$Zw9T&XxZD$>0t;)h@3D?)NjFYBdGA&^D6CP^A)RZ)+W;DEp#tZ1lqh z&jNcuR+7)BXRE)V44CL?F;jG<6hE)Shv^1J@j9D6M?8M2Kbhnxpra zHxnjV-ytIm3KWZGm?90r>$NbmYjP7u+A$HX$|iTg$~XW3pQzV=J0Xm$%e3Jy*{2WE}aK+OHSy^Yf2;B@`SoZ|k- zo7vHun?NOY72)qSJHvP|PaiWV{Vl+o8Yf1DeVnuRA)R4Bx{35!+EO$usvo(^3sOGTHHztS%@pQ~>36Cpy+&WtmW} zkNlHws~w9A%^bCc>2(pm088iS*W5$!Vs^a8-x89sbtIGdFExW=v0Z!KIx&WZ2;gdl zCA!Dvm3jqT?8<)g3Mi9hiNjF|4gP0V5T@|8lCoV2*fo(7@p0XfpS-HstLi8}@Xo}z0LCEv7C z854?Q;nytjjTILwylBpfmOTQfbJR~w70fpV;~nR8nGgpj5f-6}PN-Z_ zI11Tg>+^=xFQ1YTDY!z_gKXs!Lo)|9ss#1hVA-rwC0hS&ajjUmN4Cy7w;ip~K^c^x zZxMjN$rBCUdcpauEn`;DdYi$FG}hs1%O<#>&p-IH-pYku1V0ChY_@>4tU-D4EqClt zHw$_o^(d>z7UN@g#U8-hDH9WM#IzNPw}wie;&}ttdKPs^7{4i@FYFWbMnU#0tB51# zi?bb{6S)jntO^m}!eVDSo$boMB@Qp4@#j+OZsPdenWWa!kQasB@-KzyU0!4hSy^t{ z$VRRxRil_zDraX!zoB}ZvrJU|UQ6eei|)aPW##po zYZvp&V7%?ICtFO_@jzUxLqYdZC-dTg?dZO%LZ*oqTgLaq+lRvKlP&lN!GmgzuPBFp zwOypA&q_b36j+)wUF^=x(cjead@t9Ybf#G37txxRxYkW`GaCzj3JsP7-ua(FPnWF!$bN|7*Ielb&Smet;kHdvPKru<>%e zF3-^M3zz0m!aLmGs}nI<@V_4gOXuj0*G^?_YY*$>e<$3Mt3g(-%ij}UT1_NgTF`)B z*nQ-8@*4_c&0U>H%$g+>Xy2&kWm~t{$2-!C=!P}#J^0cRiNsITb!4MiOE$BeTZ7$X z?{fnTeR0jhlJ5-~-7ZOCv=8~f8>9&zxxocB=D2SzFw#x*4-8dUqmTOJSyw_e7_p{= zC9vp$GPbBqn(C-~N&3#1{w^wBC4`qBPj5pKQtION==smynwLE$x0&}8q$v>pZfu?w3#@*&@>V&lbv`dMs0gxGn&S(9nS2DT5Ldd`NUS=0N2gLH zJIxOWY8|(6aHWx;3*F%&RTU$bkG0ldi<|%X`&r5xF9A##O@tsWiCqY_usv-LH|{@{ z{FaI?=^Qh@4eT%|tt8$TmT{0W_ve{(q}otoIm>P0)1$4RDpx2d7HKDI0B+Ylo~|G| z#=3EHebsgWTQzmKBH)`?PKR&FBu`5AX|5nGmYb3Ug{ZM&J%56kB!Os#2{jdcc=BrC8faJ*`jDKB#|fCIU5tg4jcz*|bC!!WBWlVM=6)>PvSes)22MGD zBA*)DmVh5>7om7Wmn3Pr_BZ5z0|t1!5)9^PSb$bNln!Ek&6U4iOTcplxAMK_C=BFN z4UVJjNdCIACpMnlitMEi&Xll(pbEwe!!xsAG?SOySX(wYgj>Jw$_$PsB#4zS3(7Yd zD!iwt=j#v5$s{5cctm8>cWm48zBO@_olQ@Ln-m`{m6qo5bG|M1 zP{;o0sE4EA15U1D(kmuDeM;|*>CeYOc>#ZhGY#ORYkn^}kCAfy*Nl;+DN)1A3S~Q*dqlV+>lBQPe_@gpim-VIJ=~ ze1pGM?6v@f-PFn(|9W@rz+Ov-yiqlOd=B=I#qd-tdyuz{{}<&`XEoHh0}z5(>RwP| z{4cMRYYm$N?5W@sp5=R4|9&Vnkf&1H9hlvy*oSBOMUkLm|2AljzVd7xydeZ64BdWi^FmEC>wzSR#9G zu@~#m`zyy?;o{doah?nQHSAfBSP3nXmmKqiD*qcH+65Hn_Agg^a?DtW0lfas=&x4H{+|Ux$?zFuKesDn+eQ5+1 zgPUAj$n~L4+Vg7o{#Bk!@?l>IV>R)xAl|K`d`C3s@<>p1#*GA#9i<46Z{UqcbVqhr zdA&C!*|FGZ3dV6E+hPF7w_xA9#X?MTeA?;9x%Rp)Nf-7|bG(LI;aIsVf4m3?B7`5m zWb3~gl%vTG5N_zIl}mb`LhuJ@&Yl=FHt#A1{Bs1RUMcT>i+=%%2x!ja_Yi6N)tj3|XZy z!-LJm@6-BB#@FxUXj=7A1mL65ceq#4>_Psr2+kcCkE9rVOUybopz82)b86AHDI|}7 zBJHs$4b7r)af^L8(ht^7`RE@FOAe$ba#LfOCL>t?DRDECu9=Jsj0g8W{)ru==$DhT4^MXFS`SOhU2_zdrh3qFoPS!KCRk?!ns(j2*3F@cGioZq`2k*$q=N8@Fxz|5g_zZX!7+g1UtK6~7B zBKzNuf0#|)%7N|TfkKF=Whxr}YLQlvk;!L=#YuBKC8qh({b6byxhXrZ{;C#)VM+Jj zep~8IsOtT=1#z?rlx>bV$qU9o=bxv8k%pmc7^oNU*2<>rnQdP*vI3 zo=3zoTi=p_?;J5fNb2|gZoOI2A3RjS!D3FI;^k(}nk%I5%}zP~?J8QO5$&6?XMk_w zK)gP_V{Wb|&P50RJg8@DeoxPcgV?pAA^)#@rP5v*DtCleC170SvEzt?L*V(pvjEuS zReS-Hqb%2}D3#dw3O*t$zujgQgnI#<<6k=D!G-z{@p!LMXh{H+SvDx``^IAV#}!@p#cb;E$Gr4&Jw4;@)O%f1EM_w*ngj9!YlDAj>j~%aEd_<$pFm z|Ka~}*3o6Fe=lH{ulL*sTAUoSf9aiHo8tGUS7njn}BV1UtbbvsAAwGPIr~mppy) zB!QMRTBUybExx;|HUlR;1H(>Ve}5=cfc_;l_*FDmDfntVCQC?7(XN}P!td{KKT5ac z8e6`XE;7`4l3ZpklzzCszxV_Yk)AT5(i#%>2=b6-Ki`=d+dJ7yg@0$13=9mc#7DA4 zZ$knCO#Qb|YMDaSMaASgQ%OVH5OHQ5TxmHF=$g@PSmycjo11UnzKw*mD=cX?V>-$n zDRWvp$^2#PmCu=~S>)j8IF=(Hd}D&0CJBzPzUEF`Z^6kX>wQy^nAslc>S{C5?r`O+ zHf=AMhcwe13H`6e`Ya!2lpA_`o%gGD%k7e?>?>3bI4i+SZn0 z6>7+V`l!W4^Pdj=$_xXjJ3L6(cMOe2v~_jsIMov7t`)+R6IC{9ref#51ZI0m4+ZJ0wd)so_N;p}Tc+e-<*SSm??}qa1N+ft*06NgfsxUd7ZVKu z?+nrN#+FQd!ONEIVfrKkbi1iM#B79Y_<2|r{&-c^bI`oQvbX{-t`h*cLD@JdfYM=# zY>M6MB1I{&DX&Nsx6pBD*lw1~E8l+XIh?;ECko&h&SF=^FKqrL9oGhJ5{g}+!3lIBu2MvEAM=<7LtXqhqS=V{$y zh^lwMG@j9T)nT1O_;cicLxM;&3a&DncH9%c6Sy-ere0CU9!|p1P}Nnb0$WG?A1)}@ AApigX literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100755 index 0000000000000000000000000000000000000000..60686f6ddc3e30ec7003589cf343fdf7f8196789 GIT binary patch literal 36842 zcmXt<1yEa0w8n97p*Y2%xI@tfcPs7zS|Cu|A$Te7#i6)66e#Wv358OuxCWO5*Y@TA z-n>li+?mXs-JQF;-#Po8Ut+Z1E5E>djfaAQ@><8la%zfPBvkU{Re+2ZJ1>~ykSIsipt8! zmu2b<+vd#G7kj&(d%89zv!pNfdXkejDAa9xjT+RR^YpGSl!6g)d`v>UcNyav4CNm# z2qBi~S4}eS4F6?=D?OgO6AB#EGk=!7z?&tTHdM}BF?4w?s`j#=5te8^X5S}pE%9Ky zlIVP^o8PGjdb{Ng(C@IYO_{;w(<RNezpxqG430=~ES(^)vFY=R)HVGSY%2 z{P64r=W4X}9#N>$ng!)Df1$?;uFgGb<|;qTO3}&8+o`ZAAAfsz?c@B^+8VgL502e* zU$l`%Xk_{BQa*@i*t-UOxhEj4a1*CH`x7p!Nou+MV1{*nm2@1X>Yl@|3C<-D(V!3B z=$sR;K3A;Q@#rJ%u|sK_fJ}TCgx0LG1E$(J1YKQL1V{-go%w-SaoY$go4m}LoU})X zO_N8^ca4Q)d{(>cPUG$Rtbho+>XHQ^9*;S>ojB#Kqumv|YE8385x|ke37PHE^BTSe z$v+;dp>Eb1&hQvEEy?O$DIAF<{_6ox1F+P^A;^#4J719Ja}zf#9P&Nw7IHMjjIP+~ zCY#@Sp|K0d;(Y>Hd3c#66v-I218RCEOx?^SD{sux!|Xq^t9weroz!xh<8Sb^#!72J zc(XP??@b*<0ErO8+<>C!IE{w_Ff@%9t3!naDZ%uV@kC;ZL;L8Hjuc;RR@`&{ti!Czm7n*%> zDGd>JIhnr0lt<)D1~VX*>E`7w#w%OvTdakujzT8QVd)3C5+Sy>%`;VX4 z8sw%*Rxi2n{ML?odhu^>uSDtP0%EO?EOjKTz zR((fWo{)6>PPCr)7ClNC(J}ss%g9~hHZK9~^pA+L^S(=s0O?B&DchDqrIJZAbN7QR zMVpHvLAXZH%yiC?j`cT+q?8$(gsx3@%6e;+HS~JAFHmp9fS!OkfJDzs3d~AXB@(+S zDH=%!ma~3q51LiDWO3EI`J9@R`?#iT8EB+_#$cXVd=bcV)8W*~Jo;784!v%5%z4TY ztBc5BaXx%{C-Q;VDASYvdSg|ZLcD5&vjA7CVY4on4OdBgiPv5(mXiLiBTLu#wkm3DuS>wY+gzN*8bs%jo@v^MUYLte-MGLU{o1V2UqRQ( zXNJ@-8|t}&hFwh7E=?krtKqy0jyiznZo+)^0MHI5`@Y0+7HGy|a=z!_Jd{p;iiv~S z<)F*qetRFr6E_y2A(lImwU4HUw>q+1y1RK-W!%iQl;R^{v5pXp;Jx^8WZ0-Kebq^m zJ;>!34Z$YO^97kMw2e@Dr2bNz(3BN(D^H}WY{8T_-|@{2%muP`3zD`UMi$qKrbBvv zu}&8AI=rHq^C$?I!rbtdmt@gx;*^PlIIjDR6QO zPM4MO3U)+!WPm|y7dlDiXJ&bp1?_>Lh zi)mQ?_^j*VLuXeGww7-Ww7;1)C)!iU`P5_AQ}WWP6LJ#kYZhNL0h*HMtxs>@GH<0; zGARb#b~rhTHoU7}@aCCTSA3W>`3dT{Y4!AjL&|$T)r{YzdvB~7T32>W>aX(iWm_5X z-szuQyk}c^VNV^^R2@NUj?YwbJ+sB~A(j@)6dVL=( zF1o~y!I%{Duh2A}^>(8r|8?Scm~w(N*|th>&LBB19Sd{RArmu2q(Fq-#VDn?_{Ffe z=0(Tc;z}D8Bd=la-<8Gh0?CKHsAsPTCOYw>= zL6xYj9{GmscgV|F8c?cw{M6p>15wi@utd4V;@$fvZPM$;{E72V-K4O$>ETSFj0xY!y~P=d4c&5U0sRcvIaX6PfF&sdPZ+h)vvzt^^YqVjGcbXl>J-`Hm}Srp#Vb|>*ObN3YB){0)`J=*DYYjap{a=uG9-g; zO~!bs8%{d3Z@M|Vrg8Tc=O~w(ChPagAKo=k{ro6h@ik5-8L`sPxN+*KM!&6_pg20)#W`dSI3^K}<8ry#A_vrm~bZBJ6cc3s4%HW+W ztzzTJ7Bt~KwO54xF0z`;wljvEB1XdQxDcN&%6aFyDD1~;y+-;T;J(3FQkS6w-3SR| zfTu24LOMbop{uZUh+pUmfXvx#jQk;+7G3}i`BphrPgA{89Q##K|6-?=YRG0&AC-eY zXz)$n^~7+;YJG;~hs}!d+v0PUQv)*^UT?i6VnSBJ&t0nK@E}(oGr4}Bo#T26WvRt* z{FyYyg5F>E7HqV$!&*Elyx?5GYO&&svved-cVt9RXoT8ZeRQ5_N1}%U>}Q>(c;q2Q zlW{!Qzjf$6Pu&la`vVWO+1+iN*bnHLe~@}^`FM1(+div3_}R4=wy+yHYd&rUC$5x&$q z5339QO>Pv$S+cFka3=0|!R{VSi+s|zZv#7uRK zU1uXp`#7u4@iCLe)>a@m5I{-KH#*OGiwM-{Zk2Ld5Ld2$HmK`r;y1s$4MMIep^9*b zc5Lsi1J>gz5ii)!Ef9Wbqpb;&vZ=9r+ja0eaydg?@~B*d!)oQZ(E5(|0az)oW!T=? zL)rl;XA{tPl1Q>AaQ5F$q>>-t&%*F3>+$LWHU=H9;zPU9^2|_RToz~M;K@TxaMxIxwaG3 z;rJLdzPQ?!2UW+$oPGNjv;$)_TPxnF+|cvm#^&8KSh!w04k+VxwC8K^)R91Lpsr+b zXXreBT8N*apZO;WsCp9qed|Q}eq*F_O;ba}@JE==7uMBo@ap+<>G)PwT*69l%?_x` zNMql5Orp=8&TUsP^O`?C#_2X%g4K7D@>?2#$pGqGLf1jp8u>gzf_>ofm2(s`Ma|G+ z1P3!YZu{6vP0^e~DGn>|EI7$;Bfph!9|MN+h%q~hgVc5J(C=%6B7mSLr&ABLcs)}o zyrV=)`6Kyj+>TZKNBb|CTmGj;GJQBMOCEGr!N-66-Hg~nzqKLg;J%bC5#$@S;KXwg%yF@b^@>aM@C^j|&ngIT5ad+ITuTz>Cst)FkruC$ zR}hJ3JAqaGEHKq4c8Z71cbZxs2S5boF!yYswrfhm7aG8ko>m$TPHN~pjnRbN=j+x$ z;3bB-q}EpFhYsMof*31_3W$SVDeHY8IafUoS;@h6MOQd({&Y7#k43M?61mZJZqlH@ znzW^mwTkm(t38Fz-4lB>KJRmbaC|}pOs>z zGll!D7ogfDKVZgCG|5i+Bl%&2YJPWCfJ9_3?mt*RP zu5slxZW>m8&leg1DNyI*0K#KOE4|Cuto-AmjrOZGoms#wN&bIlk$>bl1R7Fg#O@?`1_ z%c}B^tM?^r(-cP$cOM>pI66S*i@jPToS)JR9Jk#W7ZKyoz5=8L(DqE}p-S-FT^BE5 z6e$QjuFn)d=nXrC<`|ji?n7HIfT=XB#Sfd`PPX8{Rk3>7mwdkx#Q~6X&w<@&b&QPA ziEBm6HyWoNPa;b$P=Tunk>%RH=Ql=+y#yl%9?8yGiiZ3>4M#s!P4-y1^D3#CfB)T^ zSUp^*NU~~UalTSq&5&JSi|hTQx38&YMDIC;^NWHchq&TQfR=AMPJ~KD5 zmDH(Se&!R3>)kb`7PZ~a?l9qm0{`A|CObWLDM9y(!?E&_A(5pjpCC5LmJi3^)$NaF z3I>4Lr`dZ=kg8w4z?`2m#89%8L%e4lnKnM(m8-o4Ql3s=RBcUPw+%({fu1;ilnGi5$PsT?Y~v88z})wwH8-5=zKy7w_BW>| z91)2WIUZP~ZZgsFg9ma`Wr{die-iov^aH}&VSQ!Rl^cbuBw6T_C2yRwq+lZ4nbZ~R zw#f(&9b&&aSNda~#v67i&OIxS5OFFmi~4C1mK?j}YucgiTQ>_pYM|dk zSbWhTv)-Hy=gQB^qGundD~s)*9rai@m{o(~qGLgEOefQ1Y!>8>d*1IR)es-x*N_HV z|3>;^J_A3*#EW6{tLgnf+5p-o&yrYEhtAq+1II3exnWedVF7Pk6;CRtG?T2ciNgd4 z*LWh$pB8SpUQ(8_TpSM{OVAsp(W68i(3*e=23L>3b{gG1vxnx6(GFWRPIaGqm`8tI zNhv^BidiQX<>K9>$9>apMy^NP8;2oZ`36u<$P1I4ST%a+gq2z`;~h5ME-1pqvQhml zJis)G`1y(UgB{LeUzfA;Zuiz5VaBX~Eyj;(_^;xMQ|#qxU=no7tR`XrlJcqoKe(4h z%cNIbW$Tq7?Q}$7eL>6^=0@3Sn~TZC-NhZmb93|;j9Jewg4gq_b1KucOokt-HgN{N zZN8&+MtmBvZ~6>qFKTTDAnE zV#jyBC{OH!g(xTfH&wi8i{8uX7cEbC)=E00x-dB$6%KXsG9V{sNm{>(8Ua&GFngnL z;&%apMiGKW$yhf}%59)s_;DB!^$^iw6l1Fr@=H9VVnw6s#f&RcOp8&8g?26Tp^Ejp ze$6JhCszI%WsI5(z;84(oN_ZHDiysf?gX>z2gF;yGG6F;GO`_VZ>H2DxM z+Lhhe$HEMCl$8>knjs=1f9u@iM7LIJs3Ica zR2Rr_7K6PwEgScW2;4U6g*|lim<9o{a^keatUK8iu1AGA_{|a7q*?XfFE(`qbz@0U z{ELROr*H~@$6GOZs8c>lU|Zkt1f6gf%71Yx&uq3Kkfv`KD7YACpNue;)A3%;qXXU= z4IOs8rZf4pIUi*PcB_vxR1~{D_hE~RIG~R6uF_-8j}Z&2jdquZjB_Y(%H&j?{2D)X zvV8}oQ`Aw>jnwfi>n4UNUI=^<{%DKE|1YJ|d+|qIc&H zjYY_hh*{6;Dy#0iLlM1b?363JY>tZUrQzLZ(}r z@$nE2z1iuO9O@TVCu;zo~VdzLi=UNugO(Y1wOvz2^< zN=&q|*JRyi$Yl%=iCUy}-co3maEw*e=y)n8AB=ya5JcS?*x2-f&4_0I zCe|i9jyhS)9%`V1w;dppV3tjO2Bvx;?uHVzN9 zhJAkcm5*55d$DbuEIf5JC3|~|s$t>m?R4Y_pe-nTK&MR#I^d`%z01cc3q)r!ux;@K zGd)dTr-~c1d?zizD6L#s}uf_U6fyMdu=!eM@vhd=xKECF%~G0e^?lE5N+?RANHusCAs)Cf;n#iR zMtwPNVwU^PsVnipHK*%jJB0)fQRq~_(d4^igdMu21*r@2?Mc1hRLhI4Rg>B+DKv-V z0c~Rg$(Vel2-jQwQo4#a$4GZ94Kn)n~3Af%O1q3RlUth_N=TKQ*O@d~Fktj2>Jd4h{#RxC|?JFO((l*8H-) z%K+pW+f?wSk;UWle(PGAEH7U2W8DIWJZdMay*_3gWOF64D#^mOtD4B!jJ@5HRnWOi z2k}reO!5x>>1au_``i?}ChV8y0I7jo?={q80v~~H>zgz7?sw&;rtih#yVmR`|u&&qDh}PPqEPl^};Tj(muXgV~U^9|v9C_mdY} zwh4ryw-=z#ngDSR2wPhI$qCM|yjl2F>c@Tky8>L}TCIiX7;8GBWc~sXFAw6h)BF=>f6O)$$$gmSZgi_PSmz9ht5~r4p8>`i; zO_EJVW$nf$wN%jQnQx^CV|8<4tb+qzO8@&MXwmXpp-ZsK;6|Mat?Z3KN~equZ(24E z2Rc+)pwr6Vb#e-YA!I+6U19OA;99K&{l6h=u3e}W;U_PzPmuoC98oNb7tGxLBPTVtMQx9aci%F zFQ3SRPgluBlt2FU8`FfFWhDCuOuzMkTyWt}mpI5luknI!LRtQsz4kWq9H--}fCa!g zf(}rXqOH>{$TKW>)C@*l{rM51FrUPMmlh(CKPBH{=aC969Y+@(Qa+{DcYWH;;@oj# zpS(nNcX;@s`x@C@loaIa_muX|_gNsR;h(_XRcv0R^H_jO+d`_dmrQIuouHTrT<96=7fkb~aX>goUDHUQ1mbqm5%UaZO4 zPLsSfdI66taelgpOWN-3Fzw*Ql{ZCNjGQ~f>2ps%tzp^QkM$1&TnS-2h zOqQYR&q6-@1%G5KPjl0M&&yk%8_hNwK!-V^ws~*-)!%#C{dw3S@KmaIfq89z!m&#? zRtKi{ugaUlA`(bKHYce`#Zo=>{o^;4G0%bD0^%hxLY?iMde#0ShHpX#=F2866D^a> zzom%uawWZPemf6BI1z5;SPb?fq#GrNrTsj}EdNjrHyo<9Wjzd~VCYg8nW({8)il1W zPiH=Pwe%9h$~ez}3eJ0mfkxHw>DV85q^q9GqaD8VQ!62$!pL3dD_R4d(H&}MUp{-4 zNAZD2nLbm5u;YzNm8ajD3x$a{z=&3mMRM;08fO?#bLqFx0E?B~c0vF`GhOx#qH&(? z?_p}q9rQZXBeD^U0ipw$Vmi}h-=$wtvB=&wm@(jll z%q=jISo|($&D9Z)^$HoE^bLf^rnCM%r=S^Vqp>e4I^Deasi5bT6O?%`v+cf|HaiLe zrD-fw@~Z2c6x*cC|H(M56E3Idkm_6*;tTSowfu8nU2c#y!QayVdD2GfFWxEei=FVF zXc1Mwwy)Cd`{iArp*KJ`_WdUqr!-60+wqEQpNFrMV_8g9>@Ik&KJbX2sKJLd$6&9z z%ntV}f+qXLK^}ip=Orvi=&;bpa^-}J-Z##~INg?x7Kw(qCeH-EqdPxDylCZXwk8DY ze*S4ZJkHX5jBUZ6QU@#1w9w3=YBXJyD75o z8YD@w`g$154=z#JCUJE4I9ZyCHt;{PvR|1RL5QV5bNS>zo2M0_*71wkq}X=()u_6& zev4V9E(71bbkt|$@Vwo0LS-%G>Iv6x%j%5r{;Q&vdpv69C>2;j9r7qPPgKNRdI%sL zN|9h|B2Uo&!CrP%nj0UBPKPfyVYg+}$ibzNgp%d#i>dV+Kk64m-!W+>rYeNVeT|In z)flOCU`d=M_=$Du za}Ykl*+CkP4Z(V-9?!<`aQWfCJ*SME%diw~lqV5vXijNOxWIx>imv(x$w z;XSL^?Mhz$l=++NoP|8U8Rpbm>nmv`~LMCpc6C2;ULRaUu&c%UY+2|~l z@?DSmJMhXq&y`#p*$aPnmT_Nds;Fe`V*1!k4`ju;`8<&2_e2d_{Z{0AM4nt<1eG4nMZl1g5AI| z_=h&3pJFh)|CJ;K&N7W??jIfFMGnm#8(+VO5WRM#7TDe%8`OwWDQH;K_%={YC1D!#%WJ5P!FBLoPtZpABfuv8;zku@s5!ObRZz%}dB z2AP!Vhx7pV6a;j+I(mOAqtKb1Z!J!}x0w6DgGH(*GtV{)R=c}2k^uwH1; zEPrX3q77S3#*+P`@I0{|I*0^|W0ss;m>HA52fxkz*{fohM_^7W`E&UQ)C05&yZ1)akC*oEw1hL6R z4RHEq92j@j%o7JOgeV@HA}|c1YXzI0dBZfaIx&xrf9n~SOSvOaAiutNi8^u4~Q zu6`3b+>0lVHR^xI)6N515%gYw4B*a-)~oKR2Kuht=^eqGaba0G+7%!|Bl{To+Lk^% z7QXIC+kNbSZ9UI0n^5G%tYQXy@PjpsQ08oB19uNORIP0Z#6oKo6~5ZQZ3$Goe;-A@ zPNC({=;7Q#(+b(wagxY?H)^cb{b-7P-m@TUx#FTIxuTIy!C=`iZr24&zH#2agxEQa z?+JEcXqsbear00BIP>j25awqw;orK3AhN8s1kc-WL0p!X)3QowFP`^5zeQ!}U*e9Ud!8uL)*q>JS4qvl3^pQp7aV~oR`e?;Mz}5FB}&sIt5q$P2p(RzY|s_4O1EF)zsO%`Ps`V$FS!6NbiSfx()dt z>3+BK=H0iZ$^pb9%I@v(y#eOkWQim~zbh^8={)#Fv(3t|M(DR%Lx(Km^+52D%68DA z1o(D-Elu~?2N(=C4&_r}}#q;l-v`-r_NPa zDYB2gXudJZ%qwj97;P!t7UM|5B@mgKO+?^b`xRRM3i9A7?62X6?O>tZci9f(6(=O= zRqc(3YM2;4G#=(c8y&N&yStp*@jI6F$!-7mi?yDLz+1WOl#M_^x#f zH`{}gQ~{yA-!6D0D(nh8){8XA2B%%Ty~*~-Hi(QC-&be7&Ec9&e_O^Nn_I$du~Xf@ zc>t0q<9B`>Q_=}fs`o+U*K`FFz9(grlrrIT!TlgbZuH72BX9_1;YSY}ofdKbf9}uB z{Mkvs%8{QbZl|#hskD*ppy$L3?d$751@A?SzST@$kL<;i!^LDfMxDaS2yA!C& z`3r-jNX$8WG&Q&y2~7zdw8jRu5H(!OcVAw-obqlWywqx+koUyckW*5RYNn)35es0n zylBGoux_m?w%{ct7kE?`m3UM)O@9z!s(M}!VikuQ6Kn!~!;uGV)s87r`=m3SF`ACo zEcM>z-}ONm%1Q-N{?KugkE&Fn2yss%Ns;VBRWl@<1#*vFdL?))M%qzZ+*xy`uVoOK zjIkcl6LxEP{(*>tL|PF@0JV`|=}T9I(Ma#0Suj_!3!#!zpkVSz93bA z8kU?A?kY|A-81yvADW0==AuXn!miEiOWuCZDtMLtN}Rl zE=ScEPfxNHQ_mTeOT$|(7B?1*j^3|q6o5?DlID1+9e(30GA5UH*2No)pNV^oPrWA# zwb>2Z{;dl(U5OFYMtI$;Os7zxK+>nW3kO9a12pK46Y&*M=**9IN@{xkWW2fQB%T&r zAwcCM012u&T^3YZ$C7lu=IV6P&ksu(P*iGi=6yLjvgwrY4S0x=sTP=J7%FJ}TFP64 zVoq&>1k32b`YA^!=OF4Oe|d${w%p&qqY=W_N$zNz3+m;n#l^AN$vRV{DG#ObsMBg*RND@;z@GX5y_9~P9Ph*~%wQrJ+h0K!-1sQ4 zrK+g3ATy_B{3GW28q}$4w`!(Kjy|N%tqhk)#Pl@?eoG5W%63vO$PpZ=PhCg7$hPtj-C5=zL>fpRtke3(y);xC z>;ig4_3HWYmDDv&yr?i|6TcZ3y{E2~Am_7BX%sVo>f`Q#h#4bA^sH4_V&>d$M$~tI z^LHHYy*1STD!jJ;Qz!ht1@2ARm=wNO$Rr;6Jh)**rHM;6mHz(kGPh)b4FQGSxMO)v z>%<>85SDM{aW4Jz$CLu;PL|y!SEYUp#2X$^(D+HcrpQ7{pBZ16R!k}cQ|s7Lq7rAx z`LF^fE~~%KqbivZ)~;aJH|Gx`s9R|Hq8OYZJ2Lytj_0m)^-I*9v)F%Tr*#eD)(0=p z1`?I)YXIKYiyPmpUXNtfB9B4~5#(#QghQ6CaE2`HAwc z4?m&}C=R@Em4z zNSPbEnetKsJC!8ql(N2V|Av?BlIimCHK#F~L_`Iog5w=qHjF?|6n=5DG_F3eUkMyH z$`wzmQdHu~N}VzC%BRwPbxzH+y{uysb+HKfTRBNXNf^bK?K)EJHB(=J_WE7c|K@&Ti5aO9f2M^AG~p;a@yMG~=+ClkkICIg1R6i5VQk z3?=Ec!I2wjfmOTsi~w(64v)N30z?rt?U{NIud42mRO@Nwrko8;xxG=WgSUq`=F23e z*fB+luR$UmldT3y*saN&X)XyK2uKe>}K+LxRh?p^}3`Y;W{-C+esXz|>mNroLVF z`t2r3EO&CU)D~lbVUl+kF2PORni_4(^xV2?3*gd07)wic|6)^ifcc?h=fCs}CCQag zPthe!ooFhF;4)R5N-`fhYjYM&P2Jbk!8dtbqn*9g z#hhP6)78hCSE;Ku+_&ZjDCv8b6n(cvC;~^96hI(%R|R25phhcSzxZjFD}h8(F0|CXxovtQg`?7kcb84*soteD?ZyN)UED$+N8A>& z@XIxx1)!=wa<&+2d5wU0O_c+Ryp+AyhZ{RMcPC2pqS)56&6A|*83{i_4~fxsQkWFS zv4t)l`0y$TLVI{Y^!Zf`ra;RfcKU;HHqe->o4U^T7 z(0H5VOGJGQZ4Xu^PwP*L>fplXJs(gOKL-FJbeXJ^uAC`An9r%Tm#|d7yK~d|;m`OU zuO5K2!6o#luL}RLTBYLDXAq~r^qleS8MVHuw0$&Td9Ye3cmLcyO}Q~EyrH!yRX$Lg zkgPJK?gF=&%M43L@UH#LZ$)L?pz-zcOBVPaCBi)Z?R=1rx3#y$Vy#;~Wl!QEX9;gX z+}U^7D;2+L72kf=Qcd^jee>1#Ep#K+dTI^@)AA+q# zV9>|*N!-4;cTPeb2I9aSRG_8CQ~fh^oDmh!x<2-8TK$7~(=MY&W*6&Ar%O-1-PBkn z-+98wK)q$PpP>{SlpM^9%v9mVAv}xdPt8a(ioWj%BlurB8=R2dR7prh?)5zgNF8}M z=TEl6MJ_U#$AujAB=nhFVrPaV2vdKQ&cUqvU2-idm zb_-}G=E7ZGj)EhfKc_`teD&koO4Gj#-!1~m(F2s5XJYMAk_VeVQrU#sEMWC$t-7X% z=)OOF)}K!GFoENs^Vck@%o+|25oo0%ki}q8Y^8=bT9MO{Mp)$&ON@B z$HU}{4oIc3!;w0JiVtqUwxYK+4{sf=8Year$1gb2ZE0<>uO_&>`$rBadvdaihCaVC zSYhKhumZQ6`bdG(?2ee3MfW{#O?lr^TzN7LJ9AfcOVifFYRjg#O3uq`qpzyC zql(u%sOKIR(Yd~0*XiU)vk_3@RXLg_rXLfF&{NaqTb!^RKLGQ_#-+}@DNr9zJo3c) zHB#*1JgHFcyer^$*$z>(euJ`YJk>FUv)0&JnzQ~owf&PEpSt{4ZxRbd`rj|IpITyy ze{Xo1 zWAl(Zn3H#&D4%;AfAz;Z`Mb{2W%SPU@xtC|j-F)V#A1VJ$11Cn9{1P5W<=LlBub@$ zG|n{aqFs*Ub-$&jw`W(W@-;&=4A`mKw0t*+}N z8)~4U$vWQq-kEQkLrvMoOr2a~Gimgk9o*YU*MI0}zT$kE!}ssVg3XP*ueGG*)egnXCLNJ#>G$u^U{qQ9kMLil^S{7?ieh9BZe$$+~TY zB?9~8Ny3CObHhG(EgP-zMci701H#}ZN$M*lUz#oEIDBJ+0a8`1Hl8W2CEna^gr{bZ z?n4|IQOTwkys%RGcSf`0UX<6`4yM=?6I9W}{QUiP#F;9#bQsy%X(PI4#zlBt?B)h1 z0f|NbGylk>7ihZ)vx1-)4s1PlTd`qhY3O2Z*?ClKGblB2UnC}R?pi}(nB<1{+HfzbS0R(Zl0EQsMmgg7WH3{f)eaWlAl0G?b_k z8?8?5v!P-k8IC^2FI*P?)Q~V0rj&=>vX%E{AdlZzzp61lVIZIBuHa3P;Y&FPCq{31 zLAE>}jiLP_{0lv@$#}-bcNqs!uO5>_iHf*w}d!N-U8dFEM|E6d5UWT`Cwa7-# z8#8ul1ZIj!r<<``yL4^ezfo>~6USwtmcjWuHP188d?G3n;zYqnJ1wH^PX*%eFtn~d zTVNmF`y^;K-~I|FN1dk7%;Z+9GjO>_4IU}NI{+WfX_0N04|={wmeBXHHP=Y5aHLMAl0+67CpTwGW-LuN#?w z^#*R8=0h7|tHaNyuU{^58CPRQ+dQ4z%m+ua`C|PCfY?bepTw73)y_TEKG$QSab2VE zSvYO7#J$MPk6Zaj3O1PX2dgTj?3K&)Miy4^|6i3xa~gqS-cI`3T`DA+jIwsNKE+ho!)Oq*x_Y{&o~w?Yp&t{3k{7*pT2 zI*RGzYvX^hPgha%8hurNE&l|wr9bcJjMJ*SwTc7kZDxNY>$ei_k0YnPn+c$RYetzO zDS!dpx-Sr$+&6FJsQ4I=^BCw;5_M~SzDeTP174JY!1cNH%9d;uH-)))0{=~5c6)V% zJ}wJ$8=$M846zSd*4~s0VxpWm7`h`BF6rMeh_GxJnQK<>`n<78Z$!b;9kukGbnV`q zAZ8o>X_h0{9MP+9zEu;&J~Te@t(KF`oU|lvbT3+PNE0$z&H#OhlLL?Ey}UomO8kdD z?htm>NQ9<*OxBI`9{(;zz1;fi^WrB%B88%0aLvStc{6c>%qDea&Rqv~CSr8w)Yu*` z6bH8<7jLy5Lrjul6Zv!l(0<#1i}tAke+6mNM+M{9{FvL-;vxditC1ip>5Sd}Wic?* z&oa?ffQgkrG}K8WbndA|cmMiCBRYpIvm`J0@qQ~jlR79~uSfv&1^+|U>rK}U;i!KI zBuDYAi|#pZjLUjAQ>vth^B?Vo+}~UGuX|x`_~)ISaUmft`1=yf3Ug2jR?R#I12{Sx z1w8DQcRK>#doE1jaM(Fq@JwD4ho;8pzpV?+c#Q;3{GLLlYj=_wPDbe?3pmX|-QfzD zXl&oey0<=2|GT=6a&IEzQ*);#9%ApcXIExS)142~Q>0d7_@aNLu?#Av!JWQ8Gv=E- zmU>udJ`4>@%w$>vy^j_WhkozO#Sns%HgaBWQ>}EY(^I<`@0R~VBo*X{WB@XEXTI|F_F~Yf56PDw9(MN%emK5fz6qTI-0vx*l4a|3#0!KaK>({vY2nt zEA0#PJ4p1&Fnit@3+)9Ru8-BtjFTdhgNS9jpGX-Is9Ph|TlwY4XWRh8*L zPaP*+e#2J2A=yuce)&t`r_}wrP3^ib|NPylGaq8!NgR$T_~khmA*^qCw)^^gU)}zk zM;U%bYWfz}JLdm%D`wsTa!soq!{!_LAIudQp6~`W(4{#^mXw2qf7KGDH2!>GzmmU- zS4cV6`$uN%1dN74==;QA_D?BrRg->Xw!32`wSPS)yoYTML2}Epb!JOe6rX;q?0N&g zi8BMYz8l?R9~?z;T4>V+4Lf#Pd^^Hije@IG%3u$>Xz9+TIKs69D`!e8I~qn5WGrxN zw-~5Fs+X_U)J~cDran>2|FZy^KR8h>yenh=T^<{{m3z`o`>@rY+DO|ld~UFG*xY~5 zw*!l^0{y{f`Rh=Vw9)ZBtZ(`CrY>J1$wGKPP`H1>7P%~bkB0c(0(yh1LX{Zc%gj7a zlj!Pq=|VY(v9F|=-6pT@ZmgZ3v??-@I|~c-LjdU(x~Rn6ERyh<-y<@5Kq&2)GW-{i z{^JwhEsqkeb$t#nHJCI)>%Kq3bV^`;I?C1ro<&rlTGV2JFV{Tp8ujADRx43Z>aWJY z|E}8;kZ<`9jp9MXtN$VCs-vR#zcv_jgR~&sExmx!DIJp1-L-UgEGZ=*(k znyknxBnap{52J0jMV0cupa=S4Y{_ux7CEia>25w?Kbt%!I2|JBf?;4UjyG?yKI?6k z7zUKNcQLE%0vSX>rz+BEH9nI^Jri_leuKKLqCP1IgE^DK?l3K~>Ub4@152-X>ej2U z(NiK;p^niFcPwAs&C7S2P}z@iDBJBD!|GdYvFL{mu>>Kt7iVN`h?p#2;B|}VDvUGp z_HBx%?exV2?tpv~5yy~JcXz~gZ+pay^L0b9+RCDNY*RiVFxBkU3!x)(<^h`%LKLW1 zKnaVYm1v3G2DL?1M<7Zt!-j59q`dzUnFh7T$-nt7hJy$@HF>!2Pzwxhf&??N{0X<)Wr#fnLYY@)0O0#|L<4LfWGfhyqPPtRvCG+rz{uw@3ik7_eJaBsxTck^TFr@c; z(m=_dr1*Xgd_lzBh1qDT{7XyBFBhX&zfAPS+WBy_bN1C_+t;#?$Ouq@6c1U`+yphT@fWr(+Lq*<`dbK36NkJCl#|!i!bwjz=Pv{Y(u-M6b{{T)QK;5B0jN zipsmIo)u+$G0L5oi`_MzLnG@eK~{p9b!V(J*T7z?#Ze~@I8D+VH(0%oc2q!5FQyL# zU~-$;#we}v*2u`Y-60xQm;-^4OTE=>xA={w7B=vgR%-uxBPV-2pkU#Ry zwhg{ICD{sfk34As?7joiL1{Ip4$r^?fv*8at}MzYTk2gNm(g*!09DZSVC<%RyFfDh zmm$8ZL|2@8{au52GOrmfyegBFCbwSgzZapdq8o$Qq^BvdCXfH#^)`vFsHXf~M!rmE z#MO0X@vmgKIGGQ; zE6c~to40^XMwfLMG5gOzbuowc1Zy(-mB^qY_r>5Icq|NRrq;5nF&=g#656{y%DoBQ z1ndPzZSWXDAF`Vo*3kE?h!ubQzYk;HfdB-ojf<+} zmQ-eG*XNJ0Q$ zv4}o2Ni!BGox7^GvM%pu?L8S0=hd%kaAmr!EX=paBah1uU%;1*owVSK17c)H#%2=Gxmi?prauu$c&F1Ho zwQ6H}&nV-R@2T5b)t|9`LL|PB$pRP#l!Z=5j>U3b2owP2xAB1a+;N!zBh2xU?`dMh z8NiU39IAUjFWdgUAlpUHn?^+2xjF)9N96KK+A8pb*V8jm#mML{u35{AN z78tGMR+r1o;r9k3+LNgXe#IJsC?8s@3~JC~38d`d0L-RKPZc$;-;-^Me}{2BN?5Q) z@j+7et5cSy@$c+Ley-(b{~#YU_Z3WrG4;i?w>X-}-qgyGyD_P$~ZHr)uu^CsbzdEk9^t&$~P1;!e<+6~rPCJIZg zJ6fk^9IT@@zF#D*edYD8G>_wAwKG$m-5%tUjIb@)jY!tyqr@d-K34M-}#VrW)XFsWwI88uOgW~ zp^EB3ng?08Z@hQn!)lQ%maQiG%5Fi{P9{%&D%{Dh&hc!1 zANuJsu+f}FM25&4mAVpLMAWZ}2|<0+@ivk1v*W-*3-ebDY-VmCuflP|{y}Jp)Pj`> zZ<#&UqU^z{GXMFB^std7vvWm|2BZy2NLpoa(rb&zI4v=0)MV6dn9n7sh+h$O)!kEI zVW5b?L`#j&8BIq4%KCfOawS-1r@52Bu=8Yr*V~^HsQY)pA~0si-C=@lnhDe^zkF-F zCBAu&?|vEQ>&3|@&q6l-5xk&Gi@{@~y zB8kYc6q%Os>xL$r2Kku&HQr&UUO@X2J|Q`?6>HdxGv3|`Ra?DQeudI@N&htKAj@*V z(%qFD5pr_BYmm`;>s4Ik8^>aiWN-~1Z|f{B695`UU8Lg5uNBHdcyylEsPaz`rDqwC zZ(n@Idp%h&ok}j-KV=@PsH_tqQq-z}`&|OhTx-1Y*-M@$25mLHsPBI4+*i|O&sjYN znqPNWy9jyYgi_M8GZ6VOL)mAk_U;I&p56&z-pXEy&j7;9?xC8qI-8z0IY~k+dFG`nAdq4RpL|6%krXfm z1}2bbaZ?xH(i6yKZC+Tn=jUdRVqx)64D<^Kea|>shq19oFWU{A->BQXStcmqxVuEME3&DF|PPwwXb- zPu(8|j5CvE8qx)O+GlX;WGm(3ZPF1-snE67#~L= z$6X%UH%d)od8IcX%Ax-`ggU%20J3GeafJuLc9)D(rCS*4CxzLilEWi{bWD=qri2#r z7nq;wC|yJQx;|=hdPlr;T*z_n>1f9PpyscP$T z<*liXxq9T>g^%O)cWP-auP9zEqErtlVp?efuS9DgPnU-bVu}Z^Db?KS`c>$fi7rw;a#5{Q#4EfWPQ@ zQ=-W>Fs>xs0Wv*HOO|$uB{{~{@4Yx$J4a{(p>xvLhG>ZU@;=mhM-DK`)2naphk?rpJA z&o2{B{GLG;-XxW|YZ*$@Dt`)Y46D%W$sA5hh$s?}FY>dp^FJ(7$r1q?7A(Q&IWWuc z0p{@_fJDgLqys!L3A*Q^OJgs@jq7&;K1{-(>Rfx*#<+;j5@C)Je0nFSkpv?DBOGxz zHfy8-hG5vDHhi;TnAT)#WR!K%MefTFR)RLfzfcWBIjMU{SF|R{u0vnMM9)fUHAWaL ziQP1~LiFY^rbt$8IB!_Wt0^xyDp%E)o}mBv8D;SP0#Wcz!OM-sim$}V0BuCumufTE zCyM88$vX-J+W<}o5k7(jbhoSkOVB*U2h$*V#{zi*j-kTN5X>2~n&&7>F?5ohYeNU& zJnBGF?V`Io;b;nw>krV9-?IOk@a*)TJsjD#xfPY4Q^VD=)z06Gzse!|WBy~q<3H8P zcgi0-+J~9m|@=MhX$w!8Ufgr#T|# z=oDb>Mr1s_A6)Tkfrw4Aui55EmTxqM_3r}n%ep>!6d;xd&ATXo{u@Ejk51-)+k9It z^S}suH=Q_-@{Gs01{M;6BuHN703T(V7@tFVK4hkc_7b>{-uPX42hPNaKK!bb+gOj^ zHoZblV}y9MM0jql=7pBIE*8FBs~F}92jIrP^vEy6kjq|q(VHL7Q8|~`!B$1de|Mjd ze!ququ;lsmqA$AV2A1qv-#9@SpY{#Wd5m0kE;hSjOUFDHpY?|X`d}AsQv+_1(R$px zYX*XT>6Y*dk+sq79$QoZ=SQ9BX!^p>tGj;rg$%QG?MncvpDO^Ow7e;J3@Ttn9b*4t zKmguKzB5@L(H584Adfbnid>i&yC0%rH!S24LjSaYq-zoJNk!pIeW zdJ*9XFj7$}xPigNkot2xcTa+Elo*_g&$_KD!(1gd1_8QEWUWG#W-I}2#_bFn67EWu zjkG%QW*|UD%cwmRuVFoT6hqYOq0U}|7`k+B>ecZIq*UN3W#VnG3eh0fy?Jq&?#Dem z$-Y%}iDM$AINJcr?z2@cKz9iPJ_rOgx4_*=01Xl7Q5!Skdh1?E_Dvx9XVs|dd@#b| z`F7AU^@o|opIFZlivbh-cJKFygr0p&`W`Z7Z0>c~KSPh{x*P+_)9MwzWryiNk^f6q zG07NxYKJ{1+sK3-!l&QIzJ)d*=Q5`Icx9=Y+MwPg6>C=ro|-B9L)SIeu@?@F5-y` zAWmmA<4pey4g=on?vEo4@}MHqfcCf+^T;icaDx6orhbp0G@b13celzRiPevMAKFd< zR{yy5)l|0_hI_C0V5JYP!pSRYfE)Z*ZcLy@-$ij|F&QvE-G3Oq-EVrSrEGi*K@=8j z4!TNpCAI8w_U7=1mJXK&$1c7ncYR;^68t3n`rje8CC``#kysFnxSpBT=za$&z0iFD z3?TpVGS%h6@Ve@*rur#1OF;~VK!;jL$kV>q)2_?}cvXw|%po+3M;Ng;f+nOu*E*{C zyAl0a!n~};!ze*iV=-<7AEXic2o0EA@EzLf{Fhpj)oWy{-$=;XJ$_!zFwqfbmPM17LY z&|_l8xhVq!w_6tbDg{}Mw_0RSoN7lctot-D-fU+G{$lq$&v<irx(s+=m03;Zta=_gj0KX)(`AY)e&IY z16t#?0R_E)Uoo?)KF&1&C-A54Vh=d|K2LzRI~t}26eA6MATO)uE}d@22_s|ta)E~c zXqTt6Rkbh2i5YFMA4=g8Ti-Xai{p$1?h3kW942+?eNID8r62SVu2M^b+aNLF|30ho z`aQFmVUCRT-9f z|9cG5kO4?(K+lbxskuX>E^_}9vH;%y@7Xvv-tzO`i3~tS+@{}R2?3~Vkop_={xre1 zPf5};jfF@l)aU6_)NXuSD}kf0JHsi4-ied z?HZE*thIo74om6*9wN{;QoZ)(A6HSh`Wt4<;^$ZA@yP5xqFxJirHDrX$fLq1avf%o zn%Niiw924f2_W`?0jaw|e2Wr0x7Td|vi1N$griOMIPZNUMEU-K0;_%d)UTT*xiC+l zwbe;JyV~U|(&@4x8@R{q%4HO%dl#pJ$JvsoIzSdxtPP_A*tFKe#Qz8VIUI3O;e%AlW|W4G{qO zd$Isa<8w%ZKr(Og-W`Lfq`0))@K|oGte+Y&ZNpC@M4q)|%hFI*D?0e11ut2c-Js@W zd$nfVX)=THDa5@}Y7`I;^EF?b3!)3;)4yRE=gc4i?kHd;i{){`b8CFnH*8UAI$$9f ztgs94ZGf43;*pR07MM)60>qO=dBtKG0epqrOjt)=QJHM4ClBEOG7-RI3n>t`LJ5IY z03rY|8)Z!-Rv^hvF`$w|y6XG5NThxr5N|FQ)Ou_k*V(C4` zeRT-VmIqhAhfqV-^3`5NEQ_sYh-m3CEOm|3m_@75S}zV)%rMe@alefJu{)U1_#|6V zA1o*HVirKMzJk^5ADlzzd^8kMoe~+G65A=#$56||nB#pInOf;TIldjvYO_?~@yo-? z+BuK$xEze8@R8^z(RK)HXvkP0mtP^jwJn{O*zO!9t7Ng%+El``)?39X7P$q>t*#Lb zscw;2ZY+=Gf639(8igPLM*|D3W!ikAZ%Ly%f_0VYjis-T09J#j)_>0YRp9tI;aysl zIKI6LV^@~;#+gmHr^nyc zvU9tmV?j=R*`M4hJ|_jB?nLZ-$r4r@#IUl>7D|oOl1yS#QX|Z@IW9>%@tD5dfxjl` zoGWolJvL*ueLGT2tX_GcaAoS==~C4d&Z?im*u2H&F6j$OVx_nlPGHQ|QmVDGwg9$g z3{xDwlFC}m93Pw@?(KX9{(ail{#%=ny-LHoG@HPdW_|A^HL!XL%e9i(O`jnchhtn7 z<-qqOyU8JzULrcf{Gf4F2n1-F8Bw-_^TTgGW)x1B!tz<$n<$z>U>zuc@8ze%vXlhYN{SIS^?o{O;UzWbHJs=uLb6Xf0)VJkltn-F-@yW3~eSVMoabZ^p<=L@q~1^ z$D+u3)4|_$ecs3@*f;k+pkI7BiEWcIOE@=qXvgPAT>Lc%U03zV(>pT>?f@R7k9qz9 zV5h=5C>>VsIyA?JnSjkM&(m#3DcI{U$$`zPp2k_4nNeD4B%hNNrtQbcmTTFyon~L0 ze;X5>`_IJK+~rLLV|;Ky0#lXu&7%9bQ9Z`Sa$Tvgc(v6R-eFD^)AbSO^&bMLYJp3U zp)>>}$9<$eo7SWh@~NZWJd~IpbX4DGs=2*N9Px?n##UJcBLpVzTB_6ai%@x?>*@Si z9d`WD#(ZqO-3HX|<3AVERM`wRJLleaEQV`|bh`P&sNIlDmx_WO-S zt0MSW*`*R1NdLz|J1LGI!6ICx-FdmJ#JZI0}ja%M70FkFV4#jM(B**qd8pWO%FKrUfTsV{2Fr)LOCmkyfM9 zd~~X)Q&FuWj`5JvwYD8*sCj#1pmj9&Hjy6C%xWO?P7r#lR>cq74z)wP>x%qD%Gbrn z*NK3>C4P_QIBngU_GA2z=%|UX#jVoFCZ1jFWDUqD5CFIx*w*otWysj%(vWWGxNhrA!zQnaSq z*ZiQ0&w@^*==}3DQ9d91pWXyukWgd-m}~)xrj7f{L+f!dINcqZ@%MC#blG;|Nb{JF z8QxA1rOhckKnCpI*wN)sdo?cfmz5)hA**9YAj^4|1#d=SbTDYi>~H4sMhT@b8=rnn zWFft-riZ(#OUusMk=3C^Im%vpHo-IenPosPOnUV#sf<`=veh^C4b{-x(e?HDauZb5 zSf!;~k%K*$a{urX=+8>0sRG8Ec$>KRN>z(8Mx9dD=9RsDXYpk;OQ6T4ZY6SMbTT`C zikFzY=hrrLpz<$lxhJ{yB1EmY*dVvIk}HJ=Dh`k#+InaU>PG^^o7O*zkga4vWw{@? zua<`kmwTq=PDY*bjWdc}4F4D!R7uaz97FZ~7VgXtUwz$g8h^vG&FQyT#N7K`^qok) z?&PqV%cn|vHdyzaqO@w>@>_c}NCH{>wQG@`4L6=c1|-3mKYpWv6Qe_5^efs4lMDpYS65a+peWQj$bXL4{#W@%#9KPDHDoMI%KIj zk565zN*YveSb*x{6$)uTI_(VjS?EXP#J3mJ$*{hDQ3LJJdc|p9dc?FW>b^E!hMI_Br za%FB_!G(#$ay1^RF5^COJ2wC=HfyElD)A>*OVXgmv3{?)d=K(S3S}Ysyi#`oSLgNR>j+G=mqkPv4Kv?5lJIulFfTvT-`^l`(=F5@WuonHBose%jNn^5re}5(+6V*+- zt|Xxn)Qd~(98A4lDLdf@Z|rpKS>L~jm2NRUDtz5*R}@CZBcvs~WA*;f!uiDYF+2Bf z+5QW%CeOGb&m%Rk7}G&&6m&td8eJse=uP%mFIGNlQ=Rx$rwi5KUMq@`1u}xI!fYyVv|z{1}jCPmVAOY zx0)dMJp^_`7qo@xr|{ko^iw6bxU2g8Eo(g+Wl|lsE*!{MN8a(f%tRd^(G1<&3L}3YL!%eV0Pn_5TUo6=y0=+vpJwaa2n;6fvuh7`<4-{%A(erxfTV6$o*^M*MJd5 z-tn?Z)B^vT!+UotexY`a%&|~jKc|e#xf{IY;2dz7o^dFtN<}F z?>B4h5mYy)0Zag_%wa zzrDVF(RU_*xEp6%T>(9tHJ^<8tR!H zpG5mYUG-Ct>0r;Z0vj}~C^v%@zvt(H)&DS%P_C{1OX=#BVPj@`jDVhwJeR$y^|A-G zF+W)Om|G%8_4`saJhNx^n$fMmL*KXGa8iUlZD1@zX2f&+hv+A!B-83Ir{Ri|Nz?O5 znKZqP!h?qOxp}VTByo+PBJaqGBb(Z;RTqL0=$ioi~3iOu!6-#y6a7YN6CQw2%6u7h(=Z>+DTDOq63!2-^ zqzOhGVi-l_D)I1fY-5eteF(lci*E}DpD^%xs)}vl1o+1i_ZQcY%#Z8NwHhy1&h8Hr zZ%fNcrs(WWwtMa~WE(|L_JKVkH#4{1s(#RZ`z-UCyclevVNY=c)`kuES!$6x5t2=R z_9$v0$TL-mHpWVCK_nAykl(+8M^T+3kB{_r43PrzF8oGllT;*A?f$V(Xz}Q-(#VRy z-*hQqM@$LAm(!y;DrawO`Tv-mZCBmleBOek&qzIPVD-9LzJ8o%p`a|zHWeTlYf$O# z0B3*#NeiGfEtCRDl@k96@hEY-;<=kQ>hMr-bJcv90KTi>gbd}ddnh{CVg*{?*Phf; zkfHKc5jXDYO~T$s=kDx+2pBt;V*pX+?X2$f&y-oQGxX3Z;KWD&eYlYPR^5!`t*EnP zPDk|X8^t4(xdD1#HAL=TN?OI&P=)38D6+Wg=IiyzY{x_V9o#5+(XFpGZ+fD$1%8>z z{9x0;YHLZd#Q9;a@^a^@OD6E}p0W&mnubB^x3DgCAawzh06kcn$x1|`QU`n3(`~

#;KmPmaYXh9j9qhNV)Di7+2n{ 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..187a469894787f50dec103906f0117f7a8e4b414 GIT binary patch literal 14107 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100755 index 0000000000000000000000000000000000000000..afc1ff6e7815677e02b7279515dd6e75e329f5e7 GIT binary patch literal 47823 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..ea85b723aae71e0209ffe1af9464f3fa5e302711 GIT binary patch literal 17218 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 g|6TOI+7V~5HnZxwoIBAC&J9lmGw# literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..ddf2d35 --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,3 @@ + + #FFFFFF + \ No newline at end of file diff --git a/android/app/src/main/res/values/ic_launcher_background.xml b/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100755 index 0000000..ab98328 --- /dev/null +++ b/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #ffffff + \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..75c829a --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ + + + Rapport 2.0 + Rapport 2.0 + com.stratawiz.mainrapport + com.stratawiz.mainrapport + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..ed9f657 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/xml/file_paths.xml b/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..bd0c4d8 --- /dev/null +++ b/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java new file mode 100644 index 0000000..0297327 --- /dev/null +++ b/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java @@ -0,0 +1,18 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..15f46f8 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,30 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.7.2' + classpath 'com.google.gms:google-services:4.4.2' + classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.6' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +apply from: "variables.gradle" + +allprojects { + repositories { + google() + mavenCentral() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle new file mode 100644 index 0000000..32aa884 --- /dev/null +++ b/android/capacitor.settings.gradle @@ -0,0 +1,42 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN +include ':capacitor-android' +project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') + +include ':capacitor-community-device-security-detect' +project(':capacitor-community-device-security-detect').projectDir = new File('../node_modules/@capacitor-community/device-security-detect/android') + +include ':capacitor-app' +project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android') + +include ':capacitor-browser' +project(':capacitor-browser').projectDir = new File('../node_modules/@capacitor/browser/android') + +include ':capacitor-device' +project(':capacitor-device').projectDir = new File('../node_modules/@capacitor/device/android') + +include ':capacitor-geolocation' +project(':capacitor-geolocation').projectDir = new File('../node_modules/@capacitor/geolocation/android') + +include ':capacitor-preferences' +project(':capacitor-preferences').projectDir = new File('../node_modules/@capacitor/preferences/android') + +include ':capacitor-push-notifications' +project(':capacitor-push-notifications').projectDir = new File('../node_modules/@capacitor/push-notifications/android') + +include ':capacitor-splash-screen' +project(':capacitor-splash-screen').projectDir = new File('../node_modules/@capacitor/splash-screen/android') + +include ':capacitor-status-bar' +project(':capacitor-status-bar').projectDir = new File('../node_modules/@capacitor/status-bar/android') + +include ':capawesome-capacitor-android-edge-to-edge-support' +project(':capawesome-capacitor-android-edge-to-edge-support').projectDir = new File('../node_modules/@capawesome/capacitor-android-edge-to-edge-support/android') + +include ':capgo-capacitor-navigation-bar' +project(':capgo-capacitor-navigation-bar').projectDir = new File('../node_modules/@capgo/capacitor-navigation-bar/android') + +include ':ottimis-capacitor-volumes' +project(':ottimis-capacitor-volumes').projectDir = new File('../node_modules/@ottimis/capacitor-volumes/android') + +include ':capacitor-voice-recorder' +project(':capacitor-voice-recorder').projectDir = new File('../node_modules/capacitor-voice-recorder/android') diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..2e87c52 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,22 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c1d5e01 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew new file mode 100755 index 0000000..f5feea6 --- /dev/null +++ b/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..9b42019 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..3b4431d --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,5 @@ +include ':app' +include ':capacitor-cordova-android-plugins' +project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') + +apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/android/variables.gradle b/android/variables.gradle new file mode 100644 index 0000000..3ffba15 --- /dev/null +++ b/android/variables.gradle @@ -0,0 +1,16 @@ +ext { + minSdkVersion = 29 + compileSdkVersion = 35 + targetSdkVersion = 35 + androidxActivityVersion = '1.9.2' + androidxAppCompatVersion = '1.7.0' + androidxCoordinatorLayoutVersion = '1.2.0' + androidxCoreVersion = '1.15.0' + androidxFragmentVersion = '1.8.4' + coreSplashScreenVersion = '1.0.1' + androidxWebkitVersion = '1.12.1' + junitVersion = '4.13.2' + androidxJunitVersion = '1.2.1' + androidxEspressoCoreVersion = '3.6.1' + cordovaAndroidVersion = '10.1.1' +} \ No newline at end of file diff --git a/capacitor.config.json b/capacitor.config.json new file mode 100644 index 0000000..8fd3b3a --- /dev/null +++ b/capacitor.config.json @@ -0,0 +1,30 @@ +{ + "appId": "com.stratawiz.rapportapp.Rapport", + "appName": "Rapport 2.0", + "webDir": "dist", + + "plugins": { + "CapacitorHttp": { + "enabled": false + }, + "SplashScreen": { + "launchShowDuration": 3000, + "launchAutoHide": false, + "launchFadeOutDuration": 200, + "backgroundColor": "#ffffffff", + "androidSplashResourceName": "splash", + "androidScaleType": "CENTER_CROP", + "showSpinner": true, + "androidSpinnerStyle": "large", + "iosSpinnerStyle": "small", + "spinnerColor": "#999999", + "splashFullScreen": true, + "splashImmersive": true, + "layoutName": "LaunchScreen", + "useDialog": true + }, + "PushNotifications": { + "presentationOptions": ["badge", "sound", "alert"] + } + } +} diff --git a/dist/Rectangle-empty.svg b/dist/Rectangle-empty.svg new file mode 100644 index 0000000..c8723fa --- /dev/null +++ b/dist/Rectangle-empty.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/Rectangle-filled.svg b/dist/Rectangle-filled.svg new file mode 100644 index 0000000..8d73876 --- /dev/null +++ b/dist/Rectangle-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/assets/DailyMotion-D4uW8REe.js b/dist/assets/DailyMotion-D4uW8REe.js new file mode 100644 index 0000000..75a5cd2 --- /dev/null +++ b/dist/assets/DailyMotion-D4uW8REe.js @@ -0,0 +1 @@ +import{g as P,r as v,c as D,d as O}from"./index-CQwTocWK.js";function b(t,e){for(var r=0;ro[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var M=Object.create,s=Object.defineProperty,w=Object.getOwnPropertyDescriptor,S=Object.getOwnPropertyNames,j=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty,E=(t,e,r)=>e in t?s(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,A=(t,e)=>{for(var r in e)s(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of S(e))!T.call(t,a)&&a!==r&&s(t,a,{get:()=>e[a],enumerable:!(o=w(e,a))||o.enumerable});return t},L=(t,e,r)=>(r=t!=null?M(j(t)):{},h(e||!t||!t.__esModule?s(r,"default",{value:t,enumerable:!0}):r,t)),C=t=>h(s({},"__esModule",{value:!0}),t),n=(t,e,r)=>(E(t,typeof e!="symbol"?e+"":e,r),r),d={};A(d,{default:()=>p});var _=C(d),c=L(v),l=D,f=O;const x="https://api.dmcdn.net/all.js",N="DM",K="dmAsyncInit";class p extends c.Component{constructor(){super(...arguments),n(this,"callPlayer",l.callPlayer),n(this,"onDurationChange",()=>{const e=this.getDuration();this.props.onDuration(e)}),n(this,"mute",()=>{this.callPlayer("setMuted",!0)}),n(this,"unmute",()=>{this.callPlayer("setMuted",!1)}),n(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{controls:r,config:o,onError:a,playing:i}=this.props,[,y]=e.match(f.MATCH_URL_DAILYMOTION);if(this.player){this.player.load(y,{start:(0,l.parseStartTime)(e),autoplay:i});return}(0,l.getSDK)(x,N,K,u=>u.player).then(u=>{if(!this.container)return;const g=u.player;this.player=new g(this.container,{width:"100%",height:"100%",video:y,params:{controls:r,autoplay:this.props.playing,mute:this.props.muted,start:(0,l.parseStartTime)(e),origin:window.location.origin,...o.params},events:{apiready:this.props.onReady,seeked:()=>this.props.onSeek(this.player.currentTime),video_end:this.props.onEnded,durationchange:this.onDurationChange,pause:this.props.onPause,playing:this.props.onPlay,waiting:this.props.onBuffer,error:m=>a(m)}})},a)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.player.duration||null}getCurrentTime(){return this.player.currentTime}getSecondsLoaded(){return this.player.bufferedTime}render(){const{display:e}=this.props,r={width:"100%",height:"100%",display:e};return c.default.createElement("div",{style:r},c.default.createElement("div",{ref:this.ref}))}}n(p,"displayName","DailyMotion");n(p,"canPlay",f.canPlay.dailymotion);n(p,"loopOnEnded",!0);const R=P(_),I=b({__proto__:null,default:R},[_]);export{I as D}; diff --git a/dist/assets/DailyMotion-i-TJ9DOC.js b/dist/assets/DailyMotion-i-TJ9DOC.js new file mode 100644 index 0000000..07dca74 --- /dev/null +++ b/dist/assets/DailyMotion-i-TJ9DOC.js @@ -0,0 +1 @@ +import{g as P,r as v,u as D,p as O}from"./index-CQwTocWK.js";function b(t,e){for(var r=0;ro[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var M=Object.create,s=Object.defineProperty,w=Object.getOwnPropertyDescriptor,S=Object.getOwnPropertyNames,j=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty,E=(t,e,r)=>e in t?s(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,A=(t,e)=>{for(var r in e)s(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of S(e))!T.call(t,a)&&a!==r&&s(t,a,{get:()=>e[a],enumerable:!(o=w(e,a))||o.enumerable});return t},L=(t,e,r)=>(r=t!=null?M(j(t)):{},h(e||!t||!t.__esModule?s(r,"default",{value:t,enumerable:!0}):r,t)),C=t=>h(s({},"__esModule",{value:!0}),t),n=(t,e,r)=>(E(t,typeof e!="symbol"?e+"":e,r),r),d={};A(d,{default:()=>p});var _=C(d),c=L(v),l=D,f=O;const x="https://api.dmcdn.net/all.js",N="DM",K="dmAsyncInit";class p extends c.Component{constructor(){super(...arguments),n(this,"callPlayer",l.callPlayer),n(this,"onDurationChange",()=>{const e=this.getDuration();this.props.onDuration(e)}),n(this,"mute",()=>{this.callPlayer("setMuted",!0)}),n(this,"unmute",()=>{this.callPlayer("setMuted",!1)}),n(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{controls:r,config:o,onError:a,playing:i}=this.props,[,y]=e.match(f.MATCH_URL_DAILYMOTION);if(this.player){this.player.load(y,{start:(0,l.parseStartTime)(e),autoplay:i});return}(0,l.getSDK)(x,N,K,u=>u.player).then(u=>{if(!this.container)return;const g=u.player;this.player=new g(this.container,{width:"100%",height:"100%",video:y,params:{controls:r,autoplay:this.props.playing,mute:this.props.muted,start:(0,l.parseStartTime)(e),origin:window.location.origin,...o.params},events:{apiready:this.props.onReady,seeked:()=>this.props.onSeek(this.player.currentTime),video_end:this.props.onEnded,durationchange:this.onDurationChange,pause:this.props.onPause,playing:this.props.onPlay,waiting:this.props.onBuffer,error:m=>a(m)}})},a)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.player.duration||null}getCurrentTime(){return this.player.currentTime}getSecondsLoaded(){return this.player.bufferedTime}render(){const{display:e}=this.props,r={width:"100%",height:"100%",display:e};return c.default.createElement("div",{style:r},c.default.createElement("div",{ref:this.ref}))}}n(p,"displayName","DailyMotion");n(p,"canPlay",f.canPlay.dailymotion);n(p,"loopOnEnded",!0);const R=P(_),I=b({__proto__:null,default:R},[_]);export{I as D}; diff --git a/dist/assets/Facebook-DJ0hneLF.js b/dist/assets/Facebook-DJ0hneLF.js new file mode 100644 index 0000000..122efc5 --- /dev/null +++ b/dist/assets/Facebook-DJ0hneLF.js @@ -0,0 +1 @@ +import{g as _,r as g,c as P,d as m}from"./index-CQwTocWK.js";function v(t,e){for(var r=0;ra[s]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var O=Object.create,i=Object.defineProperty,D=Object.getOwnPropertyDescriptor,E=Object.getOwnPropertyNames,S=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty,I=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,k=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!j.call(t,s)&&s!==r&&i(t,s,{get:()=>e[s],enumerable:!(a=D(e,s))||a.enumerable});return t},w=(t,e,r)=>(r=t!=null?O(S(t)):{},h(e||!t||!t.__esModule?i(r,"default",{value:t,enumerable:!0}):r,t)),F=t=>h(i({},"__esModule",{value:!0}),t),o=(t,e,r)=>(I(t,typeof e!="symbol"?e+"":e,r),r),b={};k(b,{default:()=>l});var d=F(b),u=w(g),n=P,x=m;const c="https://connect.facebook.net/en_US/sdk.js",y="FB",f="fbAsyncInit",L="facebook-player-";class l extends u.Component{constructor(){super(...arguments),o(this,"callPlayer",n.callPlayer),o(this,"playerID",this.props.config.playerId||`${L}${(0,n.randomString)()}`),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unmute")})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,r){if(r){(0,n.getSDK)(c,y,f).then(a=>a.XFBML.parse());return}(0,n.getSDK)(c,y,f).then(a=>{a.init({appId:this.props.config.appId,xfbml:!0,version:this.props.config.version}),a.Event.subscribe("xfbml.render",s=>{this.props.onLoaded()}),a.Event.subscribe("xfbml.ready",s=>{s.type==="video"&&s.id===this.playerID&&(this.player=s.instance,this.player.subscribe("startedPlaying",this.props.onPlay),this.player.subscribe("paused",this.props.onPause),this.player.subscribe("finishedPlaying",this.props.onEnded),this.player.subscribe("startedBuffering",this.props.onBuffer),this.player.subscribe("finishedBuffering",this.props.onBufferEnd),this.player.subscribe("error",this.props.onError),this.props.muted?this.callPlayer("mute"):this.callPlayer("unmute"),this.props.onReady(),document.getElementById(this.playerID).querySelector("iframe").style.visibility="visible")})})}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentPosition")}getSecondsLoaded(){return null}render(){const{attributes:e}=this.props.config,r={width:"100%",height:"100%"};return u.default.createElement("div",{style:r,id:this.playerID,className:"fb-video","data-href":this.props.url,"data-autoplay":this.props.playing?"true":"false","data-allowfullscreen":"true","data-controls":this.props.controls?"true":"false",...e})}}o(l,"displayName","Facebook");o(l,"canPlay",x.canPlay.facebook);o(l,"loopOnEnded",!0);const M=_(d),B=v({__proto__:null,default:M},[d]);export{B as F}; diff --git a/dist/assets/Facebook-GdwjnNFJ.js b/dist/assets/Facebook-GdwjnNFJ.js new file mode 100644 index 0000000..46aa482 --- /dev/null +++ b/dist/assets/Facebook-GdwjnNFJ.js @@ -0,0 +1 @@ +import{g as _,r as g,u as P,p as m}from"./index-CQwTocWK.js";function v(t,e){for(var r=0;ra[s]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var O=Object.create,i=Object.defineProperty,D=Object.getOwnPropertyDescriptor,E=Object.getOwnPropertyNames,S=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty,I=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,k=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!j.call(t,s)&&s!==r&&i(t,s,{get:()=>e[s],enumerable:!(a=D(e,s))||a.enumerable});return t},w=(t,e,r)=>(r=t!=null?O(S(t)):{},h(e||!t||!t.__esModule?i(r,"default",{value:t,enumerable:!0}):r,t)),F=t=>h(i({},"__esModule",{value:!0}),t),o=(t,e,r)=>(I(t,typeof e!="symbol"?e+"":e,r),r),b={};k(b,{default:()=>l});var d=F(b),u=w(g),n=P,x=m;const c="https://connect.facebook.net/en_US/sdk.js",y="FB",f="fbAsyncInit",L="facebook-player-";class l extends u.Component{constructor(){super(...arguments),o(this,"callPlayer",n.callPlayer),o(this,"playerID",this.props.config.playerId||`${L}${(0,n.randomString)()}`),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unmute")})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,r){if(r){(0,n.getSDK)(c,y,f).then(a=>a.XFBML.parse());return}(0,n.getSDK)(c,y,f).then(a=>{a.init({appId:this.props.config.appId,xfbml:!0,version:this.props.config.version}),a.Event.subscribe("xfbml.render",s=>{this.props.onLoaded()}),a.Event.subscribe("xfbml.ready",s=>{s.type==="video"&&s.id===this.playerID&&(this.player=s.instance,this.player.subscribe("startedPlaying",this.props.onPlay),this.player.subscribe("paused",this.props.onPause),this.player.subscribe("finishedPlaying",this.props.onEnded),this.player.subscribe("startedBuffering",this.props.onBuffer),this.player.subscribe("finishedBuffering",this.props.onBufferEnd),this.player.subscribe("error",this.props.onError),this.props.muted?this.callPlayer("mute"):this.callPlayer("unmute"),this.props.onReady(),document.getElementById(this.playerID).querySelector("iframe").style.visibility="visible")})})}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentPosition")}getSecondsLoaded(){return null}render(){const{attributes:e}=this.props.config,r={width:"100%",height:"100%"};return u.default.createElement("div",{style:r,id:this.playerID,className:"fb-video","data-href":this.props.url,"data-autoplay":this.props.playing?"true":"false","data-allowfullscreen":"true","data-controls":this.props.controls?"true":"false",...e})}}o(l,"displayName","Facebook");o(l,"canPlay",x.canPlay.facebook);o(l,"loopOnEnded",!0);const M=_(d),B=v({__proto__:null,default:M},[d]);export{B as F}; diff --git a/dist/assets/FilePlayer-BgLtBIje.js b/dist/assets/FilePlayer-BgLtBIje.js new file mode 100644 index 0000000..baf4b09 --- /dev/null +++ b/dist/assets/FilePlayer-BgLtBIje.js @@ -0,0 +1 @@ +import{g as b,r as _,u as O,p as A}from"./index-CQwTocWK.js";function R(s,e){for(var t=0;ti[n]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var I=Object.create,u=Object.defineProperty,D=Object.getOwnPropertyDescriptor,w=Object.getOwnPropertyNames,M=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty,U=(s,e,t)=>e in s?u(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,N=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},E=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of w(e))!k.call(s,n)&&n!==t&&u(s,n,{get:()=>e[n],enumerable:!(i=D(e,n))||i.enumerable});return s},j=(s,e,t)=>(t=s!=null?I(M(s)):{},E(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),H=s=>E(u({},"__esModule",{value:!0}),s),r=(s,e,t)=>(U(s,typeof e!="symbol"?e+"":e,t),t),m={};N(m,{default:()=>P});var g=H(m),c=j(_),a=O,d=A;const y=typeof navigator<"u",F=y&&navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,v=y&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||F)&&!window.MSStream,V=y&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,T="https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js",C="Hls",B="https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js",x="dashjs",K="https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js",G="flvjs",X=/www\.dropbox\.com\/.+/,f=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/,W="https://videodelivery.net/{id}/manifest/video.m3u8";class P extends c.Component{constructor(){super(...arguments),r(this,"onReady",(...e)=>this.props.onReady(...e)),r(this,"onPlay",(...e)=>this.props.onPlay(...e)),r(this,"onBuffer",(...e)=>this.props.onBuffer(...e)),r(this,"onBufferEnd",(...e)=>this.props.onBufferEnd(...e)),r(this,"onPause",(...e)=>this.props.onPause(...e)),r(this,"onEnded",(...e)=>this.props.onEnded(...e)),r(this,"onError",(...e)=>this.props.onError(...e)),r(this,"onPlayBackRateChange",e=>this.props.onPlaybackRateChange(e.target.playbackRate)),r(this,"onEnablePIP",(...e)=>this.props.onEnablePIP(...e)),r(this,"onDisablePIP",e=>{const{onDisablePIP:t,playing:i}=this.props;t(e),i&&this.play()}),r(this,"onPresentationModeChange",e=>{if(this.player&&(0,a.supportsWebKitPresentationMode)(this.player)){const{webkitPresentationMode:t}=this.player;t==="picture-in-picture"?this.onEnablePIP(e):t==="inline"&&this.onDisablePIP(e)}}),r(this,"onSeek",e=>{this.props.onSeek(e.target.currentTime)}),r(this,"mute",()=>{this.player.muted=!0}),r(this,"unmute",()=>{this.player.muted=!1}),r(this,"renderSourceElement",(e,t)=>typeof e=="string"?c.default.createElement("source",{key:t,src:e}):c.default.createElement("source",{key:t,...e})),r(this,"renderTrack",(e,t)=>c.default.createElement("track",{key:t,...e})),r(this,"ref",e=>{this.player&&(this.prevPlayer=this.player),this.player=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this),this.addListeners(this.player);const e=this.getSource(this.props.url);e&&(this.player.src=e),(v||this.props.config.forceDisableHls)&&this.player.load()}componentDidUpdate(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&(this.removeListeners(this.prevPlayer,e.url),this.addListeners(this.player)),this.props.url!==e.url&&!(0,a.isMediaStream)(this.props.url)&&!(this.props.url instanceof Array)&&(this.player.srcObject=null)}componentWillUnmount(){this.player.removeAttribute("src"),this.removeListeners(this.player),this.hls&&this.hls.destroy()}addListeners(e){const{url:t,playsinline:i}=this.props;e.addEventListener("play",this.onPlay),e.addEventListener("waiting",this.onBuffer),e.addEventListener("playing",this.onBufferEnd),e.addEventListener("pause",this.onPause),e.addEventListener("seeked",this.onSeek),e.addEventListener("ended",this.onEnded),e.addEventListener("error",this.onError),e.addEventListener("ratechange",this.onPlayBackRateChange),e.addEventListener("enterpictureinpicture",this.onEnablePIP),e.addEventListener("leavepictureinpicture",this.onDisablePIP),e.addEventListener("webkitpresentationmodechanged",this.onPresentationModeChange),this.shouldUseHLS(t)||e.addEventListener("canplay",this.onReady),i&&(e.setAttribute("playsinline",""),e.setAttribute("webkit-playsinline",""),e.setAttribute("x5-playsinline",""))}removeListeners(e,t){e.removeEventListener("canplay",this.onReady),e.removeEventListener("play",this.onPlay),e.removeEventListener("waiting",this.onBuffer),e.removeEventListener("playing",this.onBufferEnd),e.removeEventListener("pause",this.onPause),e.removeEventListener("seeked",this.onSeek),e.removeEventListener("ended",this.onEnded),e.removeEventListener("error",this.onError),e.removeEventListener("ratechange",this.onPlayBackRateChange),e.removeEventListener("enterpictureinpicture",this.onEnablePIP),e.removeEventListener("leavepictureinpicture",this.onDisablePIP),e.removeEventListener("webkitpresentationmodechanged",this.onPresentationModeChange),this.shouldUseHLS(t)||e.removeEventListener("canplay",this.onReady)}shouldUseAudio(e){return e.config.forceVideo||e.config.attributes.poster?!1:d.AUDIO_EXTENSIONS.test(e.url)||e.config.forceAudio}shouldUseHLS(e){return V&&this.props.config.forceSafariHLS||this.props.config.forceHLS?!0:v||this.props.config.forceDisableHls?!1:d.HLS_EXTENSIONS.test(e)||f.test(e)}shouldUseDASH(e){return d.DASH_EXTENSIONS.test(e)||this.props.config.forceDASH}shouldUseFLV(e){return d.FLV_EXTENSIONS.test(e)||this.props.config.forceFLV}load(e){const{hlsVersion:t,hlsOptions:i,dashVersion:n,flvVersion:l}=this.props.config;if(this.hls&&this.hls.destroy(),this.dash&&this.dash.reset(),this.shouldUseHLS(e)&&(0,a.getSDK)(T.replace("VERSION",t),C).then(o=>{if(this.hls=new o(i),this.hls.on(o.Events.MANIFEST_PARSED,()=>{this.props.onReady()}),this.hls.on(o.Events.ERROR,(h,p)=>{this.props.onError(h,p,this.hls,o)}),f.test(e)){const h=e.match(f)[1];this.hls.loadSource(W.replace("{id}",h))}else this.hls.loadSource(e);this.hls.attachMedia(this.player),this.props.onLoaded()}),this.shouldUseDASH(e)&&(0,a.getSDK)(B.replace("VERSION",n),x).then(o=>{this.dash=o.MediaPlayer().create(),this.dash.initialize(this.player,e,this.props.playing),this.dash.on("error",this.props.onError),parseInt(n)<3?this.dash.getDebug().setLogToBrowserConsole(!1):this.dash.updateSettings({debug:{logLevel:o.Debug.LOG_LEVEL_NONE}}),this.props.onLoaded()}),this.shouldUseFLV(e)&&(0,a.getSDK)(K.replace("VERSION",l),G).then(o=>{this.flv=o.createPlayer({type:"flv",url:e}),this.flv.attachMediaElement(this.player),this.flv.on(o.Events.ERROR,(h,p)=>{this.props.onError(h,p,this.flv,o)}),this.flv.load(),this.props.onLoaded()}),e instanceof Array)this.player.load();else if((0,a.isMediaStream)(e))try{this.player.srcObject=e}catch{this.player.src=window.URL.createObjectURL(e)}}play(){const e=this.player.play();e&&e.catch(this.props.onError)}pause(){this.player.pause()}stop(){this.player.removeAttribute("src"),this.dash&&this.dash.reset()}seekTo(e,t=!0){this.player.currentTime=e,t||this.pause()}setVolume(e){this.player.volume=e}enablePIP(){this.player.requestPictureInPicture&&document.pictureInPictureElement!==this.player?this.player.requestPictureInPicture():(0,a.supportsWebKitPresentationMode)(this.player)&&this.player.webkitPresentationMode!=="picture-in-picture"&&this.player.webkitSetPresentationMode("picture-in-picture")}disablePIP(){document.exitPictureInPicture&&document.pictureInPictureElement===this.player?document.exitPictureInPicture():(0,a.supportsWebKitPresentationMode)(this.player)&&this.player.webkitPresentationMode!=="inline"&&this.player.webkitSetPresentationMode("inline")}setPlaybackRate(e){try{this.player.playbackRate=e}catch(t){this.props.onError(t)}}getDuration(){if(!this.player)return null;const{duration:e,seekable:t}=this.player;return e===1/0&&t.length>0?t.end(t.length-1):e}getCurrentTime(){return this.player?this.player.currentTime:null}getSecondsLoaded(){if(!this.player)return null;const{buffered:e}=this.player;if(e.length===0)return 0;const t=e.end(e.length-1),i=this.getDuration();return t>i?i:t}getSource(e){const t=this.shouldUseHLS(e),i=this.shouldUseDASH(e),n=this.shouldUseFLV(e);if(!(e instanceof Array||(0,a.isMediaStream)(e)||t||i||n))return X.test(e)?e.replace("www.dropbox.com","dl.dropboxusercontent.com"):e}render(){const{url:e,playing:t,loop:i,controls:n,muted:l,config:o,width:h,height:p}=this.props,L=this.shouldUseAudio(this.props)?"audio":"video",S={width:h==="auto"?h:"100%",height:p==="auto"?p:"100%"};return c.default.createElement(L,{ref:this.ref,src:this.getSource(e),style:S,preload:"auto",autoPlay:t||void 0,controls:n,muted:l,loop:i,...o.attributes},e instanceof Array&&e.map(this.renderSourceElement),o.tracks.map(this.renderTrack))}}r(P,"displayName","FilePlayer");r(P,"canPlay",d.canPlay.file);const z=b(g),J=R({__proto__:null,default:z},[g]);export{J as F}; diff --git a/dist/assets/FilePlayer-CKq2ehRf.js b/dist/assets/FilePlayer-CKq2ehRf.js new file mode 100644 index 0000000..45b467f --- /dev/null +++ b/dist/assets/FilePlayer-CKq2ehRf.js @@ -0,0 +1 @@ +import{g as b,r as _,c as O,d as A}from"./index-CQwTocWK.js";function R(s,e){for(var t=0;ti[n]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var I=Object.create,u=Object.defineProperty,D=Object.getOwnPropertyDescriptor,w=Object.getOwnPropertyNames,M=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty,U=(s,e,t)=>e in s?u(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,N=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},E=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of w(e))!k.call(s,n)&&n!==t&&u(s,n,{get:()=>e[n],enumerable:!(i=D(e,n))||i.enumerable});return s},j=(s,e,t)=>(t=s!=null?I(M(s)):{},E(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),H=s=>E(u({},"__esModule",{value:!0}),s),r=(s,e,t)=>(U(s,typeof e!="symbol"?e+"":e,t),t),m={};N(m,{default:()=>P});var g=H(m),c=j(_),a=O,d=A;const y=typeof navigator<"u",F=y&&navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,v=y&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||F)&&!window.MSStream,V=y&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,T="https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js",C="Hls",B="https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js",x="dashjs",K="https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js",G="flvjs",X=/www\.dropbox\.com\/.+/,f=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/,W="https://videodelivery.net/{id}/manifest/video.m3u8";class P extends c.Component{constructor(){super(...arguments),r(this,"onReady",(...e)=>this.props.onReady(...e)),r(this,"onPlay",(...e)=>this.props.onPlay(...e)),r(this,"onBuffer",(...e)=>this.props.onBuffer(...e)),r(this,"onBufferEnd",(...e)=>this.props.onBufferEnd(...e)),r(this,"onPause",(...e)=>this.props.onPause(...e)),r(this,"onEnded",(...e)=>this.props.onEnded(...e)),r(this,"onError",(...e)=>this.props.onError(...e)),r(this,"onPlayBackRateChange",e=>this.props.onPlaybackRateChange(e.target.playbackRate)),r(this,"onEnablePIP",(...e)=>this.props.onEnablePIP(...e)),r(this,"onDisablePIP",e=>{const{onDisablePIP:t,playing:i}=this.props;t(e),i&&this.play()}),r(this,"onPresentationModeChange",e=>{if(this.player&&(0,a.supportsWebKitPresentationMode)(this.player)){const{webkitPresentationMode:t}=this.player;t==="picture-in-picture"?this.onEnablePIP(e):t==="inline"&&this.onDisablePIP(e)}}),r(this,"onSeek",e=>{this.props.onSeek(e.target.currentTime)}),r(this,"mute",()=>{this.player.muted=!0}),r(this,"unmute",()=>{this.player.muted=!1}),r(this,"renderSourceElement",(e,t)=>typeof e=="string"?c.default.createElement("source",{key:t,src:e}):c.default.createElement("source",{key:t,...e})),r(this,"renderTrack",(e,t)=>c.default.createElement("track",{key:t,...e})),r(this,"ref",e=>{this.player&&(this.prevPlayer=this.player),this.player=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this),this.addListeners(this.player);const e=this.getSource(this.props.url);e&&(this.player.src=e),(v||this.props.config.forceDisableHls)&&this.player.load()}componentDidUpdate(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&(this.removeListeners(this.prevPlayer,e.url),this.addListeners(this.player)),this.props.url!==e.url&&!(0,a.isMediaStream)(this.props.url)&&!(this.props.url instanceof Array)&&(this.player.srcObject=null)}componentWillUnmount(){this.player.removeAttribute("src"),this.removeListeners(this.player),this.hls&&this.hls.destroy()}addListeners(e){const{url:t,playsinline:i}=this.props;e.addEventListener("play",this.onPlay),e.addEventListener("waiting",this.onBuffer),e.addEventListener("playing",this.onBufferEnd),e.addEventListener("pause",this.onPause),e.addEventListener("seeked",this.onSeek),e.addEventListener("ended",this.onEnded),e.addEventListener("error",this.onError),e.addEventListener("ratechange",this.onPlayBackRateChange),e.addEventListener("enterpictureinpicture",this.onEnablePIP),e.addEventListener("leavepictureinpicture",this.onDisablePIP),e.addEventListener("webkitpresentationmodechanged",this.onPresentationModeChange),this.shouldUseHLS(t)||e.addEventListener("canplay",this.onReady),i&&(e.setAttribute("playsinline",""),e.setAttribute("webkit-playsinline",""),e.setAttribute("x5-playsinline",""))}removeListeners(e,t){e.removeEventListener("canplay",this.onReady),e.removeEventListener("play",this.onPlay),e.removeEventListener("waiting",this.onBuffer),e.removeEventListener("playing",this.onBufferEnd),e.removeEventListener("pause",this.onPause),e.removeEventListener("seeked",this.onSeek),e.removeEventListener("ended",this.onEnded),e.removeEventListener("error",this.onError),e.removeEventListener("ratechange",this.onPlayBackRateChange),e.removeEventListener("enterpictureinpicture",this.onEnablePIP),e.removeEventListener("leavepictureinpicture",this.onDisablePIP),e.removeEventListener("webkitpresentationmodechanged",this.onPresentationModeChange),this.shouldUseHLS(t)||e.removeEventListener("canplay",this.onReady)}shouldUseAudio(e){return e.config.forceVideo||e.config.attributes.poster?!1:d.AUDIO_EXTENSIONS.test(e.url)||e.config.forceAudio}shouldUseHLS(e){return V&&this.props.config.forceSafariHLS||this.props.config.forceHLS?!0:v||this.props.config.forceDisableHls?!1:d.HLS_EXTENSIONS.test(e)||f.test(e)}shouldUseDASH(e){return d.DASH_EXTENSIONS.test(e)||this.props.config.forceDASH}shouldUseFLV(e){return d.FLV_EXTENSIONS.test(e)||this.props.config.forceFLV}load(e){const{hlsVersion:t,hlsOptions:i,dashVersion:n,flvVersion:l}=this.props.config;if(this.hls&&this.hls.destroy(),this.dash&&this.dash.reset(),this.shouldUseHLS(e)&&(0,a.getSDK)(T.replace("VERSION",t),C).then(o=>{if(this.hls=new o(i),this.hls.on(o.Events.MANIFEST_PARSED,()=>{this.props.onReady()}),this.hls.on(o.Events.ERROR,(h,p)=>{this.props.onError(h,p,this.hls,o)}),f.test(e)){const h=e.match(f)[1];this.hls.loadSource(W.replace("{id}",h))}else this.hls.loadSource(e);this.hls.attachMedia(this.player),this.props.onLoaded()}),this.shouldUseDASH(e)&&(0,a.getSDK)(B.replace("VERSION",n),x).then(o=>{this.dash=o.MediaPlayer().create(),this.dash.initialize(this.player,e,this.props.playing),this.dash.on("error",this.props.onError),parseInt(n)<3?this.dash.getDebug().setLogToBrowserConsole(!1):this.dash.updateSettings({debug:{logLevel:o.Debug.LOG_LEVEL_NONE}}),this.props.onLoaded()}),this.shouldUseFLV(e)&&(0,a.getSDK)(K.replace("VERSION",l),G).then(o=>{this.flv=o.createPlayer({type:"flv",url:e}),this.flv.attachMediaElement(this.player),this.flv.on(o.Events.ERROR,(h,p)=>{this.props.onError(h,p,this.flv,o)}),this.flv.load(),this.props.onLoaded()}),e instanceof Array)this.player.load();else if((0,a.isMediaStream)(e))try{this.player.srcObject=e}catch{this.player.src=window.URL.createObjectURL(e)}}play(){const e=this.player.play();e&&e.catch(this.props.onError)}pause(){this.player.pause()}stop(){this.player.removeAttribute("src"),this.dash&&this.dash.reset()}seekTo(e,t=!0){this.player.currentTime=e,t||this.pause()}setVolume(e){this.player.volume=e}enablePIP(){this.player.requestPictureInPicture&&document.pictureInPictureElement!==this.player?this.player.requestPictureInPicture():(0,a.supportsWebKitPresentationMode)(this.player)&&this.player.webkitPresentationMode!=="picture-in-picture"&&this.player.webkitSetPresentationMode("picture-in-picture")}disablePIP(){document.exitPictureInPicture&&document.pictureInPictureElement===this.player?document.exitPictureInPicture():(0,a.supportsWebKitPresentationMode)(this.player)&&this.player.webkitPresentationMode!=="inline"&&this.player.webkitSetPresentationMode("inline")}setPlaybackRate(e){try{this.player.playbackRate=e}catch(t){this.props.onError(t)}}getDuration(){if(!this.player)return null;const{duration:e,seekable:t}=this.player;return e===1/0&&t.length>0?t.end(t.length-1):e}getCurrentTime(){return this.player?this.player.currentTime:null}getSecondsLoaded(){if(!this.player)return null;const{buffered:e}=this.player;if(e.length===0)return 0;const t=e.end(e.length-1),i=this.getDuration();return t>i?i:t}getSource(e){const t=this.shouldUseHLS(e),i=this.shouldUseDASH(e),n=this.shouldUseFLV(e);if(!(e instanceof Array||(0,a.isMediaStream)(e)||t||i||n))return X.test(e)?e.replace("www.dropbox.com","dl.dropboxusercontent.com"):e}render(){const{url:e,playing:t,loop:i,controls:n,muted:l,config:o,width:h,height:p}=this.props,L=this.shouldUseAudio(this.props)?"audio":"video",S={width:h==="auto"?h:"100%",height:p==="auto"?p:"100%"};return c.default.createElement(L,{ref:this.ref,src:this.getSource(e),style:S,preload:"auto",autoPlay:t||void 0,controls:n,muted:l,loop:i,...o.attributes},e instanceof Array&&e.map(this.renderSourceElement),o.tracks.map(this.renderTrack))}}r(P,"displayName","FilePlayer");r(P,"canPlay",d.canPlay.file);const z=b(g),J=R({__proto__:null,default:z},[g]);export{J as F}; diff --git a/dist/assets/Kaltura-Bvtx45-y.js b/dist/assets/Kaltura-Bvtx45-y.js new file mode 100644 index 0000000..8b41c5d --- /dev/null +++ b/dist/assets/Kaltura-Bvtx45-y.js @@ -0,0 +1 @@ +import{g as y,r as f,c as _,d as m}from"./index-CQwTocWK.js";function P(r,e){for(var t=0;ts[a]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var g=Object.create,n=Object.defineProperty,b=Object.getOwnPropertyDescriptor,v=Object.getOwnPropertyNames,O=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,j=(r,e,t)=>e in r?n(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e)n(r,t,{get:e[t],enumerable:!0})},c=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of v(e))!w.call(r,a)&&a!==t&&n(r,a,{get:()=>e[a],enumerable:!(s=b(e,a))||s.enumerable});return r},K=(r,e,t)=>(t=r!=null?g(O(r)):{},c(e||!r||!r.__esModule?n(t,"default",{value:r,enumerable:!0}):t,r)),D=r=>c(n({},"__esModule",{value:!0}),r),o=(r,e,t)=>(j(r,typeof e!="symbol"?e+"":e,t),t),h={};L(h,{default:()=>i});var d=D(h),u=K(f),p=_,S=m;const T="https://cdn.embed.ly/player-0.1.0.min.js",E="playerjs";class i extends u.Component{constructor(){super(...arguments),o(this,"callPlayer",p.callPlayer),o(this,"duration",null),o(this,"currentTime",null),o(this,"secondsLoaded",null),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unmute")}),o(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,p.getSDK)(T,E).then(t=>{this.iframe&&(this.player=new t.Player(this.iframe),this.player.on("ready",()=>{setTimeout(()=>{this.player.isReady=!0,this.player.setLoop(this.props.loop),this.props.muted&&this.player.mute(),this.addListeners(this.player,this.props),this.props.onReady()},500)}))},this.props.onError)}addListeners(e,t){e.on("play",t.onPlay),e.on("pause",t.onPause),e.on("ended",t.onEnded),e.on("error",t.onError),e.on("timeupdate",({duration:s,seconds:a})=>{this.duration=s,this.currentTime=a})}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("setCurrentTime",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const e={width:"100%",height:"100%"};return u.default.createElement("iframe",{ref:this.ref,src:this.props.url,frameBorder:"0",scrolling:"no",style:e,allow:"encrypted-media; autoplay; fullscreen;",referrerPolicy:"no-referrer-when-downgrade"})}}o(i,"displayName","Kaltura");o(i,"canPlay",S.canPlay.kaltura);const M=y(d),C=P({__proto__:null,default:M},[d]);export{C as K}; diff --git a/dist/assets/Kaltura-DDJp8-tW.js b/dist/assets/Kaltura-DDJp8-tW.js new file mode 100644 index 0000000..89a68e7 --- /dev/null +++ b/dist/assets/Kaltura-DDJp8-tW.js @@ -0,0 +1 @@ +import{g as y,r as f,u as _,p as m}from"./index-CQwTocWK.js";function P(r,e){for(var t=0;ts[a]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var g=Object.create,n=Object.defineProperty,b=Object.getOwnPropertyDescriptor,v=Object.getOwnPropertyNames,O=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,j=(r,e,t)=>e in r?n(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e)n(r,t,{get:e[t],enumerable:!0})},c=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of v(e))!w.call(r,a)&&a!==t&&n(r,a,{get:()=>e[a],enumerable:!(s=b(e,a))||s.enumerable});return r},K=(r,e,t)=>(t=r!=null?g(O(r)):{},c(e||!r||!r.__esModule?n(t,"default",{value:r,enumerable:!0}):t,r)),D=r=>c(n({},"__esModule",{value:!0}),r),o=(r,e,t)=>(j(r,typeof e!="symbol"?e+"":e,t),t),h={};L(h,{default:()=>i});var d=D(h),u=K(f),p=_,S=m;const T="https://cdn.embed.ly/player-0.1.0.min.js",E="playerjs";class i extends u.Component{constructor(){super(...arguments),o(this,"callPlayer",p.callPlayer),o(this,"duration",null),o(this,"currentTime",null),o(this,"secondsLoaded",null),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unmute")}),o(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,p.getSDK)(T,E).then(t=>{this.iframe&&(this.player=new t.Player(this.iframe),this.player.on("ready",()=>{setTimeout(()=>{this.player.isReady=!0,this.player.setLoop(this.props.loop),this.props.muted&&this.player.mute(),this.addListeners(this.player,this.props),this.props.onReady()},500)}))},this.props.onError)}addListeners(e,t){e.on("play",t.onPlay),e.on("pause",t.onPause),e.on("ended",t.onEnded),e.on("error",t.onError),e.on("timeupdate",({duration:s,seconds:a})=>{this.duration=s,this.currentTime=a})}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("setCurrentTime",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const e={width:"100%",height:"100%"};return u.default.createElement("iframe",{ref:this.ref,src:this.props.url,frameBorder:"0",scrolling:"no",style:e,allow:"encrypted-media; autoplay; fullscreen;",referrerPolicy:"no-referrer-when-downgrade"})}}o(i,"displayName","Kaltura");o(i,"canPlay",S.canPlay.kaltura);const M=y(d),C=P({__proto__:null,default:M},[d]);export{C as K}; diff --git a/dist/assets/Mixcloud-CXhqduaQ.js b/dist/assets/Mixcloud-CXhqduaQ.js new file mode 100644 index 0000000..1b75337 --- /dev/null +++ b/dist/assets/Mixcloud-CXhqduaQ.js @@ -0,0 +1 @@ +import{g as _,r as f,c as m,d as g}from"./index-CQwTocWK.js";function v(t,e){for(var r=0;rs[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var P=Object.create,i=Object.defineProperty,O=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,M=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,x=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,j=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of b(e))!w.call(t,o)&&o!==r&&i(t,o,{get:()=>e[o],enumerable:!(s=O(e,o))||s.enumerable});return t},D=(t,e,r)=>(r=t!=null?P(M(t)):{},c(e||!t||!t.__esModule?i(r,"default",{value:t,enumerable:!0}):r,t)),S=t=>c(i({},"__esModule",{value:!0}),t),a=(t,e,r)=>(x(t,typeof e!="symbol"?e+"":e,r),r),d={};j(d,{default:()=>l});var h=S(d),p=D(f),u=m,y=g;const E="https://widget.mixcloud.com/media/js/widgetApi.js",L="Mixcloud";class l extends p.Component{constructor(){super(...arguments),a(this,"callPlayer",u.callPlayer),a(this,"duration",null),a(this,"currentTime",null),a(this,"secondsLoaded",null),a(this,"mute",()=>{}),a(this,"unmute",()=>{}),a(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,u.getSDK)(E,L).then(r=>{this.player=r.PlayerWidget(this.iframe),this.player.ready.then(()=>{this.player.events.play.on(this.props.onPlay),this.player.events.pause.on(this.props.onPause),this.player.events.ended.on(this.props.onEnded),this.player.events.error.on(this.props.error),this.player.events.progress.on((s,o)=>{this.currentTime=s,this.duration=o}),this.props.onReady()})},this.props.onError)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return null}render(){const{url:e,config:r}=this.props,s=e.match(y.MATCH_URL_MIXCLOUD)[1],o={width:"100%",height:"100%"},n=(0,u.queryString)({...r.options,feed:`/${s}/`});return p.default.createElement("iframe",{key:s,ref:this.ref,style:o,src:`https://www.mixcloud.com/widget/iframe/?${n}`,frameBorder:"0",allow:"autoplay"})}}a(l,"displayName","Mixcloud");a(l,"canPlay",y.canPlay.mixcloud);a(l,"loopOnEnded",!0);const T=_(h),A=v({__proto__:null,default:T},[h]);export{A as M}; diff --git a/dist/assets/Mixcloud-c3jBxJWc.js b/dist/assets/Mixcloud-c3jBxJWc.js new file mode 100644 index 0000000..9534914 --- /dev/null +++ b/dist/assets/Mixcloud-c3jBxJWc.js @@ -0,0 +1 @@ +import{g as _,r as f,u as m,p as g}from"./index-CQwTocWK.js";function v(t,e){for(var r=0;rs[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var P=Object.create,i=Object.defineProperty,O=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,M=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,x=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,j=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of b(e))!w.call(t,o)&&o!==r&&i(t,o,{get:()=>e[o],enumerable:!(s=O(e,o))||s.enumerable});return t},D=(t,e,r)=>(r=t!=null?P(M(t)):{},c(e||!t||!t.__esModule?i(r,"default",{value:t,enumerable:!0}):r,t)),S=t=>c(i({},"__esModule",{value:!0}),t),a=(t,e,r)=>(x(t,typeof e!="symbol"?e+"":e,r),r),d={};j(d,{default:()=>l});var h=S(d),p=D(f),u=m,y=g;const E="https://widget.mixcloud.com/media/js/widgetApi.js",L="Mixcloud";class l extends p.Component{constructor(){super(...arguments),a(this,"callPlayer",u.callPlayer),a(this,"duration",null),a(this,"currentTime",null),a(this,"secondsLoaded",null),a(this,"mute",()=>{}),a(this,"unmute",()=>{}),a(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,u.getSDK)(E,L).then(r=>{this.player=r.PlayerWidget(this.iframe),this.player.ready.then(()=>{this.player.events.play.on(this.props.onPlay),this.player.events.pause.on(this.props.onPause),this.player.events.ended.on(this.props.onEnded),this.player.events.error.on(this.props.error),this.player.events.progress.on((s,o)=>{this.currentTime=s,this.duration=o}),this.props.onReady()})},this.props.onError)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return null}render(){const{url:e,config:r}=this.props,s=e.match(y.MATCH_URL_MIXCLOUD)[1],o={width:"100%",height:"100%"},n=(0,u.queryString)({...r.options,feed:`/${s}/`});return p.default.createElement("iframe",{key:s,ref:this.ref,style:o,src:`https://www.mixcloud.com/widget/iframe/?${n}`,frameBorder:"0",allow:"autoplay"})}}a(l,"displayName","Mixcloud");a(l,"canPlay",y.canPlay.mixcloud);a(l,"loopOnEnded",!0);const T=_(h),A=v({__proto__:null,default:T},[h]);export{A as M}; diff --git a/dist/assets/Preview-CRUaPRKG.js b/dist/assets/Preview-CRUaPRKG.js new file mode 100644 index 0000000..5003600 --- /dev/null +++ b/dist/assets/Preview-CRUaPRKG.js @@ -0,0 +1 @@ +import{g as y,r as b}from"./index-CQwTocWK.js";function v(r,e){for(var t=0;tn[a]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var w=Object.create,i=Object.defineProperty,P=Object.getOwnPropertyDescriptor,O=Object.getOwnPropertyNames,x=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty,j=(r,e,t)=>e in r?i(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,E=(r,e)=>{for(var t in e)i(r,t,{get:e[t],enumerable:!0})},h=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of O(e))!I.call(r,a)&&a!==t&&i(r,a,{get:()=>e[a],enumerable:!(n=P(e,a))||n.enumerable});return r},S=(r,e,t)=>(t=r!=null?w(x(r)):{},h(e||!r||!r.__esModule?i(t,"default",{value:r,enumerable:!0}):t,r)),C=r=>h(i({},"__esModule",{value:!0}),r),p=(r,e,t)=>(j(r,typeof e!="symbol"?e+"":e,t),t),_={};E(_,{default:()=>N});var g=C(_),s=S(b);const u="64px",d={};class N extends s.Component{constructor(){super(...arguments),p(this,"mounted",!1),p(this,"state",{image:null}),p(this,"handleKeyPress",e=>{(e.key==="Enter"||e.key===" ")&&this.props.onClick()})}componentDidMount(){this.mounted=!0,this.fetchImage(this.props)}componentDidUpdate(e){const{url:t,light:n}=this.props;(e.url!==t||e.light!==n)&&this.fetchImage(this.props)}componentWillUnmount(){this.mounted=!1}fetchImage({url:e,light:t,oEmbedUrl:n}){if(!s.default.isValidElement(t)){if(typeof t=="string"){this.setState({image:t});return}if(d[e]){this.setState({image:d[e]});return}return this.setState({image:null}),window.fetch(n.replace("{url}",e)).then(a=>a.json()).then(a=>{if(a.thumbnail_url&&this.mounted){const o=a.thumbnail_url.replace("height=100","height=480").replace("-d_295x166","-d_640");this.setState({image:o}),d[e]=o}})}}render(){const{light:e,onClick:t,playIcon:n,previewTabIndex:a}=this.props,{image:o}=this.state,l=s.default.isValidElement(e),f={display:"flex",alignItems:"center",justifyContent:"center"},c={preview:{width:"100%",height:"100%",backgroundImage:o&&!l?`url(${o})`:void 0,backgroundSize:"cover",backgroundPosition:"center",cursor:"pointer",...f},shadow:{background:"radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)",borderRadius:u,width:u,height:u,position:l?"absolute":void 0,...f},playIcon:{borderStyle:"solid",borderWidth:"16px 0 16px 26px",borderColor:"transparent transparent transparent white",marginLeft:"7px"}},m=s.default.createElement("div",{style:c.shadow,className:"react-player__shadow"},s.default.createElement("div",{style:c.playIcon,className:"react-player__play-icon"}));return s.default.createElement("div",{style:c.preview,className:"react-player__preview",onClick:t,tabIndex:a,onKeyPress:this.handleKeyPress},l?e:null,n||m)}}const k=y(g),M=v({__proto__:null,default:k},[g]);export{M as P}; diff --git a/dist/assets/Preview-DE052SrE.js b/dist/assets/Preview-DE052SrE.js new file mode 100644 index 0000000..5003600 --- /dev/null +++ b/dist/assets/Preview-DE052SrE.js @@ -0,0 +1 @@ +import{g as y,r as b}from"./index-CQwTocWK.js";function v(r,e){for(var t=0;tn[a]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var w=Object.create,i=Object.defineProperty,P=Object.getOwnPropertyDescriptor,O=Object.getOwnPropertyNames,x=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty,j=(r,e,t)=>e in r?i(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,E=(r,e)=>{for(var t in e)i(r,t,{get:e[t],enumerable:!0})},h=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of O(e))!I.call(r,a)&&a!==t&&i(r,a,{get:()=>e[a],enumerable:!(n=P(e,a))||n.enumerable});return r},S=(r,e,t)=>(t=r!=null?w(x(r)):{},h(e||!r||!r.__esModule?i(t,"default",{value:r,enumerable:!0}):t,r)),C=r=>h(i({},"__esModule",{value:!0}),r),p=(r,e,t)=>(j(r,typeof e!="symbol"?e+"":e,t),t),_={};E(_,{default:()=>N});var g=C(_),s=S(b);const u="64px",d={};class N extends s.Component{constructor(){super(...arguments),p(this,"mounted",!1),p(this,"state",{image:null}),p(this,"handleKeyPress",e=>{(e.key==="Enter"||e.key===" ")&&this.props.onClick()})}componentDidMount(){this.mounted=!0,this.fetchImage(this.props)}componentDidUpdate(e){const{url:t,light:n}=this.props;(e.url!==t||e.light!==n)&&this.fetchImage(this.props)}componentWillUnmount(){this.mounted=!1}fetchImage({url:e,light:t,oEmbedUrl:n}){if(!s.default.isValidElement(t)){if(typeof t=="string"){this.setState({image:t});return}if(d[e]){this.setState({image:d[e]});return}return this.setState({image:null}),window.fetch(n.replace("{url}",e)).then(a=>a.json()).then(a=>{if(a.thumbnail_url&&this.mounted){const o=a.thumbnail_url.replace("height=100","height=480").replace("-d_295x166","-d_640");this.setState({image:o}),d[e]=o}})}}render(){const{light:e,onClick:t,playIcon:n,previewTabIndex:a}=this.props,{image:o}=this.state,l=s.default.isValidElement(e),f={display:"flex",alignItems:"center",justifyContent:"center"},c={preview:{width:"100%",height:"100%",backgroundImage:o&&!l?`url(${o})`:void 0,backgroundSize:"cover",backgroundPosition:"center",cursor:"pointer",...f},shadow:{background:"radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)",borderRadius:u,width:u,height:u,position:l?"absolute":void 0,...f},playIcon:{borderStyle:"solid",borderWidth:"16px 0 16px 26px",borderColor:"transparent transparent transparent white",marginLeft:"7px"}},m=s.default.createElement("div",{style:c.shadow,className:"react-player__shadow"},s.default.createElement("div",{style:c.playIcon,className:"react-player__play-icon"}));return s.default.createElement("div",{style:c.preview,className:"react-player__preview",onClick:t,tabIndex:a,onKeyPress:this.handleKeyPress},l?e:null,n||m)}}const k=y(g),M=v({__proto__:null,default:k},[g]);export{M as P}; diff --git a/dist/assets/SoundCloud-BHo3DXFQ.js b/dist/assets/SoundCloud-BHo3DXFQ.js new file mode 100644 index 0000000..e94b36c --- /dev/null +++ b/dist/assets/SoundCloud-BHo3DXFQ.js @@ -0,0 +1 @@ +import{g as P,r as g,u as b,p as v}from"./index-CQwTocWK.js";function O(t,e){for(var r=0;rs[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var S=Object.create,l=Object.defineProperty,w=Object.getOwnPropertyDescriptor,j=Object.getOwnPropertyNames,C=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty,D=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,L=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},d=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of j(e))!E.call(t,o)&&o!==r&&l(t,o,{get:()=>e[o],enumerable:!(s=w(e,o))||s.enumerable});return t},R=(t,e,r)=>(r=t!=null?S(C(t)):{},d(e||!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),T=t=>d(l({},"__esModule",{value:!0}),t),a=(t,e,r)=>(D(t,typeof e!="symbol"?e+"":e,r),r),h={};L(h,{default:()=>u});var f=T(h),p=R(g),c=b,M=v;const x="https://w.soundcloud.com/player/api.js",A="SC";class u extends p.Component{constructor(){super(...arguments),a(this,"callPlayer",c.callPlayer),a(this,"duration",null),a(this,"currentTime",null),a(this,"fractionLoaded",null),a(this,"mute",()=>{this.setVolume(0)}),a(this,"unmute",()=>{this.props.volume!==null&&this.setVolume(this.props.volume)}),a(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,r){(0,c.getSDK)(x,A).then(s=>{if(!this.iframe)return;const{PLAY:o,PLAY_PROGRESS:i,PAUSE:y,FINISH:_,ERROR:m}=s.Widget.Events;r||(this.player=s.Widget(this.iframe),this.player.bind(o,this.props.onPlay),this.player.bind(y,()=>{this.duration-this.currentTime<.05||this.props.onPause()}),this.player.bind(i,n=>{this.currentTime=n.currentPosition/1e3,this.fractionLoaded=n.loadedProgress}),this.player.bind(_,()=>this.props.onEnded()),this.player.bind(m,n=>this.props.onError(n))),this.player.load(e,{...this.props.config.options,callback:()=>{this.player.getDuration(n=>{this.duration=n/1e3,this.props.onReady()})}})})}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seekTo",e*1e3),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e*100)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.fractionLoaded*this.duration}render(){const{display:e}=this.props,r={width:"100%",height:"100%",display:e};return p.default.createElement("iframe",{ref:this.ref,src:`https://w.soundcloud.com/player/?url=${encodeURIComponent(this.props.url)}`,style:r,frameBorder:0,allow:"autoplay"})}}a(u,"displayName","SoundCloud");a(u,"canPlay",M.canPlay.soundcloud);a(u,"loopOnEnded",!0);const N=P(f),F=O({__proto__:null,default:N},[f]);export{F as S}; diff --git a/dist/assets/SoundCloud-BI71e4_l.js b/dist/assets/SoundCloud-BI71e4_l.js new file mode 100644 index 0000000..c300f50 --- /dev/null +++ b/dist/assets/SoundCloud-BI71e4_l.js @@ -0,0 +1 @@ +import{g as P,r as g,c as b,d as v}from"./index-CQwTocWK.js";function O(t,e){for(var r=0;rs[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var S=Object.create,l=Object.defineProperty,w=Object.getOwnPropertyDescriptor,j=Object.getOwnPropertyNames,C=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty,D=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,L=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},d=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of j(e))!E.call(t,o)&&o!==r&&l(t,o,{get:()=>e[o],enumerable:!(s=w(e,o))||s.enumerable});return t},R=(t,e,r)=>(r=t!=null?S(C(t)):{},d(e||!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),T=t=>d(l({},"__esModule",{value:!0}),t),a=(t,e,r)=>(D(t,typeof e!="symbol"?e+"":e,r),r),h={};L(h,{default:()=>u});var f=T(h),p=R(g),c=b,M=v;const x="https://w.soundcloud.com/player/api.js",A="SC";class u extends p.Component{constructor(){super(...arguments),a(this,"callPlayer",c.callPlayer),a(this,"duration",null),a(this,"currentTime",null),a(this,"fractionLoaded",null),a(this,"mute",()=>{this.setVolume(0)}),a(this,"unmute",()=>{this.props.volume!==null&&this.setVolume(this.props.volume)}),a(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,r){(0,c.getSDK)(x,A).then(s=>{if(!this.iframe)return;const{PLAY:o,PLAY_PROGRESS:i,PAUSE:y,FINISH:_,ERROR:m}=s.Widget.Events;r||(this.player=s.Widget(this.iframe),this.player.bind(o,this.props.onPlay),this.player.bind(y,()=>{this.duration-this.currentTime<.05||this.props.onPause()}),this.player.bind(i,n=>{this.currentTime=n.currentPosition/1e3,this.fractionLoaded=n.loadedProgress}),this.player.bind(_,()=>this.props.onEnded()),this.player.bind(m,n=>this.props.onError(n))),this.player.load(e,{...this.props.config.options,callback:()=>{this.player.getDuration(n=>{this.duration=n/1e3,this.props.onReady()})}})})}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seekTo",e*1e3),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e*100)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.fractionLoaded*this.duration}render(){const{display:e}=this.props,r={width:"100%",height:"100%",display:e};return p.default.createElement("iframe",{ref:this.ref,src:`https://w.soundcloud.com/player/?url=${encodeURIComponent(this.props.url)}`,style:r,frameBorder:0,allow:"autoplay"})}}a(u,"displayName","SoundCloud");a(u,"canPlay",M.canPlay.soundcloud);a(u,"loopOnEnded",!0);const N=P(f),F=O({__proto__:null,default:N},[f]);export{F as S}; diff --git a/dist/assets/Streamable-CLR8-BXj.js b/dist/assets/Streamable-CLR8-BXj.js new file mode 100644 index 0000000..3c5b76a --- /dev/null +++ b/dist/assets/Streamable-CLR8-BXj.js @@ -0,0 +1 @@ +import{g as m,r as f,u as _,p as b}from"./index-CQwTocWK.js";function P(t,e){for(var r=0;rs[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var g=Object.create,l=Object.defineProperty,v=Object.getOwnPropertyDescriptor,O=Object.getOwnPropertyNames,S=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty,L=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,w=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of O(e))!j.call(t,a)&&a!==r&&l(t,a,{get:()=>e[a],enumerable:!(s=v(e,a))||s.enumerable});return t},D=(t,e,r)=>(r=t!=null?g(S(t)):{},c(e||!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),E=t=>c(l({},"__esModule",{value:!0}),t),o=(t,e,r)=>(L(t,typeof e!="symbol"?e+"":e,r),r),h={};w(h,{default:()=>i});var y=E(h),p=D(f),u=_,d=b;const M="https://cdn.embed.ly/player-0.1.0.min.js",T="playerjs";class i extends p.Component{constructor(){super(...arguments),o(this,"callPlayer",u.callPlayer),o(this,"duration",null),o(this,"currentTime",null),o(this,"secondsLoaded",null),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unmute")}),o(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,u.getSDK)(M,T).then(r=>{this.iframe&&(this.player=new r.Player(this.iframe),this.player.setLoop(this.props.loop),this.player.on("ready",this.props.onReady),this.player.on("play",this.props.onPlay),this.player.on("pause",this.props.onPause),this.player.on("seeked",this.props.onSeek),this.player.on("ended",this.props.onEnded),this.player.on("error",this.props.onError),this.player.on("timeupdate",({duration:s,seconds:a})=>{this.duration=s,this.currentTime=a}),this.player.on("buffered",({percent:s})=>{this.duration&&(this.secondsLoaded=this.duration*s)}),this.props.muted&&this.player.mute())},this.props.onError)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("setCurrentTime",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e*100)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const e=this.props.url.match(d.MATCH_URL_STREAMABLE)[1],r={width:"100%",height:"100%"};return p.default.createElement("iframe",{ref:this.ref,src:`https://streamable.com/o/${e}`,frameBorder:"0",scrolling:"no",style:r,allow:"encrypted-media; autoplay; fullscreen;"})}}o(i,"displayName","Streamable");o(i,"canPlay",d.canPlay.streamable);const x=m(y),C=P({__proto__:null,default:x},[y]);export{C as S}; diff --git a/dist/assets/Streamable-CnBBuBIV.js b/dist/assets/Streamable-CnBBuBIV.js new file mode 100644 index 0000000..19b2948 --- /dev/null +++ b/dist/assets/Streamable-CnBBuBIV.js @@ -0,0 +1 @@ +import{g as m,r as f,c as _,d as b}from"./index-CQwTocWK.js";function P(t,e){for(var r=0;rs[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var g=Object.create,l=Object.defineProperty,v=Object.getOwnPropertyDescriptor,O=Object.getOwnPropertyNames,S=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty,L=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,w=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of O(e))!j.call(t,a)&&a!==r&&l(t,a,{get:()=>e[a],enumerable:!(s=v(e,a))||s.enumerable});return t},D=(t,e,r)=>(r=t!=null?g(S(t)):{},c(e||!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),E=t=>c(l({},"__esModule",{value:!0}),t),o=(t,e,r)=>(L(t,typeof e!="symbol"?e+"":e,r),r),h={};w(h,{default:()=>i});var y=E(h),p=D(f),u=_,d=b;const M="https://cdn.embed.ly/player-0.1.0.min.js",T="playerjs";class i extends p.Component{constructor(){super(...arguments),o(this,"callPlayer",u.callPlayer),o(this,"duration",null),o(this,"currentTime",null),o(this,"secondsLoaded",null),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unmute")}),o(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,u.getSDK)(M,T).then(r=>{this.iframe&&(this.player=new r.Player(this.iframe),this.player.setLoop(this.props.loop),this.player.on("ready",this.props.onReady),this.player.on("play",this.props.onPlay),this.player.on("pause",this.props.onPause),this.player.on("seeked",this.props.onSeek),this.player.on("ended",this.props.onEnded),this.player.on("error",this.props.onError),this.player.on("timeupdate",({duration:s,seconds:a})=>{this.duration=s,this.currentTime=a}),this.player.on("buffered",({percent:s})=>{this.duration&&(this.secondsLoaded=this.duration*s)}),this.props.muted&&this.player.mute())},this.props.onError)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("setCurrentTime",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e*100)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const e=this.props.url.match(d.MATCH_URL_STREAMABLE)[1],r={width:"100%",height:"100%"};return p.default.createElement("iframe",{ref:this.ref,src:`https://streamable.com/o/${e}`,frameBorder:"0",scrolling:"no",style:r,allow:"encrypted-media; autoplay; fullscreen;"})}}o(i,"displayName","Streamable");o(i,"canPlay",d.canPlay.streamable);const x=m(y),C=P({__proto__:null,default:x},[y]);export{C as S}; diff --git a/dist/assets/Twitch-CNaDXULh.js b/dist/assets/Twitch-CNaDXULh.js new file mode 100644 index 0000000..c1ceff3 --- /dev/null +++ b/dist/assets/Twitch-CNaDXULh.js @@ -0,0 +1 @@ +import{g as w,r as D,c as C,d as N}from"./index-CQwTocWK.js";function I(t,e){for(var r=0;rs[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var S=Object.create,l=Object.defineProperty,j=Object.getOwnPropertyDescriptor,A=Object.getOwnPropertyNames,M=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty,R=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,x=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},_=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of A(e))!H.call(t,a)&&a!==r&&l(t,a,{get:()=>e[a],enumerable:!(s=j(e,a))||s.enumerable});return t},F=(t,e,r)=>(r=t!=null?S(M(t)):{},_(e||!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),U=t=>_(l({},"__esModule",{value:!0}),t),n=(t,e,r)=>(R(t,typeof e!="symbol"?e+"":e,r),r),P={};x(P,{default:()=>h});var f=U(P),y=F(D),c=C,u=N;const K="https://player.twitch.tv/js/embed/v1.js",V="Twitch",$="twitch-player-";class h extends y.Component{constructor(){super(...arguments),n(this,"callPlayer",c.callPlayer),n(this,"playerID",this.props.config.playerId||`${$}${(0,c.randomString)()}`),n(this,"mute",()=>{this.callPlayer("setMuted",!0)}),n(this,"unmute",()=>{this.callPlayer("setMuted",!1)})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,r){const{playsinline:s,onError:a,config:o,controls:v}=this.props,i=u.MATCH_URL_TWITCH_CHANNEL.test(e),p=i?e.match(u.MATCH_URL_TWITCH_CHANNEL)[1]:e.match(u.MATCH_URL_TWITCH_VIDEO)[1];if(r){i?this.player.setChannel(p):this.player.setVideo("v"+p);return}(0,c.getSDK)(K,V).then(d=>{this.player=new d.Player(this.playerID,{video:i?"":p,channel:i?p:"",height:"100%",width:"100%",playsinline:s,autoplay:this.props.playing,muted:this.props.muted,controls:i?!0:v,time:(0,c.parseStartTime)(e),...o.options});const{READY:g,PLAYING:m,PAUSE:E,ENDED:O,ONLINE:L,OFFLINE:b,SEEK:T}=d.Player;this.player.addEventListener(g,this.props.onReady),this.player.addEventListener(m,this.props.onPlay),this.player.addEventListener(E,this.props.onPause),this.player.addEventListener(O,this.props.onEnded),this.player.addEventListener(T,this.props.onSeek),this.player.addEventListener(L,this.props.onLoaded),this.player.addEventListener(b,this.props.onLoaded)},a)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){this.callPlayer("pause")}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentTime")}getSecondsLoaded(){return null}render(){const e={width:"100%",height:"100%"};return y.default.createElement("div",{style:e,id:this.playerID})}}n(h,"displayName","Twitch");n(h,"canPlay",u.canPlay.twitch);n(h,"loopOnEnded",!0);const W=w(f),G=I({__proto__:null,default:W},[f]);export{G as T}; diff --git a/dist/assets/Twitch-D8aS7IV_.js b/dist/assets/Twitch-D8aS7IV_.js new file mode 100644 index 0000000..4c60e77 --- /dev/null +++ b/dist/assets/Twitch-D8aS7IV_.js @@ -0,0 +1 @@ +import{g as w,r as D,u as C,p as N}from"./index-CQwTocWK.js";function I(t,e){for(var r=0;rs[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var S=Object.create,l=Object.defineProperty,j=Object.getOwnPropertyDescriptor,A=Object.getOwnPropertyNames,M=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty,R=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,x=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},_=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of A(e))!H.call(t,a)&&a!==r&&l(t,a,{get:()=>e[a],enumerable:!(s=j(e,a))||s.enumerable});return t},F=(t,e,r)=>(r=t!=null?S(M(t)):{},_(e||!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),U=t=>_(l({},"__esModule",{value:!0}),t),n=(t,e,r)=>(R(t,typeof e!="symbol"?e+"":e,r),r),P={};x(P,{default:()=>h});var f=U(P),d=F(D),c=C,u=N;const K="https://player.twitch.tv/js/embed/v1.js",V="Twitch",$="twitch-player-";class h extends d.Component{constructor(){super(...arguments),n(this,"callPlayer",c.callPlayer),n(this,"playerID",this.props.config.playerId||`${$}${(0,c.randomString)()}`),n(this,"mute",()=>{this.callPlayer("setMuted",!0)}),n(this,"unmute",()=>{this.callPlayer("setMuted",!1)})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,r){const{playsinline:s,onError:a,config:o,controls:v}=this.props,i=u.MATCH_URL_TWITCH_CHANNEL.test(e),p=i?e.match(u.MATCH_URL_TWITCH_CHANNEL)[1]:e.match(u.MATCH_URL_TWITCH_VIDEO)[1];if(r){i?this.player.setChannel(p):this.player.setVideo("v"+p);return}(0,c.getSDK)(K,V).then(y=>{this.player=new y.Player(this.playerID,{video:i?"":p,channel:i?p:"",height:"100%",width:"100%",playsinline:s,autoplay:this.props.playing,muted:this.props.muted,controls:i?!0:v,time:(0,c.parseStartTime)(e),...o.options});const{READY:g,PLAYING:m,PAUSE:E,ENDED:O,ONLINE:L,OFFLINE:b,SEEK:T}=y.Player;this.player.addEventListener(g,this.props.onReady),this.player.addEventListener(m,this.props.onPlay),this.player.addEventListener(E,this.props.onPause),this.player.addEventListener(O,this.props.onEnded),this.player.addEventListener(T,this.props.onSeek),this.player.addEventListener(L,this.props.onLoaded),this.player.addEventListener(b,this.props.onLoaded)},a)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){this.callPlayer("pause")}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentTime")}getSecondsLoaded(){return null}render(){const e={width:"100%",height:"100%"};return d.default.createElement("div",{style:e,id:this.playerID})}}n(h,"displayName","Twitch");n(h,"canPlay",u.canPlay.twitch);n(h,"loopOnEnded",!0);const W=w(f),G=I({__proto__:null,default:W},[f]);export{G as T}; diff --git a/dist/assets/Vidyard-D-tpEbuM.js b/dist/assets/Vidyard-D-tpEbuM.js new file mode 100644 index 0000000..d1761ab --- /dev/null +++ b/dist/assets/Vidyard-D-tpEbuM.js @@ -0,0 +1 @@ +import{g as m,r as v,u as b,p as O}from"./index-CQwTocWK.js";function V(t,e){for(var r=0;rs[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var D=Object.create,i=Object.defineProperty,j=Object.getOwnPropertyDescriptor,w=Object.getOwnPropertyNames,S=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty,A=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,E=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of w(e))!M.call(t,a)&&a!==r&&i(t,a,{get:()=>e[a],enumerable:!(s=j(e,a))||s.enumerable});return t},L=(t,e,r)=>(r=t!=null?D(S(t)):{},h(e||!t||!t.__esModule?i(r,"default",{value:t,enumerable:!0}):r,t)),R=t=>h(i({},"__esModule",{value:!0}),t),o=(t,e,r)=>(A(t,typeof e!="symbol"?e+"":e,r),r),_={};E(_,{default:()=>y});var f=R(_),c=L(v),d=b,P=O;const x="https://play.vidyard.com/embed/v4.js",C="VidyardV4",N="onVidyardAPI";class y extends c.Component{constructor(){super(...arguments),o(this,"callPlayer",d.callPlayer),o(this,"mute",()=>{this.setVolume(0)}),o(this,"unmute",()=>{this.props.volume!==null&&this.setVolume(this.props.volume)}),o(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{playing:r,config:s,onError:a,onDuration:n}=this.props,l=e&&e.match(P.MATCH_URL_VIDYARD)[1];this.player&&this.stop(),(0,d.getSDK)(x,C,N).then(p=>{this.container&&(p.api.addReadyListener((u,g)=>{this.player||(this.player=g,this.player.on("ready",this.props.onReady),this.player.on("play",this.props.onPlay),this.player.on("pause",this.props.onPause),this.player.on("seek",this.props.onSeek),this.player.on("playerComplete",this.props.onEnded))},l),p.api.renderPlayer({uuid:l,container:this.container,autoplay:r?1:0,...s.options}),p.api.getPlayerMetadata(l).then(u=>{this.duration=u.length_in_seconds,n(u.length_in_seconds)}))},a)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){window.VidyardV4.api.destroyPlayer(this.player)}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setPlaybackRate(e){this.callPlayer("setPlaybackSpeed",e)}getDuration(){return this.duration}getCurrentTime(){return this.callPlayer("currentTime")}getSecondsLoaded(){return null}render(){const{display:e}=this.props,r={width:"100%",height:"100%",display:e};return c.default.createElement("div",{style:r},c.default.createElement("div",{ref:this.ref}))}}o(y,"displayName","Vidyard");o(y,"canPlay",P.canPlay.vidyard);const T=m(f),K=V({__proto__:null,default:T},[f]);export{K as V}; diff --git a/dist/assets/Vidyard-DU1jnJxN.js b/dist/assets/Vidyard-DU1jnJxN.js new file mode 100644 index 0000000..ed0d386 --- /dev/null +++ b/dist/assets/Vidyard-DU1jnJxN.js @@ -0,0 +1 @@ +import{g as m,r as v,c as b,d as O}from"./index-CQwTocWK.js";function V(t,e){for(var r=0;rs[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var D=Object.create,i=Object.defineProperty,j=Object.getOwnPropertyDescriptor,w=Object.getOwnPropertyNames,S=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty,A=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,E=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of w(e))!M.call(t,a)&&a!==r&&i(t,a,{get:()=>e[a],enumerable:!(s=j(e,a))||s.enumerable});return t},L=(t,e,r)=>(r=t!=null?D(S(t)):{},h(e||!t||!t.__esModule?i(r,"default",{value:t,enumerable:!0}):r,t)),R=t=>h(i({},"__esModule",{value:!0}),t),o=(t,e,r)=>(A(t,typeof e!="symbol"?e+"":e,r),r),_={};E(_,{default:()=>y});var f=R(_),c=L(v),d=b,P=O;const x="https://play.vidyard.com/embed/v4.js",C="VidyardV4",N="onVidyardAPI";class y extends c.Component{constructor(){super(...arguments),o(this,"callPlayer",d.callPlayer),o(this,"mute",()=>{this.setVolume(0)}),o(this,"unmute",()=>{this.props.volume!==null&&this.setVolume(this.props.volume)}),o(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{playing:r,config:s,onError:a,onDuration:n}=this.props,l=e&&e.match(P.MATCH_URL_VIDYARD)[1];this.player&&this.stop(),(0,d.getSDK)(x,C,N).then(p=>{this.container&&(p.api.addReadyListener((u,g)=>{this.player||(this.player=g,this.player.on("ready",this.props.onReady),this.player.on("play",this.props.onPlay),this.player.on("pause",this.props.onPause),this.player.on("seek",this.props.onSeek),this.player.on("playerComplete",this.props.onEnded))},l),p.api.renderPlayer({uuid:l,container:this.container,autoplay:r?1:0,...s.options}),p.api.getPlayerMetadata(l).then(u=>{this.duration=u.length_in_seconds,n(u.length_in_seconds)}))},a)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){window.VidyardV4.api.destroyPlayer(this.player)}seekTo(e,r=!0){this.callPlayer("seek",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setPlaybackRate(e){this.callPlayer("setPlaybackSpeed",e)}getDuration(){return this.duration}getCurrentTime(){return this.callPlayer("currentTime")}getSecondsLoaded(){return null}render(){const{display:e}=this.props,r={width:"100%",height:"100%",display:e};return c.default.createElement("div",{style:r},c.default.createElement("div",{ref:this.ref}))}}o(y,"displayName","Vidyard");o(y,"canPlay",P.canPlay.vidyard);const T=m(f),K=V({__proto__:null,default:T},[f]);export{K as V}; diff --git a/dist/assets/Vimeo-7wPXSkaO.js b/dist/assets/Vimeo-7wPXSkaO.js new file mode 100644 index 0000000..c568410 --- /dev/null +++ b/dist/assets/Vimeo-7wPXSkaO.js @@ -0,0 +1 @@ +import{g as d,r as f,u as m,p as _}from"./index-CQwTocWK.js";function P(t,e){for(var r=0;ra[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var g=Object.create,n=Object.defineProperty,b=Object.getOwnPropertyDescriptor,v=Object.getOwnPropertyNames,O=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,w=(t,e,r)=>e in t?n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,j=(t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of v(e))!D.call(t,o)&&o!==r&&n(t,o,{get:()=>e[o],enumerable:!(a=b(e,o))||a.enumerable});return t},M=(t,e,r)=>(r=t!=null?g(O(t)):{},h(e||!t||!t.__esModule?n(r,"default",{value:t,enumerable:!0}):r,t)),E=t=>h(n({},"__esModule",{value:!0}),t),i=(t,e,r)=>(w(t,typeof e!="symbol"?e+"":e,r),r),c={};j(c,{default:()=>l});var y=E(c),p=M(f),u=m,L=_;const S="https://player.vimeo.com/api/player.js",V="Vimeo",k=t=>t.replace("/manage/videos","");class l extends p.Component{constructor(){super(...arguments),i(this,"callPlayer",u.callPlayer),i(this,"duration",null),i(this,"currentTime",null),i(this,"secondsLoaded",null),i(this,"mute",()=>{this.setMuted(!0)}),i(this,"unmute",()=>{this.setMuted(!1)}),i(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){this.duration=null,(0,u.getSDK)(S,V).then(r=>{if(!this.container)return;const{playerOptions:a,title:o}=this.props.config;this.player=new r.Player(this.container,{url:k(e),autoplay:this.props.playing,muted:this.props.muted,loop:this.props.loop,playsinline:this.props.playsinline,controls:this.props.controls,...a}),this.player.ready().then(()=>{const s=this.container.querySelector("iframe");s.style.width="100%",s.style.height="100%",o&&(s.title=o)}).catch(this.props.onError),this.player.on("loaded",()=>{this.props.onReady(),this.refreshDuration()}),this.player.on("play",()=>{this.props.onPlay(),this.refreshDuration()}),this.player.on("pause",this.props.onPause),this.player.on("seeked",s=>this.props.onSeek(s.seconds)),this.player.on("ended",this.props.onEnded),this.player.on("error",this.props.onError),this.player.on("timeupdate",({seconds:s})=>{this.currentTime=s}),this.player.on("progress",({seconds:s})=>{this.secondsLoaded=s}),this.player.on("bufferstart",this.props.onBuffer),this.player.on("bufferend",this.props.onBufferEnd),this.player.on("playbackratechange",s=>this.props.onPlaybackRateChange(s.playbackRate))},this.props.onError)}refreshDuration(){this.player.getDuration().then(e=>{this.duration=e})}play(){const e=this.callPlayer("play");e&&e.catch(this.props.onError)}pause(){this.callPlayer("pause")}stop(){this.callPlayer("unload")}seekTo(e,r=!0){this.callPlayer("setCurrentTime",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setMuted(e){this.callPlayer("setMuted",e)}setLoop(e){this.callPlayer("setLoop",e)}setPlaybackRate(e){this.callPlayer("setPlaybackRate",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const{display:e}=this.props,r={width:"100%",height:"100%",overflow:"hidden",display:e};return p.default.createElement("div",{key:this.props.url,ref:this.ref,style:r})}}i(l,"displayName","Vimeo");i(l,"canPlay",L.canPlay.vimeo);i(l,"forceLoad",!0);const T=d(y),C=P({__proto__:null,default:T},[y]);export{C as V}; diff --git a/dist/assets/Vimeo-Dxa-X4z9.js b/dist/assets/Vimeo-Dxa-X4z9.js new file mode 100644 index 0000000..107cda0 --- /dev/null +++ b/dist/assets/Vimeo-Dxa-X4z9.js @@ -0,0 +1 @@ +import{g as d,r as f,c as m,d as _}from"./index-CQwTocWK.js";function P(t,e){for(var r=0;ra[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var g=Object.create,n=Object.defineProperty,b=Object.getOwnPropertyDescriptor,v=Object.getOwnPropertyNames,O=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,w=(t,e,r)=>e in t?n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,j=(t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of v(e))!D.call(t,o)&&o!==r&&n(t,o,{get:()=>e[o],enumerable:!(a=b(e,o))||a.enumerable});return t},M=(t,e,r)=>(r=t!=null?g(O(t)):{},h(e||!t||!t.__esModule?n(r,"default",{value:t,enumerable:!0}):r,t)),E=t=>h(n({},"__esModule",{value:!0}),t),i=(t,e,r)=>(w(t,typeof e!="symbol"?e+"":e,r),r),c={};j(c,{default:()=>l});var y=E(c),p=M(f),u=m,L=_;const S="https://player.vimeo.com/api/player.js",V="Vimeo",k=t=>t.replace("/manage/videos","");class l extends p.Component{constructor(){super(...arguments),i(this,"callPlayer",u.callPlayer),i(this,"duration",null),i(this,"currentTime",null),i(this,"secondsLoaded",null),i(this,"mute",()=>{this.setMuted(!0)}),i(this,"unmute",()=>{this.setMuted(!1)}),i(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){this.duration=null,(0,u.getSDK)(S,V).then(r=>{if(!this.container)return;const{playerOptions:a,title:o}=this.props.config;this.player=new r.Player(this.container,{url:k(e),autoplay:this.props.playing,muted:this.props.muted,loop:this.props.loop,playsinline:this.props.playsinline,controls:this.props.controls,...a}),this.player.ready().then(()=>{const s=this.container.querySelector("iframe");s.style.width="100%",s.style.height="100%",o&&(s.title=o)}).catch(this.props.onError),this.player.on("loaded",()=>{this.props.onReady(),this.refreshDuration()}),this.player.on("play",()=>{this.props.onPlay(),this.refreshDuration()}),this.player.on("pause",this.props.onPause),this.player.on("seeked",s=>this.props.onSeek(s.seconds)),this.player.on("ended",this.props.onEnded),this.player.on("error",this.props.onError),this.player.on("timeupdate",({seconds:s})=>{this.currentTime=s}),this.player.on("progress",({seconds:s})=>{this.secondsLoaded=s}),this.player.on("bufferstart",this.props.onBuffer),this.player.on("bufferend",this.props.onBufferEnd),this.player.on("playbackratechange",s=>this.props.onPlaybackRateChange(s.playbackRate))},this.props.onError)}refreshDuration(){this.player.getDuration().then(e=>{this.duration=e})}play(){const e=this.callPlayer("play");e&&e.catch(this.props.onError)}pause(){this.callPlayer("pause")}stop(){this.callPlayer("unload")}seekTo(e,r=!0){this.callPlayer("setCurrentTime",e),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setMuted(e){this.callPlayer("setMuted",e)}setLoop(e){this.callPlayer("setLoop",e)}setPlaybackRate(e){this.callPlayer("setPlaybackRate",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const{display:e}=this.props,r={width:"100%",height:"100%",overflow:"hidden",display:e};return p.default.createElement("div",{key:this.props.url,ref:this.ref,style:r})}}i(l,"displayName","Vimeo");i(l,"canPlay",L.canPlay.vimeo);i(l,"forceLoad",!0);const T=d(y),C=P({__proto__:null,default:T},[y]);export{C as V}; diff --git a/dist/assets/Wistia-C0mY-yNe.js b/dist/assets/Wistia-C0mY-yNe.js new file mode 100644 index 0000000..c01fc15 --- /dev/null +++ b/dist/assets/Wistia-C0mY-yNe.js @@ -0,0 +1 @@ +import{g,r as m,u as v,p as w}from"./index-CQwTocWK.js";function O(t,e){for(var a=0;as[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var C=Object.create,i=Object.defineProperty,k=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyNames,E=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty,R=(t,e,a)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,j=(t,e)=>{for(var a in e)i(t,a,{get:e[a],enumerable:!0})},h=(t,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of D(e))!S.call(t,r)&&r!==a&&i(t,r,{get:()=>e[r],enumerable:!(s=k(e,r))||s.enumerable});return t},I=(t,e,a)=>(a=t!=null?C(E(t)):{},h(e||!t||!t.__esModule?i(a,"default",{value:t,enumerable:!0}):a,t)),W=t=>h(i({},"__esModule",{value:!0}),t),n=(t,e,a)=>(R(t,typeof e!="symbol"?e+"":e,a),a),d={};j(d,{default:()=>l});var _=W(d),y=I(m),c=v,P=w;const M="https://fast.wistia.com/assets/external/E-v1.js",x="Wistia",A="wistia-player-";class l extends y.Component{constructor(){super(...arguments),n(this,"callPlayer",c.callPlayer),n(this,"playerID",this.props.config.playerId||`${A}${(0,c.randomString)()}`),n(this,"onPlay",(...e)=>this.props.onPlay(...e)),n(this,"onPause",(...e)=>this.props.onPause(...e)),n(this,"onSeek",(...e)=>this.props.onSeek(...e)),n(this,"onEnded",(...e)=>this.props.onEnded(...e)),n(this,"onPlaybackRateChange",(...e)=>this.props.onPlaybackRateChange(...e)),n(this,"mute",()=>{this.callPlayer("mute")}),n(this,"unmute",()=>{this.callPlayer("unmute")})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{playing:a,muted:s,controls:r,onReady:o,config:p,onError:b}=this.props;(0,c.getSDK)(M,x).then(f=>{p.customControls&&p.customControls.forEach(u=>f.defineControl(u)),window._wq=window._wq||[],window._wq.push({id:this.playerID,options:{autoPlay:a,silentAutoPlay:"allow",muted:s,controlsVisibleOnLoad:r,fullscreenButton:r,playbar:r,playbackRateControl:r,qualityControl:r,volumeControl:r,settingsControl:r,smallPlayButton:r,...p.options},onReady:u=>{this.player=u,this.unbind(),this.player.bind("play",this.onPlay),this.player.bind("pause",this.onPause),this.player.bind("seek",this.onSeek),this.player.bind("end",this.onEnded),this.player.bind("playbackratechange",this.onPlaybackRateChange),o()}})},b)}unbind(){this.player.unbind("play",this.onPlay),this.player.unbind("pause",this.onPause),this.player.unbind("seek",this.onSeek),this.player.unbind("end",this.onEnded),this.player.unbind("playbackratechange",this.onPlaybackRateChange)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){this.unbind(),this.callPlayer("remove")}seekTo(e,a=!0){this.callPlayer("time",e),a||this.pause()}setVolume(e){this.callPlayer("volume",e)}setPlaybackRate(e){this.callPlayer("playbackRate",e)}getDuration(){return this.callPlayer("duration")}getCurrentTime(){return this.callPlayer("time")}getSecondsLoaded(){return null}render(){const{url:e}=this.props,a=e&&e.match(P.MATCH_URL_WISTIA)[1],s=`wistia_embed wistia_async_${a}`,r={width:"100%",height:"100%"};return y.default.createElement("div",{id:this.playerID,key:a,className:s,style:r})}}n(l,"displayName","Wistia");n(l,"canPlay",P.canPlay.wistia);n(l,"loopOnEnded",!0);const L=g(_),T=O({__proto__:null,default:L},[_]);export{T as W}; diff --git a/dist/assets/Wistia-CeioMyv4.js b/dist/assets/Wistia-CeioMyv4.js new file mode 100644 index 0000000..2579985 --- /dev/null +++ b/dist/assets/Wistia-CeioMyv4.js @@ -0,0 +1 @@ +import{g,r as m,c as v,d as w}from"./index-CQwTocWK.js";function O(t,e){for(var a=0;as[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var C=Object.create,i=Object.defineProperty,k=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyNames,E=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty,R=(t,e,a)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,j=(t,e)=>{for(var a in e)i(t,a,{get:e[a],enumerable:!0})},h=(t,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of D(e))!S.call(t,r)&&r!==a&&i(t,r,{get:()=>e[r],enumerable:!(s=k(e,r))||s.enumerable});return t},I=(t,e,a)=>(a=t!=null?C(E(t)):{},h(e||!t||!t.__esModule?i(a,"default",{value:t,enumerable:!0}):a,t)),W=t=>h(i({},"__esModule",{value:!0}),t),n=(t,e,a)=>(R(t,typeof e!="symbol"?e+"":e,a),a),d={};j(d,{default:()=>l});var _=W(d),y=I(m),c=v,P=w;const M="https://fast.wistia.com/assets/external/E-v1.js",x="Wistia",A="wistia-player-";class l extends y.Component{constructor(){super(...arguments),n(this,"callPlayer",c.callPlayer),n(this,"playerID",this.props.config.playerId||`${A}${(0,c.randomString)()}`),n(this,"onPlay",(...e)=>this.props.onPlay(...e)),n(this,"onPause",(...e)=>this.props.onPause(...e)),n(this,"onSeek",(...e)=>this.props.onSeek(...e)),n(this,"onEnded",(...e)=>this.props.onEnded(...e)),n(this,"onPlaybackRateChange",(...e)=>this.props.onPlaybackRateChange(...e)),n(this,"mute",()=>{this.callPlayer("mute")}),n(this,"unmute",()=>{this.callPlayer("unmute")})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{playing:a,muted:s,controls:r,onReady:o,config:p,onError:b}=this.props;(0,c.getSDK)(M,x).then(f=>{p.customControls&&p.customControls.forEach(u=>f.defineControl(u)),window._wq=window._wq||[],window._wq.push({id:this.playerID,options:{autoPlay:a,silentAutoPlay:"allow",muted:s,controlsVisibleOnLoad:r,fullscreenButton:r,playbar:r,playbackRateControl:r,qualityControl:r,volumeControl:r,settingsControl:r,smallPlayButton:r,...p.options},onReady:u=>{this.player=u,this.unbind(),this.player.bind("play",this.onPlay),this.player.bind("pause",this.onPause),this.player.bind("seek",this.onSeek),this.player.bind("end",this.onEnded),this.player.bind("playbackratechange",this.onPlaybackRateChange),o()}})},b)}unbind(){this.player.unbind("play",this.onPlay),this.player.unbind("pause",this.onPause),this.player.unbind("seek",this.onSeek),this.player.unbind("end",this.onEnded),this.player.unbind("playbackratechange",this.onPlaybackRateChange)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){this.unbind(),this.callPlayer("remove")}seekTo(e,a=!0){this.callPlayer("time",e),a||this.pause()}setVolume(e){this.callPlayer("volume",e)}setPlaybackRate(e){this.callPlayer("playbackRate",e)}getDuration(){return this.callPlayer("duration")}getCurrentTime(){return this.callPlayer("time")}getSecondsLoaded(){return null}render(){const{url:e}=this.props,a=e&&e.match(P.MATCH_URL_WISTIA)[1],s=`wistia_embed wistia_async_${a}`,r={width:"100%",height:"100%"};return y.default.createElement("div",{id:this.playerID,key:a,className:s,style:r})}}n(l,"displayName","Wistia");n(l,"canPlay",P.canPlay.wistia);n(l,"loopOnEnded",!0);const L=g(_),T=O({__proto__:null,default:L},[_]);export{T as W}; diff --git a/dist/assets/YouTube-Bccsz9Yl.js b/dist/assets/YouTube-Bccsz9Yl.js new file mode 100644 index 0000000..b013a6e --- /dev/null +++ b/dist/assets/YouTube-Bccsz9Yl.js @@ -0,0 +1 @@ +import{g as U,r as I,c as L,d as Y}from"./index-CQwTocWK.js";function k(a,e){for(var t=0;ts[r]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var M=Object.create,u=Object.defineProperty,j=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyNames,V=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty,x=(a,e,t)=>e in a?u(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,K=(a,e)=>{for(var t in e)u(a,t,{get:e[t],enumerable:!0})},v=(a,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of N(e))!B.call(a,r)&&r!==t&&u(a,r,{get:()=>e[r],enumerable:!(s=j(e,r))||s.enumerable});return a},F=(a,e,t)=>(t=a!=null?M(V(a)):{},v(e||!a||!a.__esModule?u(t,"default",{value:a,enumerable:!0}):t,a)),H=a=>v(u({},"__esModule",{value:!0}),a),o=(a,e,t)=>(x(a,typeof e!="symbol"?e+"":e,t),t),w={};K(w,{default:()=>O});var S=H(w),b=F(I),c=L,D=Y;const G="https://www.youtube.com/iframe_api",T="YT",z="onYouTubeIframeAPIReady",f=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,m=/user\/([a-zA-Z0-9_-]+)\/?/,Q=/youtube-nocookie\.com/,Z="https://www.youtube-nocookie.com";class O extends b.Component{constructor(){super(...arguments),o(this,"callPlayer",c.callPlayer),o(this,"parsePlaylist",e=>{if(e instanceof Array)return{listType:"playlist",playlist:e.map(this.getID).join(",")};if(f.test(e)){const[,t]=e.match(f);return{listType:"playlist",list:t.replace(/^UC/,"UU")}}if(m.test(e)){const[,t]=e.match(m);return{listType:"user_uploads",list:t}}return{}}),o(this,"onStateChange",e=>{const{data:t}=e,{onPlay:s,onPause:r,onBuffer:n,onBufferEnd:P,onEnded:_,onReady:g,loop:y,config:{playerVars:l,onUnstarted:h}}=this.props,{UNSTARTED:d,PLAYING:p,PAUSED:i,BUFFERING:E,ENDED:A,CUED:C}=window[T].PlayerState;if(t===d&&h(),t===p&&(s(),P()),t===i&&r(),t===E&&n(),t===A){const R=!!this.callPlayer("getPlaylist");y&&!R&&(l.start?this.seekTo(l.start):this.play()),_()}t===C&&g()}),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unMute")}),o(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}getID(e){return!e||e instanceof Array||f.test(e)?null:e.match(D.MATCH_URL_YOUTUBE)[1]}load(e,t){const{playing:s,muted:r,playsinline:n,controls:P,loop:_,config:g,onError:y}=this.props,{playerVars:l,embedOptions:h}=g,d=this.getID(e);if(t){if(f.test(e)||m.test(e)||e instanceof Array){this.player.loadPlaylist(this.parsePlaylist(e));return}this.player.cueVideoById({videoId:d,startSeconds:(0,c.parseStartTime)(e)||l.start,endSeconds:(0,c.parseEndTime)(e)||l.end});return}(0,c.getSDK)(G,T,z,p=>p.loaded).then(p=>{this.container&&(this.player=new p.Player(this.container,{width:"100%",height:"100%",videoId:d,playerVars:{autoplay:s?1:0,mute:r?1:0,controls:P?1:0,start:(0,c.parseStartTime)(e),end:(0,c.parseEndTime)(e),origin:window.location.origin,playsinline:n?1:0,...this.parsePlaylist(e),...l},events:{onReady:()=>{_&&this.player.setLoop(!0),this.props.onReady()},onPlaybackRateChange:i=>this.props.onPlaybackRateChange(i.data),onPlaybackQualityChange:i=>this.props.onPlaybackQualityChange(i),onStateChange:this.onStateChange,onError:i=>y(i.data)},host:Q.test(e)?Z:void 0,...h}))},y),h.events&&console.warn("Using `embedOptions.events` will likely break things. Use ReactPlayer’s callback props instead, eg onReady, onPlay, onPause")}play(){this.callPlayer("playVideo")}pause(){this.callPlayer("pauseVideo")}stop(){document.body.contains(this.callPlayer("getIframe"))&&this.callPlayer("stopVideo")}seekTo(e,t=!1){this.callPlayer("seekTo",e),!t&&!this.props.playing&&this.pause()}setVolume(e){this.callPlayer("setVolume",e*100)}setPlaybackRate(e){this.callPlayer("setPlaybackRate",e)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentTime")}getSecondsLoaded(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}render(){const{display:e}=this.props,t={width:"100%",height:"100%",display:e};return b.default.createElement("div",{style:t},b.default.createElement("div",{ref:this.ref}))}}o(O,"displayName","YouTube");o(O,"canPlay",D.canPlay.youtube);const $=U(S),q=k({__proto__:null,default:$},[S]);export{q as Y}; diff --git a/dist/assets/YouTube-DOJoJw1y.js b/dist/assets/YouTube-DOJoJw1y.js new file mode 100644 index 0000000..f927067 --- /dev/null +++ b/dist/assets/YouTube-DOJoJw1y.js @@ -0,0 +1 @@ +import{g as U,r as I,u as L,p as Y}from"./index-CQwTocWK.js";function k(a,e){for(var t=0;ts[r]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var M=Object.create,u=Object.defineProperty,j=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyNames,V=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty,x=(a,e,t)=>e in a?u(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,K=(a,e)=>{for(var t in e)u(a,t,{get:e[t],enumerable:!0})},v=(a,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of N(e))!B.call(a,r)&&r!==t&&u(a,r,{get:()=>e[r],enumerable:!(s=j(e,r))||s.enumerable});return a},F=(a,e,t)=>(t=a!=null?M(V(a)):{},v(e||!a||!a.__esModule?u(t,"default",{value:a,enumerable:!0}):t,a)),H=a=>v(u({},"__esModule",{value:!0}),a),o=(a,e,t)=>(x(a,typeof e!="symbol"?e+"":e,t),t),w={};K(w,{default:()=>O});var S=H(w),b=F(I),p=L,D=Y;const G="https://www.youtube.com/iframe_api",T="YT",z="onYouTubeIframeAPIReady",f=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,m=/user\/([a-zA-Z0-9_-]+)\/?/,Q=/youtube-nocookie\.com/,Z="https://www.youtube-nocookie.com";class O extends b.Component{constructor(){super(...arguments),o(this,"callPlayer",p.callPlayer),o(this,"parsePlaylist",e=>{if(e instanceof Array)return{listType:"playlist",playlist:e.map(this.getID).join(",")};if(f.test(e)){const[,t]=e.match(f);return{listType:"playlist",list:t.replace(/^UC/,"UU")}}if(m.test(e)){const[,t]=e.match(m);return{listType:"user_uploads",list:t}}return{}}),o(this,"onStateChange",e=>{const{data:t}=e,{onPlay:s,onPause:r,onBuffer:n,onBufferEnd:P,onEnded:_,onReady:g,loop:y,config:{playerVars:l,onUnstarted:h}}=this.props,{UNSTARTED:d,PLAYING:c,PAUSED:i,BUFFERING:E,ENDED:A,CUED:C}=window[T].PlayerState;if(t===d&&h(),t===c&&(s(),P()),t===i&&r(),t===E&&n(),t===A){const R=!!this.callPlayer("getPlaylist");y&&!R&&(l.start?this.seekTo(l.start):this.play()),_()}t===C&&g()}),o(this,"mute",()=>{this.callPlayer("mute")}),o(this,"unmute",()=>{this.callPlayer("unMute")}),o(this,"ref",e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}getID(e){return!e||e instanceof Array||f.test(e)?null:e.match(D.MATCH_URL_YOUTUBE)[1]}load(e,t){const{playing:s,muted:r,playsinline:n,controls:P,loop:_,config:g,onError:y}=this.props,{playerVars:l,embedOptions:h}=g,d=this.getID(e);if(t){if(f.test(e)||m.test(e)||e instanceof Array){this.player.loadPlaylist(this.parsePlaylist(e));return}this.player.cueVideoById({videoId:d,startSeconds:(0,p.parseStartTime)(e)||l.start,endSeconds:(0,p.parseEndTime)(e)||l.end});return}(0,p.getSDK)(G,T,z,c=>c.loaded).then(c=>{this.container&&(this.player=new c.Player(this.container,{width:"100%",height:"100%",videoId:d,playerVars:{autoplay:s?1:0,mute:r?1:0,controls:P?1:0,start:(0,p.parseStartTime)(e),end:(0,p.parseEndTime)(e),origin:window.location.origin,playsinline:n?1:0,...this.parsePlaylist(e),...l},events:{onReady:()=>{_&&this.player.setLoop(!0),this.props.onReady()},onPlaybackRateChange:i=>this.props.onPlaybackRateChange(i.data),onPlaybackQualityChange:i=>this.props.onPlaybackQualityChange(i),onStateChange:this.onStateChange,onError:i=>y(i.data)},host:Q.test(e)?Z:void 0,...h}))},y),h.events&&console.warn("Using `embedOptions.events` will likely break things. Use ReactPlayer’s callback props instead, eg onReady, onPlay, onPause")}play(){this.callPlayer("playVideo")}pause(){this.callPlayer("pauseVideo")}stop(){document.body.contains(this.callPlayer("getIframe"))&&this.callPlayer("stopVideo")}seekTo(e,t=!1){this.callPlayer("seekTo",e),!t&&!this.props.playing&&this.pause()}setVolume(e){this.callPlayer("setVolume",e*100)}setPlaybackRate(e){this.callPlayer("setPlaybackRate",e)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentTime")}getSecondsLoaded(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}render(){const{display:e}=this.props,t={width:"100%",height:"100%",display:e};return b.default.createElement("div",{style:t},b.default.createElement("div",{ref:this.ref}))}}o(O,"displayName","YouTube");o(O,"canPlay",D.canPlay.youtube);const $=U(S),q=k({__proto__:null,default:$},[S]);export{q as Y}; diff --git a/dist/assets/cursor-editorTextHighlight-kG3uUOwL.svg b/dist/assets/cursor-editorTextHighlight-kG3uUOwL.svg new file mode 100644 index 0000000..800340c --- /dev/null +++ b/dist/assets/cursor-editorTextHighlight-kG3uUOwL.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dist/assets/index-Br6gItOh.css b/dist/assets/index-Br6gItOh.css new file mode 100644 index 0000000..b735684 --- /dev/null +++ b/dist/assets/index-Br6gItOh.css @@ -0,0 +1,5 @@ +@charset "UTF-8";.offcanvas.app-sidenav{background-color:var(--color-primary);padding-top:env(safe-area-inset-top,50px);padding-bottom:env(safe-area-inset-bottom,20px)}.offcanvas.app-sidenav.offcanvas-start{width:var(--app-sidenav-width)}.offcanvas.app-sidenav .navigation-profile-wrapper{background-color:var(--color-primary);margin-left:-15px;margin-right:-15px;padding-left:15px;padding-right:15px}.offcanvas.app-sidenav .welcome-user{font-size:17px}.app-sidenav .list-group{border-radius:1px}.app-sidenav .list-group .list-group-item{font-size:17px;font-weight:var(--fw-sb);color:#fff;background-color:transparent;border-color:transparent;border-radius:5px;padding-left:5px}.app-sidenav .list-group .list-group-item .icon-wrapper{max-width:40px;text-align:left;margin-right:15px;background-color:transparent;color:var(--color-gray5)}.app-sidenav .list-group .list-group-item .icon-wrapper:before{display:none}.app-sidenav .list-group .list-group-item img{height:28px;filter:invert(0)}.app-sidenav .list-group .list-group-item svg{font-size:26px;color:#fff}.offcanvas.app-sidenav .btn-close{background-color:var(--color-gray-light4);border-radius:50%;width:40px;height:40px;opacity:1;padding:0}.offcanvas.app-sidenav .app-sidenav-footer{padding:10px 10px 20px;font-size:14px;text-align:center;width:var(--app-sidenav-width);color:#fff}.lazy-load-image-background.blur{filter:blur(15px)}.lazy-load-image-background.blur.lazy-load-image-loaded{filter:blur(0);transition:filter .3s}.lazy-load-image-background.blur>img{opacity:0}.lazy-load-image-background.blur.lazy-load-image-loaded>img{opacity:1;transition:opacity .3s}.lazy-load-image-background.opacity{opacity:0}.lazy-load-image-background.opacity.lazy-load-image-loaded{opacity:1;transition:opacity .3s}.lazy-load-image-background.black-and-white{filter:grayscale(1)}.lazy-load-image-background.black-and-white.lazy-load-image-loaded{filter:grayscale(0);transition:filter .3s}.lazy-load-image-background.black-and-white>img{opacity:0}.lazy-load-image-background.black-and-white.lazy-load-image-loaded>img{opacity:1;transition:opacity .3s}.custom-image-container.card-img img{height:100%;object-fit:cover;object-position:center}.card.profile-card{background-color:var(--color-purple);color:#fff}.profile-card .profile-info-container .welcome-user{font-size:17px;font-weight:var(--fw-sb);line-height:1;max-width:200px}.profile-card .profile-info-container .welcome-user>span{font-size:15px;font-weight:var(--fw-n)}.profile-card .profile-info-container .media-icon-wrapper{width:80px;height:80px;display:inline-block;text-align:center;border:2px solid #fff}.profile-card .profile-info-container .media-icon-wrapper img{height:100%;width:100%;object-fit:cover;object-position:top}.profile-card .media-info-container{width:calc(100% - 15vh)}.profile-card.profile-card-sm .card-body,.profile-card.profile-card-md .card-body,.profile-card.profile-card-navigation .card-body{padding:0}.profile-card.profile-card-sm .media-info-container{margin-left:.6rem!important}.profile-card.profile-card-sm .profile-info-container .welcome-user{font-size:15px}.profile-card.profile-card-sm .profile-info-container .welcome-user>span{font-size:13px}.profile-card.profile-card-sm .profile-info-container .media-icon-wrapper,.profile-card.profile-card-navigation .profile-info-container .media-icon-wrapper,.profile-card.profile-card-md .profile-info-container .media-icon-wrapper{width:46px;height:46px}.theme-modal.confirmation-modal.show{background:#0006}.theme-modal.confirmation-modal .modal-content{background-color:#fffae9;border-radius:14px;overflow:hidden}.theme-modal.confirmation-modal .modal-header{background:transparent;color:#684609;border-bottom:0;padding:20px 25px}.theme-modal.confirmation-modal .modal-body{padding:20px 25px}.theme-modal.confirmation-modal .heading-icon{width:54px;height:54px;background-color:var(--color-yellow-lighter);color:#684609;margin-left:-3px;position:relative}.theme-modal.confirmation-modal .heading-icon:before{content:"";width:100%;height:100%;border-radius:50%;position:absolute;left:0;top:0;margin:auto;-webkit-animation:ripple-confirm 1s linear infinite .2s;-o-animation:ripple-confirm 1s linear infinite .2s;animation:ripple-confirm 1s linear infinite .2s}.theme-modal.confirmation-modal .modal-helper-text{color:var(--color-gray4);font-size:15px}.theme-modal.confirmation-modal .modal-header .btn-close:before,.theme-modal.confirmation-modal .modal-header .btn-close:after{height:16px;width:2px}.theme-modal.confirmation-modal .modal-header .btn-close:hover{background-color:var(--color-gray-light4);opacity:1;border-color:var(--color-gray-light4)}.theme-modal.confirmation-modal .modal-header .btn-close:hover:before,.theme-modal.confirmation-modal .modal-header .btn-close:hover:after{background-color:var(--color-gray9)}.dark_theme .theme-modal.confirmation-modal .modal-header{background:var(--color-gray25);color:#ffecad}@-webkit-keyframes ripple-confirm{0%{-webkit-box-shadow:0 0 0 0 rgba(247,176,18,.32),0 0 0 1px rgba(247,176,18,.32),0 0 0 8px rgba(247,176,18,.32);box-shadow:0 0 #f7b01252,0 0 0 1px #f7b01252,0 0 0 8px #f7b01252}to{-webkit-box-shadow:0 0 0 1px rgba(247,176,18,.32),0 0 0 8px rgba(247,176,18,.32),0 0 0 18px rgba(247,176,18,0);box-shadow:0 0 0 1px #f7b01252,0 0 0 8px #f7b01252,0 0 0 18px #f7b01200}}@-o-keyframes ripple-confirm{0%{-webkit-box-shadow:0 0 0 0 rgba(247,176,18,.32),0 0 0 1px rgba(247,176,18,.32),0 0 0 8px rgba(247,176,18,.32);box-shadow:0 0 #f7b01252,0 0 0 1px #f7b01252,0 0 0 8px #f7b01252}to{-webkit-box-shadow:0 0 0 1px rgba(247,176,18,.32),0 0 0 8px rgba(247,176,18,.32),0 0 0 18px rgba(247,176,18,0);box-shadow:0 0 0 1px #f7b01252,0 0 0 8px #f7b01252,0 0 0 18px #f7b01200}}.card.login-content-card{background-color:transparent}.welcome-text h1{font-size:28px;font-weight:var(--fw-n);color:var(--color-gray7);margin-bottom:0}.secondary-text h2{font-size:26px;font-weight:var(--fw-n);margin-bottom:0}.helper-text{font-size:15px;color:var(--color-gray7)}.otp-field{display:block;width:100%;padding:.375rem .75rem;margin:2px;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--color-primary);height:50px;border-radius:8px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ 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);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:"";position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;top:var(--swiper-navigation-top-offset, 50%);width:calc(var(--swiper-navigation-size) / 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}.swiper-button-prev.swiper-button-disabled,.swiper-button-next.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev.swiper-button-hidden,.swiper-button-next.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-prev,.swiper-navigation-disabled .swiper-button-next{display:none!important}.swiper-button-prev svg,.swiper-button-next svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-prev svg,.swiper-rtl .swiper-button-next svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset, 10px);right:auto}.swiper-button-lock{display:none}.swiper-button-prev:after,.swiper-button-next:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset, 10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:"next"}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius, 10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset, 1%);bottom:var(--swiper-scrollbar-bottom, 4px);top:var(--swiper-scrollbar-top, auto);z-index:50;height:var(--swiper-scrollbar-size, 4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-vertical>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-vertical{position:absolute;left:var(--swiper-scrollbar-left, auto);right:var(--swiper-scrollbar-right, 4px);top:var(--swiper-scrollbar-sides-offset, 1%);z-index:50;width:var(--swiper-scrollbar-size, 4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));border-radius:var(--swiper-scrollbar-border-radius, 10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:"";background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}.card-theme.placeholder-card{border-radius:12px}.placeholder-card .card-header{border:0}.placeholder-card .placeholder-profile-img{width:60px;height:60px}.card-theme.placeholder-card.notifications-list-placeholder-card .card-header,.card-theme.placeholder-card.likes-list-placeholder-card .card-header,.card-theme.placeholder-card.appreciation-list-placeholder-card .card-header{background-color:transparent}.placeholder-card.notifications-list-placeholder-card .placeholder-profile-img{width:50px;height:50px}.placeholder-card.likes-list-placeholder-card .placeholder-profile-img{width:42px;height:42px}.placeholder-card.comment-list-placeholder-card .placeholder-profile-img{width:32px;height:32px}.placeholder-card.placeholder-friend-card .placeholder-profile-img{width:80px;height:80px}.placeholder-card.likes-list-placeholder-card .card-header{background-color:transparent}.icon-wrap{display:flex;width:36px;min-width:36px;height:36px;justify-content:center;align-items:center;border-radius:8px}.icon-wrap.wrapper-sm{width:30px;min-width:30px;height:30px}.icon-wrap.wrapper-sm img{height:20px}.icon-wrap.wrapper-md{width:42px;min-width:42px;height:42px}.icon-wrap.wrapper-md img{height:34px}.dzu-dropzone{display:flex;flex-direction:column;align-items:center;width:100%;min-height:120px;overflow:scroll;margin:0 auto;position:relative;box-sizing:border-box;transition:all .15s linear;border:2px solid #d9d9d9;border-radius:4px}.dzu-dropzoneActive{background-color:#deebff;border-color:#2484ff}.dzu-dropzoneDisabled{opacity:.5}.dzu-dropzoneDisabled *:hover{cursor:unset}.dzu-input{display:none}.dzu-inputLabel{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;font-family:Helvetica,sans-serif;font-size:20px;font-weight:600;color:#2484ff;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer}.dzu-inputLabelWithFiles{display:flex;justify-content:center;align-items:center;align-self:flex-start;padding:0 14px;min-height:32px;background-color:#e6e6e6;color:#2484ff;border:none;font-family:Helvetica,sans-serif;border-radius:4px;font-size:14px;font-weight:600;margin-top:20px;margin-left:3%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer}.dzu-previewContainer{padding:40px 3%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;position:relative;width:100%;min-height:60px;z-index:1;border-bottom:1px solid #ECECEC;box-sizing:border-box}.dzu-previewStatusContainer{display:flex;align-items:center}.dzu-previewFileName{font-family:Helvetica,sans-serif;font-size:14px;font-weight:400;color:#333}.dzu-previewImage{width:auto;max-height:40px;max-width:140px;border-radius:4px}.dzu-previewButton{background-size:14px 14px;background-position:center;background-repeat:no-repeat;width:14px;height:14px;cursor:pointer;opacity:.9;margin:0 0 2px 10px}.dzu-submitButtonContainer{margin:24px 0;z-index:1}.dzu-submitButton{padding:0 14px;min-height:32px;background-color:#2484ff;border:none;border-radius:4px;font-family:Helvetica,sans-serif;font-size:14px;font-weight:600;color:#fff;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer}.dzu-submitButton:disabled{background-color:#e6e6e6;color:#333;cursor:unset}.dzu-previewContainer{padding:10px 3%}.dzu-inputLabelWithFiles{margin-top:10px}.dzu-submitButtonContainer{margin:20px 0 10px}.card-theme.dashboard-magazine-card{min-height:130px}.card-theme.dashboard-magazine-card .card-img{max-height:130px;height:100%;object-fit:cover;object-position:center}.card-theme.dashboard-magazine-card .card-img-overlay{color:#fff}.card-theme.dashboard-magazine-card .progress{--bs-progress-height: .36rem;--bs-progress-bg: var(--color-gray-light5)}.card-theme.dashboard-magazine-card .progress-bar{background-color:var(--color-gray4)}.card-theme.dashboard-contest-card{min-height:180px;position:relative}.card-theme.dashboard-contest-card .card-img{height:100%;object-fit:cover;object-position:center}.card-theme.dashboard-contest-card .card-img-overlay{color:#fff}.card-theme.dashboard-contest-card .expiry-tag{padding:3px 8px;border-radius:10px 0 0 10px;background-color:var(--color-primary-lighter1);color:var(--color-primary-dark);font-weight:var(--fw-sb);top:10px;z-index:1}.theme-modal.app-version-check-update-modal .heading-icon{width:54px;height:54px;background-color:var(--color-yellow-lighter);color:#684609;margin-left:-3px;position:relative}.theme-modal.app-version-check-update-modal .heading-icon:before{content:"";width:100%;height:100%;border-radius:50%;position:absolute;left:0;top:0;margin:auto;-webkit-animation:ripple-confirm 1s linear infinite .2s;-o-animation:ripple-confirm 1s linear infinite .2s;animation:ripple-confirm 1s linear infinite .2s}.bg-pattern-default{background:#fcc566;background:linear-gradient(5deg,#fcc566,#ffbae7,#fff59b)}.theme-modal.overlay-notification-modal .btn-theme.btn-close-modal{background-color:#00000080;right:5px!important;top:5px;border-radius:50%!important;color:var(--color-gray-light3)}.overlay-symbol-container .media-img-wrapper{background-color:#3232328c;width:140px;height:140px;padding:15px;display:flex;justify-content:center;align-items:center}.overlay-symbol-container .media-img-wrapper img{max-width:100%;object-fit:cover}.theme-modal.overlay-notification-modal .modal-dialog{padding-top:50px;padding-bottom:50px;height:100%}.theme-modal.overlay-notification-modal .modal-content{border-radius:16px;height:100%}.notification-list-card.media-list-card .media-icon-wrapper{background-color:var(--color-gray-light5)}.notification-list-card.media-list-card .media-icon-wrapper svg{font-size:24px}.notification-list-card .media-icon-wrapper.media-icon-wrapper-success{background-color:var(--color-green)}.notification-list-card .media-icon-wrapper.media-icon-wrapper-pending{background-color:var(--color-pending)}.notification-list-card .media-icon-wrapper.media-icon-wrapper-appreciation{background-color:var(--color-purple)}.notification-list-card .media-icon-wrapper.media-icon-wrapper-badge{background-color:var(--color-yellow-lighter)}.notification-list-card .media-icon-wrapper.media-icon-wrapper-reminder{background-color:var(--color-reminder)}.notification-list-card .media-icon-wrapper.media-icon-wrapper-offer{background-color:var(--color-offer)}.notification-list-card .media-icon-wrapper .unread-badge{position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:10px;background-color:var(--color-red);border:1px solid #fff}.section-heading{font-size:14px;color:inherit;font-weight:var(--fw-sb)}.section-heading.heading-xs{font-size:12px}.section-heading.heading-sm{font-size:13px}.section-heading.heading-md{font-size:15px}.section-heading.heading-lg{font-size:16px}.section-heading.heading-xl{font-size:18px}.section-heading.heading-2xl{font-size:20px}.section-heading.heading-3xl{font-size:22px}.section-heading.heading-4xl{font-size:24px}.section-heading.heading-5xl{font-size:28px}.btn-theme.btn-icon.btn-lg.btn-quick-action.btn-wide.expanded{min-width:160px}.card-theme.media-card.badge-card .media-icon-wrapper{background-color:var(--color-yellow-lighter);min-width:120px;height:auto}.media-card.badge-card .media-icon-wrapper img{height:90px}.media-card.badge-card .media-content-wrapper p{margin-bottom:2px}.list-view-card .list-icon-wrapper{display:inline-block;text-align:center;border:2px solid #fff;width:52px;height:52px}.list-view-card .list-icon-wrapper img{height:100%;width:100%;object-fit:cover;object-position:top}.list-view-card .list-info-container{font-size:14px}.list-view-card.list-view-card-sm .list-icon-wrapper{width:42px;height:42px}.comment_list_wrap{max-height:100%;overflow-y:auto;padding:10px 10px 70px}.comment_list_wrap::-webkit-scrollbar{display:none;width:4px;background-color:transparent}.comment_list_wrap::-webkit-scrollbar-thumb{border-radius:3px;background-color:var(--color-gray-light2)}.comment_list_wrap::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-light1)}.comment_list_wrap::-webkit-scrollbar-track{-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,0),inset -1px -1px 1px rgba(0,0,0,0);box-shadow:inset 1px 1px 1px #0000,inset -1px -1px 1px #0000;border-radius:3px;background-color:#0000001a}.card.add_comment_card{position:absolute;bottom:0;left:0;right:0;z-index:1;border-top:1px solid var(--color-gray-light5)!important;background-color:#fff;border-radius:3px}.card.add_comment_card.fixed-bottom{position:fixed;padding-bottom:40px!important;bottom:0;padding-left:15px!important;padding-right:15px!important}.card.comment_card{border-radius:12px;background-color:var(--color-spl-light);border:1px solid var(--color-gray-light5)!important}.card.comment_card .media_icon_wrap{width:32px!important;height:32px!important}.card.comment_card .card-header{background-color:transparent;padding:6px}.card.comment_card .card-body{padding:6px}.card.comment_card .card-header .card-title{font-size:14px;font-weight:var(--fw-sb)}.card.comment_card .media{display:flex;align-items:center}.card.comment_card .media_icon_wrap,.card.comment_card .media_img_wrap{flex-shrink:0;width:60px;height:60px;border-radius:50%;overflow:hidden;background-color:var(--color-gray-light1);border:2px solid var(--color-gray-light5);position:relative;text-align:center}.card.comment_card .profile_img,.card.comment_card .media_img{width:100%;height:100%;overflow:hidden;object-fit:cover}.card.comment_card .media_body{flex-grow:1}.badge-symbol-container{display:flex}.badge-symbol-container .media-img-wrapper{background-color:var(--color-yellow-lighter);width:160px;height:160px;padding:10px}.badge-symbol-container .media-img-wrapper img{max-width:100%;object-fit:cover}.media-list-card.appreciation-list-card .media-icon-wrapper{background-color:var(--color-gray-light6);width:60px;height:60px;padding:2px}.appreciation-symbol-container{display:flex}.appreciation-symbol-container .media-icon-wrapper{background-color:transparent;width:62px;height:62px;padding:2px;border-radius:10px;border:2px dashed var(--color-gray9);overflow:hidden;margin-top:-5px}.appreciation-symbol-container .media-icon-wrapper img{max-width:100%;object-fit:contain}.appreciation-symbol-container .media-img-wrapper{width:50px;height:50px;border-radius:50%;border:2px solid var(--color-gray-light5);overflow:hidden}.appreciation-symbol-container .media-img-wrapper img{max-width:100%;object-fit:cover}.appreciation-symbol-container .media-img-wrapper.symbol-left{margin-top:40px;position:relative;right:-15px}.appreciation-symbol-container .media-img-wrapper.symbol-right{margin-top:40px;position:relative;left:-15px}.profile-other-info table tr td{border:0px;background-color:transparent}.profile-other-info table tr td:first-child{color:var(--color-gray7)}.media-list-card.profile-contact-list-card .media-icon-wrapper{background-color:var(--color-primary-lighter1);color:var(--color-primary)}.uploadMediafile{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.card-theme.magazine-card .card-header{background-color:transparent;color:var(--color-gray3);font-weight:var(--fw-sb);font-size:15px}.card-theme.magazine-card .card-img{max-height:200px;object-fit:contain;object-position:center}.card-theme.magazine-card .progress{--bs-progress-height: .36rem;--bs-progress-bg: var(--color-gray-light4)}.card-theme.magazine-card .progress-bar{background-color:var(--color-success)}.card-theme.magazine-card .card-footer{background-color:transparent;border-top:1px solid var(--color-gray-light6)}.messageBar{--closing-button-icon:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.85822%208.84922L4.85322%2011.8542C4.75891%2011.9453%204.63261%2011.9957%204.50151%2011.9946C4.37042%2011.9934%204.24501%2011.9408%204.15231%2011.8481C4.0596%2011.7554%204.00702%2011.63%204.00588%2011.4989C4.00474%2011.3678%204.05514%2011.2415%204.14622%2011.1472L7.15122%208.14222V7.85922L4.14622%204.85322C4.05514%204.75891%204.00474%204.63261%204.00588%204.50151C4.00702%204.37042%204.0596%204.24501%204.15231%204.15231C4.24501%204.0596%204.37042%204.00702%204.50151%204.00588C4.63261%204.00474%204.75891%204.05514%204.85322%204.14622L7.85822%207.15122H8.14122L11.1462%204.14622C11.2405%204.05514%2011.3668%204.00474%2011.4979%204.00588C11.629%204.00702%2011.7544%204.0596%2011.8471%204.15231C11.9398%204.24501%2011.9924%204.37042%2011.9936%204.50151C11.9947%204.63261%2011.9443%204.75891%2011.8532%204.85322L8.84822%207.85922V8.14222L11.8532%2011.1472C11.9443%2011.2415%2011.9947%2011.3678%2011.9936%2011.4989C11.9924%2011.63%2011.9398%2011.7554%2011.8471%2011.8481C11.7544%2011.9408%2011.629%2011.9934%2011.4979%2011.9946C11.3668%2011.9957%2011.2405%2011.9453%2011.1462%2011.8542L8.14122%208.84922L8.14222%208.85022L7.85822%208.84922Z'%20fill='black'/%3e%3c/svg%3e");--message-bar-close-button-color:var(--text-primary-color);--message-bar-close-button-color-hover:var(--text-primary-color);--message-bar-close-button-border-radius:4px;--message-bar-close-button-border:none;--csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) rgb(251 251 254 / .14);--message-bar-close-button-hover-bg-color:var(--csstools-light-dark-toggle--0, rgb(21 20 26 / .14));--csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) rgb(251 251 254 / .21);--message-bar-close-button-active-bg-color:var(--csstools-light-dark-toggle--1, rgb(21 20 26 / .21));--csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) rgb(251 251 254 / .07);--message-bar-close-button-focus-bg-color:var(--csstools-light-dark-toggle--2, rgb(21 20 26 / .07))}@supports (color: light-dark(red,red)) and (color: rgb(0 0 0 / 0)){.messageBar{--message-bar-close-button-hover-bg-color:light-dark( rgb(21 20 26 / .14), rgb(251 251 254 / .14) );--message-bar-close-button-active-bg-color:light-dark( rgb(21 20 26 / .21), rgb(251 251 254 / .21) );--message-bar-close-button-focus-bg-color:light-dark( rgb(21 20 26 / .07), rgb(251 251 254 / .07) )}}@supports not (color: light-dark(tan,tan)){.messageBar *{--csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) rgb(251 251 254 / .14);--message-bar-close-button-hover-bg-color:var(--csstools-light-dark-toggle--0, rgb(21 20 26 / .14));--csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) rgb(251 251 254 / .21);--message-bar-close-button-active-bg-color:var(--csstools-light-dark-toggle--1, rgb(21 20 26 / .21));--csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) rgb(251 251 254 / .07);--message-bar-close-button-focus-bg-color:var(--csstools-light-dark-toggle--2, rgb(21 20 26 / .07))}}@media screen and (forced-colors: active){.messageBar{--message-bar-close-button-color:ButtonText;--message-bar-close-button-border:1px solid ButtonText;--message-bar-close-button-hover-bg-color:ButtonText;--message-bar-close-button-active-bg-color:ButtonText;--message-bar-close-button-focus-bg-color:ButtonText;--message-bar-close-button-color-hover:HighlightText}}.messageBar{display:flex;position:relative;padding:8px 8px 8px 16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:4px;border:1px solid var(--message-bar-border-color);background:var(--message-bar-bg-color);color:var(--message-bar-fg-color)}.messageBar>div{display:flex;align-items:flex-start;gap:8px;align-self:stretch}:is(.messageBar>div):before{content:"";display:inline-block;width:16px;height:16px;-webkit-mask-image:var(--message-bar-icon);mask-image:var(--message-bar-icon);-webkit-mask-size:cover;mask-size:cover;background-color:var(--message-bar-icon-color);flex-shrink:0}.messageBar button{cursor:pointer}:is(.messageBar button):focus-visible{outline:var(--focus-ring-outline);outline-offset:2px}.messageBar .closeButton{width:32px;height:32px;background:none;border-radius:var(--message-bar-close-button-border-radius);border:var(--message-bar-close-button-border);display:flex;align-items:center;justify-content:center}:is(.messageBar .closeButton):before{content:"";display:inline-block;width:16px;height:16px;-webkit-mask-image:var(--closing-button-icon);mask-image:var(--closing-button-icon);-webkit-mask-size:cover;mask-size:cover;background-color:var(--message-bar-close-button-color)}:is(.messageBar .closeButton):is(:hover,:active,:focus):before{background-color:var(--message-bar-close-button-color-hover)}:is(.messageBar .closeButton):hover{background-color:var(--message-bar-close-button-hover-bg-color)}:is(.messageBar .closeButton):active{background-color:var(--message-bar-close-button-active-bg-color)}:is(.messageBar .closeButton):focus{background-color:var(--message-bar-close-button-focus-bg-color)}:is(.messageBar .closeButton)>span{display:inline-block;width:0;height:0;overflow:hidden}#editorUndoBar{--csstools-light-dark-toggle--3:var(--csstools-color-scheme--light) #fbfbfe;--text-primary-color:var(--csstools-light-dark-toggle--3, #15141a);--message-bar-icon:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.625%200.5C6.64009%200.5%205.66482%200.693993%204.75487%201.0709C3.84493%201.44781%203.01814%202.00026%202.3217%202.6967C1.62526%203.39314%201.07281%204.21993%200.695904%205.12987C0.318993%206.03982%200.125%207.01509%200.125%208C0.125%208.98491%200.318993%209.96018%200.695904%2010.8701C1.07281%2011.7801%201.62526%2012.6069%202.3217%2013.3033C3.01814%2013.9997%203.84493%2014.5522%204.75487%2014.9291C5.66482%2015.306%206.64009%2015.5%207.625%2015.5C9.61412%2015.5%2011.5218%2014.7098%2012.9283%2013.3033C14.3348%2011.8968%2015.125%209.98912%2015.125%208C15.125%206.01088%2014.3348%204.10322%2012.9283%202.6967C11.5218%201.29018%209.61412%200.5%207.625%200.5ZM8.25%2011.375C8.25%2011.5408%208.18415%2011.6997%208.06694%2011.8169C7.94973%2011.9342%207.79076%2012%207.625%2012C7.45924%2012%207.30027%2011.9342%207.18306%2011.8169C7.06585%2011.6997%207%2011.5408%207%2011.375V6.938C7%206.77224%207.06585%206.61327%207.18306%206.49606C7.30027%206.37885%207.45924%206.313%207.625%206.313C7.79076%206.313%207.94973%206.37885%208.06694%206.49606C8.18415%206.61327%208.25%206.77224%208.25%206.938V11.375ZM8.25%205L8%205.25H7.25L7%205V4.25L7.25%204H8L8.25%204.25V5Z'%20fill='black'%20/%3e%3c/svg%3e");--csstools-light-dark-toggle--4:var(--csstools-color-scheme--light) #73a7f3;--message-bar-icon-color:var(--csstools-light-dark-toggle--4, #0060df);--csstools-light-dark-toggle--5:var(--csstools-color-scheme--light) #003070;--message-bar-bg-color:var(--csstools-light-dark-toggle--5, #deeafc);--message-bar-fg-color:var(--text-primary-color);--csstools-light-dark-toggle--6:var(--csstools-color-scheme--light) rgb(255 255 255 / .08);--message-bar-border-color:var(--csstools-light-dark-toggle--6, rgb(0 0 0 / .08));--csstools-light-dark-toggle--7:var(--csstools-color-scheme--light) rgb(255 255 255 / .08);--undo-button-bg-color:var(--csstools-light-dark-toggle--7, rgb(21 20 26 / .07));--csstools-light-dark-toggle--8:var(--csstools-color-scheme--light) rgb(255 255 255 / .14);--undo-button-bg-color-hover:var(--csstools-light-dark-toggle--8, rgb(21 20 26 / .14));--csstools-light-dark-toggle--9:var(--csstools-color-scheme--light) rgb(255 255 255 / .21);--undo-button-bg-color-active:var(--csstools-light-dark-toggle--9, rgb(21 20 26 / .21));--csstools-light-dark-toggle--10:var(--csstools-color-scheme--light) #0df;--undo-button-border:1px solid var(--csstools-light-dark-toggle--10, #0060df);--undo-button-fg-color:var(--message-bar-fg-color);--undo-button-fg-color-hover:var(--undo-button-fg-color);--undo-button-fg-color-active:var(--undo-button-fg-color)}@supports (color: light-dark(red,red)){#editorUndoBar{--text-primary-color:light-dark(#15141a, #fbfbfe);--message-bar-icon-color:light-dark(#0060df, #73a7f3);--message-bar-bg-color:light-dark(#deeafc, #003070)}}@supports (color: light-dark(red,red)) and (color: rgb(0 0 0 / 0)){#editorUndoBar{--message-bar-border-color:light-dark( rgb(0 0 0 / .08), rgb(255 255 255 / .08) );--undo-button-bg-color:light-dark( rgb(21 20 26 / .07), rgb(255 255 255 / .08) );--undo-button-bg-color-hover:light-dark( rgb(21 20 26 / .14), rgb(255 255 255 / .14) );--undo-button-bg-color-active:light-dark( rgb(21 20 26 / .21), rgb(255 255 255 / .21) )}}@supports (color: light-dark(red,red)){#editorUndoBar{--undo-button-border:1px solid light-dark(#0060df, #0df)}}@supports not (color: light-dark(tan,tan)){#editorUndoBar *{--csstools-light-dark-toggle--3:var(--csstools-color-scheme--light) #fbfbfe;--text-primary-color:var(--csstools-light-dark-toggle--3, #15141a);--csstools-light-dark-toggle--4:var(--csstools-color-scheme--light) #73a7f3;--message-bar-icon-color:var(--csstools-light-dark-toggle--4, #0060df);--csstools-light-dark-toggle--5:var(--csstools-color-scheme--light) #003070;--message-bar-bg-color:var(--csstools-light-dark-toggle--5, #deeafc);--csstools-light-dark-toggle--6:var(--csstools-color-scheme--light) rgb(255 255 255 / .08);--message-bar-border-color:var(--csstools-light-dark-toggle--6, rgb(0 0 0 / .08));--csstools-light-dark-toggle--7:var(--csstools-color-scheme--light) rgb(255 255 255 / .08);--undo-button-bg-color:var(--csstools-light-dark-toggle--7, rgb(21 20 26 / .07));--csstools-light-dark-toggle--8:var(--csstools-color-scheme--light) rgb(255 255 255 / .14);--undo-button-bg-color-hover:var(--csstools-light-dark-toggle--8, rgb(21 20 26 / .14));--csstools-light-dark-toggle--9:var(--csstools-color-scheme--light) rgb(255 255 255 / .21);--undo-button-bg-color-active:var(--csstools-light-dark-toggle--9, rgb(21 20 26 / .21));--csstools-light-dark-toggle--10:var(--csstools-color-scheme--light) #0df;--undo-button-border:1px solid var(--csstools-light-dark-toggle--10, #0060df)}}@media screen and (forced-colors: active){#editorUndoBar{--text-primary-color:CanvasText;--message-bar-icon-color:CanvasText;--message-bar-bg-color:Canvas;--message-bar-border-color:CanvasText;--undo-button-bg-color:ButtonText;--undo-button-bg-color-hover:SelectedItem;--undo-button-bg-color-active:SelectedItem;--undo-button-fg-color:ButtonFace;--undo-button-fg-color-hover:SelectedItemText;--undo-button-fg-color-active:SelectedItemText;--undo-button-border:none}}#editorUndoBar{position:fixed;top:50px;left:50%;transform:translate(-50%);z-index:10;padding-block:8px;padding-inline:16px 8px;font:menu;font-size:15px;cursor:default}#editorUndoBar button{cursor:pointer}#editorUndoBar #editorUndoBarUndoButton{border-radius:4px;font-weight:590;line-height:19.5px;color:var(--undo-button-fg-color);border:var(--undo-button-border);padding:4px 16px;margin-inline-start:8px;height:32px;background-color:var(--undo-button-bg-color)}:is(#editorUndoBar #editorUndoBarUndoButton):hover{background-color:var(--undo-button-bg-color-hover);color:var(--undo-button-fg-color-hover)}:is(#editorUndoBar #editorUndoBarUndoButton):active{background-color:var(--undo-button-bg-color-active);color:var(--undo-button-fg-color-active)}#editorUndoBar>div{align-items:center}.dialog{--csstools-light-dark-toggle--11:var(--csstools-color-scheme--light) #1c1b22;--dialog-bg-color:var(--csstools-light-dark-toggle--11, white);--csstools-light-dark-toggle--12:var(--csstools-color-scheme--light) #1c1b22;--dialog-border-color:var(--csstools-light-dark-toggle--12, white);--csstools-light-dark-toggle--13:var(--csstools-color-scheme--light) #15141a;--dialog-shadow:0 2px 14px 0 var(--csstools-light-dark-toggle--13, rgb(58 57 68 / .2));--csstools-light-dark-toggle--14:var(--csstools-color-scheme--light) #fbfbfe;--text-primary-color:var(--csstools-light-dark-toggle--14, #15141a);--csstools-light-dark-toggle--15:var(--csstools-color-scheme--light) #cfcfd8;--text-secondary-color:var(--csstools-light-dark-toggle--15, #5b5b66);--hover-filter:brightness(.9);--csstools-light-dark-toggle--16:var(--csstools-color-scheme--light) #0df;--link-fg-color:var(--csstools-light-dark-toggle--16, #0060df);--csstools-light-dark-toggle--17:var(--csstools-color-scheme--light) #80ebff;--link-hover-fg-color:var(--csstools-light-dark-toggle--17, #0250bb);--csstools-light-dark-toggle--18:var(--csstools-color-scheme--light) #52525e;--separator-color:var(--csstools-light-dark-toggle--18, #f0f0f4);--textarea-border-color:#8f8f9d;--csstools-light-dark-toggle--19:var(--csstools-color-scheme--light) #42414d;--textarea-bg-color:var(--csstools-light-dark-toggle--19, white);--textarea-fg-color:var(--text-secondary-color);--csstools-light-dark-toggle--20:var(--csstools-color-scheme--light) #2b2a33;--radio-bg-color:var(--csstools-light-dark-toggle--20, #f0f0f4);--csstools-light-dark-toggle--21:var(--csstools-color-scheme--light) #15141a;--radio-checked-bg-color:var(--csstools-light-dark-toggle--21, #fbfbfe);--radio-border-color:#8f8f9d;--csstools-light-dark-toggle--22:var(--csstools-color-scheme--light) #0df;--radio-checked-border-color:var(--csstools-light-dark-toggle--22, #0060df);--csstools-light-dark-toggle--23:var(--csstools-color-scheme--light) rgb(251 251 254 / .07);--button-secondary-bg-color:var(--csstools-light-dark-toggle--23, rgb(21 20 26 / .07));--button-secondary-fg-color:var(--text-primary-color);--button-secondary-border-color:var(--button-secondary-bg-color);--csstools-light-dark-toggle--24:var(--csstools-color-scheme--light) rgb(251 251 254 / .21);--button-secondary-active-bg-color:var(--csstools-light-dark-toggle--24, rgb(21 20 26 / .21));--button-secondary-active-fg-color:var(--button-secondary-fg-color);--button-secondary-active-border-color:var(--button-secondary-bg-color);--csstools-light-dark-toggle--25:var(--csstools-color-scheme--light) rgb(251 251 254 / .14);--button-secondary-hover-bg-color:var(--csstools-light-dark-toggle--25, rgb(21 20 26 / .14));--button-secondary-hover-fg-color:var(--button-secondary-fg-color);--button-secondary-hover-border-color:var(--button-secondary-hover-bg-color);--button-secondary-disabled-bg-color:var(--button-secondary-bg-color);--button-secondary-disabled-border-color:var( --button-secondary-border-color );--button-secondary-disabled-fg-color:var(--button-secondary-fg-color);--csstools-light-dark-toggle--26:var(--csstools-color-scheme--light) #0df;--button-primary-bg-color:var(--csstools-light-dark-toggle--26, #0060df);--csstools-light-dark-toggle--27:var(--csstools-color-scheme--light) #15141a;--button-primary-fg-color:var(--csstools-light-dark-toggle--27, #fbfbfe);--button-primary-border-color:var(--button-primary-bg-color);--csstools-light-dark-toggle--28:var(--csstools-color-scheme--light) #aaf2ff;--button-primary-active-bg-color:var(--csstools-light-dark-toggle--28, #054096);--button-primary-active-fg-color:var(--button-primary-fg-color);--button-primary-active-border-color:var(--button-primary-active-bg-color);--csstools-light-dark-toggle--29:var(--csstools-color-scheme--light) #80ebff;--button-primary-hover-bg-color:var(--csstools-light-dark-toggle--29, #0250bb);--button-primary-hover-fg-color:var(--button-primary-fg-color);--button-primary-hover-border-color:var(--button-primary-hover-bg-color);--button-primary-disabled-bg-color:var(--button-primary-bg-color);--button-primary-disabled-border-color:var(--button-primary-border-color);--button-primary-disabled-fg-color:var(--button-primary-fg-color);--button-disabled-opacity:.4;--csstools-light-dark-toggle--30:var(--csstools-color-scheme--light) #42414d;--input-text-bg-color:var(--csstools-light-dark-toggle--30, white);--input-text-fg-color:var(--text-primary-color)}@supports (color: light-dark(red,red)){.dialog{--dialog-bg-color:light-dark(white, #1c1b22);--dialog-border-color:light-dark(white, #1c1b22)}}@supports (color: light-dark(red,red)) and (color: rgb(0 0 0 / 0)){.dialog{--dialog-shadow:0 2px 14px 0 light-dark(rgb(58 57 68 / .2), #15141a)}}@supports (color: light-dark(red,red)){.dialog{--text-primary-color:light-dark(#15141a, #fbfbfe);--text-secondary-color:light-dark(#5b5b66, #cfcfd8);--link-fg-color:light-dark(#0060df, #0df);--link-hover-fg-color:light-dark(#0250bb, #80ebff);--separator-color:light-dark(#f0f0f4, #52525e);--textarea-bg-color:light-dark(white, #42414d);--radio-bg-color:light-dark(#f0f0f4, #2b2a33);--radio-checked-bg-color:light-dark(#fbfbfe, #15141a);--radio-checked-border-color:light-dark(#0060df, #0df)}}@supports (color: light-dark(red,red)) and (color: rgb(0 0 0 / 0)){.dialog{--button-secondary-bg-color:light-dark( rgb(21 20 26 / .07), rgb(251 251 254 / .07) );--button-secondary-active-bg-color:light-dark( rgb(21 20 26 / .21), rgb(251 251 254 / .21) );--button-secondary-hover-bg-color:light-dark( rgb(21 20 26 / .14), rgb(251 251 254 / .14) )}}@supports (color: light-dark(red,red)){.dialog{--button-primary-bg-color:light-dark(#0060df, #0df);--button-primary-fg-color:light-dark(#fbfbfe, #15141a);--button-primary-active-bg-color:light-dark(#054096, #aaf2ff);--button-primary-hover-bg-color:light-dark(#0250bb, #80ebff);--input-text-bg-color:light-dark(white, #42414d)}}@supports not (color: light-dark(tan,tan)){.dialog *{--csstools-light-dark-toggle--11:var(--csstools-color-scheme--light) #1c1b22;--dialog-bg-color:var(--csstools-light-dark-toggle--11, white);--csstools-light-dark-toggle--12:var(--csstools-color-scheme--light) #1c1b22;--dialog-border-color:var(--csstools-light-dark-toggle--12, white);--csstools-light-dark-toggle--13:var(--csstools-color-scheme--light) #15141a;--dialog-shadow:0 2px 14px 0 var(--csstools-light-dark-toggle--13, rgb(58 57 68 / .2));--csstools-light-dark-toggle--14:var(--csstools-color-scheme--light) #fbfbfe;--text-primary-color:var(--csstools-light-dark-toggle--14, #15141a);--csstools-light-dark-toggle--15:var(--csstools-color-scheme--light) #cfcfd8;--text-secondary-color:var(--csstools-light-dark-toggle--15, #5b5b66);--csstools-light-dark-toggle--16:var(--csstools-color-scheme--light) #0df;--link-fg-color:var(--csstools-light-dark-toggle--16, #0060df);--csstools-light-dark-toggle--17:var(--csstools-color-scheme--light) #80ebff;--link-hover-fg-color:var(--csstools-light-dark-toggle--17, #0250bb);--csstools-light-dark-toggle--18:var(--csstools-color-scheme--light) #52525e;--separator-color:var(--csstools-light-dark-toggle--18, #f0f0f4);--csstools-light-dark-toggle--19:var(--csstools-color-scheme--light) #42414d;--textarea-bg-color:var(--csstools-light-dark-toggle--19, white);--csstools-light-dark-toggle--20:var(--csstools-color-scheme--light) #2b2a33;--radio-bg-color:var(--csstools-light-dark-toggle--20, #f0f0f4);--csstools-light-dark-toggle--21:var(--csstools-color-scheme--light) #15141a;--radio-checked-bg-color:var(--csstools-light-dark-toggle--21, #fbfbfe);--csstools-light-dark-toggle--22:var(--csstools-color-scheme--light) #0df;--radio-checked-border-color:var(--csstools-light-dark-toggle--22, #0060df);--csstools-light-dark-toggle--23:var(--csstools-color-scheme--light) rgb(251 251 254 / .07);--button-secondary-bg-color:var(--csstools-light-dark-toggle--23, rgb(21 20 26 / .07));--csstools-light-dark-toggle--24:var(--csstools-color-scheme--light) rgb(251 251 254 / .21);--button-secondary-active-bg-color:var(--csstools-light-dark-toggle--24, rgb(21 20 26 / .21));--csstools-light-dark-toggle--25:var(--csstools-color-scheme--light) rgb(251 251 254 / .14);--button-secondary-hover-bg-color:var(--csstools-light-dark-toggle--25, rgb(21 20 26 / .14));--csstools-light-dark-toggle--26:var(--csstools-color-scheme--light) #0df;--button-primary-bg-color:var(--csstools-light-dark-toggle--26, #0060df);--csstools-light-dark-toggle--27:var(--csstools-color-scheme--light) #15141a;--button-primary-fg-color:var(--csstools-light-dark-toggle--27, #fbfbfe);--csstools-light-dark-toggle--28:var(--csstools-color-scheme--light) #aaf2ff;--button-primary-active-bg-color:var(--csstools-light-dark-toggle--28, #054096);--csstools-light-dark-toggle--29:var(--csstools-color-scheme--light) #80ebff;--button-primary-hover-bg-color:var(--csstools-light-dark-toggle--29, #0250bb);--csstools-light-dark-toggle--30:var(--csstools-color-scheme--light) #42414d;--input-text-bg-color:var(--csstools-light-dark-toggle--30, white)}}@media (prefers-color-scheme: dark){.dialog{--hover-filter:brightness(1.4);--button-disabled-opacity:.6}}@media screen and (forced-colors: active){.dialog{--dialog-bg-color:Canvas;--dialog-border-color:CanvasText;--dialog-shadow:none;--text-primary-color:CanvasText;--text-secondary-color:CanvasText;--hover-filter:none;--link-fg-color:LinkText;--link-hover-fg-color:LinkText;--separator-color:CanvasText;--textarea-border-color:ButtonBorder;--textarea-bg-color:Field;--textarea-fg-color:ButtonText;--radio-bg-color:ButtonFace;--radio-checked-bg-color:ButtonFace;--radio-border-color:ButtonText;--radio-checked-border-color:ButtonText;--button-secondary-bg-color:HighlightText;--button-secondary-fg-color:ButtonText;--button-secondary-border-color:ButtonText;--button-secondary-active-bg-color:HighlightText;--button-secondary-active-fg-color:SelectedItem;--button-secondary-active-border-color:ButtonText;--button-secondary-hover-bg-color:HighlightText;--button-secondary-hover-fg-color:SelectedItem;--button-secondary-hover-border-color:SelectedItem;--button-secondary-disabled-fg-color:GrayText;--button-secondary-disabled-border-color:GrayText;--button-primary-bg-color:ButtonText;--button-primary-fg-color:HighlightText;--button-primary-border-color:ButtonText;--button-primary-active-bg-color:SelectedItem;--button-primary-active-fg-color:HighlightText;--button-primary-active-border-color:ButtonText;--button-primary-hover-bg-color:SelectedItem;--button-primary-hover-fg-color:HighlightText;--button-primary-hover-border-color:SelectedItem;--button-primary-disabled-bg-color:GrayText;--button-primary-disabled-fg-color:ButtonFace;--button-primary-disabled-border-color:GrayText;--button-disabled-opacity:1;--input-text-bg-color:HighlightText;--input-text-fg-color:FieldText}}.dialog{font:message-box;font-size:13px;font-weight:400;line-height:150%;border-radius:4px;padding:12px 16px;border:1px solid var(--dialog-border-color);background:var(--dialog-bg-color);color:var(--text-primary-color);box-shadow:var(--dialog-shadow)}:is(.dialog .mainContainer) *:focus-visible{outline:var(--focus-ring-outline);outline-offset:2px}:is(.dialog .mainContainer) .title{display:flex;width:auto;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px}:is(:is(.dialog .mainContainer) .title)>span{font-size:13px;font-style:normal;font-weight:590;line-height:150%}:is(.dialog .mainContainer) .dialogSeparator{width:100%;height:0;margin-block:4px;border-top:1px solid var(--separator-color);border-bottom:none}:is(.dialog .mainContainer) .dialogButtonsGroup{display:flex;gap:12px;align-self:flex-end}:is(.dialog .mainContainer) .radio{display:flex;flex-direction:column;align-items:flex-start;gap:4px}:is(:is(.dialog .mainContainer) .radio)>.radioButton{display:flex;gap:8px;align-self:stretch;align-items:center}:is(:is(:is(.dialog .mainContainer) .radio)>.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:16px;height:16px;border-radius:50%;background-color:var(--radio-bg-color);border:1px solid var(--radio-border-color)}:is(:is(:is(:is(.dialog .mainContainer) .radio)>.radioButton) input):hover{filter:var(--hover-filter)}:is(:is(:is(:is(.dialog .mainContainer) .radio)>.radioButton) input):checked{background-color:var(--radio-checked-bg-color);border:4px solid var(--radio-checked-border-color)}:is(:is(.dialog .mainContainer) .radio)>.radioLabel{display:flex;padding-inline-start:24px;align-items:flex-start;gap:10px;align-self:stretch}:is(:is(:is(.dialog .mainContainer) .radio)>.radioLabel)>span{flex:1 0 0;font-size:11px;color:var(--text-secondary-color)}:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton)){border-radius:4px;border:1px solid;font:menu;font-weight:590;font-size:13px;padding:4px 16px;width:auto;height:32px}:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{cursor:pointer;filter:var(--hover-filter)}:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton)))>span{color:inherit;font:inherit}.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))){color:var(--button-secondary-fg-color);background-color:var(--button-secondary-bg-color);border-color:var(--button-secondary-border-color)}.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{color:var(--button-secondary-hover-fg-color);background-color:var(--button-secondary-hover-bg-color);border-color:var(--button-secondary-hover-border-color)}.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):active{color:var(--button-secondary-active-fg-color);background-color:var(--button-secondary-active-bg-color);border-color:var(--button-secondary-active-border-color)}.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{background-color:var(--button-secondary-disabled-bg-color);border-color:var(--button-secondary-disabled-border-color);color:var(--button-secondary-disabled-fg-color);opacity:var(--button-disabled-opacity)}.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))){color:var(--button-primary-fg-color);background-color:var(--button-primary-bg-color);border-color:var(--button-primary-border-color);opacity:1}.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{color:var(--button-primary-hover-fg-color);background-color:var(--button-primary-hover-bg-color);border-color:var(--button-primary-hover-border-color)}.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):active{color:var(--button-primary-active-fg-color);background-color:var(--button-primary-active-bg-color);border-color:var(--button-primary-active-border-color)}.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{background-color:var(--button-primary-disabled-bg-color);border-color:var(--button-primary-disabled-border-color);color:var(--button-primary-disabled-fg-color);opacity:var(--button-disabled-opacity)}:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{pointer-events:none}:is(.dialog .mainContainer) a{color:var(--link-fg-color)}:is(:is(.dialog .mainContainer) a):hover{color:var(--link-hover-fg-color)}:is(.dialog .mainContainer) textarea{font:inherit;padding:8px;resize:none;margin:0;box-sizing:border-box;border-radius:4px;border:1px solid var(--textarea-border-color);background:var(--textarea-bg-color);color:var(--textarea-fg-color)}:is(:is(.dialog .mainContainer) textarea):focus{outline-offset:0;border-color:transparent}:is(:is(.dialog .mainContainer) textarea):disabled{pointer-events:none;opacity:.4}:is(.dialog .mainContainer) input[type=text]{background-color:var(--input-text-bg-color);color:var(--input-text-fg-color)}:is(.dialog .mainContainer) .messageBar{--csstools-light-dark-toggle--31:var(--csstools-color-scheme--light) #5a3100;--message-bar-bg-color:var(--csstools-light-dark-toggle--31, #ffebcd);--csstools-light-dark-toggle--32:var(--csstools-color-scheme--light) #fbfbfe;--message-bar-fg-color:var(--csstools-light-dark-toggle--32, #15141a);--csstools-light-dark-toggle--33:var(--csstools-color-scheme--light) rgb(255 255 255 / .08);--message-bar-border-color:var(--csstools-light-dark-toggle--33, rgb(0 0 0 / .08));--message-bar-icon:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.8748%2012.037L9.37782%202.037C8.99682%201.346%208.31082%201%207.62482%201C6.93882%201%206.25282%201.346%205.87282%202.037L0.375823%2012.037C-0.358177%2013.37%200.606823%2015%202.12782%2015H13.1228C14.6428%2015%2015.6078%2013.37%2014.8748%2012.037ZM8.24982%2011.75L7.99982%2012H7.24982L6.99982%2011.75V11L7.24982%2010.75H7.99982L8.24982%2011V11.75ZM8.24982%209.062C8.24982%209.22776%208.18398%209.38673%208.06677%209.50394C7.94955%209.62115%207.79058%209.687%207.62482%209.687C7.45906%209.687%207.30009%209.62115%207.18288%209.50394C7.06567%209.38673%206.99982%209.22776%206.99982%209.062V5.625C6.99982%205.45924%207.06567%205.30027%207.18288%205.18306C7.30009%205.06585%207.45906%205%207.62482%205C7.79058%205%207.94955%205.06585%208.06677%205.18306C8.18398%205.30027%208.24982%205.45924%208.24982%205.625V9.062Z'%20fill='black'/%3e%3c/svg%3e");--csstools-light-dark-toggle--34:var(--csstools-color-scheme--light) #e49c49;--message-bar-icon-color:var(--csstools-light-dark-toggle--34, #cd411e)}@supports (color: light-dark(red,red)){:is(.dialog .mainContainer) .messageBar{--message-bar-bg-color:light-dark(#ffebcd, #5a3100);--message-bar-fg-color:light-dark(#15141a, #fbfbfe)}}@supports (color: light-dark(red,red)) and (color: rgb(0 0 0 / 0)){:is(.dialog .mainContainer) .messageBar{--message-bar-border-color:light-dark( rgb(0 0 0 / .08), rgb(255 255 255 / .08) )}}@supports (color: light-dark(red,red)){:is(.dialog .mainContainer) .messageBar{--message-bar-icon-color:light-dark(#cd411e, #e49c49)}}@supports not (color: light-dark(tan,tan)){:is(:is(.dialog .mainContainer) .messageBar) *{--csstools-light-dark-toggle--31:var(--csstools-color-scheme--light) #5a3100;--message-bar-bg-color:var(--csstools-light-dark-toggle--31, #ffebcd);--csstools-light-dark-toggle--32:var(--csstools-color-scheme--light) #fbfbfe;--message-bar-fg-color:var(--csstools-light-dark-toggle--32, #15141a);--csstools-light-dark-toggle--33:var(--csstools-color-scheme--light) rgb(255 255 255 / .08);--message-bar-border-color:var(--csstools-light-dark-toggle--33, rgb(0 0 0 / .08));--csstools-light-dark-toggle--34:var(--csstools-color-scheme--light) #e49c49;--message-bar-icon-color:var(--csstools-light-dark-toggle--34, #cd411e)}}@media screen and (forced-colors: active){:is(.dialog .mainContainer) .messageBar{--message-bar-bg-color:HighlightText;--message-bar-fg-color:CanvasText;--message-bar-border-color:CanvasText;--message-bar-icon-color:CanvasText}}:is(.dialog .mainContainer) .messageBar{align-self:stretch}:is(:is(:is(.dialog .mainContainer) .messageBar)>div):before,:is(:is(:is(.dialog .mainContainer) .messageBar)>div)>div{margin-block:4px}:is(:is(:is(.dialog .mainContainer) .messageBar)>div)>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1 0 0}:is(:is(:is(:is(.dialog .mainContainer) .messageBar)>div)>div) .title{font-size:13px;font-weight:590}:is(:is(:is(:is(.dialog .mainContainer) .messageBar)>div)>div) .description{font-size:13px}:is(.dialog .mainContainer) .toggler{display:flex;align-items:center;gap:8px;align-self:stretch}:is(:is(.dialog .mainContainer) .toggler)>.togglerLabel{-webkit-user-select:none;-moz-user-select:none;user-select:none}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:clip;opacity:1;line-height:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;z-index:0}.textLayer.highlighting{touch-action:none}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.textLayer>:not(.markedContent),.textLayer .markedContent span:not(.markedContent){z-index:1}.textLayer span.markedContent{top:0;height:0}.textLayer span[role=img]{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}.textLayer .highlight{--highlight-bg-color:rgb(180 0 170 / .25);--highlight-selected-bg-color:rgb(0 100 0 / .25);--highlight-backdrop-filter:none;--highlight-selected-backdrop-filter:none}@media screen and (forced-colors: active){.textLayer .highlight{--highlight-bg-color:transparent;--highlight-selected-bg-color:transparent;--highlight-backdrop-filter:var(--hcm-highlight-filter);--highlight-selected-backdrop-filter:var( --hcm-highlight-selected-filter )}}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);-webkit-backdrop-filter:var(--highlight-backdrop-filter);backdrop-filter:var(--highlight-backdrop-filter);border-radius:4px}.appended:is(.textLayer .highlight){position:initial}.begin:is(.textLayer .highlight){border-radius:4px 0 0 4px}.end:is(.textLayer .highlight){border-radius:0 4px 4px 0}.middle:is(.textLayer .highlight){border-radius:0}.selected:is(.textLayer .highlight){background-color:var(--highlight-selected-bg-color);-webkit-backdrop-filter:var(--highlight-selected-backdrop-filter);backdrop-filter:var(--highlight-selected-backdrop-filter)}.textLayer ::-moz-selection{background:#0000ff40;background:color-mix(in srgb,AccentColor,transparent 75%)}.textLayer ::selection{background:#0000ff40;background:color-mix(in srgb,AccentColor,transparent 75%)}.textLayer br::-moz-selection{background:transparent}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.annotationLayer{--csstools-color-scheme--light:initial;color-scheme:only light;--annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,");--comment-edit-image:url(images/comment_editButton.svg);--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:transparent;--input-disabled-border-color:transparent;--input-hover-border-color:black;--link-outline:none}@media screen and (forced-colors: active){.annotationLayer{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight;--link-outline:1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation{outline:var(--link-outline)}:is(.annotationLayer .linkAnnotation):hover{-webkit-backdrop-filter:var(--hcm-highlight-filter);backdrop-filter:var(--hcm-highlight-filter)}:is(.annotationLayer .linkAnnotation)>a:hover{opacity:0!important;background:none!important;box-shadow:none}.annotationLayer .popupAnnotation .popup{outline:calc(1.5px * var(--total-scale-factor)) solid CanvasText!important;background-color:ButtonFace!important;color:ButtonText!important}.annotationLayer .highlightArea:hover:after{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backdrop-filter:var(--hcm-highlight-filter);backdrop-filter:var(--hcm-highlight-filter);content:"";pointer-events:none}.annotationLayer .popupAnnotation.focused .popup{outline:calc(3px * var(--total-scale-factor)) solid Highlight!important}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer.disabled section,.annotationLayer.disabled .popup{pointer-events:none}.annotationLayer .annotationContent{position:absolute;width:100%;height:100%;pointer-events:none}.freetext:is(.annotationLayer .annotationContent){background:transparent;border:none;top:0;right:0;bottom:0;left:0;overflow:visible;white-space:nowrap;font:10px sans-serif;line-height:1.35}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}:is(.annotationLayer section):has(div.annotationContent) canvas.annotationContent{display:none}:is(.annotationLayer section) .overlaidText{position:absolute;top:0;left:0;width:0;height:0;display:inline-block;overflow:hidden}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton):not(.hasBorder)>a:hover{opacity:.2;background-color:#ff0}.annotationLayer .linkAnnotation.hasBorder:hover{background-color:#ff03}.annotationLayer .hasBorder{background-size:100% 100%}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation [disabled]:is(input,textarea),.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:25%;top:25%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{height:100%;width:100%}.annotationLayer .popupAnnotation{position:absolute;font-size:calc(9px * var(--total-scale-factor));pointer-events:none;width:-moz-max-content;width:max-content;max-width:45%;height:auto}.annotationLayer .popup{background-color:#ff9;color:#000;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));outline:1.5px solid rgb(255 255 74);padding:calc(6px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto;-webkit-user-select:text;-moz-user-select:text;user-select:text}.annotationLayer .popupAnnotation.focused .popup{outline-width:3px}.annotationLayer .popup *{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup>.header{display:inline-block}.annotationLayer .popup>.header>.title{display:inline;font-weight:700}.annotationLayer .popup>.header .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor));width:-moz-fit-content;width:fit-content}.annotationLayer .popupContent{border-top:1px solid rgb(51 51 51);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popupTriggerArea{cursor:pointer}:is(.annotationLayer .popupTriggerArea):hover{-webkit-backdrop-filter:var(--hcm-highlight-filter);backdrop-filter:var(--hcm-highlight-filter)}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}:is(.annotationLayer .annotationTextContent) span{width:100%;display:inline-block}.annotationLayer svg.quadrilateralsContainer{contain:strict;width:0;height:0;position:absolute;top:0;left:0;z-index:-1}:root{--xfa-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,");--xfa-focus-outline:auto}@media screen and (forced-colors: active){:root{--xfa-focus-outline:2px solid CanvasText}.xfaLayer *:required{outline:1.5px solid selectedItem}}.xfaLayer{--csstools-color-scheme--light:initial;color-scheme:only light;background-color:transparent}.xfaLayer .highlight{margin:-1px;padding:1px;background-color:#efcbed;border-radius:4px}.xfaLayer .highlight.appended{position:initial}.xfaLayer .highlight.begin{border-radius:4px 0 0 4px}.xfaLayer .highlight.end{border-radius:0 4px 4px 0}.xfaLayer .highlight.middle{border-radius:0}.xfaLayer .highlight.selected{background-color:#cbdfcb}.xfaPage{overflow:hidden;position:relative}.xfaContentarea{position:absolute}.xfaPrintOnly{display:none}.xfaLayer{position:absolute;text-align:initial;top:0;left:0;transform-origin:0 0;line-height:1.2}.xfaLayer *{color:inherit;font:inherit;font-style:inherit;font-weight:inherit;font-kerning:inherit;letter-spacing:-.01px;text-align:inherit;text-decoration:inherit;box-sizing:border-box;background-color:transparent;padding:0;margin:0;pointer-events:auto;line-height:inherit}.xfaLayer *:required{outline:1.5px solid red}.xfaLayer div,.xfaLayer svg,.xfaLayer svg *{pointer-events:none}.xfaLayer a{color:#00f}.xfaRich li{margin-left:3em}.xfaFont{color:#000;font-weight:400;font-kerning:none;font-size:10px;font-style:normal;letter-spacing:0;text-decoration:none;vertical-align:0}.xfaCaption{overflow:hidden;flex:0 0 auto}.xfaCaptionForCheckButton{overflow:hidden;flex:1 1 auto}.xfaLabel{height:100%;width:100%}.xfaLeft{display:flex;flex-direction:row;align-items:center}.xfaRight{display:flex;flex-direction:row-reverse;align-items:center}:is(.xfaLeft,.xfaRight)>:is(.xfaCaption,.xfaCaptionForCheckButton){max-height:100%}.xfaTop{display:flex;flex-direction:column;align-items:flex-start}.xfaBottom{display:flex;flex-direction:column-reverse;align-items:flex-start}:is(.xfaTop,.xfaBottom)>:is(.xfaCaption,.xfaCaptionForCheckButton){width:100%}.xfaBorder{background-color:transparent;position:absolute;pointer-events:none}.xfaWrapped{width:100%;height:100%}:is(.xfaTextfield,.xfaSelect):focus{background-image:none;background-color:transparent;outline:var(--xfa-focus-outline);outline-offset:-1px}:is(.xfaCheckbox,.xfaRadio):focus{outline:var(--xfa-focus-outline)}.xfaTextfield,.xfaSelect{height:100%;width:100%;flex:1 1 auto;border:none;resize:none;background-image:var(--xfa-unfocused-field-background)}.xfaSelect{padding-inline:2px}:is(.xfaTop,.xfaBottom)>:is(.xfaTextfield,.xfaSelect){flex:0 1 auto}.xfaButton{cursor:pointer;width:100%;height:100%;border:none;text-align:center}.xfaLink{width:100%;height:100%;position:absolute;top:0;left:0}.xfaCheckbox,.xfaRadio{width:100%;height:100%;flex:0 0 auto;border:none}.xfaRich{white-space:pre-wrap;width:100%;height:100%}.xfaImage{-o-object-position:left top;object-position:left top;-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.xfaLrTb,.xfaRlTb,.xfaTb{display:flex;flex-direction:column;align-items:stretch}.xfaLr{display:flex;flex-direction:row;align-items:stretch}.xfaRl{display:flex;flex-direction:row-reverse;align-items:stretch}.xfaTb>div{justify-content:left}.xfaPosition,.xfaArea{position:relative}.xfaValignMiddle{display:flex;align-items:center}.xfaTable{display:flex;flex-direction:column;align-items:stretch}.xfaTable .xfaRow{display:flex;flex-direction:row;align-items:stretch}.xfaTable .xfaRlRow{display:flex;flex-direction:row-reverse;align-items:stretch;flex:1}.xfaTable .xfaRlRow>div{flex:1}:is(.xfaNonInteractive,.xfaDisabled,.xfaReadOnly) :is(input,textarea){background:initial}@media print{.xfaTextfield,.xfaSelect{background:transparent}.xfaSelect{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:1px;text-overflow:""}}.canvasWrapper svg{transform:none}.moving:is(.canvasWrapper svg){z-index:100000}[data-main-rotation="90"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="90"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){transform:matrix(0,1,-1,0,1,0)}[data-main-rotation="180"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="180"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){transform:matrix(-1,0,0,-1,1,1)}[data-main-rotation="270"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="270"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){transform:matrix(0,-1,1,0,0,1)}.draw:is(.canvasWrapper svg){position:absolute;mix-blend-mode:normal}.draw[data-draw-rotation="90"]:is(.canvasWrapper svg){transform:rotate(90deg)}.draw[data-draw-rotation="180"]:is(.canvasWrapper svg){transform:rotate(180deg)}.draw[data-draw-rotation="270"]:is(.canvasWrapper svg){transform:rotate(270deg)}.highlight:is(.canvasWrapper svg){--blend-mode:multiply}@media screen and (forced-colors: active){.highlight:is(.canvasWrapper svg){--blend-mode:difference}}.highlight:is(.canvasWrapper svg){position:absolute;mix-blend-mode:var(--blend-mode)}.highlight:is(.canvasWrapper svg):not(.free){fill-rule:evenodd}.highlightOutline:is(.canvasWrapper svg){position:absolute;mix-blend-mode:normal;fill-rule:evenodd;fill:none}.highlightOutline.hovered:is(.canvasWrapper svg):not(.free):not(.selected){stroke:var(--hover-outline-color);stroke-width:var(--outline-width)}.highlightOutline.selected:is(.canvasWrapper svg):not(.free) .mainOutline{stroke:var(--outline-around-color);stroke-width:calc(var(--outline-width) + 2 * var(--outline-around-width))}.highlightOutline.selected:is(.canvasWrapper svg):not(.free) .secondaryOutline{stroke:var(--outline-color);stroke-width:var(--outline-width)}.highlightOutline.free.hovered:is(.canvasWrapper svg):not(.selected){stroke:var(--hover-outline-color);stroke-width:calc(2 * var(--outline-width))}.highlightOutline.free.selected:is(.canvasWrapper svg) .mainOutline{stroke:var(--outline-around-color);stroke-width:calc(2 * (var(--outline-width) + var(--outline-around-width)))}.highlightOutline.free.selected:is(.canvasWrapper svg) .secondaryOutline{stroke:var(--outline-color);stroke-width:calc(2 * var(--outline-width))}.toggle-button{--button-background-color:color-mix(in srgb, currentColor 7%, transparent);--button-background-color-hover:color-mix( in srgb, currentColor 14%, transparent );--button-background-color-active:color-mix( in srgb, currentColor 21%, transparent );--csstools-light-dark-toggle--35:var(--csstools-color-scheme--light) #0df;--color-accent-primary:var(--csstools-light-dark-toggle--35, #0060df);--csstools-light-dark-toggle--36:var(--csstools-color-scheme--light) #80ebff;--color-accent-primary-hover:var(--csstools-light-dark-toggle--36, #0250bb);--csstools-light-dark-toggle--37:var(--csstools-color-scheme--light) #aaf2ff;--color-accent-primary-active:var(--csstools-light-dark-toggle--37, #054096);--border-radius-circle:9999px;--border-width:1px;--size-item-small:16px;--size-item-large:32px;--csstools-light-dark-toggle--38:var(--csstools-color-scheme--light) #1c1b22;--color-canvas:var(--csstools-light-dark-toggle--38, white);--background-color-canvas:var(--color-canvas);--csstools-light-dark-toggle--39:var(--csstools-color-scheme--light) #f9f9fa;--border-color-interactive:var(--csstools-light-dark-toggle--39, #8f8f9d);--border-color-interactive-hover:var(--border-color-interactive);--border-color-interactive-active:var(--border-color-interactive)}@supports (color: light-dark(red,red)){.toggle-button{--color-accent-primary:light-dark(#0060df, #0df);--color-accent-primary-hover:light-dark(#0250bb, #80ebff);--color-accent-primary-active:light-dark(#054096, #aaf2ff);--color-canvas:light-dark(white, #1c1b22);--border-color-interactive:light-dark(#8f8f9d, #f9f9fa)}}@supports not (color: light-dark(tan,tan)){.toggle-button *{--csstools-light-dark-toggle--35:var(--csstools-color-scheme--light) #0df;--color-accent-primary:var(--csstools-light-dark-toggle--35, #0060df);--csstools-light-dark-toggle--36:var(--csstools-color-scheme--light) #80ebff;--color-accent-primary-hover:var(--csstools-light-dark-toggle--36, #0250bb);--csstools-light-dark-toggle--37:var(--csstools-color-scheme--light) #aaf2ff;--color-accent-primary-active:var(--csstools-light-dark-toggle--37, #054096);--csstools-light-dark-toggle--38:var(--csstools-color-scheme--light) #1c1b22;--color-canvas:var(--csstools-light-dark-toggle--38, white);--csstools-light-dark-toggle--39:var(--csstools-color-scheme--light) #f9f9fa;--border-color-interactive:var(--csstools-light-dark-toggle--39, #8f8f9d)}}@media (forced-colors: active){.toggle-button{--color-accent-primary:ButtonText;--color-accent-primary-hover:SelectedItem;--color-accent-primary-active:SelectedItem;--button-background-color:ButtonFace;--border-color-interactive:ButtonText;--border-color-interactive-hover:SelectedItem;--border-color-interactive-active:ButtonText;--color-canvas:ButtonText;--background-color-canvas:Canvas}}.toggle-button{--toggle-background-color:var(--button-background-color);--toggle-background-color-hover:var(--button-background-color-hover);--toggle-background-color-active:var(--button-background-color-active);--toggle-background-color-pressed:var(--color-accent-primary);--toggle-background-color-pressed-hover:var(--color-accent-primary-hover);--toggle-background-color-pressed-active:var(--color-accent-primary-active);--toggle-border-color:var(--border-color-interactive);--toggle-border-color-hover:var(--toggle-border-color);--toggle-border-color-active:var(--toggle-border-color);--toggle-border-radius:var(--border-radius-circle);--toggle-border-width:var(--border-width);--toggle-height:var(--size-item-small);--toggle-width:var(--size-item-large);--toggle-dot-background-color:var(--toggle-border-color);--toggle-dot-background-color-hover:var(--toggle-dot-background-color);--toggle-dot-background-color-active:var(--toggle-dot-background-color);--toggle-dot-background-color-on-pressed:var(--background-color-canvas);--toggle-dot-margin:1px;--toggle-dot-height:calc( var(--toggle-height) - 2 * var(--toggle-dot-margin) - 2 * var(--toggle-border-width) );--toggle-dot-width:var(--toggle-dot-height);--toggle-dot-transform-x:calc( var(--toggle-width) - 4 * var(--toggle-dot-margin) - var(--toggle-dot-width) );--input-width:var(--toggle-width);-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:var(--toggle-border-width) solid var(--toggle-border-color);height:var(--toggle-height);width:var(--toggle-width);border-radius:var(--toggle-border-radius);background-color:var(--toggle-background-color);box-sizing:border-box}.toggle-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}.toggle-button:enabled:hover{background-color:var(--toggle-background-color-hover);border-color:var(--toggle-border-color)}.toggle-button:enabled:hover:active{background-color:var(--toggle-background-color-active);border-color:var(--toggle-border-color)}.toggle-button:before{display:block;content:"";background-color:var(--toggle-dot-background-color);height:var(--toggle-dot-height);width:var(--toggle-dot-width);margin:var(--toggle-dot-margin);border-radius:var(--toggle-border-radius);translate:0}.toggle-button[aria-pressed=true]{background-color:var(--toggle-background-color-pressed);border-color:transparent}.toggle-button[aria-pressed=true]:enabled:hover{background-color:var(--toggle-background-color-pressed-hover);border-color:transparent}.toggle-button[aria-pressed=true]:enabled:hover:active{background-color:var(--toggle-background-color-pressed-active);border-color:transparent}.toggle-button[aria-pressed=true]:before{translate:var(--toggle-dot-transform-x);background-color:var(--toggle-dot-background-color-on-pressed)}.toggle-button[aria-pressed=true]:enabled:hover:before,.toggle-button[aria-pressed=true]:enabled:hover:active:before{background-color:var(--toggle-dot-background-color-on-pressed)}.toggle-button[aria-pressed=true]:-moz-locale-dir(rtl):before,[dir=rtl] .toggle-button[aria-pressed=true]:before{translate:calc(-1 * var(--toggle-dot-transform-x))}@media (prefers-reduced-motion: no-preference){.toggle-button:before{transition:translate .1s}}@media (prefers-contrast){.toggle-button:enabled:hover{border-color:var(--toggle-border-color-hover)}.toggle-button:enabled:hover:active{border-color:var(--toggle-border-color-active)}.toggle-button[aria-pressed=true]:enabled{border-color:var(--toggle-border-color);position:relative}.toggle-button[aria-pressed=true]:enabled:hover{border-color:var(--toggle-border-color-hover)}.toggle-button[aria-pressed=true]:enabled:hover:active{background-color:var(--toggle-dot-background-color-active);border-color:var(--toggle-dot-background-color-hover)}.toggle-button:enabled:hover:before,.toggle-button:enabled:hover:active:before{background-color:var(--toggle-dot-background-color-hover)}}@media (forced-colors){.toggle-button{--toggle-dot-background-color:var(--color-accent-primary);--toggle-dot-background-color-hover:var(--color-accent-primary-hover);--toggle-dot-background-color-active:var(--color-accent-primary-active);--toggle-dot-background-color-on-pressed:var(--button-background-color);--toggle-border-color-hover:var(--border-color-interactive-hover);--toggle-border-color-active:var(--border-color-interactive-active)}.toggle-button[aria-pressed=true]:enabled:after{border:1px solid var(--button-background-color);content:"";position:absolute;height:var(--toggle-height);width:var(--toggle-width);display:block;border-radius:var(--toggle-border-radius);top:-2px;right:-2px;bottom:-2px;left:-2px}.toggle-button[aria-pressed=true]:enabled:hover:active:after{border-color:var(--toggle-border-color-active)}}:root{--clear-signature-button-icon:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M11%203H13.6C14%203%2014.3%203.3%2014.3%203.6C14.3%203.9%2014%204.2%2013.7%204.2H13.3V14C13.3%2015.1%2012.4%2016%2011.3%2016H4.80005C3.70005%2016%202.80005%2015.1%202.80005%2014V4.2H2.40005C2.00005%204.2%201.80005%204%201.80005%203.6C1.80005%203.2%202.00005%203%202.40005%203H5.00005V2C5.00005%200.9%205.90005%200%207.00005%200H9.00005C10.1%200%2011%200.9%2011%202V3ZM6.90005%201.2L6.30005%201.8V3H9.80005V1.8L9.20005%201.2H6.90005ZM11.4%2014.7L12%2014.1V4.2H4.00005V14.1L4.60005%2014.7H11.4ZM7.00005%2012.4C7.00005%2012.7%206.70005%2013%206.40005%2013C6.10005%2013%205.80005%2012.7%205.80005%2012.4V7.6C5.70005%207.3%206.00005%207%206.40005%207C6.80005%207%207.00005%207.3%207.00005%207.6V12.4ZM10.2001%2012.4C10.2001%2012.7%209.90006%2013%209.60006%2013C9.30006%2013%209.00006%2012.7%209.00006%2012.4V7.6C9.00006%207.3%209.30006%207%209.60006%207C9.90006%207%2010.2001%207.3%2010.2001%207.6V12.4Z'%20fill='black'%20/%3e%3c/svg%3e");--csstools-light-dark-toggle--40:var(--csstools-color-scheme--light) #2b2a33;--signature-bg:var(--csstools-light-dark-toggle--40, #f9f9fb);--csstools-light-dark-toggle--41:var(--csstools-color-scheme--light) var(--signature-bg);--signature-hover-bg:var(--csstools-light-dark-toggle--41, #f0f0f4);--button-signature-bg:transparent;--button-signature-color:var(--main-color);--csstools-light-dark-toggle--42:var(--csstools-color-scheme--light) #5b5b66;--button-signature-active-bg:var(--csstools-light-dark-toggle--42, #cfcfd8);--button-signature-active-border:none;--button-signature-active-color:var(--button-signature-color);--button-signature-border:none;--csstools-light-dark-toggle--43:var(--csstools-color-scheme--light) #52525e;--button-signature-hover-bg:var(--csstools-light-dark-toggle--43, #e0e0e6);--button-signature-hover-color:var(--button-signature-color)}@supports (color: light-dark(red,red)){:root{--signature-bg:light-dark(#f9f9fb, #2b2a33);--signature-hover-bg:light-dark(#f0f0f4, var(--signature-bg));--button-signature-active-bg:light-dark(#cfcfd8, #5b5b66);--button-signature-hover-bg:light-dark(#e0e0e6, #52525e)}}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--40:var(--csstools-color-scheme--light) #2b2a33;--signature-bg:var(--csstools-light-dark-toggle--40, #f9f9fb);--csstools-light-dark-toggle--41:var(--csstools-color-scheme--light) var(--signature-bg);--signature-hover-bg:var(--csstools-light-dark-toggle--41, #f0f0f4);--csstools-light-dark-toggle--42:var(--csstools-color-scheme--light) #5b5b66;--button-signature-active-bg:var(--csstools-light-dark-toggle--42, #cfcfd8);--csstools-light-dark-toggle--43:var(--csstools-color-scheme--light) #52525e;--button-signature-hover-bg:var(--csstools-light-dark-toggle--43, #e0e0e6)}}@media screen and (forced-colors: active){:root{--signature-bg:HighlightText;--signature-hover-bg:var(--signature-bg);--button-signature-bg:HighlightText;--button-signature-color:ButtonText;--button-signature-active-bg:ButtonText;--button-signature-active-color:HighlightText;--button-signature-border:1px solid ButtonText;--button-signature-hover-bg:Highlight;--button-signature-hover-color:HighlightText}}.signatureDialog{--primary-color:var(--text-primary-color);--border-color:#8f8f9d;--open-link-fg:var(--link-fg-color);--open-link-hover-fg:var(--link-hover-fg-color)}@media screen and (forced-colors: active){.signatureDialog{--primary-color:ButtonText;--border-color:ButtonText;--open-link-fg:ButtonText;--open-link-hover-fg:ButtonText}}.signatureDialog{width:570px;max-width:100%;min-width:300px;padding:16px 0}.signatureDialog .mainContainer{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:12px}:is(.signatureDialog .mainContainer) span:not([role=sectionhead]){font-size:13px;font-style:normal;font-weight:400;line-height:normal}:is(.signatureDialog .mainContainer) .title{margin-inline-start:16px}.signatureDialog .inputWithClearButton{--button-dimension:24px;--clear-button-icon:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.85822%208.84922L4.85322%2011.8542C4.75891%2011.9453%204.63261%2011.9957%204.50151%2011.9946C4.37042%2011.9934%204.24501%2011.9408%204.15231%2011.8481C4.0596%2011.7554%204.00702%2011.63%204.00588%2011.4989C4.00474%2011.3678%204.05514%2011.2415%204.14622%2011.1472L7.15122%208.14222V7.85922L4.14622%204.85322C4.05514%204.75891%204.00474%204.63261%204.00588%204.50151C4.00702%204.37042%204.0596%204.24501%204.15231%204.15231C4.24501%204.0596%204.37042%204.00702%204.50151%204.00588C4.63261%204.00474%204.75891%204.05514%204.85322%204.14622L7.85822%207.15122H8.14122L11.1462%204.14622C11.2405%204.05514%2011.3668%204.00474%2011.4979%204.00588C11.629%204.00702%2011.7544%204.0596%2011.8471%204.15231C11.9398%204.24501%2011.9924%204.37042%2011.9936%204.50151C11.9947%204.63261%2011.9443%204.75891%2011.8532%204.85322L8.84822%207.85922V8.14222L11.8532%2011.1472C11.9443%2011.2415%2011.9947%2011.3678%2011.9936%2011.4989C11.9924%2011.63%2011.9398%2011.7554%2011.8471%2011.8481C11.7544%2011.9408%2011.629%2011.9934%2011.4979%2011.9946C11.3668%2011.9957%2011.2405%2011.9453%2011.1462%2011.8542L8.14122%208.84922L8.14222%208.85022L7.85822%208.84922Z'%20fill='black'/%3e%3c/svg%3e");width:100%;position:relative;display:flex;align-items:center;justify-content:center}:is(.signatureDialog .inputWithClearButton)>input{width:100%;height:32px;padding-inline:8px calc(4px + var(--button-dimension));box-sizing:border-box;border-radius:4px;border:1px solid var(--border-color)}:is(.signatureDialog .inputWithClearButton) .clearInputButton{position:absolute;inset-block-start:4px;inset-inline-end:4px;display:inline-block;width:var(--button-dimension);height:var(--button-dimension);background-color:var(--input-text-fg-color);-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--clear-button-icon);mask-image:var(--clear-button-icon);padding:0;border:0}#addSignatureDialog{--secondary-color:var(--text-secondary-color);--bg-hover:#e0e0e6;--tab-top-line-active-color:#0060df;--tab-top-line-active-hover-color:var(--tab-text-hover-color);--tab-top-line-hover-color:#8f8f9d;--tab-top-line-inactive-color:#cfcfd8;--tab-bottom-line-active-color:var(--tab-top-line-inactive-color);--tab-bottom-line-hover-color:var(--tab-top-line-inactive-color);--tab-bottom-line-inactive-color:var(--tab-top-line-inactive-color);--tab-bg:var(--dialog-bg-color);--tab-bg-active-color:var(--tab-bg);--tab-bg-active-hover-color:var(--bg-hover);--tab-bg-hover:var(--bg-hover);--tab-panel-border:none;--tab-panel-border-radius:4px;--tab-text-color:var(--primary-color);--tab-text-active-color:var(--tab-top-line-active-color);--tab-text-active-hover-color:var(--tab-text-hover-color);--tab-text-hover-color:var(--tab-text-color);--signature-placeholder-color:var(--secondary-color);--signature-draw-placeholder-color:var(--primary-color);--signature-color:var(--primary-color);--clear-signature-button-border-width:0;--clear-signature-button-border-style:solid;--clear-signature-button-border-color:transparent;--clear-signature-button-border-disabled-color:transparent;--clear-signature-button-color:var(--primary-color);--clear-signature-button-hover-color:var(--clear-signature-button-color);--clear-signature-button-active-color:var(--clear-signature-button-color);--clear-signature-button-disabled-color:var(--clear-signature-button-color);--clear-signature-button-focus-color:var(--clear-signature-button-color);--clear-signature-button-bg:var(--dialog-bg-color);--clear-signature-button-bg-hover:var(--bg-hover);--clear-signature-button-bg-active:#cfcfd8;--clear-signature-button-bg-focus:#f0f0f4;--clear-signature-button-bg-disabled:color-mix( in srgb, #f0f0f4, transparent 40% );--save-warning-color:var(--secondary-color);--thickness-bg:var(--dialog-bg-color);--thickness-label-color:var(--primary-color);--thickness-slider-color:var(--primary-color);--thickness-border:none;--draw-cursor:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0.0189877%2013.6645L0.612989%2010.4635C0.687989%2010.0545%200.884989%209.6805%201.18099%209.3825L9.98199%200.5805C10.756%20-0.1925%2012.015%20-0.1945%2012.792%200.5805L14.42%202.2085C15.194%202.9835%2015.194%204.2435%2014.42%205.0185L5.61599%2013.8215C5.31999%2014.1165%204.94599%2014.3125%204.53799%2014.3875L1.33599%2014.9815C1.26599%2014.9935%201.19799%2015.0005%201.12999%2015.0005C0.832989%2015.0005%200.544988%2014.8835%200.330988%2014.6695C0.0679874%2014.4055%20-0.0490122%2014.0305%200.0189877%2013.6645Z'%20fill='white'/%3e%3cpath%20d='M0.0189877%2013.6645L0.612989%2010.4635C0.687989%2010.0545%200.884989%209.6805%201.18099%209.3825L9.98199%200.5805C10.756%20-0.1925%2012.015%20-0.1945%2012.792%200.5805L14.42%202.2085C15.194%202.9835%2015.194%204.2435%2014.42%205.0185L5.61599%2013.8215C5.31999%2014.1165%204.94599%2014.3125%204.53799%2014.3875L1.33599%2014.9815C1.26599%2014.9935%201.19799%2015.0005%201.12999%2015.0005C0.832989%2015.0005%200.544988%2014.8835%200.330988%2014.6695C0.0679874%2014.4055%20-0.0490122%2014.0305%200.0189877%2013.6645ZM12.472%205.1965L13.632%204.0365L13.631%203.1885L11.811%201.3675L10.963%201.3685L9.80299%202.5285L12.472%205.1965ZM4.31099%2013.1585C4.47099%2013.1285%204.61799%2013.0515%204.73399%2012.9345L11.587%206.0815L8.91899%203.4135L2.06599%2010.2655C1.94899%2010.3835%201.87199%2010.5305%201.84099%2010.6915L1.36699%2013.2485L1.75199%2013.6335L4.31099%2013.1585Z'%20fill='black'/%3e%3c/svg%3e") 0 16, pointer}@media (prefers-color-scheme: dark){#addSignatureDialog{--dialog-bg-color:#42414d;--bg-hover:#52525e;--primary-color:#fbfbfe;--secondary-color:#cfcfd8;--tab-top-line-active-color:#0df;--tab-top-line-inactive-color:#8f8f9d;--clear-signature-button-bg-active:#5b5b66;--clear-signature-button-bg-focus:#2b2a33;--clear-signature-button-bg-disabled:color-mix( in srgb, #2b2a33, transparent 40% )}}@media screen and (forced-colors: active){#addSignatureDialog{--secondary-color:ButtonText;--bg:HighlightText;--bg-hover:var(--bg);--tab-top-line-active-color:ButtonText;--tab-top-line-active-hover-color:HighlightText;--tab-top-line-hover-color:SelectedItem;--tab-top-line-inactive-color:ButtonText;--tab-bottom-line-active-color:var(--tab-top-line-active-color);--tab-bottom-line-hover-color:var(--tab-top-line-hover-color);--tab-bg:var(--bg);--tab-bg-active-color:SelectedItem;--tab-bg-active-hover-color:SelectedItem;--tab-panel-border:1px solid ButtonText;--tab-panel-border-radius:8px;--tab-text-color:ButtonText;--tab-text-active-color:HighlightText;--tab-text-active-hover-color:HighlightText;--tab-text-hover-color:SelectedItem;--signature-color:ButtonText;--clear-signature-button-border-width:1px;--clear-signature-button-border-style:solid;--clear-signature-button-border-color:ButtonText;--clear-signature-button-border-disabled-color:GrayText;--clear-signature-button-color:ButtonText;--clear-signature-button-hover-color:HighlightText;--clear-signature-button-active-color:SelectedItem;--clear-signature-button-focus-color:CanvasText;--clear-signature-button-disabled-color:GrayText;--clear-signature-button-bg:var(--bg);--clear-signature-button-bg-hover:SelectedItem;--clear-signature-button-bg-active:var(--bg);--clear-signature-button-bg-focus:var(--bg);--clear-signature-button-bg-disabled:var(--bg);--thickness-bg:Canvas;--thickness-label-color:CanvasText;--thickness-slider-color:ButtonText;--thickness-border:1px solid var(--border-color)}}#addSignatureDialog #addSignatureDialogLabel{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0}#addSignatureDialog.waiting:after{content:"";cursor:wait;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}:is(#addSignatureDialog .mainContainer) [role=tablist]{width:100%;display:flex;align-items:flex-start;gap:0}:is(:is(#addSignatureDialog .mainContainer) [role=tablist])>[role=tab]{flex:1 0 0;align-self:stretch;background-color:var(--tab-bg);padding-inline:0;cursor:default;border-inline:0;border-block-width:1px;border-block-style:solid;border-block-start-color:var(--tab-top-line-inactive-color);border-block-end-color:var(--tab-bottom-line-inactive-color);border-radius:0;font:menu;font-size:13px;font-style:normal;line-height:normal;font-weight:400;color:var(--tab-text-color)}:is(:is(:is(#addSignatureDialog .mainContainer) [role=tablist])>[role=tab]):hover{border-block-start-width:2px;border-block-start-color:var(--tab-top-line-hover-color);border-block-end-color:var(--tab-bottom-line-hover-color);background-color:var(--tab-bg-hover);color:var(--tab-text-hover-color)}:is(:is(:is(#addSignatureDialog .mainContainer) [role=tablist])>[role=tab]):focus-visible{outline:2px solid var(--tab-top-line-active-color);outline-offset:-2px}[aria-selected=true]:is(:is(:is(#addSignatureDialog .mainContainer) [role=tablist])>[role=tab]){border-block-start-width:2px;border-block-start-color:var(--tab-top-line-active-color);border-block-end-color:var(--tab-bottom-line-active-color);background-color:var(--tab-bg-active-color);font-weight:590;color:var(--tab-text-active-color)}[aria-selected=true]:is(:is(:is(#addSignatureDialog .mainContainer) [role=tablist])>[role=tab]):hover{border-block-start-color:var(--tab-top-line-active-hover-color);background-color:var(--tab-bg-active-hover-color);color:var(--tab-text-active-hover-color)}:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer{width:100%;height:auto;display:flex;flex-direction:column;align-items:flex-end;align-self:stretch;gap:12px;padding-inline:16px;box-sizing:border-box}:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]{position:relative;width:100%;height:220px;background-color:var(--signature-bg);border:var(--tab-panel-border);border-radius:var(--tab-panel-border-radius)}:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel])>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:transparent}#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]){display:none}#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureTypeInput{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;padding:0;text-align:center;color:var(--signature-color);background-color:transparent;border-radius:var(--tab-panel-border-radius);font-family:Brush script,Apple Chancery,Segoe script,Freestyle Script,Palace Script MT,Brush Script MT,TK,cursive,serif;font-size:44px;font-style:italic;font-weight:400}:is(#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureTypeInput)::-moz-placeholder{color:var(--signature-placeholder-color);text-align:center;font:menu;font-style:normal;font-weight:274;font-size:44px;line-height:normal}:is(#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureTypeInput)::placeholder{color:var(--signature-placeholder-color);text-align:center;font:menu;font-style:normal;font-weight:274;font-size:44px;line-height:normal}#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]){display:none}#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel])>span{position:absolute;top:0;left:0;width:100%;height:100%;display:grid;align-items:center;justify-content:center;background-color:transparent;color:var(--signature-placeholder-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel])>svg{stroke:var(--signature-color);fill:none;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel])>svg):hover{cursor:var(--draw-cursor)}#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness{position:absolute;width:100%;inset-block-end:0;display:grid;align-items:center;justify-content:center;pointer-events:none}:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>span{color:var(--signature-draw-placeholder-color)}:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div{width:auto;height:auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 8px 7px;margin:0;background-color:var(--thickness-bg);border-radius:4px 4px 0 0;border-inline:var(--thickness-border);border-top:var(--thickness-border);pointer-events:auto;position:relative;top:1px}:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>label{color:var(--thickness-label-color)}:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>input{width:100px;height:14px;background-color:transparent}:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>input)::-webkit-slider-runnable-track,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>input)::-moz-range-track,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>input)::-moz-range-progress{background-color:var(--thickness-slider-color)}:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>input)::-webkit-slider-thumb,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>input)::-moz-range-thumb{background-color:var(--thickness-bg)}:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #thickness)>div)>input{border-radius:4.5px;border:0;color:var(--signature-color)}#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]){display:none}#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel])>svg{stroke:none;stroke-width:0;fill:var(--signature-color);fill-opacity:1}#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureImagePlaceholder{position:absolute;top:0;left:0;width:100%;height:100%;background-color:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center}:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureImagePlaceholder) span{color:var(--signature-placeholder-color)}:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureImagePlaceholder) a{color:var(--open-link-fg);text-decoration:underline;cursor:pointer}:is(:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureImagePlaceholder) a):hover{color:var(--open-link-hover-fg)}#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>[role=tabpanel]) #addSignatureFilePicker{visibility:hidden;position:relative;width:0;height:0}[data-selected=type]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>#addSignatureTypeContainer,[data-selected=draw]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>#addSignatureDrawContainer,[data-selected=image]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)>#addSignatureImageContainer{display:block}:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;align-self:stretch}:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer{display:flex;align-items:flex-end;gap:16px;align-self:stretch}:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1 0 0}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer):has(input:disabled)>label{opacity:.4}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer)>label{width:auto}:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton{display:flex;height:32px;padding:4px 8px;align-items:center;background-color:var(--clear-signature-button-bg);border-width:var(--clear-signature-button-border-width);border-style:var(--clear-signature-button-border-style);border-color:var(--clear-signature-button-border-color);border-radius:4px}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton)>span{display:flex;height:24px;align-items:center;gap:4px;flex-shrink:0;color:var(--clear-signature-button-color)}:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton)>span):after{content:"";display:inline-block;width:16px;height:16px;-webkit-mask-image:var(--clear-signature-button-icon);mask-image:var(--clear-signature-button-icon);-webkit-mask-size:cover;mask-size:cover;background-color:var(--clear-signature-button-color);flex-shrink:0}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover{background-color:var(--clear-signature-button-bg-hover)}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover>span{color:var(--clear-signature-button-hover-color)}:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover>span):after{background-color:var(--clear-signature-button-hover-color)}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active{background-color:var(--clear-signature-button-bg-active)}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active>span{color:var(--clear-signature-button-active-color)}:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active>span):after{background-color:var(--clear-signature-button-active-color)}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible{background-color:var(--clear-signature-button-bg-focus)}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible>span{color:var(--clear-signature-button-focus-color)}:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible>span):after{background-color:var(--clear-signature-button-focus-color)}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled{background-color:var(--clear-signature-button-bg-disabled);border-color:var(--clear-signature-button-border-disabled-color)}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled>span{color:var(--clear-signature-button-disabled-color)}:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled>span):after{background-color:var( --clear-signature-button-disabled-color )}:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer{display:grid;grid-template-columns:max-content auto;gap:4px;width:100%}:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer)>input{margin:0}:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer)>input):disabled+label{opacity:.4}:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer)>label{-webkit-user-select:none;-moz-user-select:none;user-select:none}:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer):not(.fullStorage) #addSignatureSaveWarning{display:none}.fullStorage:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer) #addSignatureSaveWarning{display:block;opacity:1;color:var(--save-warning-color);font-size:11px}#editSignatureDescriptionDialog .mainContainer{padding-inline:16px;box-sizing:border-box}:is(#editSignatureDescriptionDialog .mainContainer) .title{margin-inline-start:0}:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView{width:auto;display:flex;justify-content:flex-end;align-items:flex-start;gap:12px;align-self:stretch}:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) #editSignatureDescriptionContainer{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1 1 auto}:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView)>svg{width:210px;height:180px;padding:8px;background-color:var(--signature-bg)}:is(:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView)>svg)>path{stroke:var(--button-signature-color);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;vector-effect:non-scaling-stroke;fill:none}.contours:is(:is(:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView)>svg)>path){fill:var(--button-signature-color);stroke-width:.5px}#editorSignatureParamsToolbar{padding:8px}#editorSignatureParamsToolbar #addSignatureDoorHanger{gap:8px;padding:2px}:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer{height:32px;display:flex;justify-content:space-between;align-items:center;align-self:stretch;gap:8px}:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button{border:var(--button-signature-border);border-radius:4px;background-color:var(--button-signature-bg);color:var(--button-signature-color)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):hover{background-color:var(--button-signature-hover-bg)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):active{border:var(--button-signature-active-border);background-color:var(--button-signature-active-bg);color:var(--button-signature-active-color)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):active:before{background-color:var(--button-signature-active-color)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):focus-visible{outline:var(--focus-ring-outline)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):focus-visible:before{background-color:var(--button-signature-color)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .deleteButton):before{-webkit-mask-image:var(--clear-signature-button-icon);mask-image:var(--clear-signature-button-icon)}:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton{width:calc(.8 * var(--editor-toolbar-min-width));height:100%;min-height:var(--menuitem-height);aspect-ratio:unset;display:flex;align-items:center;justify-content:flex-start;outline:none;border-radius:4px;box-sizing:border-box;font:message-box;position:relative;flex:1 1 auto;padding:0;gap:8px;text-align:start;white-space:normal;cursor:default;overflow:hidden}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton)>svg{display:inline-block;height:100%;aspect-ratio:1;background-color:var(--signature-bg);flex:none;padding:4px;box-sizing:border-box;border:none;border-radius:4px}:is(:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton)>svg)>path{stroke:var(--button-signature-color);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;vector-effect:non-scaling-stroke;fill:none}.contours:is(:is(:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton)>svg)>path){fill:var(--button-signature-color);stroke-width:.5px}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):is(:hover,:active)>svg{border-radius:4px 0 0 4px;background-color:var(--signature-hover-bg)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):hover>span{color:var(--button-signature-hover-color)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):active{background-color:var(--button-signature-active-bg)}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):is([disabled=disabled],[disabled]){opacity:.5;pointer-events:none}:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton)>span{height:auto;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;font:menu;font-size:13px;font-style:normal;font-weight:400;line-height:normal;overflow:hidden}.editDescription.altText{--alt-text-add-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='17'%20viewBox='0%200%2016%2017'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9815%2014.3461L14.3875%2011.1451C14.3125%2010.7361%2014.1155%2010.3621%2013.8195%2010.0641L5.0185%201.26214C4.2445%200.489141%202.9855%200.487141%202.2085%201.26214L0.5805%202.89014C-0.1935%203.66514%20-0.1935%204.92514%200.5805%205.70014L9.3845%2014.5031C9.6805%2014.7981%2010.0545%2014.9941%2010.4625%2015.0691L13.6645%2015.6631C13.7345%2015.6751%2013.8025%2015.6821%2013.8705%2015.6821C14.1675%2015.6821%2014.4555%2015.5651%2014.6695%2015.3511C14.9325%2015.0871%2015.0495%2014.7121%2014.9815%2014.3461ZM2.5285%205.87814L1.3685%204.71814L1.3695%203.87014L3.1895%202.04914L4.0375%202.05014L5.1975%203.21014L2.5285%205.87814ZM10.6895%2013.8401C10.5295%2013.8101%2010.3825%2013.7331%2010.2665%2013.6161L3.4135%206.76314L6.0815%204.09514L12.9345%2010.9471C13.0515%2011.0651%2013.1285%2011.2121%2013.1595%2011.3731L13.6335%2013.9301L13.2485%2014.3151L10.6895%2013.8401Z'%20fill='black'/%3e%3c/svg%3e") !important}.editDescription.altText:before{width:16px!important;height:16px!important}#commentManagerDialog{--comment-actions-button-icon:url(images/comment-actionsButton.svg);--comment-close-button-icon:url(images/comment-closeButton.svg);--default-dialog-bg-color:#ffff98;--dialog-base-color:var(--default-dialog-bg-color);--dialog-bg-color:color-mix(in srgb, var(--dialog-base-color), white 30%);--dialog-border-color:var(--dialog-base-color);--menuitem-bg-color:transparent;--menuitem-fg-color:black;--menuitem-hover-bg-color:#3383e7;--menuitem-hover-fg-color:white;--comment-text-input-bg:white;--comment-text-input-fg:black;--comment-text-input-border:#0060df;--comment-focus-outline-color:#0060df;--hover-filter:brightness(.9);--text-primary-color:#15141a;--button-secondary-bg-color:#f0f0f4;--button-secondary-active-bg-color:color-mix( in srgb, var(--button-secondary-bg-color), black 14% );--button-secondary-hover-bg-color:color-mix( in srgb, var(--button-secondary-bg-color), black 7% );--button-primary-bg-color:#0060df;--button-primary-fg-color:#fbfbfe;--button-primary-active-bg-color:#0050c0;--button-primary-hover-bg-color:#0250bb;--menu-bg-color:rgb(253 250 244);--menu-button-border-color:transparent;--menu-button-focus-outline-color:var(--comment-text-input-border)}@media screen and (forced-colors: active){#commentManagerDialog{--hover-filter:none;--text-primary-color:CanvasText;--button-secondary-bg-color:HighlightText;--button-secondary-active-bg-color:HighlightText;--button-secondary-hover-bg-color:HighlightText;--button-primary-bg-color:ButtonText;--button-primary-fg-color:HighlightText;--button-primary-active-bg-color:SelectedItem;--button-primary-hover-bg-color:SelectedItem;--menu-button-border-color:Canvas;--menu-button-focus-outline-color:CanvasText}}#commentManagerDialog{width:308px;padding:8px 16px 16px;overflow:visible;position:absolute;margin:0;border-radius:4px;border:1px solid var(--dialog-border-color);background:var(--dialog-bg-color);box-shadow:0 2px 14px #3a394433}#commentManagerDialog .mainContainer{width:100%;height:auto;display:flex;flex-direction:column;align-items:flex-start;gap:4px}:is(#commentManagerDialog .mainContainer) *:focus-visible{outline:2px solid var(--comment-focus-outline-color);outline-offset:0}:is(#commentManagerDialog .mainContainer) #commentManagerToolbar{width:100%;display:flex;justify-content:flex-end;align-items:flex-start;gap:8px;align-self:stretch;cursor:move}:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar)>button{--csstools-color-scheme--light:initial;color-scheme:light;width:24px;height:24px;padding:0;border:none;cursor:pointer}:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar)>button):before{content:"";display:inline-block;width:100%;height:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}#commentActionsButton:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar)>button):before{-webkit-mask-image:var(--comment-actions-button-icon);mask-image:var(--comment-actions-button-icon)}#commentCloseButton:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar)>button):before{-webkit-mask-image:var(--comment-close-button-icon);mask-image:var(--comment-close-button-icon)}:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar)>button)>span{display:inline-block;width:0;height:0;overflow:hidden}:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar) menu{width:-moz-max-content;width:max-content;min-width:90px;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 6px;cursor:auto;z-index:1;margin:0;position:absolute;top:8px;right:-6.5px;border-radius:6px;border:.5px solid #b4b4b6;background-color:var(--menu-bg-color);box-shadow:1px -1px #fff inset,-1px 1px #fff inset,-1px -1px #fff inset,1px 1px #fff inset,0 0 15px #00000040}:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar) menu) button{background-color:var(--menu-bg-color);width:100%;height:24px;padding:0;box-sizing:border-box;display:flex;border:2px solid var(--menu-button-border-color);color:var(--menuitem-fg-color)}:is(:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar) menu) button):hover{background-color:var(--menuitem-hover-bg-color);color:var(--menuitem-hover-fg-color)}:is(:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar) menu) button):is(:focus-visible,:focus){outline:none;border:2px solid var(--menu-button-focus-outline-color)}:is(:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar) menu) button):disabled{opacity:.5;pointer-events:none}:is(:is(:is(:is(#commentManagerDialog .mainContainer) #commentManagerToolbar) menu) button) span{align-content:center;width:100%;max-width:-moz-min-content;max-width:min-content;padding-inline:8px;color:inherit;text-align:start;font:menu;font-size:15px;font-weight:400;line-height:normal}:is(#commentManagerDialog .mainContainer) #commentManagerTextInput{width:100%;min-height:132px;resize:none;box-sizing:border-box;margin-bottom:12px;border-radius:4px;border:2px solid var(--comment-text-input-border);background-color:var(--comment-text-input-bg);color:var(--comment-text-input-fg)}:is(#commentManagerDialog .mainContainer) #commentManagerTextView{width:100%;height:-moz-max-content;height:max-content;resize:none;box-sizing:border-box;margin-bottom:12px;border:none;background-color:transparent;color:var(--comment-text-input-fg)}:is(#commentManagerDialog .mainContainer) .dialogButtonsGroup{gap:8px}:is(:is(#commentManagerDialog .mainContainer) .dialogButtonsGroup) #commentManagerSaveButton:disabled{background-color:color-mix(in srgb,var(--button-primary-disabled-bg-color),transparent 50%);border-color:color-mix(in srgb,var(--button-primary-disabled-border-color),transparent 50%);opacity:1}.annotationLayer{--comment-inline-button-bg:#e0e0e6;--comment-inline-button-fg:black;--comment-inline-button-border-color:#8f8f9d;--comment-button-dim:24px;--comment-button-offset:calc(var(--comment-button-dim) / 2)}.annotationLayer .annotationCommentButton{position:absolute;width:var(--comment-button-dim);height:var(--comment-button-dim);background-color:var(--comment-inline-button-bg);cursor:auto;z-index:1;border:1px solid var(--comment-inline-button-border-color);border-radius:4px;padding:2px;margin:0;box-sizing:border-box;pointer-events:auto}:is(.annotationLayer .annotationCommentButton):before{content:"";display:inline-block;width:100%;height:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--comment-edit-image);mask-image:var(--comment-edit-image);background-color:var(--comment-inline-button-fg);margin:0;padding:0}:root{--editor-toolbar-vert-offset:6px;--outline-width:2px;--outline-color:#0060df;--outline-around-width:1px;--outline-around-color:#f0f0f4;--hover-outline-around-color:var(--outline-around-color);--focus-outline:solid var(--outline-width) var(--outline-color);--unfocus-outline:solid var(--outline-width) transparent;--focus-outline-around:solid var(--outline-around-width) var(--outline-around-color);--hover-outline-color:#8f8f9d;--hover-outline:solid var(--outline-width) var(--hover-outline-color);--hover-outline-around:solid var(--outline-around-width) var(--hover-outline-around-color);--freetext-line-height:1.35;--freetext-padding:2px;--resizer-bg-color:var(--outline-color);--resizer-size:6px;--resizer-shift:calc( 0px - (var(--outline-width) + var(--resizer-size)) / 2 - var(--outline-around-width) );--editorFreeText-editing-cursor:text;--editorInk-editing-cursor:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0.0189877%2013.6645L0.612989%2010.4635C0.687989%2010.0545%200.884989%209.6805%201.18099%209.3825L9.98199%200.5805C10.756%20-0.1925%2012.015%20-0.1945%2012.792%200.5805L14.42%202.2085C15.194%202.9835%2015.194%204.2435%2014.42%205.0185L5.61599%2013.8215C5.31999%2014.1165%204.94599%2014.3125%204.53799%2014.3875L1.33599%2014.9815C1.26599%2014.9935%201.19799%2015.0005%201.12999%2015.0005C0.832989%2015.0005%200.544988%2014.8835%200.330988%2014.6695C0.0679874%2014.4055%20-0.0490122%2014.0305%200.0189877%2013.6645Z'%20fill='white'/%3e%3cpath%20d='M0.0189877%2013.6645L0.612989%2010.4635C0.687989%2010.0545%200.884989%209.6805%201.18099%209.3825L9.98199%200.5805C10.756%20-0.1925%2012.015%20-0.1945%2012.792%200.5805L14.42%202.2085C15.194%202.9835%2015.194%204.2435%2014.42%205.0185L5.61599%2013.8215C5.31999%2014.1165%204.94599%2014.3125%204.53799%2014.3875L1.33599%2014.9815C1.26599%2014.9935%201.19799%2015.0005%201.12999%2015.0005C0.832989%2015.0005%200.544988%2014.8835%200.330988%2014.6695C0.0679874%2014.4055%20-0.0490122%2014.0305%200.0189877%2013.6645ZM12.472%205.1965L13.632%204.0365L13.631%203.1885L11.811%201.3675L10.963%201.3685L9.80299%202.5285L12.472%205.1965ZM4.31099%2013.1585C4.47099%2013.1285%204.61799%2013.0515%204.73399%2012.9345L11.587%206.0815L8.91899%203.4135L2.06599%2010.2655C1.94899%2010.3835%201.87199%2010.5305%201.84099%2010.6915L1.36699%2013.2485L1.75199%2013.6335L4.31099%2013.1585Z'%20fill='black'/%3e%3c/svg%3e") 0 16, pointer;--editorHighlight-editing-cursor:url(/assets/cursor-editorTextHighlight-kG3uUOwL.svg) 24 24, text;--editorFreeHighlight-editing-cursor:url("data:image/svg+xml,%3csvg%20width='18'%20height='19'%20viewBox='0%200%2018%2019'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.2%203.09C12.28%203.01%2012.43%203%2012.43%203C12.48%203%2012.58%203.02%2012.66%203.1L14.45%204.89C14.58%205.02%2014.58%205.22%2014.45%205.35L11.7713%208.02872L9.51628%205.77372L12.2%203.09ZM13.2658%205.12L11.7713%206.6145L10.9305%205.77372L12.425%204.27921L13.2658%205.12Z'%20fill='%23FBFBFE'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M5.98%209.32L8.23%2011.57L10.7106%209.08938L8.45562%206.83438L5.98%209.31V9.32ZM8.23%2010.1558L9.29641%209.08938L8.45562%208.24859L7.38921%209.315L8.23%2010.1558Z'%20fill='%23FBFBFE'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.1526%2013.1816L16.2125%207.1217C16.7576%206.58919%2017.05%205.8707%2017.05%205.12C17.05%204.36931%2016.7576%203.65084%2016.2126%203.11834L14.4317%201.33747C13.8992%200.79242%2013.1807%200.5%2012.43%200.5C11.6643%200.5%2010.9529%200.812929%2010.4329%201.33289L3.68289%208.08289C3.04127%208.72452%203.00459%209.75075%203.57288%2010.4363L1.29187%2012.7239C1.09186%2012.9245%200.990263%2013.1957%201.0007%2013.4685L1%2014.5C0.447715%2014.5%200%2014.9477%200%2015.5V17.5C0%2018.0523%200.447715%2018.5%201%2018.5H16C16.5523%2018.5%2017%2018.0523%2017%2017.5V15.5C17%2014.9477%2016.5523%2014.5%2016%2014.5H10.2325C9.83594%2014.5%209.39953%2013.9347%2010.1526%2013.1816ZM4.39%209.85L4.9807%2010.4407L2.39762%2013.0312H6.63877L7.10501%2012.565L7.57125%2013.0312H8.88875L15.51%206.41C15.86%206.07%2016.05%205.61%2016.05%205.12C16.05%204.63%2015.86%204.17%2015.51%203.83L13.72%202.04C13.38%201.69%2012.92%201.5%2012.43%201.5C11.94%201.5%2011.48%201.7%2011.14%202.04L4.39%208.79C4.1%209.08%204.1%209.56%204.39%209.85ZM16%2017.5V15.5H1V17.5H16Z'%20fill='%23FBFBFE'/%3e%3cpath%20d='M15.1616%206.05136L15.1616%206.05132L15.1564%206.05645L8.40645%2012.8064C8.35915%2012.8537%208.29589%2012.88%208.23%2012.88C8.16411%2012.88%208.10085%2012.8537%208.05355%2012.8064L7.45857%2012.2115L7.10501%2011.8579L6.75146%2012.2115L6.03289%2012.93H3.20465L5.33477%2010.7937L5.6873%2010.4402L5.33426%2010.0871L4.74355%209.49645C4.64882%209.40171%204.64882%209.23829%204.74355%209.14355L11.4936%202.39355C11.7436%202.14354%2012.0779%202%2012.43%202C12.7883%202%2013.1179%202.13776%2013.3614%202.38839L13.3613%202.38843L13.3664%202.39355L15.1564%204.18355L15.1564%204.18359L15.1616%204.18864C15.4122%204.43211%2015.55%204.76166%2015.55%205.12C15.55%205.47834%2015.4122%205.80789%2015.1616%206.05136ZM7.87645%2011.9236L8.23%2012.2771L8.58355%2011.9236L11.0642%209.44293L11.4177%209.08938L11.0642%208.73582L8.80918%206.48082L8.45562%206.12727L8.10207%206.48082L5.62645%208.95645L5.48%209.10289V9.31V9.32V9.52711L5.62645%209.67355L7.87645%2011.9236ZM11.4177%208.38227L11.7713%208.73582L12.1248%208.38227L14.8036%205.70355C15.1288%205.37829%2015.1288%204.86171%2014.8036%204.53645L13.0136%202.74645C12.8186%202.55146%2012.5792%202.5%2012.43%202.5H12.4134L12.3967%202.50111L12.43%203C12.3967%202.50111%2012.3966%202.50112%2012.3965%202.50112L12.3963%202.50114L12.3957%202.50117L12.3947%202.50125L12.3924%202.50142L12.387%202.50184L12.3732%202.50311C12.3628%202.50416%2012.3498%202.50567%2012.3346%202.50784C12.3049%202.51208%2012.2642%202.51925%2012.2178%202.53146C12.1396%202.55202%2011.9797%202.60317%2011.8464%202.73645L9.16273%205.42016L8.80918%205.77372L9.16273%206.12727L11.4177%208.38227ZM1.5%2016H15.5V17H1.5V16Z'%20stroke='%2315141A'/%3e%3c/svg%3e") 1 18, pointer;--new-alt-text-warning-image:url("data:image/svg+xml,%3csvg%20width='17'%20height='16'%20viewBox='0%200%2017%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.78182%202.63903C8.58882%202.28803%208.25782%202.25003%208.12482%202.25003C7.99019%202.24847%207.85771%202.28393%207.74185%202.35253C7.62599%202.42113%207.5312%202.52023%207.46782%202.63903L1.97082%2012.639C1.90673%2012.7528%201.87406%2012.8816%201.87617%2013.0122C1.87828%2013.1427%201.91509%2013.2704%201.98282%2013.382C2.04798%2013.4951%202.14207%2013.5888%202.25543%2013.6535C2.36879%2013.7182%202.49732%2013.7515%202.62782%2013.75H13.6218C13.7523%2013.7515%2013.8809%2013.7182%2013.9942%2013.6535C14.1076%2013.5888%2014.2017%2013.4951%2014.2668%2013.382C14.3346%2013.2704%2014.3714%2013.1427%2014.3735%2013.0122C14.3756%2012.8816%2014.3429%2012.7528%2014.2788%2012.639L8.78182%202.63903ZM6.37282%202.03703C6.75182%201.34603%207.43882%201.00003%208.12482%201.00003C8.48341%200.997985%208.83583%201.09326%209.14454%201.2757C9.45325%201.45814%209.70668%201.72092%209.87782%202.03603L15.3748%2012.036C16.1078%2013.369%2015.1438%2015%2013.6228%2015H2.62782C1.10682%2015%200.141823%2013.37%200.875823%2012.037L6.37282%202.03703ZM8.74982%209.06203C8.74982%209.22779%208.68397%209.38676%208.56676%209.50397C8.44955%209.62118%208.29058%209.68703%208.12482%209.68703C7.95906%209.68703%207.80009%209.62118%207.68288%209.50397C7.56566%209.38676%207.49982%209.22779%207.49982%209.06203V5.62503C7.49982%205.45927%207.56566%205.3003%207.68288%205.18309C7.80009%205.06588%207.95906%205.00003%208.12482%205.00003C8.29058%205.00003%208.44955%205.06588%208.56676%205.18309C8.68397%205.3003%208.74982%205.45927%208.74982%205.62503V9.06203ZM7.74982%2012L7.49982%2011.75V11L7.74982%2010.75H8.49982L8.74982%2011V11.75L8.49982%2012H7.74982Z'%20fill='black'/%3e%3c/svg%3e")}.textLayer.highlighting{cursor:var(--editorFreeHighlight-editing-cursor)}.textLayer.highlighting:not(.free) span{cursor:var(--editorHighlight-editing-cursor)}[role=img]:is(.textLayer.highlighting:not(.free) span){cursor:var(--editorFreeHighlight-editing-cursor)}.textLayer.highlighting.free span{cursor:var(--editorFreeHighlight-editing-cursor)}:is(#viewerContainer.pdfPresentationMode:fullscreen,.annotationEditorLayer.disabled) .noAltTextBadge{display:none!important}@media (min-resolution: 1.1dppx){:root{--editorFreeText-editing-cursor:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%202.75H12.5V2.25V1V0.5H12H10.358C9.91165%200.5%209.47731%200.625661%209.09989%200.860442L9.09886%200.861087L8%201.54837L6.89997%200.860979L6.89911%200.860443C6.5218%200.625734%206.08748%200.5%205.642%200.5H4H3.5V1V2.25V2.75H4H5.642C5.66478%202.75%205.6885%202.75641%205.71008%202.76968C5.71023%202.76977%205.71038%202.76986%205.71053%202.76995L6.817%203.461C6.81704%203.46103%206.81709%203.46105%206.81713%203.46108C6.81713%203.46108%206.81713%203.46108%206.81714%203.46109C6.8552%203.48494%206.876%203.52285%206.876%203.567V8V12.433C6.876%2012.4771%206.85523%2012.515%206.81722%2012.5389C6.81715%2012.5389%206.81707%2012.539%206.817%2012.539L5.70953%2013.23C5.70941%2013.2301%205.70929%2013.2302%205.70917%2013.2303C5.68723%2013.2438%205.6644%2013.25%205.641%2013.25H4H3.5V13.75V15V15.5H4H5.642C6.08835%2015.5%206.52269%2015.3743%206.90011%2015.1396L6.90086%2015.1391L8%2014.4526L9.10003%2015.14L9.10089%2015.1406C9.47831%2015.3753%209.91265%2015.501%2010.359%2015.501H12H12.5V15.001V13.751V13.251H12H10.358C10.3352%2013.251%2010.3115%2013.2446%2010.2899%2013.2313C10.2897%2013.2312%2010.2896%2013.2311%2010.2895%2013.231L9.183%2012.54C9.18298%2012.54%209.18295%2012.54%209.18293%2012.54C9.18291%2012.5399%209.18288%2012.5399%209.18286%2012.5399C9.14615%2012.5169%209.125%2012.4797%209.125%2012.434V8V3.567C9.125%203.52266%209.14603%203.48441%209.18364%203.4606C9.18377%203.46052%209.1839%203.46043%209.18404%203.46035L10.2895%202.76995C10.2896%202.76985%2010.2898%202.76975%2010.2899%202.76966C10.3119%202.75619%2010.3346%202.75%2010.358%202.75H12Z'%20fill='black'%20stroke='white'/%3e%3c/svg%3e") 0 16, text}}@media screen and (forced-colors: active){:root{--outline-color:CanvasText;--outline-around-color:ButtonFace;--resizer-bg-color:ButtonText;--hover-outline-color:Highlight;--hover-outline-around-color:SelectedItemText}}[data-editor-rotation="90"]{transform:rotate(90deg)}[data-editor-rotation="180"]{transform:rotate(180deg)}[data-editor-rotation="270"]{transform:rotate(270deg)}.annotationEditorLayer{background:transparent;position:absolute;top:0;right:0;bottom:0;left:0;font-size:calc(100px * var(--total-scale-factor));transform-origin:0 0;cursor:auto}.annotationEditorLayer .selectedEditor{z-index:100000!important}.annotationEditorLayer.drawing *{pointer-events:none!important}.annotationEditorLayer.getElements{pointer-events:auto!important}.annotationEditorLayer.getElements>div{pointer-events:auto!important}.annotationEditorLayer.waiting{content:"";cursor:wait;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.annotationEditorLayer.disabled{pointer-events:none}.annotationEditorLayer.disabled.highlightEditing :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor){pointer-events:auto}.annotationEditorLayer.freetextEditing{cursor:var(--editorFreeText-editing-cursor)}.annotationEditorLayer.inkEditing{cursor:var(--editorInk-editing-cursor)}.annotationEditorLayer .draw{box-sizing:border-box}.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor){position:absolute;background:transparent;z-index:1;transform-origin:0 0;cursor:auto;max-width:100%;max-height:100%;border:var(--unfocus-outline)}.draggable.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)){cursor:move}.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)){border:var(--focus-outline);outline:var(--focus-outline-around)}.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)):before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:var(--focus-outline-around);pointer-events:none}:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)):hover:not(.selectedEditor){border:var(--hover-outline);outline:var(--hover-outline-around)}:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)):hover:not(.selectedEditor):before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:var(--focus-outline-around)}:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{--editor-toolbar-delete-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M11%203H13.6C14%203%2014.3%203.3%2014.3%203.6C14.3%203.9%2014%204.2%2013.7%204.2H13.3V14C13.3%2015.1%2012.4%2016%2011.3%2016H4.80005C3.70005%2016%202.80005%2015.1%202.80005%2014V4.2H2.40005C2.00005%204.2%201.80005%204%201.80005%203.6C1.80005%203.2%202.00005%203%202.40005%203H5.00005V2C5.00005%200.9%205.90005%200%207.00005%200H9.00005C10.1%200%2011%200.9%2011%202V3ZM6.90005%201.2L6.30005%201.8V3H9.80005V1.8L9.20005%201.2H6.90005ZM11.4%2014.7L12%2014.1V4.2H4.00005V14.1L4.60005%2014.7H11.4ZM7.00005%2012.4C7.00005%2012.7%206.70005%2013%206.40005%2013C6.10005%2013%205.80005%2012.7%205.80005%2012.4V7.6C5.70005%207.3%206.00005%207%206.40005%207C6.80005%207%207.00005%207.3%207.00005%207.6V12.4ZM10.2001%2012.4C10.2001%2012.7%209.90006%2013%209.60006%2013C9.30006%2013%209.00006%2012.7%209.00006%2012.4V7.6C9.00006%207.3%209.30006%207%209.60006%207C9.90006%207%2010.2001%207.3%2010.2001%207.6V12.4Z'%20fill='black'%20/%3e%3c/svg%3e");--csstools-light-dark-toggle--44:var(--csstools-color-scheme--light) #2b2a33;--editor-toolbar-bg-color:var(--csstools-light-dark-toggle--44, #f0f0f4);--editor-toolbar-highlight-image:url("data:image/svg+xml,%3csvg%20width='17'%20height='16'%20viewBox='0%200%2017%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.10918%2011.66C7.24918%2011.8%207.43918%2011.88%207.63918%2011.88C7.83918%2011.88%208.02918%2011.8%208.16918%2011.66L14.9192%204.91C15.2692%204.57%2015.4592%204.11%2015.4592%203.62C15.4592%203.13%2015.2692%202.67%2014.9192%202.33L13.1292%200.54C12.7892%200.19%2012.3292%200%2011.8392%200C11.3492%200%2010.8892%200.2%2010.5492%200.54L3.79918%207.29C3.50918%207.58%203.50918%208.06%203.79918%208.35L4.38988%208.9407L1.40918%2011.93H5.64918L6.51419%2011.065L7.10918%2011.66ZM7.63918%2010.07L5.38918%207.82V7.81L7.8648%205.33438L10.1198%207.58938L7.63918%2010.07ZM11.1805%206.52872L13.8592%203.85C13.9892%203.72%2013.9892%203.52%2013.8592%203.39L12.0692%201.6C11.9892%201.52%2011.8892%201.5%2011.8392%201.5C11.8392%201.5%2011.6892%201.51%2011.6092%201.59L8.92546%204.27372L11.1805%206.52872Z'%20fill='%23000'/%3e%3cpath%20d='M0.40918%2014H15.4092V16H0.40918V14Z'%20fill='%23000'/%3e%3c/g%3e%3c/svg%3e");--editor-toolbar-comment-edit-image:url(images/comment-editButton.svg);--csstools-light-dark-toggle--45:var(--csstools-color-scheme--light) #fbfbfe;--editor-toolbar-fg-color:var(--csstools-light-dark-toggle--45, #2e2e56);--editor-toolbar-border-color:#8f8f9d;--editor-toolbar-hover-border-color:var(--editor-toolbar-border-color);--csstools-light-dark-toggle--46:var(--csstools-color-scheme--light) #52525e;--editor-toolbar-hover-bg-color:var(--csstools-light-dark-toggle--46, #e0e0e6);--editor-toolbar-hover-fg-color:var(--editor-toolbar-fg-color);--editor-toolbar-hover-outline:none;--csstools-light-dark-toggle--47:var(--csstools-color-scheme--light) #0df;--editor-toolbar-focus-outline-color:var(--csstools-light-dark-toggle--47, #0060df);--editor-toolbar-shadow:0 2px 6px 0 rgb(58 57 68 / .2);--editor-toolbar-height:28px;--editor-toolbar-padding:2px;--csstools-light-dark-toggle--48:var(--csstools-color-scheme--light) #54ffbd;--alt-text-done-color:var(--csstools-light-dark-toggle--48, #2ac3a2);--csstools-light-dark-toggle--49:var(--csstools-color-scheme--light) #80ebff;--alt-text-warning-color:var(--csstools-light-dark-toggle--49, #0090ed);--alt-text-hover-done-color:var(--alt-text-done-color);--alt-text-hover-warning-color:var(--alt-text-warning-color)}@supports (color: light-dark(red,red)){:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{--editor-toolbar-bg-color:light-dark(#f0f0f4, #2b2a33);--editor-toolbar-fg-color:light-dark(#2e2e56, #fbfbfe);--editor-toolbar-hover-bg-color:light-dark(#e0e0e6, #52525e);--editor-toolbar-focus-outline-color:light-dark(#0060df, #0df);--alt-text-done-color:light-dark(#2ac3a2, #54ffbd);--alt-text-warning-color:light-dark(#0090ed, #80ebff)}}@supports not (color: light-dark(tan,tan)){:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) *{--csstools-light-dark-toggle--44:var(--csstools-color-scheme--light) #2b2a33;--editor-toolbar-bg-color:var(--csstools-light-dark-toggle--44, #f0f0f4);--csstools-light-dark-toggle--45:var(--csstools-color-scheme--light) #fbfbfe;--editor-toolbar-fg-color:var(--csstools-light-dark-toggle--45, #2e2e56);--csstools-light-dark-toggle--46:var(--csstools-color-scheme--light) #52525e;--editor-toolbar-hover-bg-color:var(--csstools-light-dark-toggle--46, #e0e0e6);--csstools-light-dark-toggle--47:var(--csstools-color-scheme--light) #0df;--editor-toolbar-focus-outline-color:var(--csstools-light-dark-toggle--47, #0060df);--csstools-light-dark-toggle--48:var(--csstools-color-scheme--light) #54ffbd;--alt-text-done-color:var(--csstools-light-dark-toggle--48, #2ac3a2);--csstools-light-dark-toggle--49:var(--csstools-color-scheme--light) #80ebff;--alt-text-warning-color:var(--csstools-light-dark-toggle--49, #0090ed)}}@media screen and (forced-colors: active){:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{--editor-toolbar-bg-color:ButtonFace;--editor-toolbar-fg-color:ButtonText;--editor-toolbar-border-color:ButtonText;--editor-toolbar-hover-border-color:AccentColor;--editor-toolbar-hover-bg-color:ButtonFace;--editor-toolbar-hover-fg-color:AccentColor;--editor-toolbar-hover-outline:2px solid var(--editor-toolbar-hover-border-color);--editor-toolbar-focus-outline-color:ButtonBorder;--editor-toolbar-shadow:none;--alt-text-done-color:var(--editor-toolbar-fg-color);--alt-text-warning-color:var(--editor-toolbar-fg-color);--alt-text-hover-done-color:var(--editor-toolbar-hover-fg-color);--alt-text-hover-warning-color:var(--editor-toolbar-hover-fg-color)}}:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{display:flex;width:-moz-fit-content;width:fit-content;height:var(--editor-toolbar-height);flex-direction:column;justify-content:center;align-items:center;cursor:default;pointer-events:auto;box-sizing:content-box;padding:var(--editor-toolbar-padding);position:absolute;inset-inline-end:0;inset-block-start:calc(100% + var(--editor-toolbar-vert-offset));border-radius:6px;background-color:var(--editor-toolbar-bg-color);border:1px solid var(--editor-toolbar-border-color);box-shadow:var(--editor-toolbar-shadow)}.hidden:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){display:none}:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar):has(:focus-visible){border-color:transparent}[dir=ltr] :is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){transform-origin:100% 0}[dir=rtl] :is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){transform-origin:0 0}:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons{display:flex;justify-content:center;align-items:center;gap:0;height:100%}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) button{padding:0}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .divider{width:0;height:calc(2 * var(--editor-toolbar-padding) + var(--editor-toolbar-height));border-left:1px solid var(--editor-toolbar-border-color);border-right:none;display:inline-block;margin-inline:2px}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .highlightButton{width:var(--editor-toolbar-height)}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .highlightButton):before{content:"";-webkit-mask-image:var(--editor-toolbar-highlight-image);mask-image:var(--editor-toolbar-highlight-image);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;display:inline-block;background-color:var(--editor-toolbar-fg-color);width:100%;height:100%}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .highlightButton):hover:before{background-color:var(--editor-toolbar-hover-fg-color)}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .delete{width:var(--editor-toolbar-height)}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .delete):before{content:"";-webkit-mask-image:var(--editor-toolbar-delete-image);mask-image:var(--editor-toolbar-delete-image);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;display:inline-block;background-color:var(--editor-toolbar-fg-color);width:100%;height:100%}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .delete):hover:before{background-color:var(--editor-toolbar-hover-fg-color)}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons)>*{height:var(--editor-toolbar-height)}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons)>:not(.divider){border:none;background-color:transparent;cursor:pointer}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons)>:not(.divider)):hover{border-radius:2px;background-color:var(--editor-toolbar-hover-bg-color);color:var(--editor-toolbar-hover-fg-color);outline:var(--editor-toolbar-hover-outline);outline-offset:1px}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons)>:not(.divider)):hover:active{outline:none}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons)>:not(.divider)):focus-visible{border-radius:2px;outline:2px solid var(--editor-toolbar-focus-outline-color)}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText{--alt-text-add-image:url("data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M5.375%207.625V11.875C5.375%2012.0408%205.44085%2012.1997%205.55806%2012.3169C5.67527%2012.4342%205.83424%2012.5%206%2012.5C6.16576%2012.5%206.32473%2012.4342%206.44194%2012.3169C6.55915%2012.1997%206.625%2012.0408%206.625%2011.875V7.625L7.125%207.125H11.375C11.5408%207.125%2011.6997%207.05915%2011.8169%206.94194C11.9342%206.82473%2012%206.66576%2012%206.5C12%206.33424%2011.9342%206.17527%2011.8169%206.05806C11.6997%205.94085%2011.5408%205.875%2011.375%205.875H7.125L6.625%205.375V1.125C6.625%200.95924%206.55915%200.800269%206.44194%200.683058C6.32473%200.565848%206.16576%200.5%206%200.5C5.83424%200.5%205.67527%200.565848%205.55806%200.683058C5.44085%200.800269%205.375%200.95924%205.375%201.125V5.375L4.875%205.875H0.625C0.45924%205.875%200.300269%205.94085%200.183058%206.05806C0.065848%206.17527%200%206.33424%200%206.5C0%206.66576%200.065848%206.82473%200.183058%206.94194C0.300269%207.05915%200.45924%207.125%200.625%207.125H4.762L5.375%207.625Z'%20fill='black'/%3e%3c/svg%3e");--alt-text-done-image:url("data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.5C5.21207%200.5%204.43185%200.655195%203.7039%200.956723C2.97595%201.25825%202.31451%201.70021%201.75736%202.25736C1.20021%202.81451%200.758251%203.47595%200.456723%204.2039C0.155195%204.93185%200%205.71207%200%206.5C0%207.28793%200.155195%208.06815%200.456723%208.7961C0.758251%209.52405%201.20021%2010.1855%201.75736%2010.7426C2.31451%2011.2998%202.97595%2011.7417%203.7039%2012.0433C4.43185%2012.3448%205.21207%2012.5%206%2012.5C7.5913%2012.5%209.11742%2011.8679%2010.2426%2010.7426C11.3679%209.61742%2012%208.0913%2012%206.5C12%204.9087%2011.3679%203.38258%2010.2426%202.25736C9.11742%201.13214%207.5913%200.5%206%200.5ZM5.06%208.9L2.9464%206.7856C2.85273%206.69171%202.80018%206.56446%202.80033%206.43183C2.80048%206.29921%202.85331%206.17207%202.9472%206.0784C3.04109%205.98473%203.16834%205.93218%203.30097%205.93233C3.43359%205.93248%203.56073%205.98531%203.6544%206.0792L5.3112%207.7368L8.3464%204.7008C8.44109%204.6109%208.56715%204.56153%208.69771%204.56322C8.82827%204.56492%208.95301%204.61754%209.04534%204.70986C9.13766%204.80219%209.19028%204.92693%209.19198%205.05749C9.19367%205.18805%209.1443%205.31411%209.0544%205.4088L5.5624%208.9H5.06Z'%20fill='%23FBFBFE'/%3e%3c/svg%3e");display:flex;align-items:center;justify-content:center;width:-moz-max-content;width:max-content;padding-inline:8px;pointer-events:all;font:menu;font-weight:590;font-size:12px;color:var(--editor-toolbar-fg-color)}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):disabled{pointer-events:none}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):before{content:"";-webkit-mask-image:var(--alt-text-add-image);mask-image:var(--alt-text-add-image);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;display:inline-block;width:12px;height:13px;background-color:var(--editor-toolbar-fg-color);margin-inline-end:4px}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover:before{background-color:var(--editor-toolbar-hover-fg-color)}.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):before{-webkit-mask-image:var(--alt-text-done-image);mask-image:var(--alt-text-done-image)}.new:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):before{width:16px;height:16px;-webkit-mask-image:var(--new-alt-text-warning-image);mask-image:var(--new-alt-text-warning-image);background-color:var(--alt-text-warning-color);-webkit-mask-size:cover;mask-size:cover}.new:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover:before{background-color:var(--alt-text-hover-warning-color)}.new.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):before{-webkit-mask-image:var(--alt-text-done-image);mask-image:var(--alt-text-done-image);background-color:var(--alt-text-done-color)}.new.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover:before{background-color:var(--alt-text-hover-done-color)}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip{display:none;word-wrap:anywhere}.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){--csstools-light-dark-toggle--50:var(--csstools-color-scheme--light) #1c1b22;--alt-text-tooltip-bg:var(--csstools-light-dark-toggle--50, #f0f0f4);--csstools-light-dark-toggle--51:var(--csstools-color-scheme--light) #fbfbfe;--alt-text-tooltip-fg:var(--csstools-light-dark-toggle--51, #15141a);--alt-text-tooltip-border:#8f8f9d;--csstools-light-dark-toggle--52:var(--csstools-color-scheme--light) #15141a;--alt-text-tooltip-shadow:0px 2px 6px 0px var(--csstools-light-dark-toggle--52, rgb(58 57 68 / .2))}@supports (color: light-dark(red,red)){.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){--alt-text-tooltip-bg:light-dark(#f0f0f4, #1c1b22);--alt-text-tooltip-fg:light-dark(#15141a, #fbfbfe)}}@supports (color: light-dark(red,red)) and (color: rgb(0 0 0 / 0)){.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){--alt-text-tooltip-shadow:0px 2px 6px 0px light-dark(rgb(58 57 68 / .2), #15141a)}}@supports not (color: light-dark(tan,tan)){.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip) *{--csstools-light-dark-toggle--50:var(--csstools-color-scheme--light) #1c1b22;--alt-text-tooltip-bg:var(--csstools-light-dark-toggle--50, #f0f0f4);--csstools-light-dark-toggle--51:var(--csstools-color-scheme--light) #fbfbfe;--alt-text-tooltip-fg:var(--csstools-light-dark-toggle--51, #15141a);--csstools-light-dark-toggle--52:var(--csstools-color-scheme--light) #15141a;--alt-text-tooltip-shadow:0px 2px 6px 0px var(--csstools-light-dark-toggle--52, rgb(58 57 68 / .2))}}@media screen and (forced-colors: active){.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){--alt-text-tooltip-bg:Canvas;--alt-text-tooltip-fg:CanvasText;--alt-text-tooltip-border:CanvasText;--alt-text-tooltip-shadow:none}}.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;top:calc(100% + 2px);inset-inline-start:0;padding-block:2px 3px;padding-inline:3px;max-width:300px;width:-moz-max-content;width:max-content;height:auto;font-size:12px;border:.5px solid var(--alt-text-tooltip-border);background:var(--alt-text-tooltip-bg);box-shadow:var(--alt-text-tooltip-shadow);color:var(--alt-text-tooltip-fg);pointer-events:none}:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .comment{width:var(--editor-toolbar-height)}:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .comment):before{content:"";-webkit-mask-image:var(--editor-toolbar-comment-edit-image);mask-image:var(--editor-toolbar-comment-edit-image);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;display:inline-block;background-color:var(--editor-toolbar-fg-color);width:100%;height:100%}.annotationEditorLayer .freeTextEditor{padding:calc(var(--freetext-padding) * var(--total-scale-factor));width:auto;height:auto;touch-action:none}.annotationEditorLayer .freeTextEditor .internal{background:transparent;border:none;top:0;right:0;bottom:0;left:0;overflow:visible;white-space:nowrap;font:10px sans-serif;line-height:var(--freetext-line-height);text-align:start;-webkit-user-select:none;-moz-user-select:none;user-select:none}.annotationEditorLayer .freeTextEditor .overlay{position:absolute;display:none;background:transparent;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.annotationEditorLayer freeTextEditor .overlay.enabled{display:block}.annotationEditorLayer .freeTextEditor .internal:empty:before{content:attr(default-content);color:gray}.annotationEditorLayer .freeTextEditor .internal:focus{outline:none;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.annotationEditorLayer .inkEditor{width:100%;height:100%}.annotationEditorLayer .inkEditor.editing{cursor:inherit}.annotationEditorLayer .inkEditor .inkEditorCanvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.annotationEditorLayer .stampEditor{width:auto;height:auto}:is(.annotationEditorLayer .stampEditor) canvas{position:absolute;width:100%;height:100%;margin:0;top:0;left:0}:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{--csstools-light-dark-toggle--53:var(--csstools-color-scheme--light) #52525e;--no-alt-text-badge-border-color:var(--csstools-light-dark-toggle--53, #f0f0f4);--csstools-light-dark-toggle--54:var(--csstools-color-scheme--light) #fbfbfe;--no-alt-text-badge-bg-color:var(--csstools-light-dark-toggle--54, #cfcfd8);--csstools-light-dark-toggle--55:var(--csstools-color-scheme--light) #15141a;--no-alt-text-badge-fg-color:var(--csstools-light-dark-toggle--55, #5b5b66)}@supports (color: light-dark(red,red)){:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{--no-alt-text-badge-border-color:light-dark(#f0f0f4, #52525e);--no-alt-text-badge-bg-color:light-dark(#cfcfd8, #fbfbfe);--no-alt-text-badge-fg-color:light-dark(#5b5b66, #15141a)}}@supports not (color: light-dark(tan,tan)){:is(:is(.annotationEditorLayer .stampEditor) .noAltTextBadge) *{--csstools-light-dark-toggle--53:var(--csstools-color-scheme--light) #52525e;--no-alt-text-badge-border-color:var(--csstools-light-dark-toggle--53, #f0f0f4);--csstools-light-dark-toggle--54:var(--csstools-color-scheme--light) #fbfbfe;--no-alt-text-badge-bg-color:var(--csstools-light-dark-toggle--54, #cfcfd8);--csstools-light-dark-toggle--55:var(--csstools-color-scheme--light) #15141a;--no-alt-text-badge-fg-color:var(--csstools-light-dark-toggle--55, #5b5b66)}}@media screen and (forced-colors: active){:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{--no-alt-text-badge-border-color:ButtonText;--no-alt-text-badge-bg-color:ButtonFace;--no-alt-text-badge-fg-color:ButtonText}}:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{position:absolute;inset-inline-end:5px;inset-block-end:5px;display:inline-flex;width:32px;height:32px;padding:3px;justify-content:center;align-items:center;pointer-events:none;z-index:1;border-radius:2px;border:1px solid var(--no-alt-text-badge-border-color);background:var(--no-alt-text-badge-bg-color)}:is(:is(.annotationEditorLayer .stampEditor) .noAltTextBadge):before{content:"";display:inline-block;width:16px;height:16px;-webkit-mask-image:var(--new-alt-text-warning-image);mask-image:var(--new-alt-text-warning-image);-webkit-mask-size:cover;mask-size:cover;background-color:var(--no-alt-text-badge-fg-color)}:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers{position:absolute;top:0;right:0;bottom:0;left:0}.hidden:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers){display:none}:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer{width:var(--resizer-size);height:var(--resizer-size);background:content-box var(--resizer-bg-color);border:var(--focus-outline-around);border-radius:2px;position:absolute}.topLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){top:var(--resizer-shift);left:var(--resizer-shift)}.topMiddle:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){top:var(--resizer-shift);left:calc(50% + var(--resizer-shift))}.topRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){top:var(--resizer-shift);right:var(--resizer-shift)}.middleRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){top:calc(50% + var(--resizer-shift));right:var(--resizer-shift)}.bottomRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){bottom:var(--resizer-shift);right:var(--resizer-shift)}.bottomMiddle:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){bottom:var(--resizer-shift);left:calc(50% + var(--resizer-shift))}.bottomLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){bottom:var(--resizer-shift);left:var(--resizer-shift)}.middleLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))>.resizers)>.resizer){top:calc(50% + var(--resizer-shift));left:var(--resizer-shift)}.topLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer),.bottomRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer){cursor:nwse-resize}.topMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer),.bottomMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer){cursor:ns-resize}.topRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer),.bottomLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer){cursor:nesw-resize}.middleRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer),.middleLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]))>.resizers>.resizer){cursor:ew-resize}.topLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer),.bottomRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer){cursor:nesw-resize}.topMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer),.bottomMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer){cursor:ew-resize}.topRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer),.bottomLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer){cursor:nwse-resize}.middleRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer),.middleLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]))>.resizers>.resizer){cursor:ns-resize}:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="90"],[data-main-rotation="90"] [data-editor-rotation="0"],[data-main-rotation="180"] [data-editor-rotation="270"],[data-main-rotation="270"] [data-editor-rotation="180"])) .editToolbar{rotate:270deg}[dir=ltr] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="90"],[data-main-rotation="90"] [data-editor-rotation="0"],[data-main-rotation="180"] [data-editor-rotation="270"],[data-main-rotation="270"] [data-editor-rotation="180"])) .editToolbar){inset-inline-end:calc(0px - var(--editor-toolbar-vert-offset));inset-block-start:0}[dir=rtl] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="90"],[data-main-rotation="90"] [data-editor-rotation="0"],[data-main-rotation="180"] [data-editor-rotation="270"],[data-main-rotation="270"] [data-editor-rotation="180"])) .editToolbar){inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset));inset-block-start:0}:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="180"],[data-main-rotation="90"] [data-editor-rotation="90"],[data-main-rotation="180"] [data-editor-rotation="0"],[data-main-rotation="270"] [data-editor-rotation="270"])) .editToolbar{rotate:180deg;inset-inline-end:100%;inset-block-start:calc(0pc - var(--editor-toolbar-vert-offset))}:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="270"],[data-main-rotation="90"] [data-editor-rotation="180"],[data-main-rotation="180"] [data-editor-rotation="90"],[data-main-rotation="270"] [data-editor-rotation="0"])) .editToolbar{rotate:90deg}[dir=ltr] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="270"],[data-main-rotation="90"] [data-editor-rotation="180"],[data-main-rotation="180"] [data-editor-rotation="90"],[data-main-rotation="270"] [data-editor-rotation="0"])) .editToolbar){inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset));inset-block-start:100%}[dir=rtl] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="270"],[data-main-rotation="90"] [data-editor-rotation="180"],[data-main-rotation="180"] [data-editor-rotation="90"],[data-main-rotation="270"] [data-editor-rotation="0"])) .editToolbar){inset-inline-start:calc(0px - var(--editor-toolbar-vert-offset));inset-block-start:0}.dialog.altText::backdrop{-webkit-mask:url(#alttext-manager-mask);mask:url(#alttext-manager-mask)}.dialog.altText.positioned{margin:0}.dialog.altText #altTextContainer{width:300px;height:-moz-fit-content;height:fit-content;display:inline-flex;flex-direction:column;align-items:flex-start;gap:16px}:is(.dialog.altText #altTextContainer) #overallDescription{display:flex;flex-direction:column;align-items:flex-start;gap:4px;align-self:stretch}:is(:is(.dialog.altText #altTextContainer) #overallDescription) span{align-self:stretch}:is(:is(.dialog.altText #altTextContainer) #overallDescription) .title{font-size:13px;font-style:normal;font-weight:590}:is(.dialog.altText #altTextContainer) #addDescription{display:flex;flex-direction:column;align-items:stretch;gap:8px}:is(:is(.dialog.altText #altTextContainer) #addDescription) .descriptionArea{flex:1;padding-inline:24px 10px}:is(:is(:is(.dialog.altText #altTextContainer) #addDescription) .descriptionArea) textarea{width:100%;min-height:75px}:is(.dialog.altText #altTextContainer) #buttons{display:flex;justify-content:flex-end;align-items:flex-start;gap:8px;align-self:stretch}.dialog.newAltText{--new-alt-text-ai-disclaimer-icon:url("data:image/svg+xml,%3csvg%20width='17'%20height='16'%20viewBox='0%200%2017%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.49073%201.3015L3.30873%202.1505C3.29349%202.22246%203.25769%202.28844%203.20568%202.34045C3.15368%202.39246%203.08769%202.42826%203.01573%202.4435L2.16673%202.6255C1.76473%202.7125%201.76473%203.2865%202.16673%203.3725L3.01573%203.5555C3.08769%203.57074%203.15368%203.60654%203.20568%203.65855C3.25769%203.71056%203.29349%203.77654%203.30873%203.8485L3.49073%204.6975C3.57773%205.0995%204.15173%205.0995%204.23773%204.6975L4.42073%203.8485C4.43598%203.77654%204.47177%203.71056%204.52378%203.65855C4.57579%203.60654%204.64178%203.57074%204.71373%203.5555L5.56173%203.3725C5.96373%203.2855%205.96373%202.7115%205.56173%202.6255L4.71273%202.4435C4.64083%202.42814%204.57491%202.3923%204.52292%202.34031C4.47093%202.28832%204.43509%202.2224%204.41973%202.1505L4.23773%201.3015C4.15073%200.8995%203.57673%200.8995%203.49073%201.3015ZM10.8647%2013.9995C10.4853%2014.0056%2010.1158%2013.8782%209.82067%2013.6397C9.52553%2013.4013%209.32347%2013.0667%209.24973%2012.6945L8.89273%2011.0275C8.83676%2010.7687%208.70738%2010.5316%208.52009%2010.3445C8.3328%2010.1574%208.09554%2010.0282%207.83673%209.9725L6.16973%209.6155C5.38873%209.4465%204.86473%208.7975%204.86473%207.9995C4.86473%207.2015%205.38873%206.5525%206.16973%206.3845L7.83673%206.0275C8.09551%205.97135%208.33267%205.84193%208.51992%205.65468C8.70716%205.46744%208.83658%205.23028%208.89273%204.9715L9.25073%203.3045C9.41773%202.5235%2010.0667%201.9995%2010.8647%201.9995C11.6627%201.9995%2012.3117%202.5235%2012.4797%203.3045L12.8367%204.9715C12.9507%205.4995%2013.3647%205.9135%2013.8927%206.0265L15.5597%206.3835C16.3407%206.5525%2016.8647%207.2015%2016.8647%207.9995C16.8647%208.7975%2016.3407%209.4465%2015.5597%209.6145L13.8927%209.9715C13.6337%2010.0275%2013.3963%2010.157%2013.209%2010.3445C13.0217%2010.5319%2012.8925%2010.7694%2012.8367%2011.0285L12.4787%2012.6945C12.4054%2013.0667%2012.2036%2013.4014%2011.9086%2013.6399C11.6135%2013.8784%2011.2441%2014.0057%2010.8647%2013.9995ZM10.8647%203.2495C10.7667%203.2495%2010.5337%203.2795%2010.4727%203.5655L10.1147%205.2335C10.0081%205.72777%209.76116%206.18082%209.40361%206.53837C9.04606%206.89593%208.59301%207.14283%208.09873%207.2495L6.43173%207.6065C6.14573%207.6685%206.11473%207.9015%206.11473%207.9995C6.11473%208.0975%206.14573%208.3305%206.43173%208.3925L8.09873%208.7495C8.59301%208.85617%209.04606%209.10307%209.40361%209.46062C9.76116%209.81817%2010.0081%2010.2712%2010.1147%2010.7655L10.4727%2012.4335C10.5337%2012.7195%2010.7667%2012.7495%2010.8647%2012.7495C10.9627%2012.7495%2011.1957%2012.7195%2011.2567%2012.4335L11.6147%2010.7665C11.7212%2010.272%2011.9681%209.81878%2012.3256%209.46103C12.6832%209.10329%2013.1363%208.85624%2013.6307%208.7495L15.2977%208.3925C15.5837%208.3305%2015.6147%208.0975%2015.6147%207.9995C15.6147%207.9015%2015.5837%207.6685%2015.2977%207.6065L13.6307%207.2495C13.1365%207.14283%2012.6834%206.89593%2012.3259%206.53837C11.9683%206.18082%2011.7214%205.72777%2011.6147%205.2335L11.2567%203.5655C11.1957%203.2795%2010.9627%203.2495%2010.8647%203.2495ZM3.30873%2012.1505L3.49073%2011.3015C3.57673%2010.8995%204.15073%2010.8995%204.23773%2011.3015L4.41973%2012.1505C4.43509%2012.2224%204.47093%2012.2883%204.52292%2012.3403C4.57491%2012.3923%204.64083%2012.4281%204.71273%2012.4435L5.56173%2012.6255C5.96373%2012.7115%205.96373%2013.2855%205.56173%2013.3725L4.71273%2013.5545C4.64083%2013.5699%204.57491%2013.6057%204.52292%2013.6577C4.47093%2013.7097%204.43509%2013.7756%204.41973%2013.8475L4.23773%2014.6965C4.15173%2015.0985%203.57773%2015.0985%203.49073%2014.6965L3.30873%2013.8475C3.29337%2013.7756%203.25754%2013.7097%203.20555%2013.6577C3.15356%2013.6057%203.08764%2013.5699%203.01573%2013.5545L2.16673%2013.3725C1.76473%2013.2865%201.76473%2012.7125%202.16673%2012.6255L3.01573%2012.4435C3.08769%2012.4283%203.15368%2012.3925%203.20568%2012.3405C3.25769%2012.2884%203.29349%2012.2225%203.30873%2012.1505Z'%20fill='black'/%3e%3c/svg%3e");--new-alt-text-spinner-icon:url("data:image/svg+xml,%3c!--%20This%20Source%20Code%20Form%20is%20subject%20to%20the%20terms%20of%20the%20Mozilla%20Public%20-%20License,%20v.%202.0.%20If%20a%20copy%20of%20the%20MPL%20was%20not%20distributed%20with%20this%20-%20file,%20You%20can%20obtain%20one%20at%20http://mozilla.org/MPL/2.0/.%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20width='16'%20height='16'%3e%3cstyle%3e%20@media%20not%20(prefers-reduced-motion)%20{%20@keyframes%20loadingRotate%20{%20from%20{%20rotate:%200;%20}%20to%20{%20rotate:%20360deg%20}%20}%20%23circle-arrows%20{%20animation:%20loadingRotate%201.8s%20linear%20infinite;%20transform-origin:%2050%25%2050%25;%20}%20%23hourglass%20{%20display:%20none;%20}%20}%20@media%20(prefers-reduced-motion)%20{%20%23circle-arrows%20{%20display:%20none;%20}%20}%20%3c/style%3e%3cpath%20id='circle-arrows'%20d='M9%205.528c0%20.42.508.63.804.333l2.528-2.528a.47.47%200%200%200%200-.666L9.805.14A.471.471%200%200%200%209%20.472v1.866A5.756%205.756%200%200%200%202.25%208c0%20.942.232%201.83.635%202.615l1.143-1.143A4.208%204.208%200%200%201%203.75%208%204.254%204.254%200%200%201%208%203.75c.345%200%20.68.042%201%20.122v1.656zM7%2010.472v1.656c.32.08.655.122%201%20.122A4.254%204.254%200%200%200%2012.25%208c0-.52-.107-1.013-.279-1.474l1.143-1.143c.404.786.636%201.674.636%202.617A5.756%205.756%200%200%201%207%2013.662v1.866a.47.47%200%200%201-.804.333l-2.528-2.528a.47.47%200%200%201%200-.666l2.528-2.528a.47.47%200%200%201%20.804.333z'/%3e%3cg%20id='hourglass'%3e%3cpath%20d='M13,1%20C13.5522847,1%2014,1.44771525%2014,2%20C14,2.55228475%2013.5522847,3%2013,3%20L12.9854217,2.99990801%20C12.9950817,3.16495885%2013,3.33173274%2013,3.5%20C13,5.24679885%2010.9877318,6.01090495%2010.9877318,8.0017538%20C10.9877318,9.99260264%2013,10.7536922%2013,12.5%20C13,12.6686079%2012.9950617,12.8357163%2012.985363,13.0010943%20L13,13%20C13.5522847,13%2014,13.4477153%2014,14%20C14,14.5522847%2013.5522847,15%2013,15%20L3,15%20C2.44771525,15%202,14.5522847%202,14%20C2,13.4477153%202.44771525,13%203,13%20L3.01463704,13.0010943%20C3.00493827,12.8357163%203,12.6686079%203,12.5%20C3,10.7536922%204.9877318,9.99260264%205,8.0017538%20C5.0122682,6.01090495%203,5.24679885%203,3.5%20C3,3.33173274%203.00491834,3.16495885%203.01457832,2.99990801%20L3,3%20C2.44771525,3%202,2.55228475%202,2%20C2,1.44771525%202.44771525,1%203,1%20L13,1%20Z%20M10.987,3%20L5.012,3%20L5.00308914,3.24815712%20C5.00103707,3.33163368%205,3.4155948%205,3.5%20C5,5.36125069%206.99153646,6.01774089%206.99153646,8.0017538%20C6.99153646,9.98576671%205,10.6393737%205,12.5%20L5.00307746,12.7513676%20L5.01222201,12.9998392%20L5.60191711,12.9988344%20L6.0425138,12.2959826%20C7.02362731,10.7653275%207.67612271,10%208,10%20C8.37014547,10%209.16950644,10.9996115%2010.3980829,12.9988344%20L10.987778,12.9998392%20C10.9958674,12.8352104%2011,12.66849%2011,12.5%20C11,10.6393737%208.98689779,10.0147381%208.98689779,8.0017538%20C8.98689779,5.98876953%2011,5.36125069%2011,3.5%20L10.9969109,3.24815712%20L10.987,3%20Z'/%3e%3cpath%20d='M6,4%20L10,4%20C8.95166016,6%208.28499349,7%208,7%20C7.71500651,7%207.04833984,6%206,4%20Z'/%3e%3c/g%3e%3c/svg%3e");--csstools-light-dark-toggle--56:var(--csstools-color-scheme--light) #2b2a33;--preview-image-bg-color:var(--csstools-light-dark-toggle--56, #f0f0f4);--preview-image-border:none}@supports (color: light-dark(red,red)){.dialog.newAltText{--preview-image-bg-color:light-dark(#f0f0f4, #2b2a33)}}@supports not (color: light-dark(tan,tan)){.dialog.newAltText *{--csstools-light-dark-toggle--56:var(--csstools-color-scheme--light) #2b2a33;--preview-image-bg-color:var(--csstools-light-dark-toggle--56, #f0f0f4)}}@media screen and (forced-colors: active){.dialog.newAltText{--preview-image-bg-color:ButtonFace;--preview-image-border:1px solid ButtonText}}.dialog.newAltText{width:80%;max-width:570px;min-width:300px;padding:0}.dialog.newAltText.noAi #newAltTextDisclaimer,.dialog.newAltText.noAi #newAltTextCreateAutomatically,.dialog.newAltText.aiInstalling #newAltTextCreateAutomatically{display:none!important}.dialog.newAltText.aiInstalling #newAltTextDownloadModel{display:flex!important}.dialog.newAltText.error #newAltTextNotNow{display:none!important}.dialog.newAltText.error #newAltTextCancel{display:inline-block!important}.dialog.newAltText:not(.error) #newAltTextError{display:none!important}.dialog.newAltText #newAltTextContainer{display:flex;width:auto;padding:16px;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;flex:0 1 auto;line-height:normal}:is(.dialog.newAltText #newAltTextContainer) #mainContent{display:flex;justify-content:flex-end;align-items:flex-start;gap:12px;align-self:stretch;flex:1 1 auto}:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionAndSettings{display:flex;flex-direction:column;align-items:flex-start;gap:16px;flex:1 0 0;align-self:stretch}:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction{display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;flex:1 1 auto}:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer{width:100%;height:70px;position:relative}:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea{width:100%;height:100%;padding:8px}:is(:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea)::-moz-placeholder{color:var(--text-secondary-color)}:is(:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea)::placeholder{color:var(--text-secondary-color)}:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) .altTextSpinner{display:none;position:absolute;width:16px;height:16px;inset-inline-start:8px;inset-block-start:8px;-webkit-mask-size:cover;mask-size:cover;background-color:var(--text-secondary-color);pointer-events:none}.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea::-moz-placeholder{color:transparent}.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea::placeholder{color:transparent}.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) .altTextSpinner{display:inline-block;-webkit-mask-image:var(--new-alt-text-spinner-icon);mask-image:var(--new-alt-text-spinner-icon)}:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescription{font-size:11px}:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDisclaimer{display:flex;flex-direction:row;align-items:flex-start;gap:4px;font-size:11px}:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDisclaimer):before{content:"";display:inline-block;width:17px;height:16px;-webkit-mask-image:var(--new-alt-text-ai-disclaimer-icon);mask-image:var(--new-alt-text-ai-disclaimer-icon);-webkit-mask-size:cover;mask-size:cover;background-color:var(--text-secondary-color);flex:1 0 auto}:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextDownloadModel{display:flex;align-items:center;gap:4px;align-self:stretch}:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextDownloadModel):before{content:"";display:inline-block;width:16px;height:16px;-webkit-mask-image:var(--new-alt-text-spinner-icon);mask-image:var(--new-alt-text-spinner-icon);-webkit-mask-size:cover;mask-size:cover;background-color:var(--text-secondary-color)}:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextImagePreview{width:180px;aspect-ratio:1;display:flex;justify-content:center;align-items:center;flex:0 0 auto;background-color:var(--preview-image-bg-color);border:var(--preview-image-border)}:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextImagePreview)>canvas{max-width:100%;max-height:100%}.colorPicker{--csstools-light-dark-toggle--57:var(--csstools-color-scheme--light) #80ebff;--hover-outline-color:var(--csstools-light-dark-toggle--57, #0250bb);--csstools-light-dark-toggle--58:var(--csstools-color-scheme--light) #aaf2ff;--selected-outline-color:var(--csstools-light-dark-toggle--58, #0060df);--csstools-light-dark-toggle--59:var(--csstools-color-scheme--light) #52525e;--swatch-border-color:var(--csstools-light-dark-toggle--59, #cfcfd8)}@supports (color: light-dark(red,red)){.colorPicker{--hover-outline-color:light-dark(#0250bb, #80ebff);--selected-outline-color:light-dark(#0060df, #aaf2ff);--swatch-border-color:light-dark(#cfcfd8, #52525e)}}@supports not (color: light-dark(tan,tan)){.colorPicker *{--csstools-light-dark-toggle--57:var(--csstools-color-scheme--light) #80ebff;--hover-outline-color:var(--csstools-light-dark-toggle--57, #0250bb);--csstools-light-dark-toggle--58:var(--csstools-color-scheme--light) #aaf2ff;--selected-outline-color:var(--csstools-light-dark-toggle--58, #0060df);--csstools-light-dark-toggle--59:var(--csstools-color-scheme--light) #52525e;--swatch-border-color:var(--csstools-light-dark-toggle--59, #cfcfd8)}}@media screen and (forced-colors: active){.colorPicker{--hover-outline-color:Highlight;--selected-outline-color:var(--hover-outline-color);--swatch-border-color:ButtonText}}.colorPicker .swatch{width:16px;height:16px;border:1px solid var(--swatch-border-color);border-radius:100%;outline-offset:2px;box-sizing:border-box;forced-color-adjust:none}.colorPicker button:is(:hover,.selected)>.swatch{border:none}.basicColorPicker{width:28px}.basicColorPicker::-moz-color-swatch{border-radius:100%}.basicColorPicker::-webkit-color-swatch{border-radius:100%}.annotationEditorLayer[data-main-rotation="0"] .highlightEditor:not(.free)>.editToolbar{rotate:0deg}.annotationEditorLayer[data-main-rotation="90"] .highlightEditor:not(.free)>.editToolbar{rotate:270deg}.annotationEditorLayer[data-main-rotation="180"] .highlightEditor:not(.free)>.editToolbar{rotate:180deg}.annotationEditorLayer[data-main-rotation="270"] .highlightEditor:not(.free)>.editToolbar{rotate:90deg}.annotationEditorLayer .highlightEditor{position:absolute;background:transparent;z-index:1;cursor:auto;max-width:100%;max-height:100%;border:none;outline:none;pointer-events:none;transform-origin:0 0}:is(.annotationEditorLayer .highlightEditor):not(.free){transform:none}:is(.annotationEditorLayer .highlightEditor) .internal{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:auto}.disabled:is(.annotationEditorLayer .highlightEditor) .internal{pointer-events:none}.selectedEditor:is(.annotationEditorLayer .highlightEditor) .internal{cursor:pointer}:is(.annotationEditorLayer .highlightEditor) .editToolbar{--editor-toolbar-colorpicker-arrow-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.23336%2010.4664L11.8474%206.85339C11.894%206.8071%2011.931%206.75203%2011.9563%206.69136C11.9816%206.63069%2011.9946%206.56562%2011.9946%206.49989C11.9946%206.43417%2011.9816%206.3691%2011.9563%206.30843C11.931%206.24776%2011.894%206.19269%2011.8474%206.14639C11.7536%206.05266%2011.6264%206%2011.4939%206C11.3613%206%2011.2341%206.05266%2011.1404%206.14639L7.99236%209.29339L4.84736%206.14739C4.75305%206.05631%204.62675%206.00592%204.49566%206.00706C4.36456%206.0082%204.23915%206.06078%204.14645%206.15348C4.05374%206.24619%204.00116%206.37159%204.00002%206.50269C3.99888%206.63379%204.04928%206.76009%204.14036%206.85439L7.75236%2010.4674L8.23336%2010.4664Z'%20fill='black'/%3e%3c/svg%3e");transform-origin:center!important}:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker{position:relative;width:auto;display:flex;justify-content:center;align-items:center;gap:4px;padding:4px}:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):after{content:"";-webkit-mask-image:var(--editor-toolbar-colorpicker-arrow-image);mask-image:var(--editor-toolbar-colorpicker-arrow-image);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;display:inline-block;background-color:var(--editor-toolbar-fg-color);width:12px;height:12px}:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):hover:after{background-color:var(--editor-toolbar-hover-fg-color)}:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden)){background-color:var(--editor-toolbar-hover-bg-color)}:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden)):after{scale:-1}:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown{position:absolute;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:11px;padding-block:8px;border-radius:6px;background-color:var(--editor-toolbar-bg-color);border:1px solid var(--editor-toolbar-border-color);box-shadow:var(--editor-toolbar-shadow);inset-block-start:calc(100% + 4px);width:calc(100% + 2 * var(--editor-toolbar-padding))}:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button{width:100%;height:auto;border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;background:none}:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button):is(:active,:focus-visible){outline:none}:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button)>.swatch{outline-offset:2px}[aria-selected=true]:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button)>.swatch{outline:2px solid var(--selected-outline-color)}:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button):is(:hover,:active,:focus-visible)>.swatch{outline:2px solid var(--hover-outline-color)}.editorParamsToolbar:has(#highlightParamsToolbarContainer){padding:unset}#highlightParamsToolbarContainer{gap:16px;padding-inline:10px;padding-block-end:12px}#highlightParamsToolbarContainer .colorPicker{display:flex;flex-direction:column;gap:8px}:is(#highlightParamsToolbarContainer .colorPicker) .dropdown{display:flex;justify-content:space-between;align-items:center;flex-direction:row;height:auto}:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button{width:auto;height:auto;border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;background:none;flex:0 0 auto;padding:0}:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button) .swatch{width:24px;height:24px}:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button):is(:active,:focus-visible){outline:none}[aria-selected=true]:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button)>.swatch{outline:2px solid var(--selected-outline-color)}:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button):is(:hover,:active,:focus-visible)>.swatch{outline:2px solid var(--hover-outline-color)}#highlightParamsToolbarContainer #editorHighlightThickness{display:flex;flex-direction:column;align-items:center;gap:4px;align-self:stretch}:is(#highlightParamsToolbarContainer #editorHighlightThickness) .editorParamsLabel{height:auto;align-self:stretch}:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{display:flex;justify-content:space-between;align-items:center;align-self:stretch;--csstools-light-dark-toggle--60:var(--csstools-color-scheme--light) #80808e;--example-color:var(--csstools-light-dark-toggle--60, #bfbfc9)}@supports (color: light-dark(red,red)){:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{--example-color:light-dark(#bfbfc9, #80808e)}}@supports not (color: light-dark(tan,tan)){:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) *{--csstools-light-dark-toggle--60:var(--csstools-color-scheme--light) #80808e;--example-color:var(--csstools-light-dark-toggle--60, #bfbfc9)}}@media screen and (forced-colors: active){:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{--example-color:CanvasText}}:is(:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker)>.editorParamsSlider[disabled]){opacity:.4}:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker):before,:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker):after{content:"";width:8px;aspect-ratio:1;display:block;border-radius:100%;background-color:var(--example-color)}:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker):after{width:24px}:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) .editorParamsSlider{width:unset;height:14px}#highlightParamsToolbarContainer #editorHighlightVisibility{display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch}:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{--csstools-light-dark-toggle--61:var(--csstools-color-scheme--light) #8f8f9d;--divider-color:var(--csstools-light-dark-toggle--61, #d7d7db)}@supports (color: light-dark(red,red)){:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{--divider-color:light-dark(#d7d7db, #8f8f9d)}}@supports not (color: light-dark(tan,tan)){:is(:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider) *{--csstools-light-dark-toggle--61:var(--csstools-color-scheme--light) #8f8f9d;--divider-color:var(--csstools-light-dark-toggle--61, #d7d7db)}}@media screen and (forced-colors: active){:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{--divider-color:CanvasText}}:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{margin-block:4px;width:100%;height:1px;background-color:var(--divider-color)}:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .toggler{display:flex;justify-content:space-between;align-items:center;align-self:stretch}#altTextSettingsDialog{padding:16px}#altTextSettingsDialog #altTextSettingsContainer{display:flex;width:573px;flex-direction:column;gap:16px}:is(#altTextSettingsDialog #altTextSettingsContainer) .mainContainer{gap:16px}:is(#altTextSettingsDialog #altTextSettingsContainer) .description{color:var(--text-secondary-color)}:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings{display:flex;flex-direction:column;gap:12px}:is(:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings) button{width:-moz-fit-content;width:fit-content}.download:is(:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings) #deleteModelButton{display:none}:is(:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings):not(.download) #downloadModelButton{display:none}:is(#altTextSettingsDialog #altTextSettingsContainer) #automaticAltText,:is(#altTextSettingsDialog #altTextSettingsContainer) #altTextEditor{display:flex;flex-direction:column;gap:8px}:is(#altTextSettingsDialog #altTextSettingsContainer) #createModelDescription,:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings,:is(#altTextSettingsDialog #altTextSettingsContainer) #showAltTextDialogDescription{padding-inline-start:40px}:is(#altTextSettingsDialog #altTextSettingsContainer) #automaticSettings{display:flex;flex-direction:column;gap:16px}:root{--csstools-color-scheme--light:initial;color-scheme:light dark;--viewer-container-height:0;--pdfViewer-padding-bottom:0;--page-margin:1px auto -8px;--page-border:9px solid transparent;--spreadHorizontalWrapped-margin-LR:-3.5px;--loading-icon-delay:.4s;--csstools-light-dark-toggle--62:var(--csstools-color-scheme--light) #0df;--focus-ring-color:var(--csstools-light-dark-toggle--62, #0060df);--focus-ring-outline:2px solid var(--focus-ring-color)}@supports (color: light-dark(red,red)){:root{--focus-ring-color:light-dark(#0060df, #0df)}}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--62:var(--csstools-color-scheme--light) #0df;--focus-ring-color:var(--csstools-light-dark-toggle--62, #0060df)}}@media (prefers-color-scheme: dark){:root{--csstools-color-scheme--light:}}@media screen and (forced-colors: active){:root{--pdfViewer-padding-bottom:9px;--page-margin:8px auto -1px;--page-border:1px solid CanvasText;--spreadHorizontalWrapped-margin-LR:3.5px;--focus-ring-color:CanvasText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}#hiddenCopyElement,.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.pdfViewer{--scale-factor:1;--page-bg-color:unset;padding-bottom:var(--pdfViewer-padding-bottom);--hcm-highlight-filter:none;--hcm-highlight-selected-filter:none}@media screen and (forced-colors: active){.pdfViewer{--hcm-highlight-filter:invert(100%)}}.pdfViewer.copyAll{cursor:wait}.pdfViewer .canvasWrapper{overflow:hidden;width:100%;height:100%}:is(.pdfViewer .canvasWrapper) canvas{position:absolute;top:0;left:0;margin:0;display:block;width:100%;height:100%;contain:content}:is(:is(.pdfViewer .canvasWrapper) canvas) .structTree{contain:strict}.pdfViewer .page{--user-unit:1;--total-scale-factor:calc(var(--scale-factor) * var(--user-unit));--scale-round-x:1px;--scale-round-y:1px;direction:ltr;width:816px;height:1056px;margin:var(--page-margin);position:relative;overflow:visible;border:var(--page-border);background-clip:content-box;background-color:var(--page-bg-color, rgb(255 255 255))}.pdfViewer .dummyPage{position:relative;width:0;height:var(--viewer-container-height)}.pdfViewer.noUserSelect{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pdfViewer.removePageBorders .page{margin:0 auto 10px;border:none}.pdfViewer.singlePageView{display:inline-block}.pdfViewer.singlePageView .page{margin:0;border:none}.pdfViewer:is(.scrollHorizontal,.scrollWrapped),.spread{margin-inline:3.5px;text-align:center}.pdfViewer.scrollHorizontal,.spread{white-space:nowrap}.pdfViewer.removePageBorders,.pdfViewer:is(.scrollHorizontal,.scrollWrapped) .spread{margin-inline:0}.spread :is(.page,.dummyPage),.pdfViewer:is(.scrollHorizontal,.scrollWrapped) :is(.page,.spread){display:inline-block;vertical-align:middle}.spread .page,.pdfViewer:is(.scrollHorizontal,.scrollWrapped) .page{margin-inline:var(--spreadHorizontalWrapped-margin-LR)}.pdfViewer.removePageBorders .spread .page,.pdfViewer.removePageBorders:is(.scrollHorizontal,.scrollWrapped) .page{margin-inline:5px}.pdfViewer .page.loadingIcon:after{position:absolute;top:0;left:0;content:"";width:100%;height:100%;background:url(data:image/gif;base64,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) center no-repeat;display:none;transition-property:display;transition-delay:var(--loading-icon-delay);z-index:5;contain:strict}.pdfViewer .page.loading:after{display:block}.pdfViewer .page:not(.loading):after{transition-property:none;display:none}.pdfPresentationMode .pdfViewer{padding-bottom:0}.pdfPresentationMode .spread{margin:0}.pdfPresentationMode .pdfViewer .page{margin:0 auto;border:2px solid transparent}.yarl__fullsize{height:100%;width:100%}.yarl__relative{position:relative}.yarl__portal{bottom:0;left:0;opacity:0;overflow:hidden;position:fixed;right:0;top:0;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999)}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));bottom:0;left:0;outline:none;overflow:hidden;overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);position:absolute;right:0;top:0;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;-moz-user-select:none;user-select:none}.yarl__carousel{align-content:center;align-items:stretch;display:flex;flex:0 0 auto;height:100%;justify-content:center;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px, 0)*1px + var(--yarl__carousel_spacing_percent, 0)*1%))}.yarl__carousel_with_slides{-moz-column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%);column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%)}.yarl__flex_center{align-content:center;align-items:center;display:flex;justify-content:center}.yarl__slide{flex:1;overflow:hidden;padding:calc(var(--yarl__carousel_padding_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_padding_percent, 0)*1%);position:relative}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.yarl__slide_image_cover{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);-webkit-transform-style:preserve-3d}}.yarl__slide_placeholder{left:50%;line-height:0;position:absolute;top:50%;transform:translate(-50%) translateY(-50%)}.yarl__slide_loading{animation:yarl__delayed_fadein 1s linear;color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,hsla(0,0%,100%,.8)))}.yarl__slide_loading line{animation:yarl__stroke_opacity 1s linear infinite}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media (prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{bottom:auto;display:flex;justify-content:flex-end;left:auto;padding:var(--yarl__toolbar_padding,8px);position:absolute;right:0;top:0}[dir=rtl] .yarl__toolbar{bottom:auto;left:0;right:auto;top:0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,hsla(0,0%,100%,.8));cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));line-height:0;margin:var(--yarl__button_margin,0);outline:none;padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,hsla(0,0%,100%,.8))}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media (hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,hsla(0,0%,100%,.4));cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%) rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%) rotate(180deg)}.yarl__no_scroll{height:100%;overflow:hidden;overscroll-behavior:none}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}.card-theme.media-card .card-header{background-color:transparent}.card-theme.media-card .media-icon-wrapper{background-color:var(--color-green-lighter);color:var(--color-green-dark);border-radius:10px;width:50px;height:50px;padding:0}.card-theme.media-card .media-icon-wrapper.media-audio{background-color:var(--color-yellow-lighter);color:var(--color-yellow-dark)}.card-theme.media-card .media-icon-wrapper.media-image{background-color:var(--color-primary-lighter1);color:var(--color-primary-dark)}.card-theme.media-card .media-icon-wrapper.media-doc{background-color:var(--color-red-lighter);color:var(--color-red-dark)}.card-theme.media-card .media-icon-wrapper.media-quiz{background-color:var(--color-secondary-lighter);color:var(--color-secondary-dark)}.card-theme.media-card .media-icon-wrapper.media-link{background-color:var(--color-red-lighter);color:var(--color-red-dark)}.card-theme.media-card .media-icon-wrapper.media-form{background-color:var(--color-primary-lighter);color:var(--color-primary-dark)}.card-theme.media-card .media-icon-wrapper.media-survey{background-color:var(--color-yellow-lighter);color:var(--color-yellow-dark)}.card-theme.media-card .media-info-container{color:var(--color-gray3);font-size:14px}.card-theme.media-card .media-info{color:var(--color-gray6)}.card-theme.media-card .card-footer{background-color:transparent;border-top:1px solid var(--color-gray-light6)}.custom-audio-viewer-card.ratio>div{padding-left:1rem;padding-right:1rem;background-image:url(/img/default-bg-low-quality.jpg);display:flex;align-items:center}.custom-audio-viewer-card.ratio>div>.react-player__preview{background-image:none!important}.custom-audio-viewer-card.ratio>div>audio{height:auto!important;min-height:60px;filter:drop-shadow(0px 2px 10px rgba(0,0,0,.1))}.wall-message-details-card .btn-likes-light.active{color:var(--color-likes-dark);background-color:var(--color-likes-lighter)}.card-theme.wall-message-card .card-header{background-color:transparent;color:var(--color-gray3);font-weight:var(--fw-sb);font-size:15px}.card-theme.wall-message-card .card-img,.card-theme.wall-message-card .card-img img{max-height:200px;object-fit:contain;object-position:center}.card-theme.wall-message-card .ratio>div{display:flex;justify-content:center;align-items:center}.card-theme.wall-message-card .ratio>div>audio{height:auto!important;min-height:60px}.card-theme.wall-message-card .progress{--bs-progress-height: .36rem;--bs-progress-bg: var(--color-gray-light4)}.card-theme.wall-message-card .progress-bar{background-color:var(--color-success)}.card-theme.wall-message-card .card-footer{background-color:transparent;border-top:1px solid var(--color-gray-light6)}.wall-message-card-horizontal .card-body .card-img img{height:110px;width:110px;object-fit:cover;max-width:100%}.card-theme.wall-message-card.wall-message-card-horizontal .card-body .card-header{font-size:14px;font-weight:var(--fw-sb)}.wall-message-card .user-img{width:30px;height:30px;overflow:hidden;border-radius:50%}.wall-message-card .user-img img{width:100%}@media screen and (min-width: 768px){.card-theme.wall-message-card .card-img img{max-height:300px}}.approve-reject-form-modal .modal-content{border-radius:14px}.approve-reject-form-modal .modal-header{height:40px}.icon-wrapper{background-color:var(--color-green);color:#fff;width:80px;height:80px;position:relative}.icon-wrapper:before{content:"";width:100%;height:100%;border-radius:50%;position:absolute;left:0;top:0;margin:auto;animation:ripple-success 1s linear infinite .2s}.icon-wrapper.wrapper-fail{background-color:var(--color-red)}.icon-wrapper.wrapper-fail:before{animation:ripple-fail 1s linear infinite .2s}.card-theme.contest-card .card-header{background-color:transparent;color:var(--color-gray3);font-weight:var(--fw-sb);font-size:15px}.card-theme.contest-card .card-img{max-height:200px;object-fit:contain;object-position:center}.card-theme.contest-card .progress{--bs-progress-height: .36rem;--bs-progress-bg: var(--color-gray-light4)}.card-theme.contest-card .progress-bar{background-color:var(--color-success)}.card-theme.contest-card .card-footer{background-color:transparent;border-top:1px solid var(--color-gray-light6)}.contest-details-card .btn-likes-light.active{color:var(--color-likes-dark);background-color:var(--color-likes-lighter)}.card-theme.submission-card .card-header{background-color:transparent}.card-theme.submission-card .media-icon-wrapper{background-color:var(--color-green-lighter);color:var(--color-green-dark);border-radius:10px;width:50px;height:50px;padding:0}.card-theme.submission-card .media-icon-wrapper.media-audio{background-color:var(--color-yellow-lighter);color:var(--color-yellow-dark)}.card-theme.submission-card .media-icon-wrapper.media-image{background-color:var(--color-primary-lighter1);color:var(--color-primary-dark)}.card-theme.submission-card .media-icon-wrapper.media-doc{background-color:var(--color-red-lighter);color:var(--color-red-dark)}.media-viewed-icon{background-color:var(--color-green);color:#fff;right:0;top:0;z-index:1;width:22px;height:22px;display:flex;justify-content:center;align-items:center;border-radius:0 12px}.card-theme.submission-card .media-info-container{color:var(--color-gray3);font-size:14px}.card-theme.submission-card .btn-likes-light.active{color:var(--color-likes-dark);background-color:var(--color-likes-lighter)}.card-theme.submission-card .media-info{color:var(--color-gray6)}.card-theme.submission-card .card-footer{background-color:transparent;border-top:1px solid var(--color-gray-light6)}.theme-modal .modal-body .btn-likes-light.active{color:var(--color-likes-dark)}.theme-modal.media-viewer-modal .heading-icon{background-color:var(--color-green-lighter);color:var(--color-green-dark)}.theme-modal.media-viewer-modal .heading-icon.media-audio{background-color:var(--color-yellow-lighter);color:var(--color-yellow-dark)}.theme-modal.media-viewer-modal .heading-icon.media-image{background-color:var(--color-primary-lighter1);color:var(--color-primary-dark)}.theme-modal.media-viewer-modal .heading-icon.media-doc{background-color:var(--color-red-lighter);color:var(--color-red-dark)}.custom-rating{position:relative;line-height:1}.custom-rating-tooltip{position:absolute;margin-left:10px!important;background-color:transparent!important;color:var(--color-primary-dark)!important;font-size:14px!important;font-weight:var(--fw-sb);letter-spacing:1px;-webkit-transition:all .28s ease-in-out;-moz-transition:all .28s ease-in-out;transition:all .28s ease-in-out}.custom-rating-tooltip.tooltip-large{padding:6px 18px!important;font-size:15px!important}.custom-rating-tooltip.tooltip-small{padding:2px 5px!important;font-size:12px!important}.custom-rating-tooltip.show-hover{opacity:0;visibility:hidden;-webkit-transform:scale(.98) translateY(2px);-moz-transform:scale(.98) translateY(2px);transform:scale(.98) translateY(2px)}.custom-rating:hover+.custom-rating-tooltip{opacity:1;visibility:visible;-webkit-transform:scale(1) translateY(0);-moz-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}.evaluation-status-card .card-header{background-color:transparent}.evaluation-status-card.self-evaluation .card-header{background-color:var(--color-spl-light)}.evaluation-status-card .progress{--bs-progress-height: .3rem;--bs-progress-bg: var(--color-gray-light4)}.evaluation-status-card .progress-bar{background-color:var(--color-success)}.card.evaluation-status-card .media_icon_wrap{width:36px!important;height:36px!important}.card.evaluation-status-card .media{display:flex;align-items:center}.card.evaluation-status-card .media_icon_wrap,.card.evaluation-status-card .media_img_wrap{flex-shrink:0;width:60px;height:60px;border-radius:50%;overflow:hidden;background-color:var(--color-gray-light1);border:2px solid var(--color-gray-light5);position:relative;text-align:center}.card.evaluation-status-card .profile_img,.card.evaluation-status-card .media_img{width:100%;height:100%;overflow:hidden;object-fit:cover}.card.evaluation-status-card .media_body{flex-grow:1}@media screen and (min-width: 768px){.card.evaluation-status-card .media_icon_wrap{width:42px!important;height:42px!important}.card.evaluation-status-card .media_body .font-12{font-size:14px}}.theme-modal.audio-recording-modal.show{background:#0006}.waves-container{height:40px;display:flex;align-items:center;justify-content:center}.waves-container .line{display:block;position:relative;background-color:var(--color-yellow);height:100%;width:3px;border-radius:50px;margin:0 4px;animation:waves-animate 1.2s linear infinite}@keyframes waves-animate{50%{height:20%}to{height:100%}}.waves-container .line:nth-child(1){animation-delay:0s}.waves-container .line:nth-child(2){animation-delay:.3s}.waves-container .line:nth-child(3){animation-delay:.6s}.waves-container .line:nth-child(4){animation-delay:.9s}.waves-container .line:nth-child(5){animation-delay:.6s}.waves-container .line:nth-child(6){animation-delay:.3s}.waves-container .line:nth-child(7){animation-delay:0s}.waves-container .line:nth-child(8){animation-delay:0s}.waves-container .line:nth-child(9){animation-delay:.3s}.waves-container .line:nth-child(10){animation-delay:.6s}.waves-container .line:nth-child(11){animation-delay:.9s}.waves-container .line:nth-child(12){animation-delay:.6s}.waves-container .line:nth-child(13){animation-delay:.3s}.waves-container .line:nth-child(14){animation-delay:0s}.waves-container .line:nth-child(15){animation-delay:0s}.waves-container .line:nth-child(16){animation-delay:.3s}.waves-container .line:nth-child(17){animation-delay:.6s}.waves-container .line:nth-child(18){animation-delay:.9s}.waves-container .line:nth-child(19){animation-delay:.6s}.waves-container .line:nth-child(20){animation-delay:.3s}.waves-container .line:nth-child(21){animation-delay:0s}.theme-modal.agora-video-modal.show{background:#0006}.theme-modal.modal-bottom.agora-video-modal .modal-dialog{padding-top:0}.theme-modal.modal-bottom.agora-video-modal .modal-content{border-top-left-radius:1px;border-top-right-radius:1px;padding-bottom:0}.theme-modal.agora-video-modal .modal-content{background-color:var(--color-gray6)}.join-room{max-width:380px;margin:0 auto;border-radius:4px;padding:15px}.join-room .logo{width:70px}.join-room input{box-sizing:border-box;margin:15px 0 0;padding:8px 11px;color:#000000e0;font-size:14px;line-height:1.5714285714;list-style:none;position:relative;display:inline-block;width:100%;min-width:0;background-color:#fff;background-image:none;border-width:1px;border-style:solid;border-color:#d9d9d9;border-radius:8px;transition:all .2s}.join-room .join-channel{color:#fff;background-color:#1677ff;box-shadow:0 2px #0591ff1a;font-size:14px;padding:4px 15px;border-radius:6px;outline:none;position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;border:1px solid rgba(0,0,0,0);cursor:pointer;transition:all .2s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;line-height:1.5714285714;box-sizing:border-box;overflow:visible;margin-top:10px}.join-room .join-channel.disabled{background-color:#d9d9d9;box-shadow:none}.room{padding-top:0;padding-bottom:80px;color:#fff}.user-list{padding-top:1rem;padding:0rem;grid-gap:1.25rem;gap:1.25rem;flex:1 1 0%;display:flex;position:relative}.user{border-style:solid;--un-border-opacity: 1;border-color:rgba(75,85,99,var(--un-border-opacity));border-width:1px;box-sizing:border-box;width:100%;min-height:85vh}.user-name{--un-text-opacity: 1;color:rgba(255,255,255,var(--un-text-opacity));font-size:.875rem;line-height:1.25rem;padding-left:.25rem;padding-right:.25rem;--un-bg-opacity: 1;background-color:rgba(0,0,0,var(--un-bg-opacity));grid-gap:.25rem;gap:.25rem;align-items:center;display:inline-flex;z-index:2;bottom:0;position:absolute;box-sizing:border-box}.control{--un-text-opacity: 1;color:var(--color-gray-light4);padding:.75rem 1rem;--un-bg-opacity: 1;background-color:var(--color-gray6);grid-gap:.75rem;gap:.75rem;justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:0;left:0;width:100%;box-sizing:border-box}.left-control{padding:.3rem 1rem .3rem 0rem;grid-gap:.75rem;gap:.75rem;align-items:center;display:flex;height:100%}.btn-theme.btn-start-recording{padding:2px 25px 2px 2px}.btn-theme.btn-start-recording:active{background-color:#fff!important;color:var(--color-gray3)!important}.btn-theme.btn-start-recording .icon{display:flex;justify-content:center;align-items:center;width:44px;height:44px;border:2px solid #fff;border-radius:50%;background-color:#00000080;transition:.25s ease}.btn-theme.btn-start-recording .icon>span{display:inline-block;width:18px;height:18px;border-radius:50%;background-color:#fff;transform:scale(.8);transition:.25s ease}.btn-theme.btn-start-recording.active .icon{background-color:var(--color-red)}.btn-theme.btn-start-recording.active .icon>span{border-radius:3px;transform:scale(1)}.card.custom-select-list-btn-card{background-color:transparent}.card.custom-select-list-btn-card.selected{background-color:var(--color-spl-light)}.custom-select-list-btn-card .info-container .welcome-user{font-size:14px;font-weight:var(--fw-n);line-height:1.3}.custom-select-list-btn-card .info-container .welcome-user>span{font-size:13px;font-weight:var(--fw-n);margin-top:1px;color:var(--color-gray7)}.custom-select-list-btn-card .info-container .media-icon-wrapper{width:46px;aspect-ratio:1/1;border-radius:50%;overflow:hidden;display:inline-block;text-align:center;border:1px solid #fff;transition:all .15s ease-in-out}.custom-select-list-btn-card .info-container .media-icon-wrapper img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:top}.custom-select-list-btn-card .radio-status-icon{right:5px;top:22px;color:var(--color-gray-light2);transition:all .15s ease}.custom-select-list-btn-card .radio-status-icon.unchecked-icon{transform:scale(1)}.custom-select-list-btn-card .radio-status-icon.checked-icon{transform:scale(0)}.custom-select-list-btn-card.selected .radio-status-icon.checked-icon{transform:scale(1);color:var(--color-primary)}.custom-select-list-btn-card.selected .radio-status-icon.unchecked-icon{transform:scale(0)}.custom-select-image-btn-card{border-radius:1px;position:relative;overflow:hidden}.custom-select-image-btn-card .card-body{transition:.25s ease-in-out;padding:0;border-radius:1px;position:relative}.custom-select-image-btn-card .card-body .card-overlay{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;justify-content:end;align-items:flex-start;z-index:-1;color:var(--color-green-dark);padding:5px;opacity:0;visibility:hidden;transform:scale(.15);transition:.25s ease-in-out}.custom-select-image-btn-card .card-body img{width:100%;height:100%;object-fit:contain}.custom-select-image-btn-card.selected .card-body .card-overlay{opacity:1;visibility:visible;transform:scale(1);z-index:1}.send-appreciation-page .nav-tabs#stepper-tabs{display:none}.ReactVirtualized__Table__headerRow{font-weight:700;text-transform:uppercase;display:flex;flex-direction:row;align-items:center}.ReactVirtualized__Table__row{display:flex;flex-direction:row;align-items:center}.ReactVirtualized__Table__headerTruncatedText{display:inline-block;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ReactVirtualized__Table__headerColumn,.ReactVirtualized__Table__rowColumn{margin-right:10px;min-width:0px}.ReactVirtualized__Table__rowColumn{text-overflow:ellipsis;white-space:nowrap}.ReactVirtualized__Table__headerColumn:first-of-type,.ReactVirtualized__Table__rowColumn:first-of-type{margin-left:10px}.ReactVirtualized__Table__sortableHeaderColumn{cursor:pointer}.ReactVirtualized__Table__sortableHeaderIconContainer{display:flex;align-items:center}.ReactVirtualized__Table__sortableHeaderIcon{flex:0 0 24px;height:1em;width:1em;fill:currentColor}.card.custom-radio-list-btn-card{background-color:transparent}.custom-radio-list-btn-card .profile-info-container .welcome-user{font-size:14px;font-weight:var(--fw-n);line-height:1.3}.custom-radio-list-btn-card .profile-info-container .welcome-user>span{font-size:13px;font-weight:var(--fw-n);margin-top:1px;color:var(--color-gray7)}.custom-radio-list-btn-card .profile-info-container .media-icon-wrapper{width:46px;height:46px;border-radius:50%;overflow:hidden;display:inline-block;text-align:center;border:2px solid #fff;transition:all .15s ease-in-out}.custom-radio-list-btn-card .profile-info-container .media-icon-wrapper img{height:100%;width:100%;object-fit:cover;object-position:top}.custom-radio-list-btn-card.card-normal-radius .profile-info-container .media-icon-wrapper{border-radius:10px;width:50px;height:50px;overflow:visible}.custom-radio-list-btn-card .card-body{padding:10px 25px 10px 0}.custom-radio-list-btn-card label{margin-bottom:0;cursor:pointer}.custom-radio-list-btn-card input,.custom-radio-img-gallery-btn-card input{display:block;position:absolute;width:100%;height:100%;top:0;left:0;z-index:1;opacity:0;cursor:pointer}.custom-radio-list-btn-card label .radio-status-icon{right:5px;top:25px;color:var(--color-gray-light2);transition:all .15s ease-in-out}.custom-radio-list-btn-card label .radio-status-icon.unchecked-icon{transform:scale(1)}.custom-radio-list-btn-card label .radio-status-icon.checked-icon{transform:scale(0)}.custom-radio-list-btn-card input:checked~label .radio-status-icon.checked-icon{transform:scale(1);color:var(--color-primary)}.custom-radio-list-btn-card input:checked~label .radio-status-icon.unchecked-icon{transform:scale(0)}.custom-radio-list-btn-card input:checked~label .card-body{background-color:transparent}.custom-radio-list-btn-card input:checked~label .card-body .media-icon-wrapper{transform:scale(1.1)}.custom-radio-img-gallery-btn-card{border-radius:1px}.custom-radio-img-gallery-btn-card .card-body{transition:.25s ease-in-out;padding:0;border-radius:1px}.custom-radio-img-gallery-btn-card .card-body .card-overlay{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;justify-content:end;align-items:flex-start;z-index:-1;color:var(--color-green-dark);padding:5px;opacity:0;visibility:hidden;transform:scale(.15);transition:.25s ease-in-out}.custom-radio-img-gallery-btn-card .card-body img{width:100%;height:100%;object-fit:contain}.custom-radio-img-gallery-btn-card input:checked~label .card-body .card-overlay{opacity:1;visibility:visible;transform:scale(1);z-index:1}.card-theme.campaigns-card .card-header{background-color:transparent;color:var(--color-gray3);font-weight:var(--fw-sb);font-size:15px}.send-badges-page .nav-tabs#stepper-tabs{display:none}.uploadMediafile{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:1}.uploadMediafile+label{font-size:14px;font-weight:500;color:#fff;background-color:#999;display:flex;padding:10px 15px;border-radius:8px}.uploadMediafile+label.capture-btn{background-color:var(--color-secondary)}.uploadMediafile+label.gallery-btn{background-color:var(--color-gray6)}.uploadMediafile:focus+label,.uploadMediafile+label:hover{background-color:var(--color-gray9)}.uploadMediafile:focus+label{outline:none}.uploadMediafile:disabled+label{opacity:.6;cursor:not-allowed!important}.uploadMediafile:focus+label.capture-btn,.uploadMediafile+label.capture-btn :hover{background-color:var(--color-secondary)}.uploadMediafile:focus+label.gallery-btn,.uploadMediafile+label.gallery-btn :hover{background-color:var(--color-gray6)}.send-messages-page .nav-tabs#stepper-tabs{display:none}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width : 480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}}.Toastify__toast{--y: 0;position:relative;-ms-touch-action:none;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.theme-modal.app-access-forbidden-modal .heading-icon{width:54px;height:54px;background-color:var(--color-yellow-lighter);color:#684609;margin-left:-3px;position:relative}.theme-modal.app-access-forbidden-modal .heading-icon:before{content:"";width:100%;height:100%;border-radius:50%;position:absolute;left:0;top:0;margin:auto;-webkit-animation:ripple-confirm 1s linear infinite .2s;-o-animation:ripple-confirm 1s linear infinite .2s;animation:ripple-confirm 1s linear infinite .2s}.theme-modal.app-access-forbidden-modal .warning-heading{color:#684609;font-weight:var(--fw-sb)}/*! + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, .75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, .5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, .175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(13, 110, 253, .25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, .75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, .5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, .15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label:after{position:absolute;top:1rem;right:.375rem;bottom:1rem;left:.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{position:absolute;top:1rem;right:.375rem;bottom:1rem;left:.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, .15),0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:.5rem;--bs-dropdown-spacer:.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, .15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:.5rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:.25rem;--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, .55);--bs-navbar-hover-color:rgba(255, 255, 255, .75);--bs-navbar-disabled-color:rgba(255, 255, 255, .25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:.75rem;--bs-pagination-padding-y:.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:.5rem;--bs-pagination-padding-y:.25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:.65em;--bs-badge-padding-y:.35em;--bs-badge-font-size:.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:.75rem;--bs-toast-padding-y:.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:.5rem;--bs-tooltip-padding-y:.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:.9;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translate(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform .3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:.1}.border-opacity-25{--bs-border-opacity:.25}.border-opacity-50{--bs-border-opacity:.5}.border-opacity-75{--bs-border-opacity:.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:#00000080!important}.text-white-50{--bs-text-opacity:1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:.25}.text-opacity-50{--bs-text-opacity:.5}.text-opacity-75{--bs-text-opacity:.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:.1}.bg-opacity-25{--bs-bg-opacity:.25}.bg-opacity-50{--bs-bg-opacity:.5}.bg-opacity-75{--bs-bg-opacity:.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{--color-primary: #00aed9;--color-primary-light: #40bad8;--color-primary-lighter1: #ecfbff;--color-primary-lighter2: #f4f4fe;--color-primary-lighter3: #d5fafb;--color-primary-dark: #1099bb;--color-secondary: #7c91c8;--color-secondary-dark: #5970ac;--color-secondary-light: #91a7df;--color-secondary-lighter: #cad8fb;--color-yellow: #ca8a04;--color-yellow-dark: #ca8a04;--color-yellow-light: #eab749;--color-yellow-lighter: #f9edd1;--color-red: #f87171;--color-red-light: #fca5a5;--color-red-lighter: #fed9d9;--color-red-dark: #ef4444;--color-green: #14b8a6;--color-green-light: #2dd4bf;--color-green-lighter: #c7f8f2;--color-green-dark: #2abcac;--color-purple: #6b47e6;--color-offer: #fecd00;--color-reminder: #53a0ef;--color-pending: #ff8050;--color-badges: #d0b961;--color-badges-light: #fefbec;--color-kudos: #7c91c8;--color-kudos-light: #e5ebf9;--color-rewards: #db9289;--color-rewards-light: #fceeeb;--color-likes-light: #ffb8c1;--color-likes-lighter: #fecdd3;--color-likes: #fb7185;--color-likes-dark: #f43f5e;--color-black: #000;--color-white: #fff;--color-gray1: #111;--color-gray15: #151515;--color-gray2: #222;--color-gray25: #252525;--color-gray3: #333;--color-gray3a: #3a3a3a;--color-gray4: #444;--color-gray5: #555;--color-gray6: #666;--color-gray7: #777;--color-gray8: #888;--color-gray9: #999;--color-gray-light1: #aaa;--color-gray-light2: #bbb;--color-gray-light3: #ccc;--color-gray-light4: #ddd;--color-gray-light5: #eee;--color-gray-light6: #f6f6f6;--color-gray-light7: #faf7f7;--color-gray-light8: #fafafa;--color-spl-light: #f5f2ff;--color-spl-light2: #faf8ff;--color-body-bg-light: #fafafa;--color-danger: #df5461;--color-success: #36a67d;--color-green-dark: #32c3b3;--color-green-lighter: #a9e9e2;--color-youtube: #ff0000;--color-facebook: #3b5998;--fw-l: 300;--fw-n: 400;--fw-sb: 500;--fw-b: 600;--navbar-height: 60px;--navbar-content-height: 36px;--footer-navbar-height: 60px;--app-sidenav-width: 320px;--app-sidenav-width-large: 420px}body{font-family:Poppins,sans-serif;background-color:var(--color-body-bg-light);color:var(--color-gray3);line-height:1.5;font-size:16px;font-weight:400;overflow-x:hidden;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.app-wrapper{padding-top:env(safe-area-inset-top,60px);min-height:100vh;height:100%;padding-bottom:env(safe-area-inset-bottom,20px)}.no-scrollbar::-webkit-scrollbar{display:none!important}.ratio.ratio-9x16{--bs-aspect-ratio: calc(16 / 9 * 100%)}.sticky-container-top{--navbar-content-height: max(40px, env(safe-area-inset-top));top:calc(var(--navbar-content-height) + 40px)}.fw-l{font-weight:300}.fw-n{font-weight:400}.fw-sb{font-weight:500}.fw-b{font-weight:600}.font-10{font-size:10px}.font-11{font-size:11px}.font-12{font-size:12px}.font-13{font-size:13px}.font-14{font-size:14px}.font-15{font-size:15px}.font-16{font-size:16px}.font-17{font-size:17px}.font-18{font-size:18px}.font-19{font-size:19px}.font-20{font-size:20px}.font-21{font-size:21px}.font-22{font-size:22px}.font-24{font-size:24px}.font-25{font-size:25px}.font-26{font-size:26px}.font-28{font-size:28px}.font-30{font-size:30px}.font-32{font-size:32px}.font-34{font-size:34px}.font-36{font-size:36px}.font-38{font-size:38px}.font-40{font-size:40px}.bg-primary-lighter{background-color:var(--color-primary-lighter2)}.bg-primary-lighter2{background-color:var(--color-primary-lighter1)}.bg-warning-lighter{background-color:var(--color-badges-light)}.bg-red-lighter1{background-color:var(--color-rewards-light)}.bg-gray-md{background-color:var(--color-gray7)}.bg-gray-lighter1{background-color:var(--color-gray-light5)}.bg-gray-lighter2{background-color:var(--color-gray-light6)}.bg-gray-lighter3{background-color:var(--color-gray-light7)}.bg-gray-normal-overlay{background-color:#00000080}.bg-gray-overlay{background:linear-gradient(#32323226,#323232e6)}.bg-gray-light-overlay{background:linear-gradient(#6464641a,#646464cc)}.bg-primary-overlay{background:linear-gradient(#00aed91a,#00aed9f2)}.bg-primary-light-overlay{background:linear-gradient(#a3e8f533,#a3e8f5f2)}.text-theme-primary{color:var(--color-primary)}.text-theme-secondary{color:var(--color-secondary)}.text-theme-warning{color:var(--color-badges)}.text-gray3{color:var(--color-gray3)}.text-gray4{color:var(--color-gray4)}.text-gray5{color:var(--color-gray5)}.text-gray6{color:var(--color-gray6)}.text-gray7{color:var(--color-gray7)}.text-gray8{color:var(--color-gray8)}.text-gray9{color:var(--color-gray9)}.text-purple{color:var(--color-purple)}.border-theme-top{border-top:1px solid var(--color-gray-light5)}.border-theme-bottom{border-bottom:1px solid var(--color-gray-light5)}.dot-seperator{position:relative;padding:0;margin:0 6px;width:4px;height:4px;border-radius:50%;background-color:var(--color-gray8)}.custom-toast.Toastify__toast-container{width:auto;min-width:300px;padding:0;left:50%;margin:auto}.custom-toast.Toastify__toast-container .Toastify__toast{border-radius:10px;min-height:50px;font-size:15px}.custom-toast.Toastify__toast-container--top-center{left:50%;transform:translate(-50%)}.custom-toast.Toastify__toast-container--top-center{top:env(safe-area-inset-top)!important}.custom-toast.Toastify__toast-container--bottom-center{left:50%;transform:translate(-50%)}.custom-toast.Toastify__toast-container--bottom-center{bottom:50px}.custom-toast.Toastify__toast-container .Toastify__toast-body{padding-right:20px}.custom-toast.Toastify__toast-container .Toastify__close-button{position:absolute;top:4px;bottom:4px;right:5px;margin:auto;color:#fff;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start;width:18px;height:18px;line-height:1;border-radius:50%;text-align:center}@media only screen and (max-width: 480px){.custom-toast.Toastify__toast-container{width:auto;min-width:300px;padding:0;left:50%;margin:auto}}.theme-transition{transition:.25s ease-in-out}.rotate-180{transform:rotate(180deg)}.rotate-anime{animation:rotate-full infinite 1s linear}@keyframes rotate-full{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn.btn-theme{border-radius:8px;border:0px}.btn-theme.btn-shadow{box-shadow:0 1px 10px #0000001a,0 2px 15px #0000000d}.btn-theme.btn-sm{padding:.3rem .8rem;font-size:13px}.btn-theme.btn-md{padding:.6rem 1.5rem;font-size:16px}.btn-theme.btn-lg{padding:.8rem 2rem;font-size:18px}.btn-theme.btn-icon{width:36px;min-width:36px;height:36px;padding:0;line-height:32px}.btn-theme.btn-icon img{height:24px}.btn-theme.btn-icon.btn-sm{width:30px;min-width:30px;height:30px;line-height:30px}.btn-theme.btn-icon.btn-md{width:42px;min-width:42px;height:42px;line-height:42px}.btn-theme.btn-icon.btn-lg{width:50px;min-width:50px;height:50px;line-height:50px}.btn-theme.btn-primary{background-color:var(--color-primary)}.btn-theme.btn-primary-light{background-color:var(--color-primary-lighter3);color:var(--color-primary-dark)}.btn-theme.btn-secondary{background-color:var(--color-secondary);border-color:var(--color-secondary)}.btn-theme.btn-secondary-light{background-color:var(--color-secondary-lighter);color:var(--color-secondary-dark)}.btn-theme.btn-white{background-color:#fff;border-color:#fff;color:var(--color-gray3)}.btn-theme.btn-black{background-color:#000;border-color:#000;color:#fff}.btn-theme.btn-red{background-color:var(--color-red);border-color:var(--color-red)}.btn-theme.btn-red-light{background-color:var(--color-red-light);border-color:var(--color-red-light)}.btn-theme.btn-likes{background-color:var(--color-likes);border-color:var(--color-likes)}.btn-theme.btn-likes-light{background-color:var(--color-likes-light);border-color:var(--color-likes-light)}.btn-theme.btn-yellow{background-color:var(--color-yellow);border-color:var(--color-yellow)}.btn-theme.btn-green{background-color:var(--color-green);border-color:var(--color-green)}.btn-theme.btn-kudos{background-color:var(--color-kudos);border-color:var(--color-kudos)}.btn-theme.btn-badges{background-color:var(--color-badges);border-color:var(--color-badges)}.btn-theme.btn-rewards{background-color:var(--color-rewards);border-color:var(--color-rewards)}.btn-theme.btn-gray{background-color:var(--color-gray-light4);border-color:var(--color-gray-light4);color:var(--color-gray5)}.btn-theme.btn-likes-light.active{background-color:var(--color-likes-light);border-color:var(--color-likes-light);color:var(--color-likes-dark)}.btn-theme.btn-transparent{background-color:transparent;color:inherit}.btn-theme.btn-transparent:active,.btn-theme.btn-transparent:hover,.btn-theme.btn-transparent:focus{background-color:transparent}.btn-check.btn-theme:checked+.btn,.btn.btn-theme.show,.btn.btn-theme:first-child:active,:not(.btn-check.btn-theme)+.btn.btn-theme:active{color:inherit;background-color:inherit;border-color:inherit}.btn-theme.btn-link{color:var(--color-primary)}.btn-theme.btn-link.btn-gray{color:var(--color-gray7);background-color:transparent}.btn-link.btn-likes-light.active>svg{color:var(--color-likes-dark)}.btn-wrap .btn-theme:not(:last-child),.btn-wrap>*:not(:last-child){margin-right:8px}.btn-theme.btn-icon.btn-lg.btn-quick-action{transition:.2s ease}.btn-theme.btn-icon.btn-lg.btn-quick-action.expanded{min-width:90px;transition:.2s ease}.btn-theme.btn-icon.btn-lg.btn-quick-action.expanded .btn-title{opacity:1;padding-left:5px;transition:all .15s ease}.btn-theme.btn-icon.btn-lg.btn-quick-action .btn-title{opacity:0;transition:all .15s ease}.custom-segment-btn-group{border:1px solid #ddd;padding:4px;border-radius:10px;display:flex;justify-content:center;align-items:center}.custom-segment-btn-group .segment-btn{flex-grow:1;position:relative}.custom-segment-btn-group input{width:.1px;height:.1px;padding:0;border:0;position:absolute;opacity:0;visibility:hidden}.custom-segment-btn-group .segment-btn label{display:inline-block;width:100%;background-color:transparent;font-size:14px;color:#333;padding:5px;text-align:center;position:relative}.custom-segment-btn-group .segment-btn label:before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;border-radius:6px;display:inline-block;background-color:transparent;z-index:-1;transform:scale(0);transform-origin:left center;opacity:0;transition:all .25s ease}.custom-segment-btn-group input:checked+label:before{background-color:var(--color-gray-light5);opacity:1;transform:scale(1);box-shadow:inset 1px 1px 2px #00000040}.custom-segment-btn-group .segment-btn label svg{transition:all .35s ease}.iframe-container{height:100vh;width:100%;padding-bottom:80px}.iframe-container iframe,.page-content-wrapper iframe{width:100%;height:100%}.icon-wrap{display:flex;width:36px;min-width:36px;height:36px;justify-content:center;align-items:center;border-radius:8px;background-color:#333}.icon-wrap img{height:24px}.icon-wrap.wrap-sm{width:30px;min-width:30px;height:30px}.icon-wrap.wrap-sm img{height:20px}.icon-wrap.wrap-md{width:42px;min-width:42px;height:42px}.icon-wrap.wrap-md img{height:34px}.card-theme{border-radius:12px;color:var(--color-gray3)}.card-theme .card-header{background-color:var(--color-primary);color:#fff}.card-theme.card-width-30{min-width:30%;width:30%}.card-theme.card-width-40{min-width:40%;width:40%}.card-theme.card-width-50{min-width:50%;width:50%}.card-theme.card-width-60{min-width:60%;width:60%}.card-theme.card-width-90{min-width:90%;width:90%}.card-theme a{color:inherit;text-decoration:none}.links-card{text-align:center}.navbar-header{background-color:var(--color-primary);border-bottom-left-radius:16px;border-bottom-right-radius:16px;min-height:var(--navbar-height);padding-top:env(safe-area-inset-top,50px);padding-bottom:5px}.navbar-header .btn-menu img{height:85%;width:auto}.navbar-header .btn-menu{border:0px}.navigation-profile-wrapper a{text-decoration:none;color:#fff}.home-page-content-wrapper{padding-top:70px;padding-bottom:50px;min-height:100vh}.page-content-wrapper{padding-top:70px;padding-bottom:100px;min-height:100vh}.banner-container{border-bottom-left-radius:16px;border-bottom-right-radius:16px;padding-top:70px;overflow-x:hidden}.dashboard-content-wrapper{padding-top:0}.section-title{font-weight:var(--fw-sb);font-size:16px}.line-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.footer-btn-overlay{position:fixed;left:0;bottom:0;background:#fff;min-height:120px;right:0;padding:12px;z-index:1040}.form-container .form-group label{font-size:13px;margin-bottom:6px}.form-container .form-group .form-control{height:50px;border-radius:8px;border-color:var(--color-gray-light3)}.form-group .form-check .form-check-input{border-color:var(--color-gray-light1);width:18px;height:18px;margin-right:10px}.form-group .form-check .form-check-label{font-size:14px;margin-bottom:0;color:var(--color-gray6)}.form-error{font-size:13px;color:var(--color-danger);font-weight:var(--fw-sb)}.form-container ::placeholder{color:var(--color-gray9);font-size:14px;opacity:1}.login-content-card .form-container .form-group .form-control{border-color:var(--color-primary)}.login-content-card .form-container .form-group .form-check .form-check-input{border-color:var(--color-gray9);width:20px;height:20px;margin-right:10px}.login-content-card .form-container .form-group .form-check .form-check-label{color:var(--color-gray6)}.otp-input-wrap input::-webkit-outer-spin-button,.otp-input-wrap input::-webkit-inner-spin-button{-webkit-appearance:none!important}.navbar-header-inner .page-title{font-size:18px;font-weight:var(--fw-sb)}.theme-tabs.nav-pills{border-radius:10px;overflow:hidden;border:1px solid var(--color-primary)}.theme-tabs.nav-pills .nav-item{background-color:transparent}.theme-tabs.nav-pills .nav-item:not(:last-child){border-right:1px solid var(--color-primary)}.theme-tabs.nav-pills .nav-link{color:var(--color-gray3);font-size:13px;padding-left:.25rem;padding-right:.25rem;background-color:transparent;border:0px;border-radius:0}.theme-tabs.nav-pills .nav-link.active,.theme-tabs.nav-pills .show>.nav-link{color:var(--color-gray3);background-color:var(--color-primary-lighter1);font-weight:var(--fw-sb)}.tab_links,.tab-content{position:relative}.theme-modal.modal-bottom .modal-dialog{margin:0;padding-top:50px;padding-bottom:0;height:100%;align-items:flex-end}.modal.theme-modal.modal-bottom.fade .modal-dialog{transform:translateY(100%)}.modal.theme-modal.modal-bottom.show .modal-dialog{transform:none}.theme-modal.modal-bottom .modal-content{border-radius:16px 16px 1px 1px;height:100%;padding-bottom:20px}.theme-modal.confirmation-modal .modal-content,.theme-modal.share-modal .modal-content{height:auto}@media screen and (min-width: 576px){.modal.theme-modal.modal-bottom .modal-dialog{max-width:100%}}.theme-modal .modal-header,.theme-modal .modal-body{padding:20px 15px;overflow-x:hidden}.theme-modal .heading-icon{background-color:var(--color-primary-light);width:44px;height:44px;font-size:22px;border-radius:10px}.theme-modal .modal-title{font-size:15px}.tab_links .nav-justified{background:#fff;border:0px;overflow:hidden;border-radius:10px}.tab_links.tab_links_button .nav-justified .nav-item .nav-link,.tab_links .nav-item .nav-link{height:100%;color:var(--color-white);padding:10px 6px;font-size:13px;border-radius:1px}.tab_links .nav-item .nav-link.normal_link{background-color:var(--color-gray-light7);color:var(--color-gray3)}.tab_links .nav-item .nav-link:hover{opacity:1}.tab_links .nav-item .nav-link.normal_link.active,.tab_links .nav-item .nav-link.normal_link.active:hover{background-color:var(--color-primary-lighter3);opacity:1;color:var(--color-primary-dark)}.tab_links .nav-item .nav-link.normal_link:hover{background-color:transparent;color:var(--color-gray2)}.dashboard-swiper .card-slide,.media-gallery-swiper .card-slide{border-radius:1px;justify-content:center;align-items:center}.dashboard-swiper .card-slide .card-body,.media-gallery-swiper .card-slide .card-body{flex:0 0 auto}.dashboard-swiper .card-slide .card-body img{width:100%}.dashboard-swiper .card-slide.cta-slide{height:auto;max-height:120px}.dashboard-swiper .card-slide.cta-slide .card-body img{width:100%;height:100%;object-fit:cover}.media-gallery-swiper .card-slide .card-body img{width:100%;max-height:250px;object-fit:contain}.dashboard-swiper .swiper-pagination.swiper-pagination-horizontal,.media-gallery-swiper .swiper-pagination.swiper-pagination-horizontal{bottom:-15px;line-height:1}.popup-media-swiper .swiper-pagination.swiper-pagination-horizontal{bottom:10px}.dashboard-swiper .swiper-pagination-bullet,.media-gallery-swiper .swiper-pagination-bullet{transition:.25s ease-in-out}.dashboard-swiper .swiper-pagination-bullet-active,.media-gallery-swiper .swiper-pagination-bullet-active{--swiper-pagination-bullet-width: 16px;--swiper-pagination-bullet-height: 8px;--swiper-pagination-bullet-border-radius: 15px;opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--color-primary));width:var( --swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px) );height:var( --swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px) );border-radius:var(--swiper-pagination-bullet-border-radius, 50%)}.navbar-footer{background-color:#fff;border-top-left-radius:16px;border-top-right-radius:16px;min-height:var(--footer-navbar-height);box-shadow:0 -8px 20px -6px #0003;transition:.35s ease-in-out;transition-delay:.1s}.navbar-footer .btn-theme{border:0px;min-width:20%}.navbar-footer .btn-action{top:-30px;width:60px;min-width:60px;height:60px;box-shadow:1px 2px 15px #0000004d;position:absolute;left:0;right:0;margin:auto}.navbar-footer .btn-action:before{content:"";position:absolute;display:flex;width:84px;height:84px;background-color:#fff;top:-12px;left:-12px;border-radius:50%;z-index:-1;box-shadow:0 -12px 24px -10px #0003}.navbar-footer .btn-action:after{content:"Contest";position:absolute;display:none;background-color:transparent;color:var(--color-gray3);font-size:12px;line-height:1;left:0;right:0;bottom:-18px;margin:auto}.navbar-footer.navbar-hidden{bottom:-100%;opacity:0;visibility:hidden}.yarl__container{background-color:#000000f2}.yarl__toolbar{top:25px}.media-list-card .media-icon-wrapper{background-color:var(--color-green);padding:10px;border-radius:10px;width:50px;height:50px}.media-list-card .media-icon-wrapper img{max-width:100%;object-fit:contain}.media-list-card .media-icon-wrapper svg{font-size:22px}.media-list-card .media-content-wrapper p{font-size:13px;margin-bottom:5px}.media-list-card .media-content-wrapper .media-time-text{font-size:12px;color:var(--color-gray9)}.media-card .media-icon-wrapper{background-color:var(--color-green);padding:10px;border-radius:10px;width:auto}.media-card .media-icon-wrapper img{max-width:100%;object-fit:contain}.media-card .media-content-wrapper p{font-size:13px;margin-bottom:5px}.media-card .media-content-wrapper .media-time-text{font-size:11px;color:var(--color-gray7)}.action-card{color:var(--color-gray6);border-radius:10px}.action-card .card-body img{max-height:60px}@keyframes ripple{0%{-webkit-box-shadow:0 0 0 0 rgba(190,234,255,.45),0 0 0 1px rgba(190,234,255,.45),0 0 0 8px rgba(190,234,255,.45);box-shadow:0 0 #beeaff73,0 0 0 1px #beeaff73,0 0 0 8px #beeaff73}to{-webkit-box-shadow:0 0 0 1px rgba(190,234,255,.45),0 0 0 8px rgba(190,234,255,.45),0 0 0 18px rgba(190,234,255,0);box-shadow:0 0 0 1px #beeaff73,0 0 0 8px #beeaff73,0 0 0 18px #beeaff00}}@keyframes ripple-confirm{0%{-webkit-box-shadow:0 0 0 0 rgba(247,176,18,.32),0 0 0 1px rgba(247,176,18,.32),0 0 0 8px rgba(247,176,18,.32);box-shadow:0 0 #f7b01252,0 0 0 1px #f7b01252,0 0 0 8px #f7b01252}to{-webkit-box-shadow:0 0 0 1px rgba(247,176,18,.32),0 0 0 8px rgba(247,176,18,.32),0 0 0 18px rgba(247,176,18,0);box-shadow:0 0 0 1px #f7b01252,0 0 0 8px #f7b01252,0 0 0 18px #f7b01200}}@keyframes ripple-success{0%{-webkit-box-shadow:0 0 0 0 rgba(20,184,166,.35),0 0 0 1px rgba(20,184,166,.35),0 0 0 8px rgba(20,184,166,.35);box-shadow:0 0 #14b8a659,0 0 0 1px #14b8a659,0 0 0 8px #14b8a659}to{-webkit-box-shadow:0 0 0 1px rgba(135,226,145,.35),0 0 0 8px rgba(135,226,145,.35),0 0 0 18px rgba(135,226,145,0);box-shadow:0 0 0 1px #87e29159,0 0 0 8px #87e29159,0 0 0 18px #87e29100}}@keyframes ripple-fail{0%{-webkit-box-shadow:0 0 0 0 rgba(236,25,25,.35),0 0 0 1px rgba(236,25,25,.35),0 0 0 8px rgba(236,25,25,.35);box-shadow:0 0 #ec191959,0 0 0 1px #ec191959,0 0 0 8px #ec191959}to{-webkit-box-shadow:0 0 0 1px rgba(236,25,25,.35),0 0 0 8px rgba(236,25,25,.35),0 0 0 18px rgba(236,25,25,0);box-shadow:0 0 0 1px #ec191959,0 0 0 8px #ec191959,0 0 0 18px #ec191900}}@media screen and (min-width: 768px){.offcanvas.app-sidenav.offcanvas-start{--app-sidenav-width: 400px;width:var(--app-sidenav-width)}.section-title,.navbar-header .page-title{font-size:18px}.card-theme.placeholder-card{min-height:180px}.dashboard-stats-card{min-height:220px}.card-theme.dashboard-stats-card .card-header{font-size:16px}.dashboard-stats-card .card-body .font-20{font-size:28px}.dashboard-stats-card .card-body .font-13{font-size:16px}.card-theme.dashboard-contest-card{min-height:280px}.card-theme.dashboard-contest-card .card-img-overlay .font-13{font-size:16px}.card-theme.dashboard-contest-card .expiry-tag{padding:5px 12px;border-radius:15px 0 0 15px;top:15px;font-size:15px}.card-theme.dashboard-contest-card .card-img-overlay .btn-wrap .btn-theme{padding:.75rem 1rem;font-size:15px}.card-theme.dashboard-magazine-card{min-height:220px}.card-theme.dashboard-magazine-card .card-img{max-height:220px}.card-theme.dashboard-magazine-card .card-img-overlay .font-14{font-size:16px}.contest-card .ratio .btn-theme.btn-icon.btn-lg{width:60px;min-width:60px;height:60px;line-height:60px}.card-theme.contest-card .card-header,.card-theme.magazine-card .card-header,.card-theme.wall-message-card .card-header{font-size:17px}.contest-card .card-body .font-13,.contest-card .card-footer .btn-wrap .btn-theme.btn-sm{font-size:16px}.contest-details-card .font-15{font-size:17px}.contest-details-card .font-14,.contest-details-card .font-13,.card-theme.submission-card .media-info-container{font-size:15px}.card-theme.submission-card .media-info-container .font-12{font-size:13px}.card-theme.magazine-card .card-img{max-height:300px}.card-theme.magazine-card .card-footer .btn-wrap .btn-theme.btn-sm{font-size:15px}.card-theme.magazine-card .card-footer .progress+.font-12{font-size:14px}.card-theme.wall-message-card .card-img{max-height:300px}.card-theme.wall-message-card .card-footer .font-13,.card-theme.wall-message-card .card-footer .btn-wrap .btn-theme.btn-sm{font-size:15px}.action-card .card-body img{max-height:80px}.action-card .card-body .font-12{font-size:16px}.custom-segment-btn-group{padding:5px}.custom-segment-btn-group .segment-btn label{font-size:15px;padding:8px}.magazine-details-page .font-15{font-size:17px}.page-content-wrapper.evaluate-page .font-14,.upload-response-page .font-14,.magazine-details-page .font-14{font-size:16px}.page-content-wrapper.evaluate-page .font-13,.magazine-details-page .font-13{font-size:14px}.page-content-wrapper.evaluate-page .font-12,.magazine-details-page .font-12{font-size:13px}.theme-modal .modal-title{font-size:17px}.theme-modal .heading-icon{width:50px;height:50px;font-size:26px}.theme-modal .modal-body .font-13{font-size:14px}.tab_links .nav-item .nav-link{font-size:15px}.navbar-footer .btn-theme .font-12{font-size:14px}.navbar-footer .btn-theme .font-22{font-size:28px}.navbar-footer .btn-action{top:-35px;width:70px;min-width:70px;height:70px}.navbar-footer .btn-action:before{width:94px;height:94px}.navbar-footer .btn-action:after{font-size:14px;bottom:-20px}} diff --git a/dist/assets/index-CQwTocWK.js b/dist/assets/index-CQwTocWK.js new file mode 100644 index 0000000..ceebb3f --- /dev/null +++ b/dist/assets/index-CQwTocWK.js @@ -0,0 +1,379 @@ +var lNe=Object.defineProperty;var cNe=(n,t,i)=>t in n?lNe(n,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[t]=i;var sn=(n,t,i)=>(cNe(n,typeof t!="symbol"?t+"":t,i),i),JW=(n,t,i)=>{if(!t.has(n))throw TypeError("Cannot "+i)};var T=(n,t,i)=>(JW(n,t,"read from private field"),i?i.call(n):t.get(n)),ee=(n,t,i)=>{if(t.has(n))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(n):t.set(n,i)},re=(n,t,i,s)=>(JW(n,t,"write to private field"),s?s.call(n,i):t.set(n,i),i);var ao=(n,t,i,s)=>({set _(l){re(n,t,l,i)},get _(){return T(n,t,s)}}),pe=(n,t,i)=>(JW(n,t,"access private method"),i);function dNe(n,t){for(var i=0;is[l]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))s(l);new MutationObserver(l=>{for(const d of l)if(d.type==="childList")for(const u of d.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function i(l){const d={};return l.integrity&&(d.integrity=l.integrity),l.referrerPolicy&&(d.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?d.credentials="include":l.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function s(l){if(l.ep)return;l.ep=!0;const d=i(l);fetch(l.href,d)}})();var Vs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Mv(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function Wpe(n){if(n.__esModule)return n;var t=n.default;if(typeof t=="function"){var i=function s(){return this instanceof s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(n).forEach(function(s){var l=Object.getOwnPropertyDescriptor(n,s);Object.defineProperty(i,s,l.get?l:{enumerable:!0,get:function(){return n[s]}})}),i}var $pe={exports:{}},Mj={},Kpe={exports:{}},tr={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var DO=Symbol.for("react.element"),uNe=Symbol.for("react.portal"),hNe=Symbol.for("react.fragment"),fNe=Symbol.for("react.strict_mode"),pNe=Symbol.for("react.profiler"),mNe=Symbol.for("react.provider"),gNe=Symbol.for("react.context"),vNe=Symbol.for("react.forward_ref"),yNe=Symbol.for("react.suspense"),_Ne=Symbol.for("react.memo"),ENe=Symbol.for("react.lazy"),ede=Symbol.iterator;function wNe(n){return n===null||typeof n!="object"?null:(n=ede&&n[ede]||n["@@iterator"],typeof n=="function"?n:null)}var qpe={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ype=Object.assign,Xpe={};function VR(n,t,i){this.props=n,this.context=t,this.refs=Xpe,this.updater=i||qpe}VR.prototype.isReactComponent={};VR.prototype.setState=function(n,t){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,t,"setState")};VR.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function Jpe(){}Jpe.prototype=VR.prototype;function $X(n,t,i){this.props=n,this.context=t,this.refs=Xpe,this.updater=i||qpe}var KX=$X.prototype=new Jpe;KX.constructor=$X;Ype(KX,VR.prototype);KX.isPureReactComponent=!0;var tde=Array.isArray,Qpe=Object.prototype.hasOwnProperty,qX={current:null},Zpe={key:!0,ref:!0,__self:!0,__source:!0};function eme(n,t,i){var s,l={},d=null,u=null;if(t!=null)for(s in t.ref!==void 0&&(u=t.ref),t.key!==void 0&&(d=""+t.key),t)Qpe.call(t,s)&&!Zpe.hasOwnProperty(s)&&(l[s]=t[s]);var p=arguments.length-2;if(p===1)l.children=i;else if(1>>1,je=fe[Fe];if(0>>1;Fel(Be,Ne))Xel(we,Be)?(fe[Fe]=we,fe[Xe]=Ne,Fe=Xe):(fe[Fe]=Be,fe[Re]=Ne,Fe=Re);else if(Xel(we,Ne))fe[Fe]=we,fe[Xe]=Ne,Fe=Xe;else break e}}return me}function l(fe,me){var Ne=fe.sortIndex-me.sortIndex;return Ne!==0?Ne:fe.id-me.id}if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;n.unstable_now=function(){return d.now()}}else{var u=Date,p=u.now();n.unstable_now=function(){return u.now()-p}}var g=[],_=[],y=1,E=null,b=3,A=!1,N=!1,O=!1,D=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function M(fe){for(var me=i(_);me!==null;){if(me.callback===null)s(_);else if(me.startTime<=fe)s(_),me.sortIndex=me.expirationTime,t(g,me);else break;me=i(_)}}function V(fe){if(O=!1,M(fe),!N)if(i(g)!==null)N=!0,he(H);else{var me=i(_);me!==null&&Ce(V,me.startTime-fe)}}function H(fe,me){N=!1,O&&(O=!1,P(Y),Y=-1),A=!0;var Ne=b;try{for(M(me),E=i(g);E!==null&&(!(E.expirationTime>me)||fe&&!te());){var Fe=E.callback;if(typeof Fe=="function"){E.callback=null,b=E.priorityLevel;var je=Fe(E.expirationTime<=me);me=n.unstable_now(),typeof je=="function"?E.callback=je:E===i(g)&&s(g),M(me)}else s(g);E=i(g)}if(E!==null)var Ve=!0;else{var Re=i(_);Re!==null&&Ce(V,Re.startTime-me),Ve=!1}return Ve}finally{E=null,b=Ne,A=!1}}var $=!1,Q=null,Y=-1,le=5,ae=-1;function te(){return!(n.unstable_now()-aefe||125Fe?(fe.sortIndex=Ne,t(_,fe),i(g)===null&&fe===i(_)&&(O?(P(Y),Y=-1):O=!0,Ce(V,Ne-Fe))):(fe.sortIndex=je,t(g,fe),N||A||(N=!0,he(H))),fe},n.unstable_shouldYield=te,n.unstable_wrapCallback=function(fe){var me=b;return function(){var Ne=b;b=me;try{return fe.apply(this,arguments)}finally{b=Ne}}}})(rme);ime.exports=rme;var LNe=ime.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var sme=k,Xd=LNe;function on(n){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+n,i=1;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),CK=Object.prototype.hasOwnProperty,DNe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ide={},rde={};function kNe(n){return CK.call(rde,n)?!0:CK.call(ide,n)?!1:DNe.test(n)?rde[n]=!0:(ide[n]=!0,!1)}function MNe(n,t,i,s){if(i!==null&&i.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:i!==null?!i.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function jNe(n,t,i,s){if(t===null||typeof t>"u"||MNe(n,t,i,s))return!0;if(s)return!1;if(i!==null)switch(i.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function dc(n,t,i,s,l,d,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=l,this.mustUseProperty=i,this.propertyName=n,this.type=t,this.sanitizeURL=d,this.removeEmptyString=u}var Yo={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){Yo[n]=new dc(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var t=n[0];Yo[t]=new dc(t,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){Yo[n]=new dc(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){Yo[n]=new dc(n,2,!1,n,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(n){Yo[n]=new dc(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){Yo[n]=new dc(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){Yo[n]=new dc(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){Yo[n]=new dc(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){Yo[n]=new dc(n,5,!1,n.toLowerCase(),null,!1,!1)});var XX=/[\-:]([a-z])/g;function JX(n){return n[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(n){var t=n.replace(XX,JX);Yo[t]=new dc(t,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var t=n.replace(XX,JX);Yo[t]=new dc(t,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var t=n.replace(XX,JX);Yo[t]=new dc(t,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){Yo[n]=new dc(n,1,!1,n.toLowerCase(),null,!1,!1)});Yo.xlinkHref=new dc("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){Yo[n]=new dc(n,1,!1,n.toLowerCase(),null,!0,!0)});function QX(n,t,i,s){var l=Yo.hasOwnProperty(t)?Yo[t]:null;(l!==null?l.type!==0:s||!(2p||l[u]!==d[p]){var g=` +`+l[u].replace(" at new "," at ");return n.displayName&&g.includes("")&&(g=g.replace("",n.displayName)),g}while(1<=u&&0<=p);break}}}finally{e$=!1,Error.prepareStackTrace=i}return(n=n?n.displayName||n.name:"")?CI(n):""}function UNe(n){switch(n.tag){case 5:return CI(n.type);case 16:return CI("Lazy");case 13:return CI("Suspense");case 19:return CI("SuspenseList");case 0:case 2:case 15:return n=t$(n.type,!1),n;case 11:return n=t$(n.type.render,!1),n;case 1:return n=t$(n.type,!0),n;default:return""}}function AK(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Zb:return"Fragment";case Qb:return"Portal";case TK:return"Profiler";case ZX:return"StrictMode";case RK:return"Suspense";case xK:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case lme:return(n.displayName||"Context")+".Consumer";case ome:return(n._context.displayName||"Context")+".Provider";case eJ:var t=n.render;return n=n.displayName,n||(n=t.displayName||t.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case tJ:return t=n.displayName||null,t!==null?t:AK(n.type)||"Memo";case i1:t=n._payload,n=n._init;try{return AK(n(t))}catch{}}return null}function FNe(n){var t=n.type;switch(n.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=t.render,n=n.displayName||n.name||"",t.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return AK(t);case 8:return t===ZX?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Nv(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function dme(n){var t=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function BNe(n){var t=dme(n)?"checked":"value",i=Object.getOwnPropertyDescriptor(n.constructor.prototype,t),s=""+n[t];if(!n.hasOwnProperty(t)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var l=i.get,d=i.set;return Object.defineProperty(n,t,{configurable:!0,get:function(){return l.call(this)},set:function(u){s=""+u,d.call(this,u)}}),Object.defineProperty(n,t,{enumerable:i.enumerable}),{getValue:function(){return s},setValue:function(u){s=""+u},stopTracking:function(){n._valueTracker=null,delete n[t]}}}}function nk(n){n._valueTracker||(n._valueTracker=BNe(n))}function ume(n){if(!n)return!1;var t=n._valueTracker;if(!t)return!0;var i=t.getValue(),s="";return n&&(s=dme(n)?n.checked?"true":"false":n.value),n=s,n!==i?(t.setValue(n),!0):!1}function jM(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function IK(n,t){var i=t.checked;return Hs({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:i??n._wrapperState.initialChecked})}function ade(n,t){var i=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;i=Nv(t.value!=null?t.value:i),n._wrapperState={initialChecked:s,initialValue:i,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function hme(n,t){t=t.checked,t!=null&&QX(n,"checked",t,!1)}function NK(n,t){hme(n,t);var i=Nv(t.value),s=t.type;if(i!=null)s==="number"?(i===0&&n.value===""||n.value!=i)&&(n.value=""+i):n.value!==""+i&&(n.value=""+i);else if(s==="submit"||s==="reset"){n.removeAttribute("value");return}t.hasOwnProperty("value")?OK(n,t.type,i):t.hasOwnProperty("defaultValue")&&OK(n,t.type,Nv(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(n.defaultChecked=!!t.defaultChecked)}function ode(n,t,i){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+n._wrapperState.initialValue,i||t===n.value||(n.value=t),n.defaultValue=t}i=n.name,i!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,i!==""&&(n.name=i)}function OK(n,t,i){(t!=="number"||jM(n.ownerDocument)!==n)&&(i==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+i&&(n.defaultValue=""+i))}var TI=Array.isArray;function gC(n,t,i,s){if(n=n.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=ik.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;t.firstChild;)n.appendChild(t.firstChild)}});function w4(n,t){if(t){var i=n.firstChild;if(i&&i===n.lastChild&&i.nodeType===3){i.nodeValue=t;return}}n.textContent=t}var r4={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},VNe=["Webkit","ms","Moz","O"];Object.keys(r4).forEach(function(n){VNe.forEach(function(t){t=t+n.charAt(0).toUpperCase()+n.substring(1),r4[t]=r4[n]})});function gme(n,t,i){return t==null||typeof t=="boolean"||t===""?"":i||typeof t!="number"||t===0||r4.hasOwnProperty(n)&&r4[n]?(""+t).trim():t+"px"}function vme(n,t){n=n.style;for(var i in t)if(t.hasOwnProperty(i)){var s=i.indexOf("--")===0,l=gme(i,t[i],s);i==="float"&&(i="cssFloat"),s?n.setProperty(i,l):n[i]=l}}var zNe=Hs({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function DK(n,t){if(t){if(zNe[n]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(on(137,n));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(on(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(on(61))}if(t.style!=null&&typeof t.style!="object")throw Error(on(62))}}function kK(n,t){if(n.indexOf("-")===-1)return typeof t.is=="string";switch(n){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var MK=null;function nJ(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var jK=null,vC=null,yC=null;function dde(n){if(n=jO(n)){if(typeof jK!="function")throw Error(on(280));var t=n.stateNode;t&&(t=Vj(t),jK(n.stateNode,n.type,t))}}function yme(n){vC?yC?yC.push(n):yC=[n]:vC=n}function _me(){if(vC){var n=vC,t=yC;if(yC=vC=null,dde(n),t)for(n=0;n>>=0,n===0?32:31-(ZNe(n)/e5e|0)|0}var rk=64,sk=4194304;function RI(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function VM(n,t){var i=n.pendingLanes;if(i===0)return 0;var s=0,l=n.suspendedLanes,d=n.pingedLanes,u=i&268435455;if(u!==0){var p=u&~l;p!==0?s=RI(p):(d&=u,d!==0&&(s=RI(d)))}else u=i&~l,u!==0?s=RI(u):d!==0&&(s=RI(d));if(s===0)return 0;if(t!==0&&t!==s&&!(t&l)&&(l=s&-s,d=t&-t,l>=d||l===16&&(d&4194240)!==0))return t;if(s&4&&(s|=i&16),t=n.entangledLanes,t!==0)for(n=n.entanglements,t&=s;0i;i++)t.push(n);return t}function kO(n,t,i){n.pendingLanes|=t,t!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,t=31-of(t),n[t]=i}function r5e(n,t){var i=n.pendingLanes&~t;n.pendingLanes=t,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=t,n.mutableReadLanes&=t,n.entangledLanes&=t,t=n.entanglements;var s=n.eventTimes;for(n=n.expirationTimes;0=a4),_de=" ",Ede=!1;function Fme(n,t){switch(n){case"keyup":return P5e.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bme(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var eC=!1;function D5e(n,t){switch(n){case"compositionend":return Bme(t);case"keypress":return t.which!==32?null:(Ede=!0,_de);case"textInput":return n=t.data,n===_de&&Ede?null:n;default:return null}}function k5e(n,t){if(eC)return n==="compositionend"||!dJ&&Fme(n,t)?(n=jme(),jk=oJ=uv=null,eC=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:i,offset:t-n};n=s}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=Cde(i)}}function Gme(n,t){return n&&t?n===t?!0:n&&n.nodeType===3?!1:t&&t.nodeType===3?Gme(n,t.parentNode):"contains"in n?n.contains(t):n.compareDocumentPosition?!!(n.compareDocumentPosition(t)&16):!1:!1}function Wme(){for(var n=window,t=jM();t instanceof n.HTMLIFrameElement;){try{var i=typeof t.contentWindow.location.href=="string"}catch{i=!1}if(i)n=t.contentWindow;else break;t=jM(n.document)}return t}function uJ(n){var t=n&&n.nodeName&&n.nodeName.toLowerCase();return t&&(t==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||t==="textarea"||n.contentEditable==="true")}function G5e(n){var t=Wme(),i=n.focusedElem,s=n.selectionRange;if(t!==i&&i&&i.ownerDocument&&Gme(i.ownerDocument.documentElement,i)){if(s!==null&&uJ(i)){if(t=s.start,n=s.end,n===void 0&&(n=t),"selectionStart"in i)i.selectionStart=t,i.selectionEnd=Math.min(n,i.value.length);else if(n=(t=i.ownerDocument||document)&&t.defaultView||window,n.getSelection){n=n.getSelection();var l=i.textContent.length,d=Math.min(s.start,l);s=s.end===void 0?d:Math.min(s.end,l),!n.extend&&d>s&&(l=s,s=d,d=l),l=Tde(i,d);var u=Tde(i,s);l&&u&&(n.rangeCount!==1||n.anchorNode!==l.node||n.anchorOffset!==l.offset||n.focusNode!==u.node||n.focusOffset!==u.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),n.removeAllRanges(),d>s?(n.addRange(t),n.extend(u.node,u.offset)):(t.setEnd(u.node,u.offset),n.addRange(t)))}}for(t=[],n=i;n=n.parentNode;)n.nodeType===1&&t.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof i.focus=="function"&&i.focus(),i=0;i=document.documentMode,tC=null,HK=null,l4=null,GK=!1;function Rde(n,t,i){var s=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;GK||tC==null||tC!==jM(s)||(s=tC,"selectionStart"in s&&uJ(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),l4&&x4(l4,s)||(l4=s,s=GM(HK,"onSelect"),0rC||(n.current=XK[rC],XK[rC]=null,rC--)}function cs(n,t){rC++,XK[rC]=n.current,n.current=t}var Ov={},wl=Uv(Ov),ed=Uv(!1),_E=Ov;function bR(n,t){var i=n.type.contextTypes;if(!i)return Ov;var s=n.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var l={},d;for(d in i)l[d]=t[d];return s&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=t,n.__reactInternalMemoizedMaskedChildContext=l),l}function td(n){return n=n.childContextTypes,n!=null}function $M(){Ss(ed),Ss(wl)}function Lde(n,t,i){if(wl.current!==Ov)throw Error(on(168));cs(wl,t),cs(ed,i)}function ege(n,t,i){var s=n.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return i;s=s.getChildContext();for(var l in s)if(!(l in t))throw Error(on(108,FNe(n)||"Unknown",l));return Hs({},i,s)}function KM(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Ov,_E=wl.current,cs(wl,n),cs(ed,ed.current),!0}function Dde(n,t,i){var s=n.stateNode;if(!s)throw Error(on(169));i?(n=ege(n,t,_E),s.__reactInternalMemoizedMergedChildContext=n,Ss(ed),Ss(wl),cs(wl,n)):Ss(ed),cs(ed,i)}var Mm=null,zj=!1,m$=!1;function tge(n){Mm===null?Mm=[n]:Mm.push(n)}function nOe(n){zj=!0,tge(n)}function Fv(){if(!m$&&Mm!==null){m$=!0;var n=0,t=Vr;try{var i=Mm;for(Vr=1;n>=u,l-=u,Cg=1<<32-of(t)+l|i<Y?(le=Q,Q=null):le=Q.sibling;var ae=b(P,Q,M[Y],V);if(ae===null){Q===null&&(Q=le);break}n&&Q&&ae.alternate===null&&t(P,Q),j=d(ae,j,Y),$===null?H=ae:$.sibling=ae,$=ae,Q=le}if(Y===M.length)return i(P,Q),Ls&&g_(P,Y),H;if(Q===null){for(;YY?(le=Q,Q=null):le=Q.sibling;var te=b(P,Q,ae.value,V);if(te===null){Q===null&&(Q=le);break}n&&Q&&te.alternate===null&&t(P,Q),j=d(te,j,Y),$===null?H=te:$.sibling=te,$=te,Q=le}if(ae.done)return i(P,Q),Ls&&g_(P,Y),H;if(Q===null){for(;!ae.done;Y++,ae=M.next())ae=E(P,ae.value,V),ae!==null&&(j=d(ae,j,Y),$===null?H=ae:$.sibling=ae,$=ae);return Ls&&g_(P,Y),H}for(Q=s(P,Q);!ae.done;Y++,ae=M.next())ae=A(Q,P,Y,ae.value,V),ae!==null&&(n&&ae.alternate!==null&&Q.delete(ae.key===null?Y:ae.key),j=d(ae,j,Y),$===null?H=ae:$.sibling=ae,$=ae);return n&&Q.forEach(function(de){return t(P,de)}),Ls&&g_(P,Y),H}function D(P,j,M,V){if(typeof M=="object"&&M!==null&&M.type===Zb&&M.key===null&&(M=M.props.children),typeof M=="object"&&M!==null){switch(M.$$typeof){case tk:e:{for(var H=M.key,$=j;$!==null;){if($.key===H){if(H=M.type,H===Zb){if($.tag===7){i(P,$.sibling),j=l($,M.props.children),j.return=P,P=j;break e}}else if($.elementType===H||typeof H=="object"&&H!==null&&H.$$typeof===i1&&Vde(H)===$.type){i(P,$.sibling),j=l($,M.props),j.ref=dI(P,$,M),j.return=P,P=j;break e}i(P,$);break}else t(P,$);$=$.sibling}M.type===Zb?(j=hE(M.props.children,P.mode,V,M.key),j.return=P,P=j):(V=Wk(M.type,M.key,M.props,null,P.mode,V),V.ref=dI(P,j,M),V.return=P,P=V)}return u(P);case Qb:e:{for($=M.key;j!==null;){if(j.key===$)if(j.tag===4&&j.stateNode.containerInfo===M.containerInfo&&j.stateNode.implementation===M.implementation){i(P,j.sibling),j=l(j,M.children||[]),j.return=P,P=j;break e}else{i(P,j);break}else t(P,j);j=j.sibling}j=b$(M,P.mode,V),j.return=P,P=j}return u(P);case i1:return $=M._init,D(P,j,$(M._payload),V)}if(TI(M))return N(P,j,M,V);if(sI(M))return O(P,j,M,V);hk(P,M)}return typeof M=="string"&&M!==""||typeof M=="number"?(M=""+M,j!==null&&j.tag===6?(i(P,j.sibling),j=l(j,M),j.return=P,P=j):(i(P,j),j=S$(M,P.mode,V),j.return=P,P=j),u(P)):i(P,j)}return D}var TR=cge(!0),dge=cge(!1),UO={},kp=Uv(UO),O4=Uv(UO),P4=Uv(UO);function P_(n){if(n===UO)throw Error(on(174));return n}function EJ(n,t){switch(cs(P4,t),cs(O4,n),cs(kp,UO),n=t.nodeType,n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:LK(null,"");break;default:n=n===8?t.parentNode:t,t=n.namespaceURI||null,n=n.tagName,t=LK(t,n)}Ss(kp),cs(kp,t)}function RR(){Ss(kp),Ss(O4),Ss(P4)}function uge(n){P_(P4.current);var t=P_(kp.current),i=LK(t,n.type);t!==i&&(cs(O4,n),cs(kp,i))}function wJ(n){O4.current===n&&(Ss(kp),Ss(O4))}var Bs=Uv(0);function ZM(n){for(var t=n;t!==null;){if(t.tag===13){var i=t.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data==="$?"||i.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===n)break;for(;t.sibling===null;){if(t.return===null||t.return===n)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var g$=[];function SJ(){for(var n=0;ni?i:4,n(!0);var s=v$.transition;v$.transition={};try{n(!1),t()}finally{Vr=i,v$.transition=s}}function xge(){return ih().memoizedState}function aOe(n,t,i){var s=Cv(n);if(i={lane:s,action:i,hasEagerState:!1,eagerState:null,next:null},Age(n))Ige(t,i);else if(i=sge(n,t,i,s),i!==null){var l=ac();lf(i,n,s,l),Nge(i,t,s)}}function oOe(n,t,i){var s=Cv(n),l={lane:s,action:i,hasEagerState:!1,eagerState:null,next:null};if(Age(n))Ige(t,l);else{var d=n.alternate;if(n.lanes===0&&(d===null||d.lanes===0)&&(d=t.lastRenderedReducer,d!==null))try{var u=t.lastRenderedState,p=d(u,i);if(l.hasEagerState=!0,l.eagerState=p,uf(p,u)){var g=t.interleaved;g===null?(l.next=l,yJ(t)):(l.next=g.next,g.next=l),t.interleaved=l;return}}catch{}finally{}i=sge(n,t,l,s),i!==null&&(l=ac(),lf(i,n,s,l),Nge(i,t,s))}}function Age(n){var t=n.alternate;return n===zs||t!==null&&t===zs}function Ige(n,t){c4=e7=!0;var i=n.pending;i===null?t.next=t:(t.next=i.next,i.next=t),n.pending=t}function Nge(n,t,i){if(i&4194240){var s=t.lanes;s&=n.pendingLanes,i|=s,t.lanes=i,rJ(n,i)}}var t7={readContext:nh,useCallback:dl,useContext:dl,useEffect:dl,useImperativeHandle:dl,useInsertionEffect:dl,useLayoutEffect:dl,useMemo:dl,useReducer:dl,useRef:dl,useState:dl,useDebugValue:dl,useDeferredValue:dl,useTransition:dl,useMutableSource:dl,useSyncExternalStore:dl,useId:dl,unstable_isNewReconciler:!1},lOe={readContext:nh,useCallback:function(n,t){return tp().memoizedState=[n,t===void 0?null:t],n},useContext:nh,useEffect:Hde,useImperativeHandle:function(n,t,i){return i=i!=null?i.concat([n]):null,Vk(4194308,4,Sge.bind(null,t,n),i)},useLayoutEffect:function(n,t){return Vk(4194308,4,n,t)},useInsertionEffect:function(n,t){return Vk(4,2,n,t)},useMemo:function(n,t){var i=tp();return t=t===void 0?null:t,n=n(),i.memoizedState=[n,t],n},useReducer:function(n,t,i){var s=tp();return t=i!==void 0?i(t):t,s.memoizedState=s.baseState=t,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:t},s.queue=n,n=n.dispatch=aOe.bind(null,zs,n),[s.memoizedState,n]},useRef:function(n){var t=tp();return n={current:n},t.memoizedState=n},useState:zde,useDebugValue:xJ,useDeferredValue:function(n){return tp().memoizedState=n},useTransition:function(){var n=zde(!1),t=n[0];return n=sOe.bind(null,n[1]),tp().memoizedState=n,[t,n]},useMutableSource:function(){},useSyncExternalStore:function(n,t,i){var s=zs,l=tp();if(Ls){if(i===void 0)throw Error(on(407));i=i()}else{if(i=t(),bo===null)throw Error(on(349));wE&30||pge(s,t,i)}l.memoizedState=i;var d={value:i,getSnapshot:t};return l.queue=d,Hde(gge.bind(null,s,d,n),[n]),s.flags|=2048,k4(9,mge.bind(null,s,d,i,t),void 0,null),i},useId:function(){var n=tp(),t=bo.identifierPrefix;if(Ls){var i=Tg,s=Cg;i=(s&~(1<<32-of(s)-1)).toString(32)+i,t=":"+t+"R"+i,i=L4++,0<\/script>",n=n.removeChild(n.firstChild)):typeof s.is=="string"?n=u.createElement(i,{is:s.is}):(n=u.createElement(i),i==="select"&&(u=n,s.multiple?u.multiple=!0:s.size&&(u.size=s.size))):n=u.createElementNS(n,i),n[Np]=t,n[N4]=s,Fge(n,t,!1,!1),t.stateNode=n;e:{switch(u=kK(i,s),i){case"dialog":Es("cancel",n),Es("close",n),l=s;break;case"iframe":case"object":case"embed":Es("load",n),l=s;break;case"video":case"audio":for(l=0;lAR&&(t.flags|=128,s=!0,uI(d,!1),t.lanes=4194304)}else{if(!s)if(n=ZM(u),n!==null){if(t.flags|=128,s=!0,i=n.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),uI(d,!0),d.tail===null&&d.tailMode==="hidden"&&!u.alternate&&!Ls)return ul(t),null}else 2*fa()-d.renderingStartTime>AR&&i!==1073741824&&(t.flags|=128,s=!0,uI(d,!1),t.lanes=4194304);d.isBackwards?(u.sibling=t.child,t.child=u):(i=d.last,i!==null?i.sibling=u:t.child=u,d.last=u)}return d.tail!==null?(t=d.tail,d.rendering=t,d.tail=t.sibling,d.renderingStartTime=fa(),t.sibling=null,i=Bs.current,cs(Bs,s?i&1|2:i&1),t):(ul(t),null);case 22:case 23:return LJ(),s=t.memoizedState!==null,n!==null&&n.memoizedState!==null!==s&&(t.flags|=8192),s&&t.mode&1?Bd&1073741824&&(ul(t),t.subtreeFlags&6&&(t.flags|=8192)):ul(t),null;case 24:return null;case 25:return null}throw Error(on(156,t.tag))}function gOe(n,t){switch(fJ(t),t.tag){case 1:return td(t.type)&&$M(),n=t.flags,n&65536?(t.flags=n&-65537|128,t):null;case 3:return RR(),Ss(ed),Ss(wl),SJ(),n=t.flags,n&65536&&!(n&128)?(t.flags=n&-65537|128,t):null;case 5:return wJ(t),null;case 13:if(Ss(Bs),n=t.memoizedState,n!==null&&n.dehydrated!==null){if(t.alternate===null)throw Error(on(340));CR()}return n=t.flags,n&65536?(t.flags=n&-65537|128,t):null;case 19:return Ss(Bs),null;case 4:return RR(),null;case 10:return vJ(t.type._context),null;case 22:case 23:return LJ(),null;case 24:return null;default:return null}}var pk=!1,_l=!1,vOe=typeof WeakSet=="function"?WeakSet:Set,An=null;function lC(n,t){var i=n.ref;if(i!==null)if(typeof i=="function")try{i(null)}catch(s){Zs(n,t,s)}else i.current=null}function lq(n,t,i){try{i()}catch(s){Zs(n,t,s)}}var Qde=!1;function yOe(n,t){if(WK=zM,n=Wme(),uJ(n)){if("selectionStart"in n)var i={start:n.selectionStart,end:n.selectionEnd};else e:{i=(i=n.ownerDocument)&&i.defaultView||window;var s=i.getSelection&&i.getSelection();if(s&&s.rangeCount!==0){i=s.anchorNode;var l=s.anchorOffset,d=s.focusNode;s=s.focusOffset;try{i.nodeType,d.nodeType}catch{i=null;break e}var u=0,p=-1,g=-1,_=0,y=0,E=n,b=null;t:for(;;){for(var A;E!==i||l!==0&&E.nodeType!==3||(p=u+l),E!==d||s!==0&&E.nodeType!==3||(g=u+s),E.nodeType===3&&(u+=E.nodeValue.length),(A=E.firstChild)!==null;)b=E,E=A;for(;;){if(E===n)break t;if(b===i&&++_===l&&(p=u),b===d&&++y===s&&(g=u),(A=E.nextSibling)!==null)break;E=b,b=E.parentNode}E=A}i=p===-1||g===-1?null:{start:p,end:g}}else i=null}i=i||{start:0,end:0}}else i=null;for($K={focusedElem:n,selectionRange:i},zM=!1,An=t;An!==null;)if(t=An,n=t.child,(t.subtreeFlags&1028)!==0&&n!==null)n.return=t,An=n;else for(;An!==null;){t=An;try{var N=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(N!==null){var O=N.memoizedProps,D=N.memoizedState,P=t.stateNode,j=P.getSnapshotBeforeUpdate(t.elementType===t.type?O:Bh(t.type,O),D);P.__reactInternalSnapshotBeforeUpdate=j}break;case 3:var M=t.stateNode.containerInfo;M.nodeType===1?M.textContent="":M.nodeType===9&&M.documentElement&&M.removeChild(M.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(on(163))}}catch(V){Zs(t,t.return,V)}if(n=t.sibling,n!==null){n.return=t.return,An=n;break}An=t.return}return N=Qde,Qde=!1,N}function d4(n,t,i){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var l=s=s.next;do{if((l.tag&n)===n){var d=l.destroy;l.destroy=void 0,d!==void 0&&lq(t,i,d)}l=l.next}while(l!==s)}}function Wj(n,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var i=t=t.next;do{if((i.tag&n)===n){var s=i.create;i.destroy=s()}i=i.next}while(i!==t)}}function cq(n){var t=n.ref;if(t!==null){var i=n.stateNode;switch(n.tag){case 5:n=i;break;default:n=i}typeof t=="function"?t(n):t.current=n}}function zge(n){var t=n.alternate;t!==null&&(n.alternate=null,zge(t)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(t=n.stateNode,t!==null&&(delete t[Np],delete t[N4],delete t[YK],delete t[eOe],delete t[tOe])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function Hge(n){return n.tag===5||n.tag===3||n.tag===4}function Zde(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||Hge(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function dq(n,t,i){var s=n.tag;if(s===5||s===6)n=n.stateNode,t?i.nodeType===8?i.parentNode.insertBefore(n,t):i.insertBefore(n,t):(i.nodeType===8?(t=i.parentNode,t.insertBefore(n,i)):(t=i,t.appendChild(n)),i=i._reactRootContainer,i!=null||t.onclick!==null||(t.onclick=WM));else if(s!==4&&(n=n.child,n!==null))for(dq(n,t,i),n=n.sibling;n!==null;)dq(n,t,i),n=n.sibling}function uq(n,t,i){var s=n.tag;if(s===5||s===6)n=n.stateNode,t?i.insertBefore(n,t):i.appendChild(n);else if(s!==4&&(n=n.child,n!==null))for(uq(n,t,i),n=n.sibling;n!==null;)uq(n,t,i),n=n.sibling}var zo=null,nf=!1;function J0(n,t,i){for(i=i.child;i!==null;)Gge(n,t,i),i=i.sibling}function Gge(n,t,i){if(Dp&&typeof Dp.onCommitFiberUnmount=="function")try{Dp.onCommitFiberUnmount(jj,i)}catch{}switch(i.tag){case 5:_l||lC(i,t);case 6:var s=zo,l=nf;zo=null,J0(n,t,i),zo=s,nf=l,zo!==null&&(nf?(n=zo,i=i.stateNode,n.nodeType===8?n.parentNode.removeChild(i):n.removeChild(i)):zo.removeChild(i.stateNode));break;case 18:zo!==null&&(nf?(n=zo,i=i.stateNode,n.nodeType===8?p$(n.parentNode,i):n.nodeType===1&&p$(n,i),T4(n)):p$(zo,i.stateNode));break;case 4:s=zo,l=nf,zo=i.stateNode.containerInfo,nf=!0,J0(n,t,i),zo=s,nf=l;break;case 0:case 11:case 14:case 15:if(!_l&&(s=i.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){l=s=s.next;do{var d=l,u=d.destroy;d=d.tag,u!==void 0&&(d&2||d&4)&&lq(i,t,u),l=l.next}while(l!==s)}J0(n,t,i);break;case 1:if(!_l&&(lC(i,t),s=i.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=i.memoizedProps,s.state=i.memoizedState,s.componentWillUnmount()}catch(p){Zs(i,t,p)}J0(n,t,i);break;case 21:J0(n,t,i);break;case 22:i.mode&1?(_l=(s=_l)||i.memoizedState!==null,J0(n,t,i),_l=s):J0(n,t,i);break;default:J0(n,t,i)}}function eue(n){var t=n.updateQueue;if(t!==null){n.updateQueue=null;var i=n.stateNode;i===null&&(i=n.stateNode=new vOe),t.forEach(function(s){var l=xOe.bind(null,n,s);i.has(s)||(i.add(s),s.then(l,l))})}}function Dh(n,t){var i=t.deletions;if(i!==null)for(var s=0;sl&&(l=u),s&=~d}if(s=l,s=fa()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*EOe(s/1960))-s,10n?16:n,hv===null)var s=!1;else{if(n=hv,hv=null,r7=0,wr&6)throw Error(on(331));var l=wr;for(wr|=4,An=n.current;An!==null;){var d=An,u=d.child;if(An.flags&16){var p=d.deletions;if(p!==null){for(var g=0;gfa()-OJ?uE(n,0):NJ|=i),nd(n,t)}function Qge(n,t){t===0&&(n.mode&1?(t=sk,sk<<=1,!(sk&130023424)&&(sk=4194304)):t=1);var i=ac();n=Og(n,t),n!==null&&(kO(n,t,i),nd(n,i))}function ROe(n){var t=n.memoizedState,i=0;t!==null&&(i=t.retryLane),Qge(n,i)}function xOe(n,t){var i=0;switch(n.tag){case 13:var s=n.stateNode,l=n.memoizedState;l!==null&&(i=l.retryLane);break;case 19:s=n.stateNode;break;default:throw Error(on(314))}s!==null&&s.delete(t),Qge(n,i)}var Zge;Zge=function(n,t,i){if(n!==null)if(n.memoizedProps!==t.pendingProps||ed.current)Zc=!0;else{if(!(n.lanes&i)&&!(t.flags&128))return Zc=!1,pOe(n,t,i);Zc=!!(n.flags&131072)}else Zc=!1,Ls&&t.flags&1048576&&nge(t,YM,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;zk(n,t),n=t.pendingProps;var l=bR(t,wl.current);EC(t,i),l=CJ(null,t,s,n,l,i);var d=TJ();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,td(s)?(d=!0,KM(t)):d=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,_J(t),l.updater=Hj,t.stateNode=l,l._reactInternals=t,tq(t,s,n,i),t=rq(null,t,s,!0,d,i)):(t.tag=0,Ls&&d&&hJ(t),nc(null,t,l,i),t=t.child),t;case 16:s=t.elementType;e:{switch(zk(n,t),n=t.pendingProps,l=s._init,s=l(s._payload),t.type=s,l=t.tag=IOe(s),n=Bh(s,n),l){case 0:t=iq(null,t,s,n,i);break e;case 1:t=Yde(null,t,s,n,i);break e;case 11:t=Kde(null,t,s,n,i);break e;case 14:t=qde(null,t,s,Bh(s.type,n),i);break e}throw Error(on(306,s,""))}return t;case 0:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Bh(s,l),iq(n,t,s,l,i);case 1:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Bh(s,l),Yde(n,t,s,l,i);case 3:e:{if(Mge(t),n===null)throw Error(on(387));s=t.pendingProps,d=t.memoizedState,l=d.element,age(n,t),QM(t,s,null,i);var u=t.memoizedState;if(s=u.element,d.isDehydrated)if(d={element:s,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},t.updateQueue.baseState=d,t.memoizedState=d,t.flags&256){l=xR(Error(on(423)),t),t=Xde(n,t,s,i,l);break e}else if(s!==l){l=xR(Error(on(424)),t),t=Xde(n,t,s,i,l);break e}else for(Gd=wv(t.stateNode.containerInfo.firstChild),qd=t,Ls=!0,rf=null,i=dge(t,null,s,i),t.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling;else{if(CR(),s===l){t=Pg(n,t,i);break e}nc(n,t,s,i)}t=t.child}return t;case 5:return uge(t),n===null&&QK(t),s=t.type,l=t.pendingProps,d=n!==null?n.memoizedProps:null,u=l.children,KK(s,l)?u=null:d!==null&&KK(s,d)&&(t.flags|=32),kge(n,t),nc(n,t,u,i),t.child;case 6:return n===null&&QK(t),null;case 13:return jge(n,t,i);case 4:return EJ(t,t.stateNode.containerInfo),s=t.pendingProps,n===null?t.child=TR(t,null,s,i):nc(n,t,s,i),t.child;case 11:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Bh(s,l),Kde(n,t,s,l,i);case 7:return nc(n,t,t.pendingProps,i),t.child;case 8:return nc(n,t,t.pendingProps.children,i),t.child;case 12:return nc(n,t,t.pendingProps.children,i),t.child;case 10:e:{if(s=t.type._context,l=t.pendingProps,d=t.memoizedProps,u=l.value,cs(XM,s._currentValue),s._currentValue=u,d!==null)if(uf(d.value,u)){if(d.children===l.children&&!ed.current){t=Pg(n,t,i);break e}}else for(d=t.child,d!==null&&(d.return=t);d!==null;){var p=d.dependencies;if(p!==null){u=d.child;for(var g=p.firstContext;g!==null;){if(g.context===s){if(d.tag===1){g=xg(-1,i&-i),g.tag=2;var _=d.updateQueue;if(_!==null){_=_.shared;var y=_.pending;y===null?g.next=g:(g.next=y.next,y.next=g),_.pending=g}}d.lanes|=i,g=d.alternate,g!==null&&(g.lanes|=i),ZK(d.return,i,t),p.lanes|=i;break}g=g.next}}else if(d.tag===10)u=d.type===t.type?null:d.child;else if(d.tag===18){if(u=d.return,u===null)throw Error(on(341));u.lanes|=i,p=u.alternate,p!==null&&(p.lanes|=i),ZK(u,i,t),u=d.sibling}else u=d.child;if(u!==null)u.return=d;else for(u=d;u!==null;){if(u===t){u=null;break}if(d=u.sibling,d!==null){d.return=u.return,u=d;break}u=u.return}d=u}nc(n,t,l.children,i),t=t.child}return t;case 9:return l=t.type,s=t.pendingProps.children,EC(t,i),l=nh(l),s=s(l),t.flags|=1,nc(n,t,s,i),t.child;case 14:return s=t.type,l=Bh(s,t.pendingProps),l=Bh(s.type,l),qde(n,t,s,l,i);case 15:return Lge(n,t,t.type,t.pendingProps,i);case 17:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Bh(s,l),zk(n,t),t.tag=1,td(s)?(n=!0,KM(t)):n=!1,EC(t,i),lge(t,s,l),tq(t,s,l,i),rq(null,t,s,!0,n,i);case 19:return Uge(n,t,i);case 22:return Dge(n,t,i)}throw Error(on(156,t.tag))};function e0e(n,t){return Rme(n,t)}function AOe(n,t,i,s){this.tag=n,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function eh(n,t,i,s){return new AOe(n,t,i,s)}function kJ(n){return n=n.prototype,!(!n||!n.isReactComponent)}function IOe(n){if(typeof n=="function")return kJ(n)?1:0;if(n!=null){if(n=n.$$typeof,n===eJ)return 11;if(n===tJ)return 14}return 2}function Tv(n,t){var i=n.alternate;return i===null?(i=eh(n.tag,t,n.key,n.mode),i.elementType=n.elementType,i.type=n.type,i.stateNode=n.stateNode,i.alternate=n,n.alternate=i):(i.pendingProps=t,i.type=n.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=n.flags&14680064,i.childLanes=n.childLanes,i.lanes=n.lanes,i.child=n.child,i.memoizedProps=n.memoizedProps,i.memoizedState=n.memoizedState,i.updateQueue=n.updateQueue,t=n.dependencies,i.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},i.sibling=n.sibling,i.index=n.index,i.ref=n.ref,i}function Wk(n,t,i,s,l,d){var u=2;if(s=n,typeof n=="function")kJ(n)&&(u=1);else if(typeof n=="string")u=5;else e:switch(n){case Zb:return hE(i.children,l,d,t);case ZX:u=8,l|=8;break;case TK:return n=eh(12,i,t,l|2),n.elementType=TK,n.lanes=d,n;case RK:return n=eh(13,i,t,l),n.elementType=RK,n.lanes=d,n;case xK:return n=eh(19,i,t,l),n.elementType=xK,n.lanes=d,n;case cme:return Kj(i,l,d,t);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case ome:u=10;break e;case lme:u=9;break e;case eJ:u=11;break e;case tJ:u=14;break e;case i1:u=16,s=null;break e}throw Error(on(130,n==null?n:typeof n,""))}return t=eh(u,i,t,l),t.elementType=n,t.type=s,t.lanes=d,t}function hE(n,t,i,s){return n=eh(7,n,s,t),n.lanes=i,n}function Kj(n,t,i,s){return n=eh(22,n,s,t),n.elementType=cme,n.lanes=i,n.stateNode={isHidden:!1},n}function S$(n,t,i){return n=eh(6,n,null,t),n.lanes=i,n}function b$(n,t,i){return t=eh(4,n.children!==null?n.children:[],n.key,t),t.lanes=i,t.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},t}function NOe(n,t,i,s,l){this.tag=t,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=i$(0),this.expirationTimes=i$(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=i$(0),this.identifierPrefix=s,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function MJ(n,t,i,s,l,d,u,p,g){return n=new NOe(n,t,i,p,g),t===1?(t=1,d===!0&&(t|=8)):t=0,d=eh(3,null,null,t),n.current=d,d.stateNode=n,d.memoizedState={element:s,isDehydrated:i,cache:null,transitions:null,pendingSuspenseBoundaries:null},_J(d),n}function OOe(n,t,i){var s=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r0e)}catch(n){console.error(n)}}r0e(),nme.exports=Zd;var BJ=nme.exports;const dC=Mv(BJ);var lue=BJ;bK.createRoot=lue.createRoot,bK.hydrateRoot=lue.hydrateRoot;Promise.withResolvers||(Promise.withResolvers=function(){let n,t;return{promise:new Promise((s,l)=>{n=s,t=l}),resolve:n,reject:t}});URL.parse||(URL.parse=function(n,t){try{return new URL(n,t)}catch(i){return console.log(i),console.log("Inside catch block on URL.parse "),null}});const Wo=globalThis||void 0||self;function MOe(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var s0e={exports:{}},ga=s0e.exports={},ip,rp;function gq(){throw new Error("setTimeout has not been defined")}function vq(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?ip=setTimeout:ip=gq}catch{ip=gq}try{typeof clearTimeout=="function"?rp=clearTimeout:rp=vq}catch{rp=vq}})();function a0e(n){if(ip===setTimeout)return setTimeout(n,0);if((ip===gq||!ip)&&setTimeout)return ip=setTimeout,setTimeout(n,0);try{return ip(n,0)}catch{try{return ip.call(null,n,0)}catch{return ip.call(this,n,0)}}}function jOe(n){if(rp===clearTimeout)return clearTimeout(n);if((rp===vq||!rp)&&clearTimeout)return rp=clearTimeout,clearTimeout(n);try{return rp(n)}catch{try{return rp.call(null,n)}catch{return rp.call(this,n)}}}var Rg=[],SC=!1,L_,$k=-1;function UOe(){!SC||!L_||(SC=!1,L_.length?Rg=L_.concat(Rg):$k=-1,Rg.length&&o0e())}function o0e(){if(!SC){var n=a0e(UOe);SC=!0;for(var t=Rg.length;t;){for(L_=Rg,Rg=[];++$k1)for(var i=1;i0)throw new Error("Invalid string. Length must be a multiple of 4");var i=n.indexOf("=");i===-1&&(i=t);var s=i===t?0:4-i%4;return[i,s]}function zOe(n){var t=c0e(n),i=t[0],s=t[1];return(i+s)*3/4-s}function HOe(n,t,i){return(t+i)*3/4-i}function GOe(n){var t,i=c0e(n),s=i[0],l=i[1],d=new BOe(HOe(n,s,l)),u=0,p=l>0?s-4:s,g;for(g=0;g>16&255,d[u++]=t>>8&255,d[u++]=t&255;return l===2&&(t=Uu[n.charCodeAt(g)]<<2|Uu[n.charCodeAt(g+1)]>>4,d[u++]=t&255),l===1&&(t=Uu[n.charCodeAt(g)]<<10|Uu[n.charCodeAt(g+1)]<<4|Uu[n.charCodeAt(g+2)]>>2,d[u++]=t>>8&255,d[u++]=t&255),d}function WOe(n){return Op[n>>18&63]+Op[n>>12&63]+Op[n>>6&63]+Op[n&63]}function $Oe(n,t,i){for(var s,l=[],d=t;dp?p:u+d));return s===1?(t=n[i-1],l.push(Op[t>>2]+Op[t<<4&63]+"==")):s===2&&(t=(n[i-2]<<8)+n[i-1],l.push(Op[t>>10]+Op[t>>4&63]+Op[t<<2&63]+"=")),l.join("")}var zJ={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */zJ.read=function(n,t,i,s,l){var d,u,p=l*8-s-1,g=(1<>1,y=-7,E=i?l-1:0,b=i?-1:1,A=n[t+E];for(E+=b,d=A&(1<<-y)-1,A>>=-y,y+=p;y>0;d=d*256+n[t+E],E+=b,y-=8);for(u=d&(1<<-y)-1,d>>=-y,y+=s;y>0;u=u*256+n[t+E],E+=b,y-=8);if(d===0)d=1-_;else{if(d===g)return u?NaN:(A?-1:1)*(1/0);u=u+Math.pow(2,s),d=d-_}return(A?-1:1)*u*Math.pow(2,d-s)};zJ.write=function(n,t,i,s,l,d){var u,p,g,_=d*8-l-1,y=(1<<_)-1,E=y>>1,b=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=s?0:d-1,N=s?1:-1,O=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(p=isNaN(t)?1:0,u=y):(u=Math.floor(Math.log(t)/Math.LN2),t*(g=Math.pow(2,-u))<1&&(u--,g*=2),u+E>=1?t+=b/g:t+=b*Math.pow(2,1-E),t*g>=2&&(u++,g/=2),u+E>=y?(p=0,u=y):u+E>=1?(p=(t*g-1)*Math.pow(2,l),u=u+E):(p=t*Math.pow(2,E-1)*Math.pow(2,l),u=0));l>=8;n[i+A]=p&255,A+=N,p/=256,l-=8);for(u=u<0;n[i+A]=u&255,A+=N,u/=256,_-=8);n[i+A-N]|=O*128};/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */(function(n){const t=Qj,i=zJ,s=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;n.Buffer=y,n.SlowBuffer=H,n.INSPECT_MAX_BYTES=50;const l=2147483647;n.kMaxLength=l;const{Uint8Array:d,ArrayBuffer:u,SharedArrayBuffer:p}=globalThis;y.TYPED_ARRAY_SUPPORT=g(),!y.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function g(){try{const ye=new d(1),J={foo:function(){return 42}};return Object.setPrototypeOf(J,d.prototype),Object.setPrototypeOf(ye,J),ye.foo()===42}catch{return!1}}Object.defineProperty(y.prototype,"parent",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.buffer}}),Object.defineProperty(y.prototype,"offset",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.byteOffset}});function _(ye){if(ye>l)throw new RangeError('The value "'+ye+'" is invalid for option "size"');const J=new d(ye);return Object.setPrototypeOf(J,y.prototype),J}function y(ye,J,ne){if(typeof ye=="number"){if(typeof J=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return N(ye)}return E(ye,J,ne)}y.poolSize=8192;function E(ye,J,ne){if(typeof ye=="string")return O(ye,J);if(u.isView(ye))return P(ye);if(ye==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof ye);if(St(ye,u)||ye&&St(ye.buffer,u)||typeof p<"u"&&(St(ye,p)||ye&&St(ye.buffer,p)))return j(ye,J,ne);if(typeof ye=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const Se=ye.valueOf&&ye.valueOf();if(Se!=null&&Se!==ye)return y.from(Se,J,ne);const Ue=M(ye);if(Ue)return Ue;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof ye[Symbol.toPrimitive]=="function")return y.from(ye[Symbol.toPrimitive]("string"),J,ne);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof ye)}y.from=function(ye,J,ne){return E(ye,J,ne)},Object.setPrototypeOf(y.prototype,d.prototype),Object.setPrototypeOf(y,d);function b(ye){if(typeof ye!="number")throw new TypeError('"size" argument must be of type number');if(ye<0)throw new RangeError('The value "'+ye+'" is invalid for option "size"')}function A(ye,J,ne){return b(ye),ye<=0?_(ye):J!==void 0?typeof ne=="string"?_(ye).fill(J,ne):_(ye).fill(J):_(ye)}y.alloc=function(ye,J,ne){return A(ye,J,ne)};function N(ye){return b(ye),_(ye<0?0:V(ye)|0)}y.allocUnsafe=function(ye){return N(ye)},y.allocUnsafeSlow=function(ye){return N(ye)};function O(ye,J){if((typeof J!="string"||J==="")&&(J="utf8"),!y.isEncoding(J))throw new TypeError("Unknown encoding: "+J);const ne=$(ye,J)|0;let Se=_(ne);const Ue=Se.write(ye,J);return Ue!==ne&&(Se=Se.slice(0,Ue)),Se}function D(ye){const J=ye.length<0?0:V(ye.length)|0,ne=_(J);for(let Se=0;Se=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return ye|0}function H(ye){return+ye!=ye&&(ye=0),y.alloc(+ye)}y.isBuffer=function(J){return J!=null&&J._isBuffer===!0&&J!==y.prototype},y.compare=function(J,ne){if(St(J,d)&&(J=y.from(J,J.offset,J.byteLength)),St(ne,d)&&(ne=y.from(ne,ne.offset,ne.byteLength)),!y.isBuffer(J)||!y.isBuffer(ne))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(J===ne)return 0;let Se=J.length,Ue=ne.length;for(let tt=0,Te=Math.min(Se,Ue);ttUe.length?(y.isBuffer(Te)||(Te=y.from(Te)),Te.copy(Ue,tt)):d.prototype.set.call(Ue,Te,tt);else if(y.isBuffer(Te))Te.copy(Ue,tt);else throw new TypeError('"list" argument must be an Array of Buffers');tt+=Te.length}return Ue};function $(ye,J){if(y.isBuffer(ye))return ye.length;if(u.isView(ye)||St(ye,u))return ye.byteLength;if(typeof ye!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof ye);const ne=ye.length,Se=arguments.length>2&&arguments[2]===!0;if(!Se&&ne===0)return 0;let Ue=!1;for(;;)switch(J){case"ascii":case"latin1":case"binary":return ne;case"utf8":case"utf-8":return dt(ye).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ne*2;case"hex":return ne>>>1;case"base64":return We(ye).length;default:if(Ue)return Se?-1:dt(ye).length;J=(""+J).toLowerCase(),Ue=!0}}y.byteLength=$;function Q(ye,J,ne){let Se=!1;if((J===void 0||J<0)&&(J=0),J>this.length||((ne===void 0||ne>this.length)&&(ne=this.length),ne<=0)||(ne>>>=0,J>>>=0,ne<=J))return"";for(ye||(ye="utf8");;)switch(ye){case"hex":return je(this,J,ne);case"utf8":case"utf-8":return Ce(this,J,ne);case"ascii":return Ne(this,J,ne);case"latin1":case"binary":return Fe(this,J,ne);case"base64":return he(this,J,ne);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ve(this,J,ne);default:if(Se)throw new TypeError("Unknown encoding: "+ye);ye=(ye+"").toLowerCase(),Se=!0}}y.prototype._isBuffer=!0;function Y(ye,J,ne){const Se=ye[J];ye[J]=ye[ne],ye[ne]=Se}y.prototype.swap16=function(){const J=this.length;if(J%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let ne=0;nene&&(J+=" ... "),""},s&&(y.prototype[s]=y.prototype.inspect),y.prototype.compare=function(J,ne,Se,Ue,tt){if(St(J,d)&&(J=y.from(J,J.offset,J.byteLength)),!y.isBuffer(J))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof J);if(ne===void 0&&(ne=0),Se===void 0&&(Se=J?J.length:0),Ue===void 0&&(Ue=0),tt===void 0&&(tt=this.length),ne<0||Se>J.length||Ue<0||tt>this.length)throw new RangeError("out of range index");if(Ue>=tt&&ne>=Se)return 0;if(Ue>=tt)return-1;if(ne>=Se)return 1;if(ne>>>=0,Se>>>=0,Ue>>>=0,tt>>>=0,this===J)return 0;let Te=tt-Ue,Pe=Se-ne;const Qe=Math.min(Te,Pe),nt=this.slice(Ue,tt),$e=J.slice(ne,Se);for(let st=0;st2147483647?ne=2147483647:ne<-2147483648&&(ne=-2147483648),ne=+ne,Lt(ne)&&(ne=Ue?0:ye.length-1),ne<0&&(ne=ye.length+ne),ne>=ye.length){if(Ue)return-1;ne=ye.length-1}else if(ne<0)if(Ue)ne=0;else return-1;if(typeof J=="string"&&(J=y.from(J,Se)),y.isBuffer(J))return J.length===0?-1:ae(ye,J,ne,Se,Ue);if(typeof J=="number")return J=J&255,typeof d.prototype.indexOf=="function"?Ue?d.prototype.indexOf.call(ye,J,ne):d.prototype.lastIndexOf.call(ye,J,ne):ae(ye,[J],ne,Se,Ue);throw new TypeError("val must be string, number or Buffer")}function ae(ye,J,ne,Se,Ue){let tt=1,Te=ye.length,Pe=J.length;if(Se!==void 0&&(Se=String(Se).toLowerCase(),Se==="ucs2"||Se==="ucs-2"||Se==="utf16le"||Se==="utf-16le")){if(ye.length<2||J.length<2)return-1;tt=2,Te/=2,Pe/=2,ne/=2}function Qe($e,st){return tt===1?$e[st]:$e.readUInt16BE(st*tt)}let nt;if(Ue){let $e=-1;for(nt=ne;ntTe&&(ne=Te-Pe),nt=ne;nt>=0;nt--){let $e=!0;for(let st=0;stUe&&(Se=Ue)):Se=Ue;const tt=J.length;Se>tt/2&&(Se=tt/2);let Te;for(Te=0;Te>>0,isFinite(Se)?(Se=Se>>>0,Ue===void 0&&(Ue="utf8")):(Ue=Se,Se=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const tt=this.length-ne;if((Se===void 0||Se>tt)&&(Se=tt),J.length>0&&(Se<0||ne<0)||ne>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ue||(Ue="utf8");let Te=!1;for(;;)switch(Ue){case"hex":return te(this,J,ne,Se);case"utf8":case"utf-8":return de(this,J,ne,Se);case"ascii":case"latin1":case"binary":return G(this,J,ne,Se);case"base64":return ie(this,J,ne,Se);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _e(this,J,ne,Se);default:if(Te)throw new TypeError("Unknown encoding: "+Ue);Ue=(""+Ue).toLowerCase(),Te=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function he(ye,J,ne){return J===0&&ne===ye.length?t.fromByteArray(ye):t.fromByteArray(ye.slice(J,ne))}function Ce(ye,J,ne){ne=Math.min(ye.length,ne);const Se=[];let Ue=J;for(;Ue239?4:tt>223?3:tt>191?2:1;if(Ue+Pe<=ne){let Qe,nt,$e,st;switch(Pe){case 1:tt<128&&(Te=tt);break;case 2:Qe=ye[Ue+1],(Qe&192)===128&&(st=(tt&31)<<6|Qe&63,st>127&&(Te=st));break;case 3:Qe=ye[Ue+1],nt=ye[Ue+2],(Qe&192)===128&&(nt&192)===128&&(st=(tt&15)<<12|(Qe&63)<<6|nt&63,st>2047&&(st<55296||st>57343)&&(Te=st));break;case 4:Qe=ye[Ue+1],nt=ye[Ue+2],$e=ye[Ue+3],(Qe&192)===128&&(nt&192)===128&&($e&192)===128&&(st=(tt&15)<<18|(Qe&63)<<12|(nt&63)<<6|$e&63,st>65535&&st<1114112&&(Te=st))}}Te===null?(Te=65533,Pe=1):Te>65535&&(Te-=65536,Se.push(Te>>>10&1023|55296),Te=56320|Te&1023),Se.push(Te),Ue+=Pe}return me(Se)}const fe=4096;function me(ye){const J=ye.length;if(J<=fe)return String.fromCharCode.apply(String,ye);let ne="",Se=0;for(;SeSe)&&(ne=Se);let Ue="";for(let tt=J;ttSe&&(J=Se),ne<0?(ne+=Se,ne<0&&(ne=0)):ne>Se&&(ne=Se),nene)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUintLE=y.prototype.readUIntLE=function(J,ne,Se){J=J>>>0,ne=ne>>>0,Se||Re(J,ne,this.length);let Ue=this[J],tt=1,Te=0;for(;++Te>>0,ne=ne>>>0,Se||Re(J,ne,this.length);let Ue=this[J+--ne],tt=1;for(;ne>0&&(tt*=256);)Ue+=this[J+--ne]*tt;return Ue},y.prototype.readUint8=y.prototype.readUInt8=function(J,ne){return J=J>>>0,ne||Re(J,1,this.length),this[J]},y.prototype.readUint16LE=y.prototype.readUInt16LE=function(J,ne){return J=J>>>0,ne||Re(J,2,this.length),this[J]|this[J+1]<<8},y.prototype.readUint16BE=y.prototype.readUInt16BE=function(J,ne){return J=J>>>0,ne||Re(J,2,this.length),this[J]<<8|this[J+1]},y.prototype.readUint32LE=y.prototype.readUInt32LE=function(J,ne){return J=J>>>0,ne||Re(J,4,this.length),(this[J]|this[J+1]<<8|this[J+2]<<16)+this[J+3]*16777216},y.prototype.readUint32BE=y.prototype.readUInt32BE=function(J,ne){return J=J>>>0,ne||Re(J,4,this.length),this[J]*16777216+(this[J+1]<<16|this[J+2]<<8|this[J+3])},y.prototype.readBigUInt64LE=un(function(J){J=J>>>0,gn(J,"offset");const ne=this[J],Se=this[J+7];(ne===void 0||Se===void 0)&&It(J,this.length-8);const Ue=ne+this[++J]*2**8+this[++J]*2**16+this[++J]*2**24,tt=this[++J]+this[++J]*2**8+this[++J]*2**16+Se*2**24;return BigInt(Ue)+(BigInt(tt)<>>0,gn(J,"offset");const ne=this[J],Se=this[J+7];(ne===void 0||Se===void 0)&&It(J,this.length-8);const Ue=ne*2**24+this[++J]*2**16+this[++J]*2**8+this[++J],tt=this[++J]*2**24+this[++J]*2**16+this[++J]*2**8+Se;return(BigInt(Ue)<>>0,ne=ne>>>0,Se||Re(J,ne,this.length);let Ue=this[J],tt=1,Te=0;for(;++Te=tt&&(Ue-=Math.pow(2,8*ne)),Ue},y.prototype.readIntBE=function(J,ne,Se){J=J>>>0,ne=ne>>>0,Se||Re(J,ne,this.length);let Ue=ne,tt=1,Te=this[J+--Ue];for(;Ue>0&&(tt*=256);)Te+=this[J+--Ue]*tt;return tt*=128,Te>=tt&&(Te-=Math.pow(2,8*ne)),Te},y.prototype.readInt8=function(J,ne){return J=J>>>0,ne||Re(J,1,this.length),this[J]&128?(255-this[J]+1)*-1:this[J]},y.prototype.readInt16LE=function(J,ne){J=J>>>0,ne||Re(J,2,this.length);const Se=this[J]|this[J+1]<<8;return Se&32768?Se|4294901760:Se},y.prototype.readInt16BE=function(J,ne){J=J>>>0,ne||Re(J,2,this.length);const Se=this[J+1]|this[J]<<8;return Se&32768?Se|4294901760:Se},y.prototype.readInt32LE=function(J,ne){return J=J>>>0,ne||Re(J,4,this.length),this[J]|this[J+1]<<8|this[J+2]<<16|this[J+3]<<24},y.prototype.readInt32BE=function(J,ne){return J=J>>>0,ne||Re(J,4,this.length),this[J]<<24|this[J+1]<<16|this[J+2]<<8|this[J+3]},y.prototype.readBigInt64LE=un(function(J){J=J>>>0,gn(J,"offset");const ne=this[J],Se=this[J+7];(ne===void 0||Se===void 0)&&It(J,this.length-8);const Ue=this[J+4]+this[J+5]*2**8+this[J+6]*2**16+(Se<<24);return(BigInt(Ue)<>>0,gn(J,"offset");const ne=this[J],Se=this[J+7];(ne===void 0||Se===void 0)&&It(J,this.length-8);const Ue=(ne<<24)+this[++J]*2**16+this[++J]*2**8+this[++J];return(BigInt(Ue)<>>0,ne||Re(J,4,this.length),i.read(this,J,!0,23,4)},y.prototype.readFloatBE=function(J,ne){return J=J>>>0,ne||Re(J,4,this.length),i.read(this,J,!1,23,4)},y.prototype.readDoubleLE=function(J,ne){return J=J>>>0,ne||Re(J,8,this.length),i.read(this,J,!0,52,8)},y.prototype.readDoubleBE=function(J,ne){return J=J>>>0,ne||Re(J,8,this.length),i.read(this,J,!1,52,8)};function Be(ye,J,ne,Se,Ue,tt){if(!y.isBuffer(ye))throw new TypeError('"buffer" argument must be a Buffer instance');if(J>Ue||Jye.length)throw new RangeError("Index out of range")}y.prototype.writeUintLE=y.prototype.writeUIntLE=function(J,ne,Se,Ue){if(J=+J,ne=ne>>>0,Se=Se>>>0,!Ue){const Pe=Math.pow(2,8*Se)-1;Be(this,J,ne,Se,Pe,0)}let tt=1,Te=0;for(this[ne]=J&255;++Te>>0,Se=Se>>>0,!Ue){const Pe=Math.pow(2,8*Se)-1;Be(this,J,ne,Se,Pe,0)}let tt=Se-1,Te=1;for(this[ne+tt]=J&255;--tt>=0&&(Te*=256);)this[ne+tt]=J/Te&255;return ne+Se},y.prototype.writeUint8=y.prototype.writeUInt8=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,1,255,0),this[ne]=J&255,ne+1},y.prototype.writeUint16LE=y.prototype.writeUInt16LE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,2,65535,0),this[ne]=J&255,this[ne+1]=J>>>8,ne+2},y.prototype.writeUint16BE=y.prototype.writeUInt16BE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,2,65535,0),this[ne]=J>>>8,this[ne+1]=J&255,ne+2},y.prototype.writeUint32LE=y.prototype.writeUInt32LE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,4,4294967295,0),this[ne+3]=J>>>24,this[ne+2]=J>>>16,this[ne+1]=J>>>8,this[ne]=J&255,ne+4},y.prototype.writeUint32BE=y.prototype.writeUInt32BE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,4,4294967295,0),this[ne]=J>>>24,this[ne+1]=J>>>16,this[ne+2]=J>>>8,this[ne+3]=J&255,ne+4};function Xe(ye,J,ne,Se,Ue){Ht(J,Se,Ue,ye,ne,7);let tt=Number(J&BigInt(4294967295));ye[ne++]=tt,tt=tt>>8,ye[ne++]=tt,tt=tt>>8,ye[ne++]=tt,tt=tt>>8,ye[ne++]=tt;let Te=Number(J>>BigInt(32)&BigInt(4294967295));return ye[ne++]=Te,Te=Te>>8,ye[ne++]=Te,Te=Te>>8,ye[ne++]=Te,Te=Te>>8,ye[ne++]=Te,ne}function we(ye,J,ne,Se,Ue){Ht(J,Se,Ue,ye,ne,7);let tt=Number(J&BigInt(4294967295));ye[ne+7]=tt,tt=tt>>8,ye[ne+6]=tt,tt=tt>>8,ye[ne+5]=tt,tt=tt>>8,ye[ne+4]=tt;let Te=Number(J>>BigInt(32)&BigInt(4294967295));return ye[ne+3]=Te,Te=Te>>8,ye[ne+2]=Te,Te=Te>>8,ye[ne+1]=Te,Te=Te>>8,ye[ne]=Te,ne+8}y.prototype.writeBigUInt64LE=un(function(J,ne=0){return Xe(this,J,ne,BigInt(0),BigInt("0xffffffffffffffff"))}),y.prototype.writeBigUInt64BE=un(function(J,ne=0){return we(this,J,ne,BigInt(0),BigInt("0xffffffffffffffff"))}),y.prototype.writeIntLE=function(J,ne,Se,Ue){if(J=+J,ne=ne>>>0,!Ue){const Qe=Math.pow(2,8*Se-1);Be(this,J,ne,Se,Qe-1,-Qe)}let tt=0,Te=1,Pe=0;for(this[ne]=J&255;++tt>0)-Pe&255;return ne+Se},y.prototype.writeIntBE=function(J,ne,Se,Ue){if(J=+J,ne=ne>>>0,!Ue){const Qe=Math.pow(2,8*Se-1);Be(this,J,ne,Se,Qe-1,-Qe)}let tt=Se-1,Te=1,Pe=0;for(this[ne+tt]=J&255;--tt>=0&&(Te*=256);)J<0&&Pe===0&&this[ne+tt+1]!==0&&(Pe=1),this[ne+tt]=(J/Te>>0)-Pe&255;return ne+Se},y.prototype.writeInt8=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,1,127,-128),J<0&&(J=255+J+1),this[ne]=J&255,ne+1},y.prototype.writeInt16LE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,2,32767,-32768),this[ne]=J&255,this[ne+1]=J>>>8,ne+2},y.prototype.writeInt16BE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,2,32767,-32768),this[ne]=J>>>8,this[ne+1]=J&255,ne+2},y.prototype.writeInt32LE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,4,2147483647,-2147483648),this[ne]=J&255,this[ne+1]=J>>>8,this[ne+2]=J>>>16,this[ne+3]=J>>>24,ne+4},y.prototype.writeInt32BE=function(J,ne,Se){return J=+J,ne=ne>>>0,Se||Be(this,J,ne,4,2147483647,-2147483648),J<0&&(J=4294967295+J+1),this[ne]=J>>>24,this[ne+1]=J>>>16,this[ne+2]=J>>>8,this[ne+3]=J&255,ne+4},y.prototype.writeBigInt64LE=un(function(J,ne=0){return Xe(this,J,ne,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),y.prototype.writeBigInt64BE=un(function(J,ne=0){return we(this,J,ne,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ge(ye,J,ne,Se,Ue,tt){if(ne+Se>ye.length)throw new RangeError("Index out of range");if(ne<0)throw new RangeError("Index out of range")}function rt(ye,J,ne,Se,Ue){return J=+J,ne=ne>>>0,Ue||Ge(ye,J,ne,4),i.write(ye,J,ne,Se,23,4),ne+4}y.prototype.writeFloatLE=function(J,ne,Se){return rt(this,J,ne,!0,Se)},y.prototype.writeFloatBE=function(J,ne,Se){return rt(this,J,ne,!1,Se)};function pt(ye,J,ne,Se,Ue){return J=+J,ne=ne>>>0,Ue||Ge(ye,J,ne,8),i.write(ye,J,ne,Se,52,8),ne+8}y.prototype.writeDoubleLE=function(J,ne,Se){return pt(this,J,ne,!0,Se)},y.prototype.writeDoubleBE=function(J,ne,Se){return pt(this,J,ne,!1,Se)},y.prototype.copy=function(J,ne,Se,Ue){if(!y.isBuffer(J))throw new TypeError("argument should be a Buffer");if(Se||(Se=0),!Ue&&Ue!==0&&(Ue=this.length),ne>=J.length&&(ne=J.length),ne||(ne=0),Ue>0&&Ue=this.length)throw new RangeError("Index out of range");if(Ue<0)throw new RangeError("sourceEnd out of bounds");Ue>this.length&&(Ue=this.length),J.length-ne>>0,Se=Se===void 0?this.length:Se>>>0,J||(J=0);let tt;if(typeof J=="number")for(tt=ne;tt2**32?Ue=_t(String(ne)):typeof ne=="bigint"&&(Ue=String(ne),(ne>BigInt(2)**BigInt(32)||ne<-(BigInt(2)**BigInt(32)))&&(Ue=_t(Ue)),Ue+="n"),Se+=` It must be ${J}. Received ${Ue}`,Se},RangeError);function _t(ye){let J="",ne=ye.length;const Se=ye[0]==="-"?1:0;for(;ne>=Se+4;ne-=3)J=`_${ye.slice(ne-3,ne)}${J}`;return`${ye.slice(0,ne)}${J}`}function Xt(ye,J,ne){gn(J,"offset"),(ye[J]===void 0||ye[J+ne]===void 0)&&It(J,ye.length-(ne+1))}function Ht(ye,J,ne,Se,Ue,tt){if(ye>ne||ye3?J===0||J===BigInt(0)?Pe=`>= 0${Te} and < 2${Te} ** ${(tt+1)*8}${Te}`:Pe=`>= -(2${Te} ** ${(tt+1)*8-1}${Te}) and < 2 ** ${(tt+1)*8-1}${Te}`:Pe=`>= ${J}${Te} and <= ${ne}${Te}`,new Ze.ERR_OUT_OF_RANGE("value",Pe,ye)}Xt(Se,Ue,tt)}function gn(ye,J){if(typeof ye!="number")throw new Ze.ERR_INVALID_ARG_TYPE(J,"number",ye)}function It(ye,J,ne){throw Math.floor(ye)!==ye?(gn(ye,ne),new Ze.ERR_OUT_OF_RANGE(ne||"offset","an integer",ye)):J<0?new Ze.ERR_BUFFER_OUT_OF_BOUNDS:new Ze.ERR_OUT_OF_RANGE(ne||"offset",`>= ${ne?1:0} and <= ${J}`,ye)}const xt=/[^+/0-9A-Za-z-_]/g;function mt(ye){if(ye=ye.split("=")[0],ye=ye.trim().replace(xt,""),ye.length<2)return"";for(;ye.length%4!==0;)ye=ye+"=";return ye}function dt(ye,J){J=J||1/0;let ne;const Se=ye.length;let Ue=null;const tt=[];for(let Te=0;Te55295&&ne<57344){if(!Ue){if(ne>56319){(J-=3)>-1&&tt.push(239,191,189);continue}else if(Te+1===Se){(J-=3)>-1&&tt.push(239,191,189);continue}Ue=ne;continue}if(ne<56320){(J-=3)>-1&&tt.push(239,191,189),Ue=ne;continue}ne=(Ue-55296<<10|ne-56320)+65536}else Ue&&(J-=3)>-1&&tt.push(239,191,189);if(Ue=null,ne<128){if((J-=1)<0)break;tt.push(ne)}else if(ne<2048){if((J-=2)<0)break;tt.push(ne>>6|192,ne&63|128)}else if(ne<65536){if((J-=3)<0)break;tt.push(ne>>12|224,ne>>6&63|128,ne&63|128)}else if(ne<1114112){if((J-=4)<0)break;tt.push(ne>>18|240,ne>>12&63|128,ne>>6&63|128,ne&63|128)}else throw new Error("Invalid code point")}return tt}function it(ye){const J=[];for(let ne=0;ne>8,Ue=ne%256,tt.push(Ue),tt.push(Se);return tt}function We(ye){return t.toByteArray(mt(ye))}function bt(ye,J,ne,Se){let Ue;for(Ue=0;Ue=J.length||Ue>=ye.length);++Ue)J[Ue+ne]=ye[Ue];return Ue}function St(ye,J){return ye instanceof J||ye!=null&&ye.constructor!=null&&ye.constructor.name!=null&&ye.constructor.name===J.name}function Lt(ye){return ye!==ye}const tn=function(){const ye="0123456789abcdef",J=new Array(256);for(let ne=0;ne<16;++ne){const Se=ne*16;for(let Ue=0;Ue<16;++Ue)J[Se+Ue]=ye[ne]+ye[Ue]}return J}();function un(ye){return typeof BigInt>"u"?an:ye}function an(){throw new Error("BigInt not supported")}})(VJ);const o7=VJ.Buffer,d0e=VJ.Buffer;/** + * @license agora-rtc-react + * @version 2.2.0 + * + * Copyright (c) Agora, Inc. + * + * This source code is licensed under the MIT license. + */var qOe=Object.create,HJ=Object.defineProperty,YOe=Object.getOwnPropertyDescriptor,XOe=Object.getOwnPropertyNames,JOe=Object.getPrototypeOf,QOe=Object.prototype.hasOwnProperty,ZOe=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),ePe=(n,t)=>{for(var i in t)HJ(n,i,{get:t[i],enumerable:!0})},u0e=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of XOe(t))!QOe.call(n,l)&&l!==i&&HJ(n,l,{get:()=>t[l],enumerable:!(s=YOe(t,l))||s.enumerable});return n},tPe=(n,t,i)=>(u0e(n,t,"default"),i),jE=(n,t,i)=>(i=n!=null?qOe(JOe(n)):{},u0e(!n||!n.__esModule?HJ(i,"default",{value:n,enumerable:!0}):i,n)),UE=ZOe((n,t)=>{(function(i,s){typeof n=="object"&&typeof t<"u"?t.exports=s():typeof define=="function"&&define.amd?define(s):(i=typeof globalThis<"u"?globalThis:i||self).AgoraRTC=s()})(n,function(){function i(r,a){return a.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(c){if(c!=="default"&&!(c in r)){var f=Object.getOwnPropertyDescriptor(o,c);Object.defineProperty(r,c,f.get?f:{enumerable:!0,get:function(){return o[c]}})}})}),Object.freeze(r)}var s=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof Wo<"u"?Wo:typeof self<"u"?self:{};function l(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var d=function(r){try{return!!r()}catch{return!0}},u=!d(function(){var r=(function(){}).bind();return typeof r!="function"||r.hasOwnProperty("prototype")}),p=u,g=Function.prototype,_=g.call,y=p&&g.bind.bind(_,_),E=p?y:function(r){return function(){return _.apply(r,arguments)}},b=E({}.isPrototypeOf),A=function(r){return r&&r.Math==Math&&r},N=A(typeof globalThis=="object"&&globalThis)||A(typeof window=="object"&&window)||A(typeof self=="object"&&self)||A(typeof s=="object"&&s)||function(){return this}()||s||Function("return this")(),O=u,D=Function.prototype,P=D.apply,j=D.call,M=typeof Reflect=="object"&&Reflect.apply||(O?j.bind(P):function(){return j.apply(P,arguments)}),V=E,H=V({}.toString),$=V("".slice),Q=function(r){return $(H(r),8,-1)},Y=Q,le=E,ae=function(r){if(Y(r)==="Function")return le(r)},te=typeof document=="object"&&document.all,de={all:te,IS_HTMLDDA:te===void 0&&te!==void 0},G=de.all,ie=de.IS_HTMLDDA?function(r){return typeof r=="function"||r===G}:function(r){return typeof r=="function"},_e={},he=!d(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),Ce=u,fe=Function.prototype.call,me=Ce?fe.bind(fe):function(){return fe.apply(fe,arguments)},Ne={},Fe={}.propertyIsEnumerable,je=Object.getOwnPropertyDescriptor,Ve=je&&!Fe.call({1:2},1);Ne.f=Ve?function(r){var a=je(this,r);return!!a&&a.enumerable}:Fe;var Re,Be,Xe=function(r,a){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:a}},we=d,Ge=Q,rt=Object,pt=E("".split),Ze=we(function(){return!rt("z").propertyIsEnumerable(0)})?function(r){return Ge(r)=="String"?pt(r,""):rt(r)}:rt,Je=function(r){return r==null},_t=Je,Xt=TypeError,Ht=function(r){if(_t(r))throw Xt("Can't call method on "+r);return r},gn=Ze,It=Ht,xt=function(r){return gn(It(r))},mt=ie,dt=de.all,it=de.IS_HTMLDDA?function(r){return typeof r=="object"?r!==null:mt(r)||r===dt}:function(r){return typeof r=="object"?r!==null:mt(r)},Me={},We=Me,bt=N,St=ie,Lt=function(r){return St(r)?r:void 0},tn=function(r,a){return arguments.length<2?Lt(We[r])||Lt(bt[r]):We[r]&&We[r][a]||bt[r]&&bt[r][a]},un=typeof navigator<"u"&&String(navigator.userAgent)||"",an=N,ye=un,J=an.process,ne=an.Deno,Se=J&&J.versions||ne&&ne.version,Ue=Se&&Se.v8;Ue&&(Be=(Re=Ue.split("."))[0]>0&&Re[0]<4?1:+(Re[0]+Re[1])),!Be&&ye&&(!(Re=ye.match(/Edge\/(\d+)/))||Re[1]>=74)&&(Re=ye.match(/Chrome\/(\d+)/))&&(Be=+Re[1]);var tt=Be,Te=tt,Pe=d,Qe=N.String,nt=!!Object.getOwnPropertySymbols&&!Pe(function(){var r=Symbol();return!Qe(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Te&&Te<41}),$e=nt&&!Symbol.sham&&typeof Symbol.iterator=="symbol",st=tn,_n=ie,Dt=b,nn=Object,en=$e?function(r){return typeof r=="symbol"}:function(r){var a=st("Symbol");return _n(a)&&Dt(a.prototype,nn(r))},qt=String,Jt=function(r){try{return qt(r)}catch{return"Object"}},mn=ie,Kn=Jt,Nn=TypeError,Tn=function(r){if(mn(r))return r;throw Nn(Kn(r)+" is not a function")},Ui=Tn,xr=Je,bi=function(r,a){var o=r[a];return xr(o)?void 0:Ui(o)},Ia=me,Sl=ie,mc=it,nu=TypeError,To={exports:{}},Fg=N,Bg=Object.defineProperty,Ka=function(r,a){try{Bg(Fg,r,{value:a,configurable:!0,writable:!0})}catch{Fg[r]=a}return a},ew="__core-js_shared__",$v=N[ew]||Ka(ew,{}),tw=$v;(To.exports=function(r,a){return tw[r]||(tw[r]=a!==void 0?a:{})})("versions",[]).push({version:"3.31.1",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE",source:"https://github.com/zloirock/core-js"});var mf=To.exports,sx=Ht,ax=Object,Ro=function(r){return ax(sx(r))},ox=Ro,Vg=E({}.hasOwnProperty),fs=Object.hasOwn||function(r,a){return Vg(ox(r),a)},lx=E,cx=0,nw=Math.random(),iw=lx(1 .toString),zg=function(r){return"Symbol("+(r===void 0?"":r)+")_"+iw(++cx+nw,36)},rw=mf,sw=fs,dx=zg,ah=nt,iu=$e,qa=N.Symbol,Hp=rw("wks"),Kv=iu?qa.for||qa:qa&&qa.withoutSetter||dx,Qi=function(r){return sw(Hp,r)||(Hp[r]=ah&&sw(qa,r)?qa[r]:Kv("Symbol."+r)),Hp[r]},qv=me,oh=it,gf=en,Hg=bi,Gg=function(r,a){var o,c;if(Sl(o=r.toString)&&!mc(c=Ia(o,r))||Sl(o=r.valueOf)&&!mc(c=Ia(o,r))||a!=="string")return c;throw nu("Can't convert object to primitive value")},Yv=TypeError,Wg=Qi("toPrimitive"),vf=function(r,a){if(!oh(r)||gf(r))return r;var o,c=Hg(r,Wg);if(c){if(o=qv(c,r,a),!oh(o)||gf(o))return o;throw Yv("Can't convert object to primitive value")}return Gg(r,a)},yf=en,ru=function(r){var a=vf(r,"string");return yf(a)?a:a+""},Gp=it,rd=N.document,$g=Gp(rd)&&Gp(rd.createElement),Wp=function(r){return $g?rd.createElement(r):{}},aw=Wp,ux=!he&&!d(function(){return Object.defineProperty(aw("div"),"a",{get:function(){return 7}}).a!=7}),uP=he,hP=me,fP=Ne,dF=Xe,uF=xt,hF=ru,pP=fs,fF=ux,mP=Object.getOwnPropertyDescriptor;_e.f=uP?mP:function(r,a){if(r=uF(r),a=hF(a),fF)try{return mP(r,a)}catch{}if(pP(r,a))return dF(!hP(fP.f,r,a),r[a])};var pF=d,mF=ie,hx=/#|\.prototype\./,Xv=function(r,a){var o=vF[gF(r)];return o==_F||o!=yF&&(mF(a)?pF(a):!!a)},gF=Xv.normalize=function(r){return String(r).replace(hx,".").toLowerCase()},vF=Xv.data={},yF=Xv.NATIVE="N",_F=Xv.POLYFILL="P",Gr=Xv,Wr=Tn,EF=u,wF=ae(ae.bind),_f=function(r,a){return Wr(r),a===void 0?r:EF?wF(r,a):function(){return r.apply(a,arguments)}},gc={},gP=he&&d(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42}),SF=it,vP=String,bF=TypeError,dr=function(r){if(SF(r))return r;throw bF(vP(r)+" is not an object")},fx=he,$p=ux,yP=gP,Kg=dr,bl=ru,_P=TypeError,ow=Object.defineProperty,EP=Object.getOwnPropertyDescriptor,lw="enumerable",cw="configurable",dw="writable";gc.f=fx?yP?function(r,a,o){if(Kg(r),a=bl(a),Kg(o),typeof r=="function"&&a==="prototype"&&"value"in o&&dw in o&&!o[dw]){var c=EP(r,a);c&&c[dw]&&(r[a]=o.value,o={configurable:cw in o?o[cw]:c[cw],enumerable:lw in o?o[lw]:c[lw],writable:!1})}return ow(r,a,o)}:ow:function(r,a,o){if(Kg(r),a=bl(a),Kg(o),$p)try{return ow(r,a,o)}catch{}if("get"in o||"set"in o)throw _P("Accessors not supported");return"value"in o&&(r[a]=o.value),r};var Cl=gc,CF=Xe,ta=he?function(r,a,o){return Cl.f(r,a,CF(1,o))}:function(r,a,o){return r[a]=o,r},uw=N,wP=M,Ef=ae,hw=ie,px=_e.f,ss=Gr,Tl=Me,mx=_f,qg=ta,fw=fs,TF=function(r){var a=function(o,c,f){if(this instanceof a){switch(arguments.length){case 0:return new r;case 1:return new r(o);case 2:return new r(o,c)}return new r(o,c,f)}return wP(r,this,arguments)};return a.prototype=r.prototype,a},Ni=function(r,a){var o,c,f,m,v,w,C,R,x,L=r.target,U=r.global,F=r.stat,Z=r.proto,W=U?uw:F?uw[L]:(uw[L]||{}).prototype,K=U?Tl:Tl[L]||qg(Tl,L,{})[L],oe=K.prototype;for(m in a)c=!(o=ss(U?m:L+(F?".":"#")+m,r.forced))&&W&&fw(W,m),w=K[m],c&&(C=r.dontCallGetSet?(x=px(W,m))&&x.value:W[m]),v=c&&C?C:a[m],c&&typeof w==typeof v||(R=r.bind&&c?mx(v,uw):r.wrap&&c?TF(v):Z&&hw(v)?Ef(v):v,(r.sham||v&&v.sham||w&&w.sham)&&qg(R,"sham",!0),qg(K,m,R),Z&&(fw(Tl,f=L+"Prototype")||qg(Tl,f,{}),qg(Tl[f],m,v),r.real&&oe&&(o||!oe[m])&&qg(oe,m,v)))},RF=Math.ceil,SP=Math.floor,pw=Math.trunc||function(r){var a=+r;return(a>0?SP:RF)(a)},Yg=pw,gx=function(r){var a=+r;return a!=a||a===0?0:Yg(a)},bP=gx,CP=Math.max,vx=Math.min,Jv=function(r,a){var o=bP(r);return o<0?CP(o+a,0):vx(o,a)},TP=gx,xF=Math.min,mw=function(r){return r>0?xF(TP(r),9007199254740991):0},yx=mw,lh=function(r){return yx(r.length)},RP=xt,Rl=Jv,_x=lh,Xg=function(r){return function(a,o,c){var f,m=RP(a),v=_x(m),w=Rl(c,v);if(r&&o!=o){for(;v>w;)if((f=m[w++])!=f)return!0}else for(;v>w;w++)if((r||w in m)&&m[w]===o)return r||w||0;return!r&&-1}},gw={includes:Xg(!0),indexOf:Xg(!1)},xP=gw.includes;Ni({target:"Array",proto:!0,forced:d(function(){return!Array(1).includes()})},{includes:function(r){return xP(this,r,arguments.length>1?arguments[1]:void 0)}});var AF=Me,vc=function(r){return AF[r+"Prototype"]},IF=vc("Array").includes,NF=it,OF=Q,Jg=Qi("match"),AP=function(r){var a;return NF(r)&&((a=r[Jg])!==void 0?!!a:OF(r)=="RegExp")},PF=AP,Ex=TypeError,wx={};wx[Qi("toStringTag")]="z";var su=String(wx)==="[object z]",vw=su,LF=ie,yw=Q,DF=Qi("toStringTag"),Qg=Object,sd=yw(function(){return arguments}())=="Arguments",ad=vw?yw:function(r){var a,o,c;return r===void 0?"Undefined":r===null?"Null":typeof(o=function(f,m){try{return f[m]}catch{}}(a=Qg(r),DF))=="string"?o:sd?yw(a):(c=yw(a))=="Object"&&LF(a.callee)?"Arguments":c},kF=ad,MF=String,xl=function(r){if(kF(r)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return MF(r)},jF=Qi("match"),UF=Ni,Zg=function(r){if(PF(r))throw Ex("The method doesn't accept regular expressions");return r},ot=Ht,Ot=xl,Et=function(r){var a=/./;try{"/./"[r](a)}catch{try{return a[jF]=!1,"/./"[r](a)}catch{}}return!1},Cn=E("".indexOf);UF({target:"String",proto:!0,forced:!Et("includes")},{includes:function(r){return!!~Cn(Ot(ot(this)),Ot(Zg(r)),arguments.length>1?arguments[1]:void 0)}});var di=vc("String").includes,ur=b,na=IF,Dr=di,Qv=Array.prototype,Sx=String.prototype,yc=function(r){var a=r.includes;return r===Qv||ur(Qv,r)&&a===Qv.includes?na:typeof r=="string"||r===Sx||ur(Sx,r)&&a===Sx.includes?Dr:a},Tt=l(yc),FF=Tn,e0=Ro,_w=Ze,Ew=lh,Tr=TypeError,IP=function(r){return function(a,o,c,f){FF(o);var m=e0(a),v=_w(m),w=Ew(m),C=r?w-1:0,R=r?-1:1;if(c<2)for(;;){if(C in v){f=v[C],C+=R;break}if(C+=R,r?C<0:w<=C)throw Tr("Reduce of empty array with no initial value")}for(;r?C>=0:w>C;C+=R)C in v&&(f=o(f,v[C],C,m));return f}},NP={left:IP(!1),right:IP(!0)},ww=d,Sw=function(r,a){var o=[][r];return!!o&&ww(function(){o.call(null,a||function(){return 1},1)})},Zv=typeof ic<"u"&&Q(ic)=="process",BF=NP.left;Ni({target:"Array",proto:!0,forced:!Zv&&tt>79&&tt<83||!Sw("reduce")},{reduce:function(r){var a=arguments.length;return BF(this,r,a,a>1?arguments[1]:void 0)}});var bw=vc("Array").reduce,wf=b,Cw=bw,Tw=Array.prototype,Rw=function(r){var a=r.reduce;return r===Tw||wf(Tw,r)&&a===Tw.reduce?Cw:a},bx=Rw,_c=l(bx);let ey=!0,Cx=!0;function Sf(r,a,o){let c=r.match(a);return c&&c.length>=o&&parseInt(c[o],10)}function Al(r,a,o){if(!r.RTCPeerConnection)return;let c=r.RTCPeerConnection.prototype,f=c.addEventListener;c.addEventListener=function(v,w){if(v!==a)return f.apply(this,arguments);let C=R=>{let x=o(R);x&&(w.handleEvent?w.handleEvent(x):w(x))};return this._eventMap=this._eventMap||{},this._eventMap[a]||(this._eventMap[a]=new Map),this._eventMap[a].set(w,C),f.apply(this,[v,C])};let m=c.removeEventListener;c.removeEventListener=function(v,w){if(v!==a||!this._eventMap||!this._eventMap[a])return m.apply(this,arguments);if(!this._eventMap[a].has(w))return m.apply(this,arguments);let C=this._eventMap[a].get(w);return this._eventMap[a].delete(w),this._eventMap[a].size===0&&delete this._eventMap[a],Object.keys(this._eventMap).length===0&&delete this._eventMap,m.apply(this,[v,C])},Object.defineProperty(c,"on"+a,{get(){return this["_on"+a]},set(v){this["_on"+a]&&(this.removeEventListener(a,this["_on"+a]),delete this["_on"+a]),v&&this.addEventListener(a,this["_on"+a]=v)},enumerable:!0,configurable:!0})}function xw(r){return typeof r!="boolean"?new Error("Argument type: "+typeof r+". Please use a boolean."):(ey=r,r?"adapter.js logging disabled":"adapter.js logging enabled")}function VF(r){return typeof r!="boolean"?new Error("Argument type: "+typeof r+". Please use a boolean."):(Cx=!r,"adapter.js deprecation warnings "+(r?"disabled":"enabled"))}function OP(){if(typeof window=="object"){if(ey)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Tx(r,a){Cx&&console.warn(r+" is deprecated, please use "+a+" instead.")}function ty(r){return Object.prototype.toString.call(r)==="[object Object]"}function ny(r){var a;return ty(r)?_c(a=Object.keys(r)).call(a,function(o,c){let f=ty(r[c]),m=f?ny(r[c]):r[c],v=f&&!Object.keys(m).length;return m===void 0||v?o:Object.assign(o,{[c]:m})},{}):r}function iy(r,a,o){a&&!o.has(a.id)&&(o.set(a.id,a),Object.keys(a).forEach(c=>{c.endsWith("Id")?iy(r,r.get(a[c]),o):c.endsWith("Ids")&&a[c].forEach(f=>{iy(r,r.get(f),o)})}))}function PP(r,a,o){let c=o?"outbound-rtp":"inbound-rtp",f=new Map;if(a===null)return f;let m=[];return r.forEach(v=>{v.type==="track"&&v.trackIdentifier===a.id&&m.push(v)}),m.forEach(v=>{r.forEach(w=>{w.type===c&&w.trackId===v.id&&iy(r,w,f)})}),f}var LP=zg,DP=mf("keys"),Aw=function(r){return DP[r]||(DP[r]=LP(r))},ia=!d(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype}),Ya=fs,zF=ie,HF=Ro,kP=ia,MP=Aw("IE_PROTO"),ry=Object,sy=ry.prototype,ay=kP?ry.getPrototypeOf:function(r){var a=HF(r);if(Ya(a,MP))return a[MP];var o=a.constructor;return zF(o)&&a instanceof o?o.prototype:a instanceof ry?sy:null},t0=E,oy=Tn,ly=ie,Iw=String,n0=TypeError,GF=function(r,a,o){try{return t0(oy(Object.getOwnPropertyDescriptor(r,a)[o]))}catch{}},WF=dr,$F=function(r){if(typeof r=="object"||ly(r))return r;throw n0("Can't set "+Iw(r)+" as a prototype")},KF=Object.setPrototypeOf||("__proto__"in{}?function(){var r,a=!1,o={};try{(r=GF(Object.prototype,"__proto__","set"))(o,[]),a=o instanceof Array}catch{}return function(c,f){return WF(c),$F(f),a?r(c,f):c.__proto__=f,c}}():void 0),Nw={},Kp={},qp=fs,jP=xt,be=gw.indexOf,i0=Kp,cy=E([].push),Il=function(r,a){var o,c=jP(r),f=0,m=[];for(o in c)!qp(i0,o)&&qp(c,o)&&cy(m,o);for(;a.length>f;)qp(c,o=a[f++])&&(~be(m,o)||cy(m,o));return m},Fi=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],qF=Il,YF=Fi.concat("length","prototype");Nw.f=Object.getOwnPropertyNames||function(r){return qF(r,YF)};var dy={};dy.f=Object.getOwnPropertySymbols;var Yp=tn,XF=Nw,JF=dy,QF=dr,ZF=E([].concat),eB=Yp("Reflect","ownKeys")||function(r){var a=XF.f(QF(r)),o=JF.f;return o?ZF(a,o(r)):a},au=fs,tB=eB,nB=_e,iB=gc,Rx={},rB=Il,ch=Fi,Ow=Object.keys||function(r){return rB(r,ch)},sB=he,aB=gP,oB=gc,lB=dr,Xp=xt,cB=Ow;Rx.f=sB&&!aB?Object.defineProperties:function(r,a){lB(r);for(var o,c=Xp(a),f=cB(a),m=f.length,v=0;m>v;)oB.f(r,o=f[v++],c[o]);return r};var Pw,Ec=tn("document","documentElement"),dB=dr,uB=Rx,UP=Fi,hB=Kp,fB=Ec,FP=Wp,Lw="prototype",xx="script",BP=Aw("IE_PROTO"),uy=function(){},r0=function(r){return"<"+xx+">"+r+""},hy=function(r){r.write(r0("")),r.close();var a=r.parentWindow.Object;return r=null,a},Dw=function(){try{Pw=new ActiveXObject("htmlfile")}catch{}var r,a,o;Dw=typeof document<"u"?document.domain&&Pw?hy(Pw):(a=FP("iframe"),o="java"+xx+":",a.style.display="none",fB.appendChild(a),a.src=String(o),(r=a.contentWindow.document).open(),r.write(r0("document.F=Object")),r.close(),r.F):hy(Pw);for(var c=UP.length;c--;)delete Dw[Lw][UP[c]];return Dw()};hB[BP]=!0;var s0=Object.create||function(r,a){var o;return r!==null?(uy[Lw]=dB(r),o=new uy,uy[Lw]=null,o[BP]=r):o=Dw(),a===void 0?o:uB.f(o,a)},pB=it,dh=ta,kw=Error,Jp=E("".replace),wc=String(kw("zxcasd").stack),VP=/\n\s*at [^:]*:[^\n]*/,zP=VP.test(wc),HP=Xe,fy=!d(function(){var r=Error("a");return!("stack"in r)||(Object.defineProperty(r,"stack",HP(1,7)),r.stack!==7)}),bf=ta,GP=function(r,a){if(zP&&typeof r=="string"&&!kw.prepareStackTrace)for(;a--;)r=Jp(r,VP,"");return r},mB=fy,py=Error.captureStackTrace,Qp={},WP=Qp,Na=Qi("iterator"),Ax=Array.prototype,Ix=function(r){return r!==void 0&&(WP.Array===r||Ax[Na]===r)},ou=ad,Mw=bi,jw=Je,Zp=Qp,$P=Qi("iterator"),_a=function(r){if(!jw(r))return Mw(r,$P)||Mw(r,"@@iterator")||Zp[ou(r)]},Nx=me,gB=Tn,vB=dr,yB=Jt,Ox=_a,_B=TypeError,em=function(r,a){var o=arguments.length<2?Ox(r):a;if(gB(o))return vB(Nx(o,r));throw _B(yB(r)+" is not iterable")},KP=me,qP=dr,EB=bi,a0=function(r,a,o){var c,f;qP(r);try{if(!(c=EB(r,"return"))){if(a==="throw")throw o;return o}c=KP(c,r)}catch(m){f=!0,c=m}if(a==="throw")throw o;if(f)throw c;return qP(c),o},wB=_f,SB=me,Px=dr,YP=Jt,bB=Ix,CB=lh,XP=b,JP=em,Lx=_a,QP=a0,Dx=TypeError,my=function(r,a){this.stopped=r,this.result=a},kx=my.prototype,o0=function(r,a,o){var c,f,m,v,w,C,R,x=o&&o.that,L=!(!o||!o.AS_ENTRIES),U=!(!o||!o.IS_RECORD),F=!(!o||!o.IS_ITERATOR),Z=!(!o||!o.INTERRUPTED),W=wB(a,x),K=function(ue){return c&&QP(c,"normal",ue),new my(!0,ue)},oe=function(ue){return L?(Px(ue),Z?W(ue[0],ue[1],K):W(ue[0],ue[1])):Z?W(ue,K):W(ue)};if(U)c=r.iterator;else if(F)c=r;else{if(!(f=Lx(r)))throw Dx(YP(r)+" is not iterable");if(bB(f)){for(m=0,v=CB(r);v>m;m++)if((w=oe(r[m]))&&XP(kx,w))return w;return new my(!1)}c=JP(r,f)}for(C=U?r.next:c.next;!(R=SB(C,c)).done;){try{w=oe(R.value)}catch(ue){QP(c,"throw",ue)}if(typeof w=="object"&&w&&XP(kx,w))return w}return new my(!1)},Uw=xl,TB=Ni,ZP=b,e6=ay,Fw=KF,t6=function(r,a,o){for(var c=tB(a),f=iB.f,m=nB.f,v=0;v2&&Mx(o,arguments[2]);var f=[];return jx(r,vy,{that:f}),gy(o,"errors",f),o};Fw?Fw(tm,Vw):t6(tm,Vw,{name:!0});var Ux=tm.prototype=n6(Vw.prototype,{constructor:Bw(1,tm),message:Bw(1,""),name:Bw(1,"AggregateError")});TB({global:!0,constructor:!0,arity:2},{AggregateError:tm});var zw,Xa,Hw,Gw=ie,Ww=N.WeakMap,i6=Gw(Ww)&&/native code/.test(String(Ww)),Fx=N,Nl=it,Cf=ta,yy=fs,$w=$v,Kw=Aw,r6=Kp,qw="Object already initialized",Yw=Fx.TypeError,Bx=Fx.WeakMap;if(i6||$w.state){var Sc=$w.state||($w.state=new Bx);Sc.get=Sc.get,Sc.has=Sc.has,Sc.set=Sc.set,zw=function(r,a){if(Sc.has(r))throw Yw(qw);return a.facade=r,Sc.set(r,a),a},Xa=function(r){return Sc.get(r)||{}},Hw=function(r){return Sc.has(r)}}else{var Ol=Kw("state");r6[Ol]=!0,zw=function(r,a){if(yy(r,Ol))throw Yw(qw);return a.facade=r,Cf(r,Ol,a),a},Xa=function(r){return yy(r,Ol)?r[Ol]:{}},Hw=function(r){return yy(r,Ol)}}var nm,uh,Vx,Tf={set:zw,get:Xa,has:Hw,enforce:function(r){return Hw(r)?Xa(r):zw(r,{})},getterFor:function(r){return function(a){var o;if(!Nl(a)||(o=Xa(a)).type!==r)throw Yw("Incompatible receiver, "+r+" required");return o}}},_y=he,AB=fs,s6=Function.prototype,IB=_y&&Object.getOwnPropertyDescriptor,Xw=AB(s6,"name"),zx={EXISTS:Xw,PROPER:Xw&&(function(){}).name==="something",CONFIGURABLE:Xw&&(!_y||_y&&IB(s6,"name").configurable)},NB=ta,hh=function(r,a,o,c){return c&&c.enumerable?r[a]=o:NB(r,a,o),r},a6=d,Jo=ie,lu=it,OB=s0,o6=ay,Jw=hh,Rf=Qi("iterator"),Hx=!1;[].keys&&("next"in(Vx=[].keys())?(uh=o6(o6(Vx)))!==Object.prototype&&(nm=uh):Hx=!0);var l6=!lu(nm)||a6(function(){var r={};return nm[Rf].call(r)!==r});Jo((nm=l6?{}:OB(nm))[Rf])||Jw(nm,Rf,function(){return this});var c6={IteratorPrototype:nm,BUGGY_SAFARI_ITERATORS:Hx},d6=ad,l0=su?{}.toString:function(){return"[object "+d6(this)+"]"},Ey=su,PB=gc.f,u6=ta,h6=fs,Qw=l0,Gx=Qi("toStringTag"),od=function(r,a,o,c){if(r){var f=o?r:r.prototype;h6(f,Gx)||PB(f,Gx,{configurable:!0,value:a}),c&&!Ey&&u6(f,"toString",Qw)}},Wx=c6.IteratorPrototype,Zw=s0,LB=Xe,f6=od,eS=Qp,p6=function(){return this},wy=function(r,a,o,c){var f=a+" Iterator";return r.prototype=Zw(Wx,{next:LB(+!c,o)}),f6(r,f,!1,!0),eS[f]=p6,r},DB=Ni,m6=me,fh=zx,g6=wy,v6=ay,kB=od,$x=hh,y6=Qp,MB=c6,ph=fh.PROPER,c0=MB.BUGGY_SAFARI_ITERATORS,Sy=Qi("iterator"),tS="keys",im="values",rm="entries",Xn=function(){return this},by=function(r,a,o,c,f,m,v){g6(o,a,c);var w,C,R,x=function(oe){if(oe===f&&W)return W;if(!c0&&oe in F)return F[oe];switch(oe){case tS:case im:case rm:return function(){return new o(this,oe)}}return function(){return new o(this)}},L=a+" Iterator",U=!1,F=r.prototype,Z=F[Sy]||F["@@iterator"]||f&&F[f],W=!c0&&Z||x(f),K=a=="Array"&&F.entries||Z;if(K&&(w=v6(K.call(new r)))!==Object.prototype&&w.next&&(kB(w,L,!0,!0),y6[L]=Xn),ph&&f==im&&Z&&Z.name!==im&&(U=!0,W=function(){return m6(Z,this)}),f)if(C={values:x(im),keys:m?W:x(tS),entries:x(rm)},v)for(R in C)(c0||U||!(R in F))&&$x(F,R,C[R]);else DB({target:a,proto:!0,forced:c0||U},C);return v&&F[Sy]!==W&&$x(F,Sy,W,{name:f}),y6[a]=W,C},Cy=function(r,a){return{value:r,done:a}},sm=xt,_6=Qp,nS=Tf;gc.f;var E6=by,Oa=Cy,w6="Array Iterator",jB=nS.set,S6=nS.getterFor(w6);E6(Array,"Array",function(r,a){jB(this,{type:w6,target:sm(r),index:0,kind:a})},function(){var r=S6(this),a=r.target,o=r.kind,c=r.index++;return!a||c>=a.length?(r.target=void 0,Oa(void 0,!0)):Oa(o=="keys"?c:o=="values"?a[c]:[c,a[c]],!1)},"values"),_6.Arguments=_6.Array;var UB=gc,Ty=function(r,a,o){return UB.f(r,a,o)},FB=tn,BB=Ty,VB=he,cu=Qi("species"),xo=b,Kx=TypeError,qx=function(r,a){if(xo(a,r))return r;throw Kx("Incorrect invocation")},Yx=ie,Xx=$v,zB=E(Function.toString);Yx(Xx.inspectSource)||(Xx.inspectSource=function(r){return zB(r)});var d0=Xx.inspectSource,b6=E,C6=d,T6=ie,HB=ad,GB=d0,R6=function(){},x6=[],Jx=tn("Reflect","construct"),Qx=/^\s*(?:class|function)\b/,Zx=b6(Qx.exec),A6=!Qx.exec(R6),mh=function(r){if(!T6(r))return!1;try{return Jx(R6,x6,r),!0}catch{return!1}},iS=function(r){if(!T6(r))return!1;switch(HB(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return A6||!!Zx(Qx,GB(r))}catch{return!0}};iS.sham=!0;var u0,am,Ry,rS,Pl=!Jx||C6(function(){var r;return mh(mh.call)||!mh(Object)||!mh(function(){r=!0})||r})?iS:mh,om=Pl,WB=Jt,I6=TypeError,N6=dr,$B=function(r){if(om(r))return r;throw I6(WB(r)+" is not a constructor")},KB=Je,qB=Qi("species"),eA=function(r,a){var o,c=N6(r).constructor;return c===void 0||KB(o=N6(c)[qB])?a:$B(o)},tA=E([].slice),YB=TypeError,sS=function(r,a){if(r=w?r?"":void 0:(c=mL(m,v))<55296||c>56319||v+1===w||(f=mL(m,v+1))<56320||f>57343?r?oz(m,v):c:r?lz(m,v,v+2):f-56320+(c-55296<<10)+65536}},NA={codeAt:gL(!1),charAt:gL(!0)},cz=NA.charAt,dz=xl,vL=Tf,OA=by,yL=Cy,SS="String Iterator",uz=vL.set,hz=vL.getterFor(SS);OA(String,"String",function(r){uz(this,{type:SS,string:dz(r),index:0})},function(){var r,a=hz(this),o=a.string,c=a.index;return c>=o.length?yL(void 0,!0):(r=cz(o,c),a.index+=r.length,yL(r,!1))});var fz=Me.Promise,Ea={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Zo=N,pz=ad,mz=ta,_L=Qp,PA=Qi("toStringTag");for(var LA in Ea){var EL=Zo[LA],DA=EL&&EL.prototype;DA&&pz(DA)!==PA&&mz(DA,PA,LA),_L[LA]=_L.Array}var kA=fz,Ct=l(kA);let wL=OP;function SL(r,a){let o=r&&r.navigator;if(!o.mediaDevices)return;let c=function(v){if(typeof v!="object"||v.mandatory||v.optional)return v;let w={};return Object.keys(v).forEach(C=>{if(C==="require"||C==="advanced"||C==="mediaSource")return;let R=typeof v[C]=="object"?v[C]:{ideal:v[C]};R.exact!==void 0&&typeof R.exact=="number"&&(R.min=R.max=R.exact);let x=function(L,U){return L?L+U.charAt(0).toUpperCase()+U.slice(1):U==="deviceId"?"sourceId":U};if(R.ideal!==void 0){w.optional=w.optional||[];let L={};typeof R.ideal=="number"?(L[x("min",C)]=R.ideal,w.optional.push(L),L={},L[x("max",C)]=R.ideal,w.optional.push(L)):(L[x("",C)]=R.ideal,w.optional.push(L))}R.exact!==void 0&&typeof R.exact!="number"?(w.mandatory=w.mandatory||{},w.mandatory[x("",C)]=R.exact):["min","max"].forEach(L=>{R[L]!==void 0&&(w.mandatory=w.mandatory||{},w.mandatory[x(L,C)]=R[L])})}),v.advanced&&(w.optional=(w.optional||[]).concat(v.advanced)),w},f=function(v,w){if(a.version>=61)return w(v);if((v=JSON.parse(JSON.stringify(v)))&&typeof v.audio=="object"){let C=function(R,x,L){x in R&&!(L in R)&&(R[L]=R[x],delete R[x])};C((v=JSON.parse(JSON.stringify(v))).audio,"autoGainControl","googAutoGainControl"),C(v.audio,"noiseSuppression","googNoiseSuppression"),v.audio=c(v.audio)}if(v&&typeof v.video=="object"){let C=v.video.facingMode;C=C&&(typeof C=="object"?C:{ideal:C});let R=a.version<66;if(C&&(C.exact==="user"||C.exact==="environment"||C.ideal==="user"||C.ideal==="environment")&&(!o.mediaDevices.getSupportedConstraints||!o.mediaDevices.getSupportedConstraints().facingMode||R)){let x;if(delete v.video.facingMode,C.exact==="environment"||C.ideal==="environment"?x=["back","rear"]:C.exact!=="user"&&C.ideal!=="user"||(x=["front"]),x)return o.mediaDevices.enumerateDevices().then(L=>{let U=(L=L.filter(F=>F.kind==="videoinput")).find(F=>x.some(Z=>{var W;return Tt(W=F.label.toLowerCase()).call(W,Z)}));return!U&&L.length&&Tt(x).call(x,"back")&&(U=L[L.length-1]),U&&(v.video.deviceId=C.exact?{exact:U.deviceId}:{ideal:U.deviceId}),v.video=c(v.video),wL("chrome: "+JSON.stringify(v)),w(v)})}v.video=c(v.video)}return wL("chrome: "+JSON.stringify(v)),w(v)},m=function(v){return a.version>=64?v:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[v.name]||v.name,message:v.message,constraint:v.constraint||v.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(o.getUserMedia=(function(v,w,C){f(v,R=>{o.webkitGetUserMedia(R,w,x=>{C&&C(m(x))})})}).bind(o),o.mediaDevices.getUserMedia){let v=o.mediaDevices.getUserMedia.bind(o.mediaDevices);o.mediaDevices.getUserMedia=function(w){return f(w,C=>v(C).then(R=>{if(C.audio&&!R.getAudioTracks().length||C.video&&!R.getVideoTracks().length)throw R.getTracks().forEach(x=>{x.stop()}),new DOMException("","NotFoundError");return R},R=>Ct.reject(m(R))))}}}function MA(r){r.MediaStream=r.MediaStream||r.webkitMediaStream}function jA(r){if(typeof r=="object"&&r.RTCPeerConnection&&!("ontrack"in r.RTCPeerConnection.prototype)){Object.defineProperty(r.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(o){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=o)},enumerable:!0,configurable:!0});let a=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=o=>{o.stream.addEventListener("addtrack",c=>{let f;f=r.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(v=>v.track&&v.track.id===c.track.id):{track:c.track};let m=new Event("track");m.track=c.track,m.receiver=f,m.transceiver={receiver:f},m.streams=[o.stream],this.dispatchEvent(m)}),o.stream.getTracks().forEach(c=>{let f;f=r.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(v=>v.track&&v.track.id===c.id):{track:c};let m=new Event("track");m.track=c,m.receiver=f,m.transceiver={receiver:f},m.streams=[o.stream],this.dispatchEvent(m)})},this.addEventListener("addstream",this._ontrackpoly)),a.apply(this,arguments)}}else Al(r,"track",a=>(a.transceiver||Object.defineProperty(a,"transceiver",{value:{receiver:a.receiver}}),a))}function bL(r){if(typeof r=="object"&&r.RTCPeerConnection&&!("getSenders"in r.RTCPeerConnection.prototype)&&"createDTMFSender"in r.RTCPeerConnection.prototype){let a=function(f,m){return{track:m,get dtmf(){return this._dtmf===void 0&&(m.kind==="audio"?this._dtmf=f.createDTMFSender(m):this._dtmf=null),this._dtmf},_pc:f}};if(!r.RTCPeerConnection.prototype.getSenders){r.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let f=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addTrack=function(v,w){let C=f.apply(this,arguments);return C||(C=a(this,v),this._senders.push(C)),C};let m=r.RTCPeerConnection.prototype.removeTrack;r.RTCPeerConnection.prototype.removeTrack=function(v){m.apply(this,arguments);let w=this._senders.indexOf(v);w!==-1&&this._senders.splice(w,1)}}let o=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(f){this._senders=this._senders||[],o.apply(this,[f]),f.getTracks().forEach(m=>{this._senders.push(a(this,m))})};let c=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(f){this._senders=this._senders||[],c.apply(this,[f]),f.getTracks().forEach(m=>{let v=this._senders.find(w=>w.track===m);v&&this._senders.splice(this._senders.indexOf(v),1)})}}else if(typeof r=="object"&&r.RTCPeerConnection&&"getSenders"in r.RTCPeerConnection.prototype&&"createDTMFSender"in r.RTCPeerConnection.prototype&&r.RTCRtpSender&&!("dtmf"in r.RTCRtpSender.prototype)){let a=r.RTCPeerConnection.prototype.getSenders;r.RTCPeerConnection.prototype.getSenders=function(){let o=a.apply(this,[]);return o.forEach(c=>c._pc=this),o},Object.defineProperty(r.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function CL(r){if(!r.RTCPeerConnection)return;let a=r.RTCPeerConnection.prototype.getStats;r.RTCPeerConnection.prototype.getStats=function(){let[o,c,f]=arguments;if(arguments.length>0&&typeof o=="function")return a.apply(this,arguments);if(a.length===0&&(arguments.length===0||typeof o!="function"))return a.apply(this,[]);let m=function(w){let C={};return w.result().forEach(R=>{let x={id:R.id,timestamp:R.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[R.type]||R.type};R.names().forEach(L=>{x[L]=R.stat(L)}),C[x.id]=x}),C},v=function(w){return new Map(Object.keys(w).map(C=>[C,w[C]]))};if(arguments.length>=2){let w=function(C){c(v(m(C)))};return a.apply(this,[w,o])}return new Ct((w,C)=>{a.apply(this,[function(R){w(v(m(R)))},C])}).then(c,f)}}function TL(r){if(!(typeof r=="object"&&r.RTCPeerConnection&&r.RTCRtpSender&&r.RTCRtpReceiver))return;if(!("getStats"in r.RTCRtpSender.prototype)){let o=r.RTCPeerConnection.prototype.getSenders;o&&(r.RTCPeerConnection.prototype.getSenders=function(){let f=o.apply(this,[]);return f.forEach(m=>m._pc=this),f});let c=r.RTCPeerConnection.prototype.addTrack;c&&(r.RTCPeerConnection.prototype.addTrack=function(){let f=c.apply(this,arguments);return f._pc=this,f}),r.RTCRtpSender.prototype.getStats=function(){let f=this;return this._pc.getStats().then(m=>PP(m,f.track,!0))}}if(!("getStats"in r.RTCRtpReceiver.prototype)){let o=r.RTCPeerConnection.prototype.getReceivers;o&&(r.RTCPeerConnection.prototype.getReceivers=function(){let c=o.apply(this,[]);return c.forEach(f=>f._pc=this),c}),Al(r,"track",c=>(c.receiver._pc=c.srcElement,c)),r.RTCRtpReceiver.prototype.getStats=function(){let c=this;return this._pc.getStats().then(f=>PP(f,c.track,!1))}}if(!("getStats"in r.RTCRtpSender.prototype)||!("getStats"in r.RTCRtpReceiver.prototype))return;let a=r.RTCPeerConnection.prototype.getStats;r.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof r.MediaStreamTrack){let o=arguments[0],c,f,m;return this.getSenders().forEach(v=>{v.track===o&&(c?m=!0:c=v)}),this.getReceivers().forEach(v=>(v.track===o&&(f?m=!0:f=v),v.track===o)),m||c&&f?Ct.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):c?c.getStats():f?f.getStats():Ct.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return a.apply(this,arguments)}}function RL(r){r.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(m=>this._shimmedLocalStreams[m][0])};let a=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addTrack=function(m,v){if(!v)return a.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let w=a.apply(this,arguments);return this._shimmedLocalStreams[v.id]?this._shimmedLocalStreams[v.id].indexOf(w)===-1&&this._shimmedLocalStreams[v.id].push(w):this._shimmedLocalStreams[v.id]=[v,w],w};let o=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(m){this._shimmedLocalStreams=this._shimmedLocalStreams||{},m.getTracks().forEach(C=>{if(this.getSenders().find(R=>R.track===C))throw new DOMException("Track already exists.","InvalidAccessError")});let v=this.getSenders();o.apply(this,arguments);let w=this.getSenders().filter(C=>v.indexOf(C)===-1);this._shimmedLocalStreams[m.id]=[m].concat(w)};let c=r.RTCPeerConnection.prototype.removeStream;r.RTCPeerConnection.prototype.removeStream=function(m){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[m.id],c.apply(this,arguments)};let f=r.RTCPeerConnection.prototype.removeTrack;r.RTCPeerConnection.prototype.removeTrack=function(m){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},m&&Object.keys(this._shimmedLocalStreams).forEach(v=>{let w=this._shimmedLocalStreams[v].indexOf(m);w!==-1&&this._shimmedLocalStreams[v].splice(w,1),this._shimmedLocalStreams[v].length===1&&delete this._shimmedLocalStreams[v]}),f.apply(this,arguments)}}function dm(r,a){if(!r.RTCPeerConnection)return;if(r.RTCPeerConnection.prototype.addTrack&&a.version>=65)return RL(r);let o=r.RTCPeerConnection.prototype.getLocalStreams;r.RTCPeerConnection.prototype.getLocalStreams=function(){let C=o.apply(this);return this._reverseStreams=this._reverseStreams||{},C.map(R=>this._reverseStreams[R.id])};let c=r.RTCPeerConnection.prototype.addStream;r.RTCPeerConnection.prototype.addStream=function(C){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},C.getTracks().forEach(R=>{if(this.getSenders().find(x=>x.track===R))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[C.id]){let R=new r.MediaStream(C.getTracks());this._streams[C.id]=R,this._reverseStreams[R.id]=C,C=R}c.apply(this,[C])};let f=r.RTCPeerConnection.prototype.removeStream;function m(C,R){let x=R.sdp;return Object.keys(C._reverseStreams||[]).forEach(L=>{let U=C._reverseStreams[L],F=C._streams[U.id];x=x.replace(new RegExp(F.id,"g"),U.id)}),new RTCSessionDescription({type:R.type,sdp:x})}r.RTCPeerConnection.prototype.removeStream=function(C){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},f.apply(this,[this._streams[C.id]||C]),delete this._reverseStreams[this._streams[C.id]?this._streams[C.id].id:C.id],delete this._streams[C.id]},r.RTCPeerConnection.prototype.addTrack=function(C,R){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let x=[].slice.call(arguments,1);if(x.length!==1||!x[0].getTracks().find(U=>U===C))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(U=>U.track===C))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let L=this._streams[R.id];if(L)L.addTrack(C),Ct.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let U=new r.MediaStream([C]);this._streams[R.id]=U,this._reverseStreams[U.id]=R,this.addStream(U)}return this.getSenders().find(U=>U.track===C)},["createOffer","createAnswer"].forEach(function(C){let R=r.RTCPeerConnection.prototype[C],x={[C](){let L=arguments;return arguments.length&&typeof arguments[0]=="function"?R.apply(this,[U=>{let F=m(this,U);L[0].apply(null,[F])},U=>{L[1]&&L[1].apply(null,U)},arguments[2]]):R.apply(this,arguments).then(U=>m(this,U))}};r.RTCPeerConnection.prototype[C]=x[C]});let v=r.RTCPeerConnection.prototype.setLocalDescription;r.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(C,R){let x=R.sdp;return Object.keys(C._reverseStreams||[]).forEach(L=>{let U=C._reverseStreams[L],F=C._streams[U.id];x=x.replace(new RegExp(U.id,"g"),F.id)}),new RTCSessionDescription({type:R.type,sdp:x})}(this,arguments[0]),v.apply(this,arguments)):v.apply(this,arguments)};let w=Object.getOwnPropertyDescriptor(r.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(r.RTCPeerConnection.prototype,"localDescription",{get(){let C=w.get.apply(this);return C.type===""?C:m(this,C)}}),r.RTCPeerConnection.prototype.removeTrack=function(C){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!C._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(C._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let R;this._streams=this._streams||{},Object.keys(this._streams).forEach(x=>{this._streams[x].getTracks().find(L=>C.track===L)&&(R=this._streams[x])}),R&&(R.getTracks().length===1?this.removeStream(this._reverseStreams[R.id]):R.removeTrack(C.track),this.dispatchEvent(new Event("negotiationneeded")))}}function UA(r,a){!r.RTCPeerConnection&&r.webkitRTCPeerConnection&&(r.RTCPeerConnection=r.webkitRTCPeerConnection),r.RTCPeerConnection&&a.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(o){let c=r.RTCPeerConnection.prototype[o],f={[o](){return arguments[0]=new(o==="addIceCandidate"?r.RTCIceCandidate:r.RTCSessionDescription)(arguments[0]),c.apply(this,arguments)}};r.RTCPeerConnection.prototype[o]=f[o]})}function xL(r,a){Al(r,"negotiationneeded",o=>{let c=o.target;if(!(a.version<72||c.getConfiguration&&c.getConfiguration().sdpSemantics==="plan-b")||c.signalingState==="stable")return o})}var AL=Object.freeze({__proto__:null,fixNegotiationNeeded:xL,shimAddTrackRemoveTrack:dm,shimAddTrackRemoveTrackWithNative:RL,shimGetDisplayMedia:function(r,a){r.navigator.mediaDevices&&"getDisplayMedia"in r.navigator.mediaDevices||r.navigator.mediaDevices&&(typeof a=="function"?r.navigator.mediaDevices.getDisplayMedia=function(o){return a(o).then(c=>{let f=o.video&&o.video.width,m=o.video&&o.video.height,v=o.video&&o.video.frameRate;return o.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:c,maxFrameRate:v||3}},f&&(o.video.mandatory.maxWidth=f),m&&(o.video.mandatory.maxHeight=m),r.navigator.mediaDevices.getUserMedia(o)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))},shimGetSendersWithDtmf:bL,shimGetStats:CL,shimGetUserMedia:SL,shimMediaStream:MA,shimOnTrack:jA,shimPeerConnection:UA,shimSenderReceiverGetStats:TL});function IL(r,a){let o=r&&r.navigator,c=r&&r.MediaStreamTrack;if(o.getUserMedia=function(f,m,v){Tx("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),o.mediaDevices.getUserMedia(f).then(m,v)},!(a.version>55&&"autoGainControl"in o.mediaDevices.getSupportedConstraints())){let f=function(v,w,C){w in v&&!(C in v)&&(v[C]=v[w],delete v[w])},m=o.mediaDevices.getUserMedia.bind(o.mediaDevices);if(o.mediaDevices.getUserMedia=function(v){return typeof v=="object"&&typeof v.audio=="object"&&(v=JSON.parse(JSON.stringify(v)),f(v.audio,"autoGainControl","mozAutoGainControl"),f(v.audio,"noiseSuppression","mozNoiseSuppression")),m(v)},c&&c.prototype.getSettings){let v=c.prototype.getSettings;c.prototype.getSettings=function(){let w=v.apply(this,arguments);return f(w,"mozAutoGainControl","autoGainControl"),f(w,"mozNoiseSuppression","noiseSuppression"),w}}if(c&&c.prototype.applyConstraints){let v=c.prototype.applyConstraints;c.prototype.applyConstraints=function(w){return this.kind==="audio"&&typeof w=="object"&&(w=JSON.parse(JSON.stringify(w)),f(w,"autoGainControl","mozAutoGainControl"),f(w,"noiseSuppression","mozNoiseSuppression")),v.apply(this,[w])}}}}function NL(r){typeof r=="object"&&r.RTCTrackEvent&&"receiver"in r.RTCTrackEvent.prototype&&!("transceiver"in r.RTCTrackEvent.prototype)&&Object.defineProperty(r.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function bS(r,a){if(typeof r!="object"||!r.RTCPeerConnection&&!r.mozRTCPeerConnection)return;!r.RTCPeerConnection&&r.mozRTCPeerConnection&&(r.RTCPeerConnection=r.mozRTCPeerConnection),a.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(f){let m=r.RTCPeerConnection.prototype[f],v={[f](){return arguments[0]=new(f==="addIceCandidate"?r.RTCIceCandidate:r.RTCSessionDescription)(arguments[0]),m.apply(this,arguments)}};r.RTCPeerConnection.prototype[f]=v[f]});let o={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},c=r.RTCPeerConnection.prototype.getStats;r.RTCPeerConnection.prototype.getStats=function(){let[f,m,v]=arguments;return c.apply(this,[f||null]).then(w=>{if(a.version<53&&!m)try{w.forEach(C=>{C.type=o[C.type]||C.type})}catch(C){if(C.name!=="TypeError")throw C;w.forEach((R,x)=>{w.set(x,Object.assign({},R,{type:o[R.type]||R.type}))})}return w}).then(m,v)}}function FA(r){if(typeof r!="object"||!r.RTCPeerConnection||!r.RTCRtpSender||r.RTCRtpSender&&"getStats"in r.RTCRtpSender.prototype)return;let a=r.RTCPeerConnection.prototype.getSenders;a&&(r.RTCPeerConnection.prototype.getSenders=function(){let c=a.apply(this,[]);return c.forEach(f=>f._pc=this),c});let o=r.RTCPeerConnection.prototype.addTrack;o&&(r.RTCPeerConnection.prototype.addTrack=function(){let c=o.apply(this,arguments);return c._pc=this,c}),r.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Ct.resolve(new Map)}}function OL(r){if(typeof r!="object"||!r.RTCPeerConnection||!r.RTCRtpSender||r.RTCRtpSender&&"getStats"in r.RTCRtpReceiver.prototype)return;let a=r.RTCPeerConnection.prototype.getReceivers;a&&(r.RTCPeerConnection.prototype.getReceivers=function(){let o=a.apply(this,[]);return o.forEach(c=>c._pc=this),o}),Al(r,"track",o=>(o.receiver._pc=o.srcElement,o)),r.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function PL(r){r.RTCPeerConnection&&!("removeStream"in r.RTCPeerConnection.prototype)&&(r.RTCPeerConnection.prototype.removeStream=function(a){Tx("removeStream","removeTrack"),this.getSenders().forEach(o=>{var c;o.track&&Tt(c=a.getTracks()).call(c,o.track)&&this.removeTrack(o)})})}function LL(r){r.DataChannel&&!r.RTCDataChannel&&(r.RTCDataChannel=r.DataChannel)}function DL(r){if(typeof r!="object"||!r.RTCPeerConnection)return;let a=r.RTCPeerConnection.prototype.addTransceiver;a&&(r.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let o=arguments[1]&&arguments[1].sendEncodings;o===void 0&&(o=[]),o=[...o];let c=o.length>0;c&&o.forEach(m=>{if("rid"in m&&!/^[a-z0-9]{0,16}$/i.test(m.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in m&&!(parseFloat(m.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in m&&!(parseFloat(m.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});let f=a.apply(this,arguments);if(c){let{sender:m}=f,v=m.getParameters();(!("encodings"in v)||v.encodings.length===1&&Object.keys(v.encodings[0]).length===0)&&(v.encodings=o,m.sendEncodings=o,this.setParametersPromises.push(m.setParameters(v).then(()=>{delete m.sendEncodings}).catch(()=>{delete m.sendEncodings})))}return f})}function kL(r){if(typeof r!="object"||!r.RTCRtpSender)return;let a=r.RTCRtpSender.prototype.getParameters;a&&(r.RTCRtpSender.prototype.getParameters=function(){let o=a.apply(this,arguments);return"encodings"in o||(o.encodings=[].concat(this.sendEncodings||[{}])),o})}function ML(r){if(typeof r!="object"||!r.RTCPeerConnection)return;let a=r.RTCPeerConnection.prototype.createOffer;r.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ct.all(this.setParametersPromises).then(()=>a.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):a.apply(this,arguments)}}function jL(r){if(typeof r!="object"||!r.RTCPeerConnection)return;let a=r.RTCPeerConnection.prototype.createAnswer;r.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ct.all(this.setParametersPromises).then(()=>a.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):a.apply(this,arguments)}}var UL=Object.freeze({__proto__:null,shimAddTransceiver:DL,shimCreateAnswer:jL,shimCreateOffer:ML,shimGetDisplayMedia:function(r,a){r.navigator.mediaDevices&&"getDisplayMedia"in r.navigator.mediaDevices||r.navigator.mediaDevices&&(r.navigator.mediaDevices.getDisplayMedia=function(o){if(!o||!o.video){let c=new DOMException("getDisplayMedia without video constraints is undefined");return c.name="NotFoundError",c.code=8,Ct.reject(c)}return o.video===!0?o.video={mediaSource:a}:o.video.mediaSource=a,r.navigator.mediaDevices.getUserMedia(o)})},shimGetParameters:kL,shimGetUserMedia:IL,shimOnTrack:NL,shimPeerConnection:bS,shimRTCDataChannel:LL,shimReceiverGetStats:OL,shimRemoveStream:PL,shimSenderGetStats:FA});function FL(r){if(typeof r=="object"&&r.RTCPeerConnection){if("getLocalStreams"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in r.RTCPeerConnection.prototype)){let a=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addStream=function(o){var c;this._localStreams||(this._localStreams=[]),Tt(c=this._localStreams).call(c,o)||this._localStreams.push(o),o.getAudioTracks().forEach(f=>a.call(this,f,o)),o.getVideoTracks().forEach(f=>a.call(this,f,o))},r.RTCPeerConnection.prototype.addTrack=function(o){for(var c=arguments.length,f=new Array(c>1?c-1:0),m=1;m{var w;this._localStreams?Tt(w=this._localStreams).call(w,v)||this._localStreams.push(v):this._localStreams=[v]}),a.apply(this,arguments)}}"removeStream"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.removeStream=function(a){this._localStreams||(this._localStreams=[]);let o=this._localStreams.indexOf(a);if(o===-1)return;this._localStreams.splice(o,1);let c=a.getTracks();this.getSenders().forEach(f=>{Tt(c).call(c,f.track)&&this.removeTrack(f)})})}}function BL(r){if(typeof r=="object"&&r.RTCPeerConnection&&("getRemoteStreams"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in r.RTCPeerConnection.prototype))){Object.defineProperty(r.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(o){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=o),this.addEventListener("track",this._onaddstreampoly=c=>{c.streams.forEach(f=>{var m;if(this._remoteStreams||(this._remoteStreams=[]),Tt(m=this._remoteStreams).call(m,f))return;this._remoteStreams.push(f);let v=new Event("addstream");v.stream=f,this.dispatchEvent(v)})})}});let a=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){let o=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(c){c.streams.forEach(f=>{if(o._remoteStreams||(o._remoteStreams=[]),o._remoteStreams.indexOf(f)>=0)return;o._remoteStreams.push(f);let m=new Event("addstream");m.stream=f,o.dispatchEvent(m)})}),a.apply(o,arguments)}}}function VL(r){if(typeof r!="object"||!r.RTCPeerConnection)return;let a=r.RTCPeerConnection.prototype,o=a.createOffer,c=a.createAnswer,f=a.setLocalDescription,m=a.setRemoteDescription,v=a.addIceCandidate;a.createOffer=function(C,R){let x=arguments.length>=2?arguments[2]:arguments[0],L=o.apply(this,[x]);return R?(L.then(C,R),Ct.resolve()):L},a.createAnswer=function(C,R){let x=arguments.length>=2?arguments[2]:arguments[0],L=c.apply(this,[x]);return R?(L.then(C,R),Ct.resolve()):L};let w=function(C,R,x){let L=f.apply(this,[C]);return x?(L.then(R,x),Ct.resolve()):L};a.setLocalDescription=w,w=function(C,R,x){let L=m.apply(this,[C]);return x?(L.then(R,x),Ct.resolve()):L},a.setRemoteDescription=w,w=function(C,R,x){let L=v.apply(this,[C]);return x?(L.then(R,x),Ct.resolve()):L},a.addIceCandidate=w}function zL(r){let a=r&&r.navigator;if(a.mediaDevices&&a.mediaDevices.getUserMedia){let o=a.mediaDevices,c=o.getUserMedia.bind(o);a.mediaDevices.getUserMedia=f=>c(HL(f))}!a.getUserMedia&&a.mediaDevices&&a.mediaDevices.getUserMedia&&(a.getUserMedia=(function(o,c,f){a.mediaDevices.getUserMedia(o).then(c,f)}).bind(a))}function HL(r){return r&&r.video!==void 0?Object.assign({},r,{video:ny(r.video)}):r}function GL(r){if(!r.RTCPeerConnection)return;let a=r.RTCPeerConnection;r.RTCPeerConnection=function(o,c){if(o&&o.iceServers){let f=[];for(let m=0;ma.generateCertificate})}function WL(r){typeof r=="object"&&r.RTCTrackEvent&&"receiver"in r.RTCTrackEvent.prototype&&!("transceiver"in r.RTCTrackEvent.prototype)&&Object.defineProperty(r.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function $L(r){let a=r.RTCPeerConnection.prototype.createOffer;r.RTCPeerConnection.prototype.createOffer=function(o){if(o){o.offerToReceiveAudio!==void 0&&(o.offerToReceiveAudio=!!o.offerToReceiveAudio);let c=this.getTransceivers().find(m=>m.receiver.track.kind==="audio");o.offerToReceiveAudio===!1&&c?c.direction==="sendrecv"?c.setDirection?c.setDirection("sendonly"):c.direction="sendonly":c.direction==="recvonly"&&(c.setDirection?c.setDirection("inactive"):c.direction="inactive"):o.offerToReceiveAudio!==!0||c||this.addTransceiver("audio",{direction:"recvonly"}),o.offerToReceiveVideo!==void 0&&(o.offerToReceiveVideo=!!o.offerToReceiveVideo);let f=this.getTransceivers().find(m=>m.receiver.track.kind==="video");o.offerToReceiveVideo===!1&&f?f.direction==="sendrecv"?f.setDirection?f.setDirection("sendonly"):f.direction="sendonly":f.direction==="recvonly"&&(f.setDirection?f.setDirection("inactive"):f.direction="inactive"):o.offerToReceiveVideo!==!0||f||this.addTransceiver("video",{direction:"recvonly"})}return a.apply(this,arguments)}}function KL(r){typeof r!="object"||r.AudioContext||(r.AudioContext=r.webkitAudioContext)}var qL=Object.freeze({__proto__:null,shimAudioContext:KL,shimCallbacksAPI:VL,shimConstraints:HL,shimCreateOfferLegacy:$L,shimGetUserMedia:zL,shimLocalStreamsAPI:FL,shimRTCIceServerUrls:GL,shimRemoteStreamsAPI:BL,shimTrackEventTransceiver:WL}),YL=` +\v\f\r                 \u2028\u2029\uFEFF`,gz=Ht,vz=xl,BA=YL,XL=E("".replace),yz=RegExp("^["+BA+"]+"),_z=RegExp("(^|[^"+BA+"])["+BA+"]+$"),ky=function(r){return function(a){var o=vz(gz(a));return 1&r&&(o=XL(o,yz,"")),2&r&&(o=XL(o,_z,"$1")),o}},JL={start:ky(1),end:ky(2),trim:ky(3)},QL=zx.PROPER,Ez=d,ZL=YL,wz=JL.trim;Ni({target:"String",proto:!0,forced:function(r){return Ez(function(){return!!ZL[r]()||"​…᠎"[r]()!=="​…᠎"||QL&&ZL[r].name!==r})}("trim")},{trim:function(){return wz(this)}});var VA=vc("String").trim,Sz=b,bz=VA,zA=String.prototype,el=function(r){var a=r.trim;return typeof r=="string"||r===zA||Sz(zA,r)&&a===zA.trim?bz:a},ks=l(el),e8={exports:{}};(function(r){let a={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};a.localCName=a.generateIdentifier(),a.splitLines=function(o){return o.trim().split(` +`).map(c=>c.trim())},a.splitSections=function(o){return o.split(` +m=`).map((c,f)=>(f>0?"m="+c:c).trim()+`\r +`)},a.getDescription=function(o){let c=a.splitSections(o);return c&&c[0]},a.getMediaSections=function(o){let c=a.splitSections(o);return c.shift(),c},a.matchPrefix=function(o,c){return a.splitLines(o).filter(f=>f.indexOf(c)===0)},a.parseCandidate=function(o){let c;c=o.indexOf("a=candidate:")===0?o.substring(12).split(" "):o.substring(10).split(" ");let f={foundation:c[0],component:{1:"rtp",2:"rtcp"}[c[1]]||c[1],protocol:c[2].toLowerCase(),priority:parseInt(c[3],10),ip:c[4],address:c[4],port:parseInt(c[5],10),type:c[7]};for(let m=8;m0?c[0].split("/")[1]:"sendrecv",uri:c[1],attributes:c.slice(2).join(" ")}},a.writeExtmap=function(o){return"a=extmap:"+(o.id||o.preferredId)+(o.direction&&o.direction!=="sendrecv"?"/"+o.direction:"")+" "+o.uri+(o.attributes?" "+o.attributes:"")+`\r +`},a.parseFmtp=function(o){let c={},f,m=o.substring(o.indexOf(" ")+1).split(";");for(let v=0;v{o.parameters[v]!==void 0?m.push(v+"="+o.parameters[v]):m.push(v)}),c+="a=fmtp:"+f+" "+m.join(";")+`\r +`}return c},a.parseRtcpFb=function(o){let c=o.substring(o.indexOf(" ")+1).split(" ");return{type:c.shift(),parameter:c.join(" ")}},a.writeRtcpFb=function(o){let c="",f=o.payloadType;return o.preferredPayloadType!==void 0&&(f=o.preferredPayloadType),o.rtcpFeedback&&o.rtcpFeedback.length&&o.rtcpFeedback.forEach(m=>{c+="a=rtcp-fb:"+f+" "+m.type+(m.parameter&&m.parameter.length?" "+m.parameter:"")+`\r +`}),c},a.parseSsrcMedia=function(o){let c=o.indexOf(" "),f={ssrc:parseInt(o.substring(7,c),10)},m=o.indexOf(":",c);return m>-1?(f.attribute=o.substring(c+1,m),f.value=o.substring(m+1)):f.attribute=o.substring(c+1),f},a.parseSsrcGroup=function(o){let c=o.substring(13).split(" ");return{semantics:c.shift(),ssrcs:c.map(f=>parseInt(f,10))}},a.getMid=function(o){let c=a.matchPrefix(o,"a=mid:")[0];if(c)return c.substring(6)},a.parseFingerprint=function(o){let c=o.substring(14).split(" ");return{algorithm:c[0].toLowerCase(),value:c[1].toUpperCase()}},a.getDtlsParameters=function(o,c){return{role:"auto",fingerprints:a.matchPrefix(o+c,"a=fingerprint:").map(a.parseFingerprint)}},a.writeDtlsParameters=function(o,c){let f="a=setup:"+c+`\r +`;return o.fingerprints.forEach(m=>{f+="a=fingerprint:"+m.algorithm+" "+m.value+`\r +`}),f},a.parseCryptoLine=function(o){let c=o.substring(9).split(" ");return{tag:parseInt(c[0],10),cryptoSuite:c[1],keyParams:c[2],sessionParams:c.slice(3)}},a.writeCryptoLine=function(o){return"a=crypto:"+o.tag+" "+o.cryptoSuite+" "+(typeof o.keyParams=="object"?a.writeCryptoKeyParams(o.keyParams):o.keyParams)+(o.sessionParams?" "+o.sessionParams.join(" "):"")+`\r +`},a.parseCryptoKeyParams=function(o){if(o.indexOf("inline:")!==0)return null;let c=o.substring(7).split("|");return{keyMethod:"inline",keySalt:c[0],lifeTime:c[1],mkiValue:c[2]?c[2].split(":")[0]:void 0,mkiLength:c[2]?c[2].split(":")[1]:void 0}},a.writeCryptoKeyParams=function(o){return o.keyMethod+":"+o.keySalt+(o.lifeTime?"|"+o.lifeTime:"")+(o.mkiValue&&o.mkiLength?"|"+o.mkiValue+":"+o.mkiLength:"")},a.getCryptoParameters=function(o,c){return a.matchPrefix(o+c,"a=crypto:").map(a.parseCryptoLine)},a.getIceParameters=function(o,c){let f=a.matchPrefix(o+c,"a=ice-ufrag:")[0],m=a.matchPrefix(o+c,"a=ice-pwd:")[0];return f&&m?{usernameFragment:f.substring(12),password:m.substring(10)}:null},a.writeIceParameters=function(o){let c="a=ice-ufrag:"+o.usernameFragment+`\r +a=ice-pwd:`+o.password+`\r +`;return o.iceLite&&(c+=`a=ice-lite\r +`),c},a.parseRtpParameters=function(o){let c={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},f=a.splitLines(o)[0].split(" ");c.profile=f[2];for(let v=3;v{c.headerExtensions.push(a.parseExtmap(v))});let m=a.matchPrefix(o,"a=rtcp-fb:* ").map(a.parseRtcpFb);return c.codecs.forEach(v=>{m.forEach(w=>{v.rtcpFeedback.find(C=>C.type===w.type&&C.parameter===w.parameter)||v.rtcpFeedback.push(w)})}),c},a.writeRtpDescription=function(o,c){let f="";f+="m="+o+" ",f+=c.codecs.length>0?"9":"0",f+=" "+(c.profile||"UDP/TLS/RTP/SAVPF")+" ",f+=c.codecs.map(v=>v.preferredPayloadType!==void 0?v.preferredPayloadType:v.payloadType).join(" ")+`\r +`,f+=`c=IN IP4 0.0.0.0\r +`,f+=`a=rtcp:9 IN IP4 0.0.0.0\r +`,c.codecs.forEach(v=>{f+=a.writeRtpMap(v),f+=a.writeFmtp(v),f+=a.writeRtcpFb(v)});let m=0;return c.codecs.forEach(v=>{v.maxptime>m&&(m=v.maxptime)}),m>0&&(f+="a=maxptime:"+m+`\r +`),c.headerExtensions&&c.headerExtensions.forEach(v=>{f+=a.writeExtmap(v)}),f},a.parseRtpEncodingParameters=function(o){let c=[],f=a.parseRtpParameters(o),m=f.fecMechanisms.indexOf("RED")!==-1,v=f.fecMechanisms.indexOf("ULPFEC")!==-1,w=a.matchPrefix(o,"a=ssrc:").map(U=>a.parseSsrcMedia(U)).filter(U=>U.attribute==="cname"),C=w.length>0&&w[0].ssrc,R,x=a.matchPrefix(o,"a=ssrc-group:FID").map(U=>U.substring(17).split(" ").map(F=>parseInt(F,10)));x.length>0&&x[0].length>1&&x[0][0]===C&&(R=x[0][1]),f.codecs.forEach(U=>{if(U.name.toUpperCase()==="RTX"&&U.parameters.apt){let F={ssrc:C,codecPayloadType:parseInt(U.parameters.apt,10)};C&&R&&(F.rtx={ssrc:R}),c.push(F),m&&(F=JSON.parse(JSON.stringify(F)),F.fec={ssrc:C,mechanism:v?"red+ulpfec":"red"},c.push(F))}}),c.length===0&&C&&c.push({ssrc:C});let L=a.matchPrefix(o,"b=");return L.length&&(L=L[0].indexOf("b=TIAS:")===0?parseInt(L[0].substring(7),10):L[0].indexOf("b=AS:")===0?1e3*parseInt(L[0].substring(5),10)*.95-16e3:void 0,c.forEach(U=>{U.maxBitrate=L})),c},a.parseRtcpParameters=function(o){let c={},f=a.matchPrefix(o,"a=ssrc:").map(w=>a.parseSsrcMedia(w)).filter(w=>w.attribute==="cname")[0];f&&(c.cname=f.value,c.ssrc=f.ssrc);let m=a.matchPrefix(o,"a=rtcp-rsize");c.reducedSize=m.length>0,c.compound=m.length===0;let v=a.matchPrefix(o,"a=rtcp-mux");return c.mux=v.length>0,c},a.writeRtcpParameters=function(o){let c="";return o.reducedSize&&(c+=`a=rtcp-rsize\r +`),o.mux&&(c+=`a=rtcp-mux\r +`),o.ssrc!==void 0&&o.cname&&(c+="a=ssrc:"+o.ssrc+" cname:"+o.cname+`\r +`),c},a.parseMsid=function(o){let c,f=a.matchPrefix(o,"a=msid:");if(f.length===1)return c=f[0].substring(7).split(" "),{stream:c[0],track:c[1]};let m=a.matchPrefix(o,"a=ssrc:").map(v=>a.parseSsrcMedia(v)).filter(v=>v.attribute==="msid");return m.length>0?(c=m[0].value.split(" "),{stream:c[0],track:c[1]}):void 0},a.parseSctpDescription=function(o){let c=a.parseMLine(o),f=a.matchPrefix(o,"a=max-message-size:"),m;f.length>0&&(m=parseInt(f[0].substring(19),10)),isNaN(m)&&(m=65536);let v=a.matchPrefix(o,"a=sctp-port:");if(v.length>0)return{port:parseInt(v[0].substring(12),10),protocol:c.fmt,maxMessageSize:m};let w=a.matchPrefix(o,"a=sctpmap:");if(w.length>0){let C=w[0].substring(10).split(" ");return{port:parseInt(C[0],10),protocol:C[1],maxMessageSize:m}}},a.writeSctpDescription=function(o,c){let f=[];return f=o.protocol!=="DTLS/SCTP"?["m="+o.kind+" 9 "+o.protocol+" "+c.protocol+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctp-port:"+c.port+`\r +`]:["m="+o.kind+" 9 "+o.protocol+" "+c.port+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctpmap:"+c.port+" "+c.protocol+` 65535\r +`],c.maxMessageSize!==void 0&&f.push("a=max-message-size:"+c.maxMessageSize+`\r +`),f.join("")},a.generateSessionId=function(){return Math.random().toString().substr(2,22)},a.writeSessionBoilerplate=function(o,c,f){let m,v=c!==void 0?c:2;return m=o||a.generateSessionId(),`v=0\r +o=`+(f||"thisisadapterortc")+" "+m+" "+v+` IN IP4 127.0.0.1\r +s=-\r +t=0 0\r +`},a.getDirection=function(o,c){let f=a.splitLines(o);for(let m=0;m(o.candidate&&Object.defineProperty(o,"candidate",{value:new r.RTCIceCandidate(o.candidate),writable:"false"}),o))}function HA(r){!r.RTCIceCandidate||r.RTCIceCandidate&&"relayProtocol"in r.RTCIceCandidate.prototype||Al(r,"icecandidate",a=>{if(a.candidate){let o=v0.parseCandidate(a.candidate.candidate);o.type==="relay"&&(a.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[o.priority>>24])}return a})}function _0(r,a){if(!r.RTCPeerConnection)return;"sctp"in r.RTCPeerConnection.prototype||Object.defineProperty(r.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});let o=function(w){if(!w||!w.sdp)return!1;let C=v0.splitSections(w.sdp);return C.shift(),C.some(R=>{let x=v0.parseMLine(R);return x&&x.kind==="application"&&x.protocol.indexOf("SCTP")!==-1})},c=function(w){let C=w.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(C===null||C.length<2)return-1;let R=parseInt(C[1],10);return R!=R?-1:R},f=function(w){let C=65536;return a.browser==="firefox"&&(C=a.version<57?w===-1?16384:2147483637:a.version<60?a.version===57?65535:65536:2147483637),C},m=function(w,C){let R=65536;a.browser==="firefox"&&a.version===57&&(R=65535);let x=v0.matchPrefix(w.sdp,"a=max-message-size:");return x.length>0?R=parseInt(x[0].substr(19),10):a.browser==="firefox"&&C!==-1&&(R=2147483637),R},v=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,a.browser==="chrome"&&a.version>=76){let{sdpSemantics:w}=this.getConfiguration();w==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0})}if(o(arguments[0])){let w=c(arguments[0]),C=f(w),R=m(arguments[0],w),x;x=C===0&&R===0?Number.POSITIVE_INFINITY:C===0||R===0?Math.max(C,R):Math.min(C,R);let L={};Object.defineProperty(L,"maxMessageSize",{get:()=>x}),this._sctp=L}return v.apply(this,arguments)}}function CS(r){if(!r.RTCPeerConnection||!("createDataChannel"in r.RTCPeerConnection.prototype))return;function a(c,f){let m=c.send;c.send=function(){let v=arguments[0],w=v.length||v.size||v.byteLength;if(c.readyState==="open"&&f.sctp&&w>f.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+f.sctp.maxMessageSize+" bytes)");return m.apply(c,arguments)}}let o=r.RTCPeerConnection.prototype.createDataChannel;r.RTCPeerConnection.prototype.createDataChannel=function(){let c=o.apply(this,arguments);return a(c,this),c},Al(r,"datachannel",c=>(a(c.channel,c.target),c))}function GA(r){if(!r.RTCPeerConnection||"connectionState"in r.RTCPeerConnection.prototype)return;let a=r.RTCPeerConnection.prototype;Object.defineProperty(a,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(a,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(o){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),o&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=o)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(o=>{let c=a[o];a[o]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=f=>{let m=f.target;if(m._lastConnectionState!==m.connectionState){m._lastConnectionState=m.connectionState;let v=new Event("connectionstatechange",f);m.dispatchEvent(v)}return f},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),c.apply(this,arguments)}})}function WA(r,a){if(!r.RTCPeerConnection||a.browser==="chrome"&&a.version>=71||a.browser==="safari"&&a.version>=605)return;let o=r.RTCPeerConnection.prototype.setRemoteDescription;r.RTCPeerConnection.prototype.setRemoteDescription=function(c){if(c&&c.sdp&&c.sdp.indexOf(` +a=extmap-allow-mixed`)!==-1){let f=c.sdp.split(` +`).filter(m=>ks(m).call(m)!=="a=extmap-allow-mixed").join(` +`);r.RTCSessionDescription&&c instanceof r.RTCSessionDescription?arguments[0]=new r.RTCSessionDescription({type:c.type,sdp:f}):c.sdp=f}return o.apply(this,arguments)}}function TS(r,a){if(!r.RTCPeerConnection||!r.RTCPeerConnection.prototype)return;let o=r.RTCPeerConnection.prototype.addIceCandidate;o&&o.length!==0&&(r.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(a.browser==="chrome"&&a.version<78||a.browser==="firefox"&&a.version<68||a.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Ct.resolve():o.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Ct.resolve())})}function My(r,a){if(!r.RTCPeerConnection||!r.RTCPeerConnection.prototype)return;let o=r.RTCPeerConnection.prototype.setLocalDescription;o&&o.length!==0&&(r.RTCPeerConnection.prototype.setLocalDescription=function(){let c=arguments[0]||{};if(typeof c!="object"||c.type&&c.sdp)return o.apply(this,arguments);if(c={type:c.type,sdp:c.sdp},!c.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":c.type="offer";break;default:c.type="answer"}return c.sdp||c.type!=="offer"&&c.type!=="answer"?o.apply(this,[c]):(c.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(f=>o.apply(this,[f]))})}var Tz=Object.freeze({__proto__:null,removeExtmapAllowMixed:WA,shimAddIceCandidateNullOrEmpty:TS,shimConnectionState:GA,shimMaxMessageSize:_0,shimParameterlessSetLocalDescription:My,shimRTCIceCandidate:y0,shimRTCIceCandidateRelayProtocol:HA,shimSendThrowTypeError:CS});(function(){let{window:r}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},o=OP,c=function(m){let v={browser:null,version:null};if(m===void 0||!m.navigator)return v.browser="Not a browser.",v;let{navigator:w}=m;if(w.mozGetUserMedia)v.browser="firefox",v.version=Sf(w.userAgent,/Firefox\/(\d+)\./,1);else if(w.webkitGetUserMedia||m.isSecureContext===!1&&m.webkitRTCPeerConnection)v.browser="chrome",v.version=Sf(w.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!m.RTCPeerConnection||!w.userAgent.match(/AppleWebKit\/(\d+)\./))return v.browser="Not a supported browser.",v;v.browser="safari",v.version=Sf(w.userAgent,/AppleWebKit\/(\d+)\./,1),v.supportsUnifiedPlan=m.RTCRtpTransceiver&&"currentDirection"in m.RTCRtpTransceiver.prototype}return v}(r),f={browserDetails:c,commonShim:Tz,extractVersion:Sf,disableLog:xw,disableWarnings:VF,sdp:Cz};switch(c.browser){case"chrome":if(!AL||!UA||!a.shimChrome)return o("Chrome shim is not included in this adapter release."),f;if(c.version===null)return o("Chrome shim can not determine version, not shimming."),f;o("adapter.js shimming chrome."),f.browserShim=AL,TS(r,c),My(r),SL(r,c),MA(r),UA(r,c),jA(r),dm(r,c),bL(r),CL(r),TL(r),xL(r,c),y0(r),HA(r),GA(r),_0(r,c),CS(r),WA(r,c);break;case"firefox":if(!UL||!bS||!a.shimFirefox)return o("Firefox shim is not included in this adapter release."),f;o("adapter.js shimming firefox."),f.browserShim=UL,TS(r,c),My(r),IL(r,c),bS(r,c),NL(r),PL(r),FA(r),OL(r),LL(r),DL(r),kL(r),ML(r),jL(r),y0(r),GA(r),_0(r,c),CS(r);break;case"safari":if(!qL||!a.shimSafari)return o("Safari shim is not included in this adapter release."),f;o("adapter.js shimming safari."),f.browserShim=qL,TS(r,c),My(r),GL(r),$L(r),VL(r),FL(r),BL(r),WL(r),zL(r),KL(r),y0(r),HA(r),_0(r,c),CS(r),WA(r,c);break;default:o("Unsupported browser!")}})({window:typeof window>"u"?void 0:window});var Rz=vc("Array").keys,xz=ad,$A=fs,KA=b,Az=Rz,qA=Array.prototype,Iz={DOMTokenList:!0,NodeList:!0},Nz=function(r){var a=r.keys;return r===qA||KA(qA,r)&&a===qA.keys||$A(Iz,xz(r))?Az:a},tl=l(Nz),n8=Jt,Oz=TypeError,Pz=ru,Lz=gc,Dz=Xe,RS=function(r,a,o){var c=Pz(a);c in r?Lz.f(r,c,Dz(0,o)):r[c]=o},i8=Jv,kz=lh,Mz=RS,jz=Array,Uz=Math.max,YA=function(r,a,o){for(var c=kz(r),f=i8(a,c),m=i8(o===void 0?c:o,c),v=jz(Uz(m-f,0)),w=0;f0;)r[c]=r[--c];c!==m++&&(r[c]=o)}return r},S=function(r,a,o,c){for(var f=a.length,m=o.length,v=0,w=0;v3)){if(Yi)return!0;if(Qa)return Qa<603;var r,a,o,c,f="";for(r=65;r<76;r++){switch(a=String.fromCharCode(r),r){case 66:case 69:case 70:case 72:o=3;break;case 68:case 71:o=4;break;default:o=2}for(c=0;c<47;c++)Gs.push({k:a+c,v:o})}for(Gs.sort(function(m,v){return v.v-m.v}),c=0;cPn(C)?1:-1}}(r)),o=Yt(f),c=0;c0?Lr.length===2?typeof Lr[1]==f?this[Lr[0]]=Lr[1].call(this,cl):this[Lr[0]]=Lr[1]:Lr.length===3?typeof Lr[1]!==f||Lr[1].exec&&Lr[1].test?this[Lr[0]]=cl?cl.replace(Lr[1],Lr[2]):c:this[Lr[0]]=cl?Lr[1].call(this,cl,Lr[2]):c:Lr.length===4&&(this[Lr[0]]=cl?Lr[3].call(this,cl.replace(Lr[1],Lr[2])):c):this[Lr]=cl||c;X0+=2}},Rm=function(Pr,Xr){for(var er in Xr)if(typeof Xr[er]===v&&Xr[er].length>0){for(var Bl=0;Bl2&&(li[R]="iPad",li[L]=oe),li},this.getEngine=function(){var li={};return li[x]=c,li[F]=c,ll.call(li,Bl,Lr.engine),li},this.getOS=function(){var li={};return li[x]=c,li[F]=c,ll.call(li,Bl,Lr.os),!li[x]&&Yf&&Yf.platform!="Unknown"&&(li[x]=Yf.platform.replace(/chrome os/i,Ee).replace(/macos/i,Ae)),li},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return Bl},this.setUA=function(li){return Bl=typeof li===w&&li.length>350?os(li,350):li,this},this.setUA(Bl),this};_d.VERSION="0.7.34",_d.BROWSER=gt([x,F,C]),_d.CPU=gt([Z]),_d.DEVICE=gt([R,U,L,W,K,ue,oe,xe,Oe]),_d.ENGINE=_d.OS=gt([x,F]),r.exports&&(a=r.exports=_d),a.UAParser=_d;var Y0=typeof o!==m&&(o.jQuery||o.Zepto);if(Y0&&!Y0.ua){var Tb=new _d;Y0.ua=Tb.getResult(),Y0.ua.get=function(){return Tb.getUA()},Y0.ua.set=function(Pr){Tb.setUA(Pr);var Xr=Tb.getResult();for(var er in Xr)Y0.ua[er]=Xr[er]}}})(typeof window=="object"?window:s)})(zz,zz.exports);var Tbe=l(zz.exports),Rbe=ad,xbe=fs,Abe=Je,Ibe=Qp,Nbe=Qi("iterator"),Obe=Object,Pbe=function(r){if(Abe(r))return!1;var a=Obe(r);return a[Nbe]!==void 0||"@@iterator"in a||xbe(Ibe,Rbe(a))},Lbe=l(Pbe),Hz=N;Ni({global:!0,forced:Hz.globalThis!==Hz},{globalThis:Hz});var eee=l(N);function tee(r,a){return function(){return r.apply(a,arguments)}}let{toString:Dbe}=Object.prototype,{getPrototypeOf:Gz}=Object,a8=(Wz=Object.create(null),r=>{let a=Dbe.call(r);return Wz[a]||(Wz[a]=a.slice(8,-1).toLowerCase())});var Wz;let Nf=r=>(r=r.toLowerCase(),a=>a8(a)===r),o8=r=>a=>typeof a===r,{isArray:xS}=Array,QA=o8("undefined"),nee=Nf("ArrayBuffer"),kbe=o8("string"),uu=o8("function"),iee=o8("number"),l8=r=>r!==null&&typeof r=="object",c8=r=>{if(a8(r)!=="object")return!1;let a=Gz(r);return!(a!==null&&a!==Object.prototype&&Object.getPrototypeOf(a)!==null||Symbol.toStringTag in r||Lbe(r))},Mbe=Nf("Date"),jbe=Nf("File"),Ube=Nf("Blob"),Fbe=Nf("FileList"),Bbe=Nf("URLSearchParams");function ZA(r,a){let o,c,{allOwnKeys:f=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(r!=null)if(typeof r!="object"&&(r=[r]),xS(r))for(o=0,c=r.length;o0;)if(c=o[f],a===c.toLowerCase())return c;return null}let see=eee!==void 0?eee:typeof self<"u"?self:typeof window<"u"?window:Wo,aee=r=>!QA(r)&&r!==see,Vbe=($z=typeof Uint8Array<"u"&&Gz(Uint8Array),r=>$z&&r instanceof $z);var $z;let zbe=Nf("HTMLFormElement"),oee=(r=>{let{hasOwnProperty:a}=r;return(o,c)=>a.call(o,c)})(Object.prototype),Hbe=Nf("RegExp"),lee=(r,a)=>{let o=Object.getOwnPropertyDescriptors(r),c={};ZA(o,(f,m)=>{let v;(v=a(f,m,r))!==!1&&(c[m]=v||f)}),Object.defineProperties(r,c)},Kz="abcdefghijklmnopqrstuvwxyz",cee="0123456789",dee={DIGIT:cee,ALPHA:Kz,ALPHA_DIGIT:Kz+Kz.toUpperCase()+cee},Gbe=Nf("AsyncFunction");var Bt={isArray:xS,isArrayBuffer:nee,isBuffer:function(r){return r!==null&&!QA(r)&&r.constructor!==null&&!QA(r.constructor)&&uu(r.constructor.isBuffer)&&r.constructor.isBuffer(r)},isFormData:r=>{let a;return r&&(typeof FormData=="function"&&r instanceof FormData||uu(r.append)&&((a=a8(r))==="formdata"||a==="object"&&uu(r.toString)&&r.toString()==="[object FormData]"))},isArrayBufferView:function(r){let a;return a=typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(r):r&&r.buffer&&nee(r.buffer),a},isString:kbe,isNumber:iee,isBoolean:r=>r===!0||r===!1,isObject:l8,isPlainObject:c8,isUndefined:QA,isDate:Mbe,isFile:jbe,isBlob:Ube,isRegExp:Hbe,isFunction:uu,isStream:r=>l8(r)&&uu(r.pipe),isURLSearchParams:Bbe,isTypedArray:Vbe,isFileList:Fbe,forEach:ZA,merge:function r(){let{caseless:a}=aee(this)&&this||{},o={},c=(f,m)=>{let v=a&&ree(o,m)||m;c8(o[v])&&c8(f)?o[v]=r(o[v],f):c8(f)?o[v]=r({},f):xS(f)?o[v]=f.slice():o[v]=f};for(let f=0,m=arguments.length;f3&&arguments[3]!==void 0?arguments[3]:{};return ZA(a,(f,m)=>{o&&uu(f)?r[m]=tee(f,o):r[m]=f},{allOwnKeys:c}),r},trim:r=>ks(r)?ks(r).call(r):r.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:r=>(r.charCodeAt(0)===65279&&(r=r.slice(1)),r),inherits:(r,a,o,c)=>{r.prototype=Object.create(a.prototype,c),r.prototype.constructor=r,Object.defineProperty(r,"super",{value:a.prototype}),o&&Object.assign(r.prototype,o)},toFlatObject:(r,a,o,c)=>{let f,m,v,w={};if(a=a||{},r==null)return a;do{for(f=Object.getOwnPropertyNames(r),m=f.length;m-- >0;)v=f[m],c&&!c(v,r,a)||w[v]||(a[v]=r[v],w[v]=!0);r=o!==!1&&Gz(r)}while(r&&(!o||o(r,a))&&r!==Object.prototype);return a},kindOf:a8,kindOfTest:Nf,endsWith:(r,a,o)=>{r=String(r),(o===void 0||o>r.length)&&(o=r.length),o-=a.length;let c=r.indexOf(a,o);return c!==-1&&c===o},toArray:r=>{if(!r)return null;if(xS(r))return r;let a=r.length;if(!iee(a))return null;let o=new Array(a);for(;a-- >0;)o[a]=r[a];return o},forEachEntry:(r,a)=>{let o=(r&&r[Symbol.iterator]).call(r),c;for(;(c=o.next())&&!c.done;){let f=c.value;a.call(r,f[0],f[1])}},matchAll:(r,a)=>{let o,c=[];for(;(o=r.exec(a))!==null;)c.push(o);return c},isHTMLForm:zbe,hasOwnProperty:oee,hasOwnProp:oee,reduceDescriptors:lee,freezeMethods:r=>{lee(r,(a,o)=>{if(uu(r)&&["arguments","caller","callee"].indexOf(o)!==-1)return!1;let c=r[o];uu(c)&&(a.enumerable=!1,"writable"in a?a.writable=!1:a.set||(a.set=()=>{throw Error("Can not rewrite read-only method '"+o+"'")}))})},toObjectSet:(r,a)=>{let o={},c=f=>{f.forEach(m=>{o[m]=!0})};return xS(r)?c(r):c(String(r).split(a)),o},toCamelCase:r=>r.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(a,o,c){return o.toUpperCase()+c}),noop:()=>{},toFiniteNumber:(r,a)=>(r=+r,Number.isFinite(r)?r:a),findKey:ree,global:see,isContextDefined:aee,ALPHABET:dee,generateString:function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:16,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dee.ALPHA_DIGIT,o="",{length:c}=a;for(;r--;)o+=a[Math.random()*c|0];return o},isSpecCompliantForm:function(r){return!!(r&&uu(r.append)&&r[Symbol.toStringTag]==="FormData"&&r[Symbol.iterator])},toJSONObject:r=>{let a=new Array(10),o=(c,f)=>{if(l8(c)){if(a.indexOf(c)>=0)return;if(!("toJSON"in c)){a[f]=c;let m=xS(c)?[]:{};return ZA(c,(v,w)=>{let C=o(v,f+1);!QA(C)&&(m[w]=C)}),a[f]=void 0,m}}return c};return o(r,0)},isAsyncFn:Gbe,isThenable:r=>r&&(l8(r)||uu(r))&&uu(r.then)&&uu(r.catch)};function hr(r,a,o,c,f){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=r,this.name="AxiosError",a&&(this.code=a),o&&(this.config=o),c&&(this.request=c),f&&(this.response=f)}Bt.inherits(hr,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Bt.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});let uee=hr.prototype,hee={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(r=>{hee[r]={value:r}}),Object.defineProperties(hr,hee),Object.defineProperty(uee,"isAxiosError",{value:!0}),hr.from=(r,a,o,c,f,m)=>{let v=Object.create(uee);return Bt.toFlatObject(r,v,function(w){return w!==Error.prototype},w=>w!=="isAxiosError"),hr.call(v,r.message,a,o,c,f),v.cause=r,v.name=r.name,m&&Object.assign(v,m),v};function qz(r){return Bt.isPlainObject(r)||Bt.isArray(r)}function fee(r){return Bt.endsWith(r,"[]")?r.slice(0,-2):r}function pee(r,a,o){return r?r.concat(a).map(function(c,f){return c=fee(c),!o&&f?"["+c+"]":c}).join(o?".":""):a}let Wbe=Bt.toFlatObject(Bt,{},null,function(r){return/^is[A-Z]/.test(r)});function d8(r,a,o){if(!Bt.isObject(r))throw new TypeError("target must be an object");a=a||new FormData;let c=(o=Bt.toFlatObject(o,{metaTokens:!0,dots:!1,indexes:!1},!1,function(U,F){return!Bt.isUndefined(F[U])})).metaTokens,f=o.visitor||R,m=o.dots,v=o.indexes,w=(o.Blob||typeof Blob<"u"&&Blob)&&Bt.isSpecCompliantForm(a);if(!Bt.isFunction(f))throw new TypeError("visitor must be a function");function C(U){if(U===null)return"";if(Bt.isDate(U))return U.toISOString();if(!w&&Bt.isBlob(U))throw new hr("Blob is not supported. Use a Buffer instead.");return Bt.isArrayBuffer(U)||Bt.isTypedArray(U)?w&&typeof Blob=="function"?new Blob([U]):o7.from(U):U}function R(U,F,Z){let W=U;if(U&&!Z&&typeof U=="object"){if(Bt.endsWith(F,"{}"))F=c?F:F.slice(0,-2),U=JSON.stringify(U);else if(Bt.isArray(U)&&function(K){return Bt.isArray(K)&&!K.some(qz)}(U)||(Bt.isFileList(U)||Bt.endsWith(F,"[]"))&&(W=Bt.toArray(U)))return F=fee(F),W.forEach(function(K,oe){!Bt.isUndefined(K)&&K!==null&&a.append(v===!0?pee([F],oe,m):v===null?F:F+"[]",C(K))}),!1}return!!qz(U)||(a.append(pee(Z,F,m),C(U)),!1)}let x=[],L=Object.assign(Wbe,{defaultVisitor:R,convertValue:C,isVisitable:qz});if(!Bt.isObject(r))throw new TypeError("data must be an object");return function U(F,Z){if(!Bt.isUndefined(F)){if(x.indexOf(F)!==-1)throw Error("Circular reference detected in "+Z.join("."));x.push(F),Bt.forEach(F,function(W,K){(!(Bt.isUndefined(W)||W===null)&&f.call(a,W,Bt.isString(K)?ks(K).call(K):K,Z,L))===!0&&U(W,Z?Z.concat(K):[K])}),x.pop()}}(r),a}function mee(r){let a={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(r).replace(/[!'()~]|%20|%00/g,function(o){return a[o]})}function Yz(r,a){this._pairs=[],r&&d8(r,this,a)}let gee=Yz.prototype;function $be(r){return encodeURIComponent(r).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function vee(r,a,o){if(!a)return r;let c=o&&o.encode||$be,f=o&&o.serialize,m;if(m=f?f(a,o):Bt.isURLSearchParams(a)?a.toString():new Yz(a,o).toString(c),m){let v=r.indexOf("#");v!==-1&&(r=r.slice(0,v)),r+=(r.indexOf("?")===-1?"?":"&")+m}return r}gee.append=function(r,a){this._pairs.push([r,a])},gee.toString=function(r){let a=r?function(o){return r.call(this,o,mee)}:mee;return this._pairs.map(function(o){return a(o[0])+"="+a(o[1])},"").join("&")};var yee=class{constructor(){this.handlers=[]}use(r,a,o){return this.handlers.push({fulfilled:r,rejected:a,synchronous:!!o&&o.synchronous,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(r){this.handlers[r]&&(this.handlers[r]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(r){Bt.forEach(this.handlers,function(a){a!==null&&r(a)})}},_ee={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Eee={exports:{}},Kbe=Ni,qbe=he,wee=gc.f;Kbe({target:"Object",stat:!0,forced:Object.defineProperty!==wee,sham:!qbe},{defineProperty:wee});var See=Me.Object,Ybe=Eee.exports=function(r,a,o){return See.defineProperty(r,a,o)};See.defineProperty.sham&&(Ybe.sham=!0);var bee=l(Eee.exports),Xbe=Q,e3=Array.isArray||function(r){return Xbe(r)=="Array"},Jbe=TypeError,Cee=e3,Qbe=Pl,Zbe=it,eCe=Qi("species"),Tee=Array,tCe=function(r){var a;return Cee(r)&&(a=r.constructor,(Qbe(a)&&(a===Tee||Cee(a.prototype))||Zbe(a)&&(a=a[eCe])===null)&&(a=void 0)),a===void 0?Tee:a},Ree=function(r,a){return new(tCe(r))(a===0?0:a)},nCe=d,iCe=tt,rCe=Qi("species"),xee=function(r){return iCe>=51||!nCe(function(){var a=[];return(a.constructor={})[rCe]=function(){return{foo:1}},a[r](Boolean).foo!==1})},sCe=Ni,aCe=d,oCe=e3,lCe=it,cCe=Ro,dCe=lh,Aee=function(r){if(r>9007199254740991)throw Jbe("Maximum allowed index exceeded");return r},Iee=RS,uCe=Ree,hCe=xee,fCe=tt,Nee=Qi("isConcatSpreadable"),pCe=fCe>=51||!aCe(function(){var r=[];return r[Nee]=!1,r.concat()[0]!==r}),mCe=function(r){if(!lCe(r))return!1;var a=r[Nee];return a!==void 0?!!a:oCe(r)};sCe({target:"Array",proto:!0,arity:1,forced:!pCe||!hCe("concat")},{concat:function(r){var a,o,c,f,m,v=cCe(this),w=uCe(v,0),C=0;for(a=-1,c=arguments.length;aue;ue++)if((w||ue in W)&&(F=K(U=W[ue],ue,Z),r))if(a)Oe[ue]=F;else if(F)switch(r){case 3:return!0;case 5:return U;case 6:return ue;case 2:Mee(Oe,U)}else switch(r){case 4:return!1;case 7:Mee(Oe,U)}return m?-1:c||f?f:Oe}},jee={forEach:E0(0),map:E0(1),filter:E0(2),some:E0(3),every:E0(4),find:E0(5),findIndex:E0(6),filterReject:E0(7)},u8=Ni,Xz=N,Jz=me,PCe=E,IS=he,NS=nt,LCe=d,Za=fs,DCe=b,Qz=dr,h8=xt,Zz=ru,kCe=xl,eH=Xe,t3=s0,Uee=Ow,MCe=Nw,Fee=Oee,jCe=dy,Bee=_e,Vee=gc,UCe=Rx,zee=Ne,Hee=hh,FCe=Ty,tH=mf,Gee=Kp,Wee=zg,BCe=Qi,VCe=AS,zCe=Ws,HCe=kee,GCe=od,$ee=Tf,f8=jee.forEach,Cc=Aw("hidden"),p8="Symbol",n3="prototype",WCe=$ee.set,Kee=$ee.getterFor(p8),_h=Object[n3],jy=Xz.Symbol,m8=jy&&jy[n3],$Ce=Xz.TypeError,nH=Xz.QObject,qee=Bee.f,Uy=Vee.f,Yee=Fee.f,KCe=zee.f,Xee=PCe([].push),um=tH("symbols"),i3=tH("op-symbols"),qCe=tH("wks"),iH=!nH||!nH[n3]||!nH[n3].findChild,rH=IS&&LCe(function(){return t3(Uy({},"a",{get:function(){return Uy(this,"a",{value:7}).a}})).a!=7})?function(r,a,o){var c=qee(_h,a);c&&delete _h[a],Uy(r,a,o),c&&r!==_h&&Uy(_h,a,c)}:Uy,sH=function(r,a){var o=um[r]=t3(m8);return WCe(o,{type:p8,tag:r,description:a}),IS||(o.description=a),o},g8=function(r,a,o){r===_h&&g8(i3,a,o),Qz(r);var c=Zz(a);return Qz(o),Za(um,c)?(o.enumerable?(Za(r,Cc)&&r[Cc][c]&&(r[Cc][c]=!1),o=t3(o,{enumerable:eH(0,!1)})):(Za(r,Cc)||Uy(r,Cc,eH(1,{})),r[Cc][c]=!0),rH(r,c,o)):Uy(r,c,o)},aH=function(r,a){Qz(r);var o=h8(a),c=Uee(o).concat(ete(o));return f8(c,function(f){IS&&!Jz(Jee,o,f)||g8(r,f,o[f])}),r},Jee=function(r){var a=Zz(r),o=Jz(KCe,this,a);return!(this===_h&&Za(um,a)&&!Za(i3,a))&&(!(o||!Za(this,a)||!Za(um,a)||Za(this,Cc)&&this[Cc][a])||o)},Qee=function(r,a){var o=h8(r),c=Zz(a);if(o!==_h||!Za(um,c)||Za(i3,c)){var f=qee(o,c);return!f||!Za(um,c)||Za(o,Cc)&&o[Cc][c]||(f.enumerable=!0),f}},Zee=function(r){var a=Yee(h8(r)),o=[];return f8(a,function(c){Za(um,c)||Za(Gee,c)||Xee(o,c)}),o},ete=function(r){var a=r===_h,o=Yee(a?i3:h8(r)),c=[];return f8(o,function(f){!Za(um,f)||a&&!Za(_h,f)||Xee(c,um[f])}),c};NS||(jy=function(){if(DCe(m8,this))throw $Ce("Symbol is not a constructor");var r=arguments.length&&arguments[0]!==void 0?kCe(arguments[0]):void 0,a=Wee(r),o=function(c){this===_h&&Jz(o,i3,c),Za(this,Cc)&&Za(this[Cc],a)&&(this[Cc][a]=!1),rH(this,a,eH(1,c))};return IS&&iH&&rH(_h,a,{configurable:!0,set:o}),sH(a,r)},Hee(m8=jy[n3],"toString",function(){return Kee(this).tag}),Hee(jy,"withoutSetter",function(r){return sH(Wee(r),r)}),zee.f=Jee,Vee.f=g8,UCe.f=aH,Bee.f=Qee,MCe.f=Fee.f=Zee,jCe.f=ete,VCe.f=function(r){return sH(BCe(r),r)},IS&&FCe(m8,"description",{configurable:!0,get:function(){return Kee(this).description}})),u8({global:!0,constructor:!0,wrap:!0,forced:!NS,sham:!NS},{Symbol:jy}),f8(Uee(qCe),function(r){zCe(r)}),u8({target:p8,stat:!0,forced:!NS},{useSetter:function(){iH=!0},useSimple:function(){iH=!1}}),u8({target:"Object",stat:!0,forced:!NS,sham:!IS},{create:function(r,a){return a===void 0?t3(r):aH(t3(r),a)},defineProperty:g8,defineProperties:aH,getOwnPropertyDescriptor:Qee}),u8({target:"Object",stat:!0,forced:!NS},{getOwnPropertyNames:Zee}),HCe(),GCe(jy,p8),Gee[Cc]=!0;var tte=nt&&!!Symbol.for&&!!Symbol.keyFor,YCe=Ni,XCe=tn,JCe=fs,QCe=xl,nte=mf,ZCe=tte,oH=nte("string-to-symbol-registry"),eTe=nte("symbol-to-string-registry");YCe({target:"Symbol",stat:!0,forced:!ZCe},{for:function(r){var a=QCe(r);if(JCe(oH,a))return oH[a];var o=XCe("Symbol")(a);return oH[a]=o,eTe[o]=a,o}});var tTe=Ni,nTe=fs,iTe=en,rTe=Jt,sTe=tte,ite=mf("symbol-to-string-registry");tTe({target:"Symbol",stat:!0,forced:!sTe},{keyFor:function(r){if(!iTe(r))throw TypeError(rTe(r)+" is not a symbol");if(nTe(ite,r))return ite[r]}});var rte=e3,aTe=ie,ste=Q,oTe=xl,ate=E([].push),lTe=Ni,ote=tn,lte=M,cTe=me,r3=E,cte=d,dte=ie,ute=en,hte=tA,dTe=function(r){if(aTe(r))return r;if(rte(r)){for(var a=r.length,o=[],c=0;c0?arguments[0]:void 0));LS||(this.size=r.entries.length)},kS=w8.prototype;if(zTe(kS,{append:function(r,a){var o=hu(this);DS(arguments.length,2),Fy(o.entries,{key:kl(r),value:kl(a)}),LS||this.length++,o.updateURL()},delete:function(r){for(var a=hu(this),o=DS(arguments.length,1),c=a.entries,f=kl(r),m=o<2?void 0:arguments[1],v=m===void 0?m:kl(m),w=0;wo.key?1:-1}),r.updateURL()},forEach:function(r){for(var a,o=hu(this).entries,c=$Te(r,arguments.length>1?arguments[1]:void 0),f=0;f1?Kte(arguments[1]):{})}}),fH(E8)){var _H=function(r){return Pte(this,gH),new E8(r,arguments.length>1?Kte(arguments[1]):{})};gH.constructor=_H,_H.prototype=gH,uH({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:_H})}}var mRe={URLSearchParams:w8,getState:hu},qte=l(Me.URLSearchParams),gRe={isBrowser:!0,classes:{URLSearchParams:qte!==void 0?qte:Yz,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]};let Yte=typeof window<"u"&&typeof document<"u",vRe=(Xte=typeof navigator<"u"&&navigator.product,Yte&&["ReactNative","NativeScript","NS"].indexOf(Xte)<0);var Xte;let yRe=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function";function Jte(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Qte(r){for(var a=1;a=o.length;return v=!v&&Bt.isArray(f)?f.length:v,C?(Bt.hasOwnProp(f,v)?f[v]=[f[v],c]:f[v]=c,!w):(f[v]&&Bt.isObject(f[v])||(f[v]=[]),a(o,c,f[v],m)&&Bt.isArray(f[v])&&(f[v]=function(R){let x={},L=Object.keys(R),U,F=L.length,Z;for(U=0;U{a(function(m){return XRe(Bt).call(Bt,/\w+|\[(\w*)]/g,m).map(v=>v[0]==="[]"?"":v[1]||v[0])}(c),f,o,0)}),o}return null}let bH={transitional:_ee,adapter:["xhr","http"],transformRequest:[function(r,a){let o=a.getContentType()||"",c=o.indexOf("application/json")>-1,f=Bt.isObject(r);if(f&&Bt.isHTMLForm(r)&&(r=new FormData(r)),Bt.isFormData(r))return c?JSON.stringify(une(r)):r;if(Bt.isArrayBuffer(r)||Bt.isBuffer(r)||Bt.isStream(r)||Bt.isFile(r)||Bt.isBlob(r))return r;if(Bt.isArrayBufferView(r))return r.buffer;if(Bt.isURLSearchParams(r))return a.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),r.toString();let m;if(f){if(o.indexOf("application/x-www-form-urlencoded")>-1)return function(v,w){return d8(v,new Pf.classes.URLSearchParams,Object.assign({visitor:function(C,R,x,L){return Pf.isNode&&Bt.isBuffer(C)?(this.append(R,C.toString("base64")),!1):L.defaultVisitor.apply(this,arguments)}},w))}(r,this.formSerializer).toString();if((m=Bt.isFileList(r))||o.indexOf("multipart/form-data")>-1){let v=this.env&&this.env.FormData;return d8(m?{"files[]":r}:r,v&&new v,this.formSerializer)}}return f||c?(a.setContentType("application/json",!1),function(v,w,C){if(Bt.isString(v))try{return(w||JSON.parse)(v),ks(Bt).call(Bt,v)}catch(R){if(R.name!=="SyntaxError")throw R}return(0,JSON.stringify)(v)}(r)):r}],transformResponse:[function(r){let a=this.transitional||bH.transitional,o=a&&a.forcedJSONParsing,c=this.responseType==="json";if(r&&Bt.isString(r)&&(o&&!this.responseType||c)){let f=!(a&&a.silentJSONParsing)&&c;try{return JSON.parse(r)}catch(m){if(f)throw m.name==="SyntaxError"?hr.from(m,hr.ERR_BAD_RESPONSE,this,null,this.response):m}}return r}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Pf.classes.FormData,Blob:Pf.classes.Blob},validateStatus:function(r){return r>=200&&r<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Bt.forEach(["delete","get","head","post","put","patch"],r=>{bH.headers[r]={}});var CH=bH;let JRe=Bt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),hne=Symbol("internals");function c3(r){var a;return r&&ks(a=String(r)).call(a).toLowerCase()}function C8(r){return r===!1||r==null?r:Bt.isArray(r)?r.map(C8):String(r)}function TH(r,a,o,c,f){return Bt.isFunction(c)?c.call(this,a,o):(f&&(a=o),Bt.isString(a)?Bt.isString(c)?a.indexOf(c)!==-1:Bt.isRegExp(c)?c.test(a):void 0:void 0)}class T8{constructor(a){a&&this.set(a)}set(a,o,c){let f=this;function m(C,R,x){let L=c3(R);if(!L)throw new Error("header name must be a non-empty string");let U=Bt.findKey(f,L);(!U||f[U]===void 0||x===!0||x===void 0&&f[U]!==!1)&&(f[U||R]=C8(C))}let v=(C,R)=>Bt.forEach(C,(x,L)=>m(x,L,R));var w;return Bt.isPlainObject(a)||a instanceof this.constructor?v(a,o):Bt.isString(a)&&(a=ks(a).call(a))&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(ks(w=a).call(w))?v((C=>{let R={},x,L,U;return C&&C.split(` +`).forEach(function(F){var Z,W;U=F.indexOf(":"),x=ks(Z=F.substring(0,U)).call(Z).toLowerCase(),L=ks(W=F.substring(U+1)).call(W),!x||R[x]&&JRe[x]||(x==="set-cookie"?R[x]?R[x].push(L):R[x]=[L]:R[x]=R[x]?R[x]+", "+L:L)}),R})(a),o):a!=null&&m(o,a,c),this}get(a,o){if(a=c3(a)){let c=Bt.findKey(this,a);if(c){let f=this[c];if(!o)return f;if(o===!0)return function(m){let v=Object.create(null),w=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,C;for(;C=w.exec(m);)v[C[1]]=C[2];return v}(f);if(Bt.isFunction(o))return o.call(this,f,c);if(Bt.isRegExp(o))return o.exec(f);throw new TypeError("parser must be boolean|regexp|function")}}}has(a,o){if(a=c3(a)){let c=Bt.findKey(this,a);return!(!c||this[c]===void 0||o&&!TH(0,this[c],c,o))}return!1}delete(a,o){let c=this,f=!1;function m(v){if(v=c3(v)){let w=Bt.findKey(c,v);!w||o&&!TH(0,c[w],w,o)||(delete c[w],f=!0)}}return Bt.isArray(a)?a.forEach(m):m(a),f}clear(a){let o=Object.keys(this),c=o.length,f=!1;for(;c--;){let m=o[c];a&&!TH(0,this[m],m,a,!0)||(delete this[m],f=!0)}return f}normalize(a){let o=this,c={};return Bt.forEach(this,(f,m)=>{var v;let w=Bt.findKey(c,m);if(w)return o[w]=C8(f),void delete o[m];let C=a?function(R){return ks(R).call(R).toLowerCase().replace(/([a-z\d])(\w*)/g,(x,L,U)=>L.toUpperCase()+U)}(m):ks(v=String(m)).call(v);C!==m&&delete o[m],o[C]=C8(f),c[C]=!0}),this}concat(){for(var a=arguments.length,o=new Array(a),c=0;c{c!=null&&c!==!1&&(o[f]=a&&Bt.isArray(c)?c.join(", "):c)}),o}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(a=>{let[o,c]=a;return o+": "+c}).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(a){return a instanceof this?a:new this(a)}static concat(a){let o=new this(a);for(var c=arguments.length,f=new Array(c>1?c-1:0),m=1;mo.set(v)),o}static accessor(a){let o=(this[hne]=this[hne]={accessors:{}}).accessors,c=this.prototype;function f(m){let v=c3(m);o[v]||(function(w,C){let R=Bt.toCamelCase(" "+C);["get","set","has"].forEach(x=>{Object.defineProperty(w,x+R,{value:function(L,U,F){return this[x].call(this,C,L,U,F)},configurable:!0})})}(c,m),o[v]=!0)}return Bt.isArray(a)?a.forEach(f):f(a),this}}T8.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Bt.reduceDescriptors(T8.prototype,(r,a)=>{let{value:o}=r,c=a[0].toUpperCase()+a.slice(1);return{get:()=>o,set(f){this[c]=f}}}),Bt.freezeMethods(T8);var hm=T8;function RH(r,a){let o=this||CH,c=a||o,f=hm.from(c.headers),m=c.data;return Bt.forEach(r,function(v){m=v.call(o,m,f.normalize(),a?a.status:void 0)}),f.normalize(),m}function fne(r){return!(!r||!r.__CANCEL__)}function d3(r,a,o){hr.call(this,r??"canceled",hr.ERR_CANCELED,a,o),this.name="CanceledError"}Bt.inherits(d3,hr,{__CANCEL__:!0});var QRe=Pf.hasStandardBrowserEnv?{write(r,a,o,c,f,m){let v=[r+"="+encodeURIComponent(a)];Bt.isNumber(o)&&v.push("expires="+new Date(o).toGMTString()),Bt.isString(c)&&v.push("path="+c),Bt.isString(f)&&v.push("domain="+f),m===!0&&v.push("secure"),document.cookie=v.join("; ")},read(r){let a=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove(r){this.write(r,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function pne(r,a){return r&&!function(o){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(o)}(a)?function(o,c){return c?o.replace(/\/?\/$/,"")+"/"+c.replace(/^\/+/,""):o}(r,a):a}var ZRe=Pf.hasStandardBrowserEnv?function(){let r=/(msie|trident)/i.test(navigator.userAgent),a=document.createElement("a"),o;function c(f){let m=f;return r&&(a.setAttribute("href",m),m=a.href),a.setAttribute("href",m),{href:a.href,protocol:a.protocol?a.protocol.replace(/:$/,""):"",host:a.host,search:a.search?a.search.replace(/^\?/,""):"",hash:a.hash?a.hash.replace(/^#/,""):"",hostname:a.hostname,port:a.port,pathname:a.pathname.charAt(0)==="/"?a.pathname:"/"+a.pathname}}return o=c(window.location.href),function(f){let m=Bt.isString(f)?c(f):f;return m.protocol===o.protocol&&m.host===o.host}}():function(){return!0};function mne(r,a){let o=0,c=function(f,m){f=f||10;let v=new Array(f),w=new Array(f),C,R=0,x=0;return m=m!==void 0?m:1e3,function(L){let U=Date.now(),F=w[x];C||(C=U),v[R]=L,w[R]=U;let Z=x,W=0;for(;Z!==R;)W+=v[Z++],Z%=f;if(R=(R+1)%f,R===x&&(x=(x+1)%f),U-C{let m=f.loaded,v=f.lengthComputable?f.total:void 0,w=m-o,C=c(w);o=m;let R={loaded:m,total:v,progress:v?m/v:void 0,bytes:w,rate:C||void 0,estimated:C&&v&&m<=v?(v-m)/C:void 0,event:f};R[a?"download":"upload"]=!0,r(R)}}var exe=typeof XMLHttpRequest<"u"&&function(r){return new Ct(function(a,o){let c=r.data,f=hm.from(r.headers).normalize(),m,v,{responseType:w,withXSRFToken:C}=r;function R(){r.cancelToken&&r.cancelToken.unsubscribe(m),r.signal&&r.signal.removeEventListener("abort",m)}if(Bt.isFormData(c)){if(Pf.hasStandardBrowserEnv||Pf.hasStandardBrowserWebWorkerEnv)f.setContentType(!1);else if((v=f.getContentType())!==!1){let[Z,...W]=v?v.split(";").map(K=>ks(K).call(K)).filter(Boolean):[];f.setContentType([Z||"multipart/form-data",...W].join("; "))}}let x=new XMLHttpRequest;if(r.auth){let Z=r.auth.username||"",W=r.auth.password?unescape(encodeURIComponent(r.auth.password)):"";f.set("Authorization","Basic "+btoa(Z+":"+W))}let L=pne(r.baseURL,r.url);function U(){if(!x)return;let Z=hm.from("getAllResponseHeaders"in x&&x.getAllResponseHeaders());(function(W,K,oe){let ue=oe.config.validateStatus;oe.status&&ue&&!ue(oe.status)?K(new hr("Request failed with status code "+oe.status,[hr.ERR_BAD_REQUEST,hr.ERR_BAD_RESPONSE][Math.floor(oe.status/100)-4],oe.config,oe.request,oe)):W(oe)})(function(W){a(W),R()},function(W){o(W),R()},{data:w&&w!=="text"&&w!=="json"?x.response:x.responseText,status:x.status,statusText:x.statusText,headers:Z,config:r,request:x}),x=null}if(x.open(r.method.toUpperCase(),vee(L,r.params,r.paramsSerializer),!0),x.timeout=r.timeout,"onloadend"in x?x.onloadend=U:x.onreadystatechange=function(){x&&x.readyState===4&&(x.status!==0||x.responseURL&&x.responseURL.indexOf("file:")===0)&&setTimeout(U)},x.onabort=function(){x&&(o(new hr("Request aborted",hr.ECONNABORTED,r,x)),x=null)},x.onerror=function(){o(new hr("Network Error",hr.ERR_NETWORK,r,x)),x=null},x.ontimeout=function(){let Z=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded",W=r.transitional||_ee;r.timeoutErrorMessage&&(Z=r.timeoutErrorMessage),o(new hr(Z,W.clarifyTimeoutError?hr.ETIMEDOUT:hr.ECONNABORTED,r,x)),x=null},Pf.hasStandardBrowserEnv&&(C&&Bt.isFunction(C)&&(C=C(r)),C||C!==!1&&ZRe(L))){let Z=r.xsrfHeaderName&&r.xsrfCookieName&&QRe.read(r.xsrfCookieName);Z&&f.set(r.xsrfHeaderName,Z)}c===void 0&&f.setContentType(null),"setRequestHeader"in x&&Bt.forEach(f.toJSON(),function(Z,W){x.setRequestHeader(W,Z)}),Bt.isUndefined(r.withCredentials)||(x.withCredentials=!!r.withCredentials),w&&w!=="json"&&(x.responseType=r.responseType),typeof r.onDownloadProgress=="function"&&x.addEventListener("progress",mne(r.onDownloadProgress,!0)),typeof r.onUploadProgress=="function"&&x.upload&&x.upload.addEventListener("progress",mne(r.onUploadProgress)),(r.cancelToken||r.signal)&&(m=Z=>{x&&(o(!Z||Z.type?new d3(null,r,x):Z),x.abort(),x=null)},r.cancelToken&&r.cancelToken.subscribe(m),r.signal&&(r.signal.aborted?m():r.signal.addEventListener("abort",m)));let F=function(Z){let W=/^([-+\w]{1,25})(:?\/\/|:)/.exec(Z);return W&&W[1]||""}(L);F&&Pf.protocols.indexOf(F)===-1?o(new hr("Unsupported protocol "+F+":",hr.ERR_BAD_REQUEST,r)):x.send(c||null)})};let xH={http:null,xhr:exe};Bt.forEach(xH,(r,a)=>{if(r){try{Object.defineProperty(r,"name",{value:a})}catch{}Object.defineProperty(r,"adapterName",{value:a})}});let gne=r=>"- ".concat(r),txe=r=>Bt.isFunction(r)||r===null||r===!1;var vne={getAdapter:r=>{r=Bt.isArray(r)?r:[r];let{length:a}=r,o,c,f={};for(let m=0;m{let[w,C]=v;return"adapter ".concat(w," ")+(C===!1?"is not supported by the environment":"is not available in the build")});throw new hr("There is no suitable adapter to dispatch the request "+(a?m.length>1?`since : +`+m.map(gne).join(` +`):" "+gne(m[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return c},adapters:xH};function AH(r){if(r.cancelToken&&r.cancelToken.throwIfRequested(),r.signal&&r.signal.aborted)throw new d3(null,r)}function yne(r){return AH(r),r.headers=hm.from(r.headers),r.data=RH.call(r,r.transformRequest),["post","put","patch"].indexOf(r.method)!==-1&&r.headers.setContentType("application/x-www-form-urlencoded",!1),vne.getAdapter(r.adapter||CH.adapter)(r).then(function(a){return AH(r),a.data=RH.call(r,r.transformResponse,a),a.headers=hm.from(a.headers),a},function(a){return fne(a)||(AH(r),a&&a.response&&(a.response.data=RH.call(r,r.transformResponse,a.response),a.response.headers=hm.from(a.response.headers))),Ct.reject(a)})}function _ne(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}let Ene=r=>r instanceof hm?function(a){for(var o=1;of(Ene(R),Ene(x),!0)};return Bt.forEach(Object.keys(Object.assign({},r,a)),function(R){let x=C[R]||f,L=x(r[R],a[R],R);Bt.isUndefined(L)&&x!==w||(o[R]=L)}),o}let wne="1.6.8",IH={};["object","boolean","number","function","string","symbol"].forEach((r,a)=>{IH[r]=function(o){return typeof o===r||"a"+(a<1?"n ":" ")+r}});let Sne={};IH.transitional=function(r,a,o){function c(f,m){return"[Axios v"+wne+"] Transitional option '"+f+"'"+m+(o?". "+o:"")}return(f,m,v)=>{if(r===!1)throw new hr(c(m," has been removed"+(a?" in "+a:"")),hr.ERR_DEPRECATED);return a&&!Sne[m]&&(Sne[m]=!0,console.warn(c(m," has been deprecated since v"+a+" and will be removed in the near future"))),!r||r(f,m,v)}};var NH={assertOptions:function(r,a,o){if(typeof r!="object")throw new hr("options must be an object",hr.ERR_BAD_OPTION_VALUE);let c=Object.keys(r),f=c.length;for(;f-- >0;){let m=c[f],v=a[m];if(v){let w=r[m],C=w===void 0||v(w,m,r);if(C!==!0)throw new hr("option "+m+" must be "+C,hr.ERR_BAD_OPTION_VALUE)}else if(o!==!0)throw new hr("Unknown option "+m,hr.ERR_BAD_OPTION)}},validators:IH};let S0=NH.validators,R8=class{constructor(r){this.defaults=r,this.interceptors={request:new yee,response:new yee}}async request(r,a){try{return await this._request(r,a)}catch(o){if(o instanceof Error){let c;Error.captureStackTrace?Error.captureStackTrace(c={}):c=new Error;let f=c.stack?c.stack.replace(/^.+\n/,""):"";o.stack?f&&!String(o.stack).endsWith(f.replace(/^.+\n.+\n/,""))&&(o.stack+=` +`+f):o.stack=f}throw o}}_request(r,a){typeof r=="string"?(a=a||{}).url=r:a=r||{},a=MS(this.defaults,a);let{transitional:o,paramsSerializer:c,headers:f}=a;o!==void 0&&NH.assertOptions(o,{silentJSONParsing:S0.transitional(S0.boolean),forcedJSONParsing:S0.transitional(S0.boolean),clarifyTimeoutError:S0.transitional(S0.boolean)},!1),c!=null&&(Bt.isFunction(c)?a.paramsSerializer={serialize:c}:NH.assertOptions(c,{encode:S0.function,serialize:S0.function},!0)),a.method=(a.method||this.defaults.method||"get").toLowerCase();let m=f&&Bt.merge(f.common,f[a.method]);f&&Bt.forEach(["delete","get","head","post","put","patch","common"],F=>{delete f[F]}),a.headers=hm.concat(m,f);let v=[],w=!0;this.interceptors.request.forEach(function(F){typeof F.runWhen=="function"&&F.runWhen(a)===!1||(w=w&&F.synchronous,v.unshift(F.fulfilled,F.rejected))});let C=[],R;this.interceptors.response.forEach(function(F){C.push(F.fulfilled,F.rejected)});let x,L=0;if(!w){let F=[yne.bind(this),void 0];for(F.unshift.apply(F,v),F.push.apply(F,C),x=F.length,R=Ct.resolve(a);L{if(!c._listeners)return;let m=c._listeners.length;for(;m-- >0;)c._listeners[m](f);c._listeners=null}),this.promise.then=f=>{let m,v=new Ct(w=>{c.subscribe(w),m=w}).then(f);return v.cancel=function(){c.unsubscribe(m)},v},a(function(f,m,v){c.reason||(c.reason=new d3(f,m,v),o(c.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(a){this.reason?a(this.reason):this._listeners?this._listeners.push(a):this._listeners=[a]}unsubscribe(a){if(!this._listeners)return;let o=this._listeners.indexOf(a);o!==-1&&this._listeners.splice(o,1)}static source(){let a;return{token:new OH(function(o){a=o}),cancel:a}}}var nxe=OH;let PH={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(PH).forEach(r=>{let[a,o]=r;PH[o]=a});var ixe=PH;let wa=function r(a){let o=new x8(a),c=tee(x8.prototype.request,o);return Bt.extend(c,x8.prototype,o,{allOwnKeys:!0}),Bt.extend(c,o,null,{allOwnKeys:!0}),c.create=function(f){return r(MS(a,f))},c}(CH);wa.Axios=x8,wa.CanceledError=d3,wa.CancelToken=nxe,wa.isCancel=fne,wa.VERSION=wne,wa.toFormData=d8,wa.AxiosError=hr,wa.Cancel=wa.CanceledError,wa.all=function(r){return Ct.all(r)},wa.spread=function(r){return function(a){return r.apply(null,a)}},wa.isAxiosError=function(r){return Bt.isObject(r)&&r.isAxiosError===!0},wa.mergeConfig=MS,wa.AxiosHeaders=hm,wa.formToJSON=r=>une(Bt.isHTMLForm(r)?new FormData(r):r),wa.getAdapter=vne.getAdapter,wa.HttpStatusCode=ixe,wa.default=wa;var Io=wa;let rxe=()=>{};function u3(){let r={promise:void 0,isResolved:!1,isRejected:!1,isFinished:!1,resolve:void 0,reject:void 0,cancel:rxe};return r.promise=new Ct((a,o)=>{r.resolve=c=>{r.isFinished||(r.isResolved=!0,r.isFinished=!0,a(c),r.value=c)},r.reject=c=>{r.isFinished||(r.isRejected=!0,r.isFinished=!0,o(c))}}),r}let A8=new Map,I8=new Map,Lf=new Map,ms=function(r){return r.WIN_10="Windows 10",r.WIN_81="Windows 8.1",r.WIN_8="Windows 8",r.WIN_7="Windows 7",r.WIN_VISTA="Windows Vista",r.WIN_SERVER_2003="Windows Server 2003",r.WIN_XP="Windows XP",r.WIN_2000="Windows 2000",r.ANDROID="Android",r.HARMONY_OS="HarmonyOS",r.OPEN_BSD="Open BSD",r.SUN_OS="Sun OS",r.LINUX="Linux",r.IOS="iOS",r.MAC_OS="Mac OS",r.CHROMIUM_OS="Chromium OS",r.QNX="QNX",r.UNIX="UNIX",r.BEOS="BeOS",r.OS_2="OS/2",r.SEARCH_BOT="Search Bot",r}({}),fi=function(r){return r.CHROME="Chrome",r.SAFARI="Safari",r.EDGE="Edge",r.FIREFOX="Firefox",r.OPERA="OPR",r.QQ="QQBrowser",r.WECHAT="MicroMessenger",r}({}),bne=new Tbe,Eh=bne.getResult(),LH=null;function ni(r){if(!LH){Eh=bne.getResult();let a=function(w){if(w.engine.name==="Blink"&&w.browser.name!=="WeChat")return fi.CHROME;switch(w.browser.name){case"Chrome Headless":case"Chrome":case"Chromium":return fi.CHROME;case"Safari":case"Mobile Safari":return fi.SAFARI;case"Edge":return fi.EDGE;case"Firefox":return fi.FIREFOX;case"QQ":case"QQBrowser":return fi.QQ;case"Opera":return fi.OPERA;case"WeChat":return fi.WECHAT;default:return w.browser.name||""}}(Eh),o=Cne(Eh),c=function(w){return w.os.name==="Windows"?w.os.version?w.os.name+" "+w.os.version:w.os.name:w.os.name||""}(Eh),f=Eh.os.version,m=Cne(Eh,!1),v=Eh.device.type;if(!(a&&o&&c&&f))return{name:a,version:o,os:c,osVersion:f,browserVersion:m,deviceType:v};LH={name:a,version:o,os:c,osVersion:f,browserVersion:m,deviceType:v}}return LH}function Cne(r){let a,o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return a=r.engine.name==="Blink"?r.engine.version||"":r.browser.version||"",o?a.split(".")[0]:a}function N8(){return ni().os}function Tne(){let r=ni();return"".concat(r.os," ").concat(r.osVersion)}function O8(){let r=ni();return!!(Eh.engine.name==="WebKit"&&r.os===ms.MAC_OS&&navigator.maxTouchPoints&&navigator.maxTouchPoints>0&&r.name!==fi.SAFARI||ra()&&r.name!==fi.SAFARI)}function b0(){return ni().name===fi.CHROME}function gs(){return ni().name===fi.SAFARI}function Rne(){return ni().name===fi.EDGE}function Pi(){return ni().name===fi.FIREFOX}function ra(){return ni().os===ms.IOS}function DH(r){let a=ni();return!(a.name!==fi.CHROME||!a.osVersion)&&Number(a.version)>=r}function xne(r){let a=ni();return!(a.name!==fi.EDGE||!a.osVersion)&&Number(a.version)>=r}function Ane(r){let a=ni();return!(a.name!==fi.SAFARI||!a.osVersion)&&Number(a.version)>=r}function Ine(r,a,o){let c=ni();if(c.os!==ms.IOS||!c.osVersion)return!1;let f=c.osVersion.split(".");return a&&Number(f[0])===r&&Number(f[1])=r}function Pne(){let r=ni();return!(r.name!==fi.CHROME||!r.osVersion)&&Number(r.version)<=90}function Lne(){let r=ni();if(r.os!==ms.IOS||!r.osVersion)return!1;let a=r.osVersion.split(".");return Number(a[0])<14||Number(a[0])===14&&Number(a[1])<=6}function jS(){let r=ni();if(r.os!==ms.IOS||!r.osVersion)return!1;let a=r.osVersion.split(".");return Number(a[0])===15}function kH(){let r=ni();if(r.os!==ms.IOS||!r.osVersion)return!1;let a=r.osVersion.split(".");return Number(a[0])===16}function Dne(){let r=ni();if(r.os!==ms.IOS||!r.osVersion)return!1;let a=r.osVersion.split(".");return Number(a[0])===15&&Number(a[1])>=1}function fu(){return gs()&&navigator.maxTouchPoints>0}function kne(){return ni().name===fi.WECHAT}function Mne(){return window.navigator.appVersion&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)!==null&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)[1]<=35}function MH(){let r=N8();return function(){let{deviceType:a}=ni();return a==="mobile"||a==="tablet"}()||r===ms.ANDROID||r===ms.IOS||r===ms.HARMONY_OS}function C0(){let r=ni();return r.name!==fi.EDGE&&r.name!==fi.SAFARI&&!!navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]./i)}function P8(){return N8()===ms.ANDROID}function h3(){let r=ni();return P8()&&(r.name===fi.CHROME||r.name===fi.WECHAT||/chrome|chromium/i.test(navigator.userAgent))}function jne(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Kt(r){for(var a=1;a1&&arguments[1]!==void 0?arguments[1]:"",c=arguments.length>2?arguments[2]:void 0;super(o),Zi(this,"code",void 0),Zi(this,"message",void 0),Zi(this,"data",void 0),Zi(this,"name","AgoraRTCException"),this.code=a,this.message="AgoraRTCError ".concat(this.code,": ").concat(o),this.data=c}toString(){return this.data?"data: ".concat(JSON.stringify(this.data),` +`).concat(this.stack):"".concat(this.stack)}print(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error",o=arguments.length>1?arguments[1]:void 0;return a==="error"&&(o||console).error(this.toString()),a==="warning"&&(o||console).warn(this.toString()),this}throw(a){throw this.print("error",a),this}}function fm(r,a){if(typeof r!="boolean")throw new Ke(ce.INVALID_PARAMS,"Invalid ".concat(a,": The value is of the boolean type."))}function as(r,a,o){if(!Tt(o).call(o,r))throw new Ke(ce.INVALID_PARAMS,"".concat(a," can only be set as ").concat(JSON.stringify(o)))}function Ti(r,a){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,c=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1e4;if(rc||(!(arguments.length>4&&arguments[4]!==void 0)||arguments[4])&&!function(f){return typeof f=="number"&&f%1==0}(r))throw new Ke(ce.INVALID_PARAMS,"invalid ".concat(a,": the value range is [").concat(o,", ").concat(c,"]. integer only"))}function jH(r,a){if(typeof r!="number"){if(!(r.min||r.max||r.ideal||r.exact))throw new Ke(ce.INVALID_PARAMS,"".concat(a," is not a valid ConstrainLong"));r.min!==void 0&&Ti(r.min,"".concat(a,".min"),0,1/0),r.max!==void 0&&Ti(r.max,"".concat(a,".max"),1,1/0),r.exact!==void 0&&Ti(r.exact,"".concat(a,".exact"),1,1/0),r.ideal!==void 0&&Ti(r.ideal,"".concat(a,".ideal"),1,1/0)}else Ti(r,a,1,1/0)}function Ms(r,a){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,c=arguments.length>3&&arguments[3]!==void 0?arguments[3]:255,f=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(r==null)throw new Ke(ce.INVALID_PARAMS,"".concat(a||"param"," cannot be empty"));if(!Une(r,o,c,f))throw new Ke(ce.INVALID_PARAMS,"Invalid ".concat(a||"string param",": Length of the string: [").concat(o,",").concat(c,"].").concat(f?" ASCII characters only.":""))}function pm(r,a){if(!Array.isArray(r))throw new Ke(ce.INVALID_PARAMS,"".concat(a," should be an array"))}function gr(r){return r==null}function Une(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:255,c=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return typeof r=="string"&&r.length<=o&&r.length>=a&&(!c||function(f){if(typeof f!="string")return!1;for(let m=0;m255)return!1}return!0}(r))}function Fne(r,a,o){if("getBigUint64"in DataView.prototype)return r.getBigUint64(a,o);let c=r.getUint32(a,o),f=r.getUint32(a+4,o),m=+!!o,v=+!o;return BigInt(c*v+f*m)<>BigInt(32)),m=Number(o&BigInt(4294967295));r.setUint32(a,f,c),r.setUint32(a+4,m,c)}var f3=function(r){return r.COVERED="COVERED",r.POSITION="POSITION",r.SIZE="SIZE",r.STYLE="STYLE",r}(f3||{}),UH=function(r){return r.UNMOUNTED="UNMOUNTED",r.INVALID_HTML_ELEMENT="INVALID_HTML_ELEMENT",r}(UH||{});let Vne=new class{constructor(){Zi(this,"_clientSize",null),Zi(this,"getClientWidth",()=>document.documentElement?document.documentElement.clientWidth:document.body.clientWidth),Zi(this,"getClientHeight",()=>document.documentElement?document.documentElement.clientHeight:document.body.clientHeight),Zi(this,"getStyle",r=>window.getComputedStyle(r,null)),Zi(this,"checkCssVisibleProperty",r=>{var a;let o=!0,c=this.getStyle(r),{display:f,visibility:m,opacity:v,filter:w}=c;return(f==="none"||Tt(a=["hidden","collapse"]).call(a,m)||Number(v)<.1)&&(o=!1),!!o&&(w&&w.split(" ").filter(C=>{var R;let x=C.split("(")[0];return Tt(R=["brightness","blur","opacity"]).call(R,x)}).map(C=>{let[R,x]=C.split(/\(|\)/);return[R,Number(x.match(/^[0-9\.]+/))]}).forEach(C=>{let[R,x]=C;switch(R){case"brightness":(x<.1||x>3)&&(o=!1);break;case"blur":x>3&&(o=!1);break;case"opacity":x<.1&&(o=!1)}}),o)}),Zi(this,"checkPropertyUpToAllParentNodes",(r,a)=>{let o=!0,c=!0,f=v=>a(v),m=r;for(;m&&c;)f(m)||(o=!1,c=!1),m=m.parentElement,m||(c=!1);return o}),Zi(this,"checkActualCssVisibleIncludeInherit",r=>this.checkPropertyUpToAllParentNodes(r,this.checkCssVisibleProperty)),Zi(this,"getSizeAboutClient",r=>{let{width:a,height:o,left:c,right:f,top:m,bottom:v}=r.getBoundingClientRect(),w=this.getClientWidth(),C=this.getClientHeight();return{width:a,height:o,left:c,right:f,top:m,bottom:v,clientWidth:w,clientHeight:C,clientMin:Math.min(w,C)}}),Zi(this,"checkActualSize",()=>{let{width:r,height:a,clientMin:o}=this._clientSize;return this.checkSizeIsVisible(r,a,o)}),Zi(this,"elementFromPoint",(r,a)=>document.elementFromPoint?document.elementFromPoint(r,a):null),Zi(this,"checkCoverForAPoint",(r,a,o)=>{let c=this.elementFromPoint(r,a);return c!==null&&c!==o}),Zi(this,"getPointPositionList",()=>{let{width:r,height:a,left:o,top:c}=this._clientSize,f=r/6,m=a/6,v=[],w=10**6;for(let C=0;C<5;C++)for(let R=0;R<5;R++){let x=(o*w+(C===0?.1:C===4?(f*C*w-1e5)/w:f*C)*w)/w,L=(c*w+(R===0?.1:R===4?(m*R*w-1e5)/w:m*R)*w)/w;v.push({x,y:L})}return[...v]}),Zi(this,"checkElementCover",r=>this.getPointPositionList().map(a=>this.checkCoverForAPoint(a.x,a.y,r)).filter(a=>!!a).length>6),Zi(this,"checkSizeIsVisible",(r,a,o)=>(r>50||o/r<=10)&&(a>50||o/a<=10)),Zi(this,"checkSizeOfPartInClient",()=>{let{left:r,right:a,top:o,bottom:c,clientHeight:f,clientWidth:m,clientMin:v}=this._clientSize,w,C,R,x;if(r<0)w=0;else{if(!(r(this._clientSize=null,{visible:!1,reason:r})),Zi(this,"checkOneElementVisible",r=>{if(r instanceof HTMLElement){if(this.checkElementIsMountedOnDom(r)){if(this.checkActualCssVisibleIncludeInherit(r)){if(this._clientSize=this.getSizeAboutClient(r),this.checkElementCover(r))return this.returnHiddenResult(f3.COVERED);{let a=this.checkActualSize(),o=this.checkSizeOfPartInClient();return a&&!o?this.returnHiddenResult(f3.POSITION):a?(this._clientSize=null,{visible:!0}):this.returnHiddenResult(f3.SIZE)}}return this.returnHiddenResult(f3.STYLE)}return this.returnHiddenResult(UH.UNMOUNTED)}return this.returnHiddenResult(UH.INVALID_HTML_ELEMENT)}),Zi(this,"checkElementIsMountedOnDom",r=>this.checkPropertyUpToAllParentNodes(r,a=>a.nodeName.toUpperCase()!=="HTML"?a.parentElement!==null:!!document.documentElement))}};function FH(r){return new TextEncoder().encode(r)}let zne=function(r,a){let o=new Uint8Array(r.byteLength+a.byteLength);return o.set(new Uint8Array(r),0),o.set(new Uint8Array(a),r.byteLength),o},BH=async r=>function(a,o){let c="";return new Uint8Array(a).forEach(f=>{c+=f.toString(o).padStart(2,"0")}),c}(await crypto.subtle.digest("SHA-256",FH(r)),16),nr=class{constructor(){Zi(this,"_events",{}),Zi(this,"addListener",this.on)}getListeners(r){return this._events[r]?this._events[r].map(a=>a.listener):[]}on(r,a){this._events[r]||(this._events[r]=[]);let o=this._events[r];this._indexOfListener(o,a)===-1&&o.push({listener:a,once:!1})}once(r,a){this._events[r]||(this._events[r]=[]);let o=this._events[r];this._indexOfListener(o,a)===-1&&o.push({listener:a,once:!0})}off(r,a){if(!this._events[r])return;let o=this._events[r],c=this._indexOfListener(o,a);c!==-1&&o.splice(c,1),this._events[r].length===0&&delete this._events[r]}removeAllListeners(r){r?delete this._events[r]:this._events={}}emit(r){this._events[r]||(this._events[r]=[]);let a=this._events[r].map(m=>m);for(var o=arguments.length,c=new Array(o>1?o-1:0),f=1;f1?a-1:0),c=1;c{f.once&&this.off(r,f.listener);try{f.listener.apply(this,o)}catch(m){console.error("safeEmit event:".concat(r," error ").concat(m==null?void 0:m.toString()))}})}_indexOfListener(r,a){let o=r.length;for(;o--;)if(r[o].listener===a)return o;return-1}},p3=null;function Hne(){if(p3)return p3;if(window.electron)return p3=window.electron;if(!window.require)return null;try{return p3=window.require("electron"),p3}catch{return null}}let $r=function(r){return r.CREATE_CLIENT="createClient",r.CHECK_SYSTEM_REQUIREMENTS="checkSystemRequirements",r.SET_AREA="setArea",r.PRELOAD="PRELOAD",r.CHECK_VIDEO_TRACK_IS_ACTIVE="checkVideoTrackIsActive",r.CHECK_AUDIO_TRACK_IS_ACTIVE="checkAudioTrackIsActive",r.CREATE_MIC_AUDIO_TRACK="createMicrophoneAudioTrack",r.CREATE_CUSTOM_AUDIO_TRACK="createCustomAudioTrack",r.CREATE_BUFFER_AUDIO_TRACK="createBufferSourceAudioTrack",r.CREATE_CAM_VIDEO_TRACK="createCameraVideoTrack",r.CREATE_CUSTOM_VIDEO_TRACK="createCustomVideoTrack",r.CREATE_MIC_AND_CAM_TRACKS="createMicrophoneAndCameraTracks",r.CREATE_SCREEN_VIDEO_TRACK="createScreenVideoTrack",r.SET_ENCRYPTION_CONFIG="Client.setEncryptionConfig",r.START_PROXY_SERVER="Client.startProxyServer",r.STOP_PROXY_SERVER="Client.stopProxyServer",r.SET_PROXY_SERVER="Client.setProxyServer",r.SET_TURN_SERVER="Client.setTurnServer",r.SET_CLIENT_ROLE="Client.setClientRole",r.SET_LOW_STREAM_PARAMETER="Client.setLowStreamParameter",r.ENABLE_DUAL_STREAM="Client.enableDualStream",r.DISABLE_DUAL_STREAM="Client.disableDualStream",r.JOIN="Client.join",r.LEAVE="Client.leave",r.PUBLISH="Client.publish",r.UNPUBLISH="Client.unpublish",r.SUBSCRIBE="Client.subscribe",r.MASS_SUBSCRIBE="Client.massSubscribe",r.MASS_UNSUBSCRIBE="Client.massUnsubscribe",r.UNSUBSCRIBE="Client.unsubscribe",r.RENEW_TOKEN="Client.renewToken",r.SET_REMOTE_VIDEO_STREAM_TYPE="Client.setRemoteVideoStreamType",r.SET_STREAM_FALLBACK_OPTION="Client.setStreamFallbackOption",r.ENABLE_AUDIO_VOLUME_INDICATOR="Client.enableAudioVolumeIndicator",r.SEND_CUSTOM_REPORT_MESSAGE="Client.sendCustomReportMessage",r.INSPECT_VIDEO_CONTENT="Client.inspectVideoContent",r.STOP_INSPECT_VIDEO_CONTENT="Client.stopInspectVideoContent",r.JOIN_FALLBACK_TO_PROXY="Client._joinFallbackToProxy",r.DATACHANNEL_FAILBACK="Client._datachannelFailback",r.ON_LIVE_STREAM_WARNING="Client.onLiveStreamWarning",r.ON_LIVE_STREAM_ERROR="Client.onLiveStreamingError",r.START_LIVE_STREAMING="Client.startLiveStreaming",r.SET_LIVE_TRANSCODING="Client.setLiveTranscoding",r.STOP_LIVE_STREAMING="Client.stopLiveStreaming",r.START_CHANNEL_MEDIA_RELAY="Client.startChannelMediaRelay",r.UPDATE_CHANNEL_MEDIA_RELAY="Client.updateChannelMediaRelay",r.STOP_CHANNEL_MEDIA_RELAY="Client.stopChannelMediaRelay",r.REQUEST_CONFIG_DISTRIBUTE="_config-distribute-request",r.SET_CONFIG_DISTRIBUTE="_configDistribute",r.LOCAL_TRACK_SET_MUTED="LocalTrack.setMute",r.LOCAL_AUDIO_TRACK_PLAY="LocalAudioTrack.play",r.LOCAL_AUDIO_TRACK_PLAY_IN_ELEMENT="LocalAudioTrack.playInElement",r.LOCAL_AUDIO_TRACK_STOP="LocalAudioTrack.stop",r.LOCAL_AUDIO_TRACK_SET_VOLUME="LocalAudioTrack.setVolume",r.MIC_AUDIO_TRACK_SET_DEVICE="MicrophoneAudioTrack.setDevice",r.BUFFER_AUDIO_TRACK_START="BufferSourceAudioTrack.startProcessAudioBuffer",r.BUFFER_AUDIO_TRACK_STOP="BufferSourceAudioTrack.stopProcessAudioBuffer",r.BUFFER_AUDIO_TRACK_PAUSE="BufferSourceAudioTrack.pauseProcessAudioBuffer",r.BUFFER_AUDIO_TRACK_RESUME="BufferSourceAudioTrack.resumeProcessAudioBuffer",r.BUFFER_AUDIO_TRACK_SEEK="BufferSourceAudioTrack.seekAudioBuffer",r.LOCAL_VIDEO_TRACK_PLAY="LocalVideoTrack.play",r.LOCAL_VIDEO_TRACK_STOP="LocalVideoTrack.stop",r.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE="LocalVideoTrack.getVideoElementVisibleStatus",r.LOCAL_VIDEO_TRACK_BEAUTY="LocalVideoTrack.setBeautyEffect",r.LOCAL_VIDEO_SEND_SEI_DATA="LocalVideoTrack.sendSeiData",r.CAM_VIDEO_TRACK_SET_DEVICE="CameraVideoTrack.setDevice",r.CAM_VIDEO_TRACK_SET_ENCODER_CONFIG="CameraVideoTrack.setEncoderConfiguration",r.REMOTE_VIDEO_TRACK_PLAY="RemoteVideoTrack.play",r.REMOTE_VIDEO_TRACK_STOP="RemoteVideoTrack.stop",r.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE="RemoteVideoTrack.getVideoElementVisibleStatus",r.REMOTE_AUDIO_TRACK_PLAY="RemoteAudioTrack.play",r.REMOTE_AUDIO_TRACK_STOP="RemoteAudioTrack.stop",r.REMOTE_AUDIO_SET_VOLUME="RemoteAudioTrack.setVolume",r.REMOTE_AUDIO_SET_OUTPUT_DEVICE="RemoteAudioTrack.setOutputDevice",r.GET_MEDIA_STREAM_TRACK="Track.getMediaStreamTrack",r.STREAM_TYPE_CHANGE="streamTypeChange",r.CONNECTION_STATE_CHANGE="connectionStateChange",r.LOAD_CONFIG_FROM_LOCALSTORAGE="loadConfigFromLocalStorage",r.IMAGE_MODERATION_UPLOAD="imageModerationUpload",r}({}),vr=function(r){return r.TRACER="tracer",r}({});function Gne(r){return Ti(r.timeout,"config.timeout",0,1e5),Ti(r.timeoutFactor,"config.timeoutFactor",0,100,!1),Ti(r.maxRetryCount,"config.maxRetryConfig",0,1/0),Ti(r.maxRetryTimeout,"config.maxRetryTimeout",0,1/0),!0}let sxe=function(r){return r[r.AUDIENCE_LEVEL_LOW_LATENCY=1]="AUDIENCE_LEVEL_LOW_LATENCY",r[r.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY=2]="AUDIENCE_LEVEL_ULTRA_LOW_LATENCY",r[r.AUDIENCE_LEVEL_SYNC_LATENCY=3]="AUDIENCE_LEVEL_SYNC_LATENCY",r}({}),Hn=function(r){return r.LEAVE="LEAVE",r.NETWORK_ERROR="NETWORK_ERROR",r.SERVER_ERROR="SERVER_ERROR",r.UID_BANNED="UID_BANNED",r.IP_BANNED="IP_BANNED",r.CHANNEL_BANNED="CHANNEL_BANNED",r.FALLBACK="FALLBACK",r.LICENSE_MISSING="LICENSE_MISSING",r.LICENSE_EXPIRED="LICENSE_EXPIRED",r.LICENSE_MINUTES_EXCEEDED="LICENSE_MINUTES_EXCEEDED",r.LICENSE_PERIOD_INVALID="LICENSE_PERIOD_INVALID",r.LICENSE_MULTIPLE_SDK_SERVICE="LICENSE_MULTIPLE_SDK_SERVICE",r.LICENSE_ILLEGAL="LICENSE_ILLEGAL",r.TOKEN_EXPIRE="TOKEN_EXPIRE",r}({});function US(r){if(!Array.isArray(r)||r.length<1)return!1;try{r.forEach(a=>{if(!a.urls)throw Error()})}catch{return!1}return!0}function Wne(r){return Ms(r.turnServerURL,"turnServerURL"),Ms(r.username,"username"),Ms(r.password,"password"),r.udpport&&Ti(r.udpport,"udpport",1,99999,!0),r.forceturn&&fm(r.forceturn,"forceturn"),r.security&&fm(r.security,"security"),r.tcpport&&Ti(r.tcpport,"tcpport",1,99999,!0),!0}function $ne(r){return r.level!==void 0&&as(r.level,"level",[1,2,3]),r.delay!==void 0&&Ti(r.delay,"delay",0,3e3,!0),!0}let Gn=function(r){return r.CONNECTION_STATE_CHANGE="connection-state-change",r.MEDIA_RECONNECT_START="media-reconnect-start",r.MEDIA_RECONNECT_END="media-reconnect-end",r.IS_USING_CLOUD_PROXY="is-using-cloud-proxy",r.USER_JOINED="user-joined",r.USER_LEAVED="user-left",r.USER_PUBLISHED="user-published",r.USER_UNPUBLISHED="user-unpublished",r.USER_INFO_UPDATED="user-info-updated",r.CLIENT_BANNED="client-banned",r.CHANNEL_MEDIA_RELAY_STATE="channel-media-relay-state",r.CHANNEL_MEDIA_RELAY_EVENT="channel-media-relay-event",r.VOLUME_INDICATOR="volume-indicator",r.CRYPT_ERROR="crypt-error",r.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="token-privilege-will-expire",r.ON_TOKEN_PRIVILEGE_DID_EXPIRE="token-privilege-did-expire",r.NETWORK_QUALITY="network-quality",r.STREAM_TYPE_CHANGED="stream-type-changed",r.STREAM_FALLBACK="stream-fallback",r.RECEIVE_METADATA="receive-metadata",r.STREAM_MESSAGE="stream-message",r.LIVE_STREAMING_ERROR="live-streaming-error",r.LIVE_STREAMING_WARNING="live-streaming-warning",r.INJECT_STREAM_STATUS="stream-inject-status",r.EXCEPTION="exception",r.ERROR="error",r.P2P_LOST="p2p_lost",r.JOIN_FALLBACK_TO_PROXY="join-fallback-to-proxy",r.CHANNEL_FALLBACK_TO_WEBSOCKET="channel-fallback-to-websocket",r.MEDIA_CONNECTION_TYPE_CHANGE="media-connection-type-change",r.PUBLISHED_USER_LIST="published-user-list",r.CONTENT_INSPECT_CONNECTION_STATE_CHANGE="content-inspect-connection-state-change",r.CONTENT_INSPECT_ERROR="content-inspect-error",r.CONTENT_INSPECT_RESULT="content-inspect-result",r.IMAGE_MODERATION_CONNECTION_STATE_CHANGE="image-moderation-connection-state-change",r}({}),$s=function(r){return r.NETWORK_ERROR="NETWORK_ERROR",r.SERVER_ERROR="SERVER_ERROR",r.MULTI_IP="MULTI_IP",r.TIMEOUT="TIMEOUT",r.OFFLINE="OFFLINE",r.LEAVE="LEAVE",r.P2P_FAILED="P2P_FAILED",r.FALLBACK="FALLBACK",r}({}),eo=function(r){return r.ONLINE="ONLINE",r.OFFLINE="OFFLINE",r}({}),By=function(r){return r.NETWORK_STATE_CHANGE="NETWORK_STATE_CHANGE",r.ONLINE="ONLINE",r.OFFLINE="OFFLINE",r}({});function Kr(r,a){for(var o=arguments.length,c=new Array(o>2?o-2:0),f=2;f{r.emit(a,...c,m,v)})}function Li(r,a){if(r.getListeners(a).length===0)return Ct.resolve();for(var o=arguments.length,c=new Array(o>2?o-2:0),f=2;f2?o-2:0),f=2;f2?f-2:0),v=2;v{o=w},w=>{c=w}),c!==null)throw c;if(o===null)throw new Ke(ce.UNEXPECTED_ERROR,"handler is not sync");return o}let yr=new class extends nr{set networkState(r){this.emit(By.NETWORK_STATE_CHANGE,r,this._networkState),r===eo.ONLINE?this.emit(By.ONLINE):r===eo.OFFLINE&&(this.onlineWaiter=new Ct(a=>{this.once(By.ONLINE,()=>{this.onlineWaiter=void 0,a(eo.ONLINE)})}),this.emit(By.OFFLINE)),this._networkState=r}get networkState(){return this._networkState}get isOnline(){return this._networkState===eo.ONLINE}constructor(){super(),Zi(this,"_moduleName","network-indicator"),Zi(this,"_networkState",eo.ONLINE),Zi(this,"onlineWaiter",void 0),window.addEventListener("online",()=>{this.networkState=eo.ONLINE}),window.addEventListener("offline",()=>{this.networkState=eo.OFFLINE})}};function L8(r,a){let o=r.indexOf(a);o!==-1&&r.splice(o,1)}function FS(r){let a=[];return r.forEach(o=>{a.indexOf(o)===-1&&a.push(o)}),a}function D8(r){Ct!==void 0?Ct.resolve().then(r):setTimeout(r,0)}function zi(r){return JSON.parse(JSON.stringify(r))}function zy(r){try{return zi(r)}catch{return r}}let Kne={};function T0(r,a){Kne[a]||(Kne[a]=!0,r())}function Hy(r){let a=window.atob(r),o=new Uint8Array(new ArrayBuffer(a.length));for(let c=0;c1&&arguments[1]!==void 0?arguments[1]:16,o=new TextEncoder().encode(r);if(o.length>a)o=o.slice(0,a);else if(o.lengthv+w.length,0),f=new Uint8Array(new ArrayBuffer(c)),m=0;return a.forEach(v=>{f.set(v,m),m+=v.length}),f}function Df(r){return window.TextEncoder?new TextEncoder().encode(r).length:r.length}function Xne(r){let a=0;return(/DingTalk/i.test(navigator.userAgent)||/AliApp/i.test(navigator.userAgent))&&r.realFormData&&(r=r.realFormData),r.forEach(o=>{a+=typeof o=="string"?Df(o):o.size}),a+138}function axe(r){let a=new Ke(ce.TIMEOUT,"timeout");return new Ct((o,c)=>{window.setTimeout(()=>c(a),r)})}function vs(r){return new Ct(a=>{window.setTimeout(a,r)})}function Di(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:7,a=arguments.length>1?arguments[1]:void 0,o=Math.random().toString(16).substr(2,r).toLowerCase();return o.length===r?"".concat(a).concat(o):"".concat(a).concat(o)+Di(r-o.length,"")}function m3(){return Di(32,"").toUpperCase()}let k8=()=>{},Jne=new class{constructor(){Zi(this,"fnMap",new Map)}throttleByKey(r,a,o,c){for(var f=arguments.length,m=new Array(f>4?f-4:0),v=4;v{let R=this.fnMap.get(a);R&&R.fn(...R.args),this.fnMap.delete(a)},o);this.fnMap.set(a,{fn:r,threshold:o,timer:C,args:m,skipFn:c})}else w.skipFn&&w.skipFn(...w.args),this.fnMap.set(a,Kt(Kt({},w),{},{fn:r,args:m,skipFn:c}))}else{let w=window.setTimeout(()=>{let C=this.fnMap.get(a);C&&C.fn(...C.args),this.fnMap.delete(a)},o);this.fnMap.set(a,{fn:r,threshold:o,timer:w,args:m,skipFn:c})}}},Qne=Jne.throttleByKey.bind(Jne);function Zne(r){return typeof r=="object"&&r!==null&&!(r instanceof RegExp)}function VH(r,a){if(!Zne(r)||!Zne(a)||Array.isArray(r)&&!Array.isArray(a)||!Array.isArray(r)&&Array.isArray(a))return a;if(Array.isArray(a)&&Array.isArray(r)){let o=[...r];for(let c=0;c0&&(o[c]=255&r,r>>=8,c++,c!==a););return o}function zH(r){return typeof r=="number"?r:r.exact||r.ideal||r.max||r.min||0}function tie(r){let a="0123456789abcdef";function o(xe){let Oe,ke="";for(Oe=0;Oe<=3;Oe++)ke+=a.charAt(xe>>8*Oe+4&15)+a.charAt(xe>>8*Oe&15);return ke}function c(xe,Oe){let ke=(65535&xe)+(65535&Oe);return(xe>>16)+(Oe>>16)+(ke>>16)<<16|65535&ke}function f(xe,Oe,ke,He,lt,ut){return c(function(ft,zt){return ft<>>32-zt}(c(c(Oe,xe),c(He,ut)),lt),ke)}function m(xe,Oe,ke,He,lt,ut,ft){return f(Oe&ke|~Oe&He,xe,Oe,lt,ut,ft)}function v(xe,Oe,ke,He,lt,ut,ft){return f(Oe&He|ke&~He,xe,Oe,lt,ut,ft)}function w(xe,Oe,ke,He,lt,ut,ft){return f(Oe^ke^He,xe,Oe,lt,ut,ft)}function C(xe,Oe,ke,He,lt,ut,ft){return f(ke^(Oe|~He),xe,Oe,lt,ut,ft)}let R=function(xe){let Oe,ke=1+(xe.length+8>>6),He=new Array(16*ke);for(Oe=0;Oe<16*ke;Oe++)He[Oe]=0;for(Oe=0;Oe>2]|=xe.charCodeAt(Oe)<>2]|=128<0}lock(r){let a;this.locks+=1,M8.debug("[lock-".concat(this.name,"-").concat(this.lockId,"] is locked, current queue ").concat(this.locks,". ").concat(typeof r=="string"?r:""));let o=new Ct(f=>{a=()=>{this.locks-=1,M8.debug("[lock-".concat(this.name,"-").concat(this.lockId,"] is not locked, current queue ").concat(this.locks,". ").concat(typeof r=="string"?r:"")),f()}}),c=this.lockingPromise.then(()=>a);return this.lockingPromise=this.lockingPromise.then(()=>o),c}};function BS(r,a){return function(o,c,f){let m=f.value;if(typeof m!="function")throw new Error("Cannot use mutex on object property.");return f.value=async function(){let v=this[a];if(!v)throw new Error("mutex property key ".concat(a," doesn't exist on ").concat(r));let w=await v.lock("From ".concat(r,".").concat(c));try{for(var C=arguments.length,R=new Array(C),x=0;x{await function(R){return new Ct(x=>{window.setTimeout(x,R)})}(m),m*=f.timeoutFactor,m=Math.min(f.maxRetryTimeout,m)},w=!1,C=new Ct(async(R,x)=>{a=a||(()=>!1),o=o||(()=>!0);for(let L=0;Lw=!0,C}class HH{constructor(a){Zi(this,"input",[]),Zi(this,"size",void 0),this.size=a}add(a){this.input.push(a),this.input.length>this.size&&this.input.splice(0,1)}mean(){var a;return this.input.length===0?0:_c(a=this.input).call(a,(o,c)=>o+c)/this.input.length}}let U8,F8=0,GH=0;function WH(r,a,o,c){return new Ct((f,m)=>{a.responseType=a.responseType||"json",a.data&&!o?(a.data=JSON.stringify(a.data),F8+=Df(a.data)):o&&(a.data.size?F8+=a.data.size:a.data instanceof FormData?F8+=Xne(a.data):F8+=Df(JSON.stringify(a.data))),a.headers=a.headers||{},a.headers["Content-Type"]=a.headers["Content-Type"]||"application/json",a.method="POST",a.url=r,Io.request(a).then(v=>{typeof v.data=="string"?GH+=Df(v.data):v.data instanceof ArrayBuffer||v.data instanceof Uint8Array?GH+=v.data.byteLength:GH+=Df(JSON.stringify(v.data)),f(v.data)}).catch(v=>{Io.isCancel(v)?m(new Ke(ce.OPERATION_ABORTED,"cancel token canceled")):v.code==="ECONNABORTED"?m(new Ke(ce.NETWORK_TIMEOUT,v.message)):v.response?m(new Ke(ce.NETWORK_RESPONSE_ERROR,v.response.status)):m(new Ke(ce.NETWORK_ERROR,v.message))})})}async function lxe(r,a){let o=new Blob([a.data],{type:"buffer"});return await WH(r,Kt(Kt({},a),{},{data:o,headers:{"Content-Type":"application/octet-stream"}}),!0)}let nie=()=>window.isSecureContext!==void 0,dd=function(r){if(r.match(/[0-9]+\.[0-9]+\.[0-9]+$/))return r;let a=r.match(/([0-9]+\.[0-9]+\.[0-9]+)\-alpha\.([0-9]+)/);if(a&&a[1]&&a[2]){let c=a[1],f=a[2];return"".concat(c,".").concat(f)}let o=r.match(/([0-9]+\.[0-9]+\.[0-9]+)\-special\.([0-9]+)/);if(o&&o[1]&&o[2]){let c=o[1],f=o[2];return"".concat(c,".").concat(100*(Number(f)+1))}return"4.0.0.999"}("4.21.0"),$H=function(){try{return JSON.parse("true")===!0}catch{return!0}}(),Gy=function(r){return r.Default="default",r.Auto="auto",r.Relay="relay",r.SdRtn="sd-rtn",r}({}),KH={MIN_FRAME_RATE:1,MAX_FRAME_RATE:30,MAX_THRESHOLD_FRAMERATE:30,BITRATE_MIN_THRESHOLD:100,BITRATE_MAX_THRESHOLD:100,MAX_SCALE:5,BWE_SCALE_UP_THRESHOLD:.6,BWE_SCALE_DOWN_THRESHOLD:.6,PERF_SCALE_UP_THRESHOLD:.7,PERF_SCALE_DOWN_THRESHOLD:.6,MOTION_RESOLUTION_FACTOR:.8,MOTION_BITRATE_FACTOR:.6,DETAIL_FRAMERATE_FACTOR:.8,DETAIL_BITRATE_FACTOR:.6,BALANCE_RESOLUTION_FACTOR:.9,BALANCE_FRAMERATE_FACTOR:.9,BALANCE_BITRATE_FACTOR:.6,OVERUSE_TIMES_THRESHOLD:10,UNDERUSE_TIMES_THRESHOLD:40},qH="v4.21.0-0-g16fdae2c-dirty(6/3/2024, 2:55:18 PM)",es={PROCESS_ID:"",ENCRYPT_AES:!0,AREAS:["CHINA","GLOBAL"],WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-web-2.ap.sd-rtn.com","cds-ap-web-3.agora.io","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-web-2.ap.sd-rtn.com","sua-ap-web-3.agora.io","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-ap-web-1.agora.io","uap-web-2.ap.sd-rtn.com","uap-ap-web-3.agora.io","uap-web-4.ap.sd-rtn.com"],LOG_UPLOAD_SERVER:"logservice.agora.io",EVENT_REPORT_DOMAIN:"statscollector-1.agora.io",EVENT_REPORT_BACKUP_DOMAIN:"web-2.statscollector.sd-rtn.com",ENABLE_EVENT_REPORT:!0,GATEWAY_ADDRESS:[],GATEWAY_WSS_ADDRESS:"",LIVE_STREAMING_ADDRESS:"",HTTP_CONNECT_TIMEOUT:5e3,SIGNAL_REQUEST_TIMEOUT:1e4,REPORT_STATS:!0,UPLOAD_LOG:!1,NOT_REPORT_EVENT:[],SUBSCRIBE_TWCC:!0,PUBLISH_TWCC:!1,PING_PONG_TIME_OUT:10,WEBSOCKET_TIMEOUT_MIN:1e4,EVENT_REPORT_SEND_INTERVAL:3e3,CONFIG_DISTRIBUTE_INTERVAL:3e5,ENABLE_CONFIG_DISTRIBUTE:!0,CANDIDATE_TIMEOUT:5e3,SHOW_REPORT_INVOKER_LOG:!1,JOIN_EXTEND:"",PUB_EXTEND:"",SUB_EXTEND:"",FORCE_TURN:!1,TURN_ENABLE_TCP:!0,TURN_ENABLE_UDP:!0,MAX_UPLOAD_CACHE:50,UPLOAD_CACHE_INTERVAL:2e3,AJAX_REQUEST_CONCURRENT:3,REPORT_APP_SCENARIO:void 0,GATEWAY_DOMAINS:["edge.agora.io","edge.sd-rtn.com"],CONNECT_GATEWAY_WITHOUT_DOMAIN:!1,WORKER_DOMAIN:"edge.agora.io",TURN_DOMAIN:"edge.agora.io",EVENT_REPORT_RETRY:!0,CHROME_FORCE_PLAN_B:!1,AUDIO_SOURCE_VOLUME_UPDATE_INTERVAL:400,AUDIO_SOURCE_AVG_VOLUME_DURATION:3e3,AUDIO_VOLUME_INDICATION_INTERVAL:2e3,VOLUME_VOICE_WEIGHT:10,GET_VOLUME_OF_MUTED_AUDIO_TRACK:!1,STATS_UPDATE_INTERVAL:250,NORMAL_EVENT_QUEUE_CAPACITY:100,CUSTOM_REPORT:!0,CUSTOM_REPORT_LIMIT:20,PROXY_SERVER_TYPE2:"webnginx-proxy.agora.io",PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com","webrtc-cloud-proxy.agora.io"],CUSTOM_PUB_ANSWER_MODIFIER:null,CUSTOM_SUB_ANSWER_MODIFIER:null,CUSTOM_PUB_OFFER_MODIFIER:null,CUSTOM_SUB_OFFER_MODIFIER:null,DSCP_TYPE:"high",REMOVE_NEW_CODECS:!0,FRAGEMENT_LENGTH:3,WEBSOCKET_COMPRESS:!1,SIMULCAST:!1,PRELOAD_MEDIA_COUNT:0,USE_PUB_RTX:!0,USE_SUB_RTX:!0,USE_XR:!0,ENABLE_LOSSBASED_BWE:!0,ENABLE_AUT_CC:void 0,ENABLE_CC_FALLBACK:void 0,CHECK_VIDEO_VISIBLE_INTERVAL:3e4,CHECK_LOCAL_STATS_INTERVAL:250,PROFILE_SWITCH_INTERVAL:2e3,UNSUPPORTED_VIDEO_CODEC:[],ENUMERATE_DEVICES_INTERVAL:!1,ENUMERATE_DEVICES_INTERVAL_TIME:1e4,USE_NEW_TOKEN:!1,CLOSE_AFB_FOR_LOCAL_AP:!0,JOIN_MAX_CONCURRENCY:6,JOIN_WITH_FALLBACK_SIGNAL_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE:!1,JOIN_GATEWAY_TRY_443PORT_DURATION:2e3,JOIN_GATEWAY_USE_443PORT_ONLY:!1,JOIN_GATEWAY_USE_DUAL_DOMAIN:!0,JOIN_GATEWAY_FALLBACK_PORT:443,USE_TURN_SERVER_OF_GATEWAY:!1,H264_PROFILE_LEVEL_ID:"",USE_NEW_LOG:!1,LOG_VERSION:3,MEDIA_DEVICE_CONSTRAINTS:null,ENCRYPT_PROXY_USERNAME_AND_PSW:!0,SDP_LOGGING:!1,CSP_DETECTED_HOSTNAME_LIST:["agora.io","sd-rtn.com"],REMOTE_AUDIO_TRACK_USES_WEB_AUDIO:!1,LOCAL_AUDIO_TRACK_USES_WEB_AUDIO:!1,BITRATE_ADAPTER_TYPE:"STANDARD_BITRATE",AI_DENOISER_PARAMETERS:{excludedLinks:[]},ADJUST_3A_FROM_PLUGINS:!0,RAISE_H264_BASELINE_PRIORITY:!0,FILTER_SEND_H264_BASELINE:!1,ENABLE_PUBLISHED_USER_LIST:!0,MAX_SUBSCRIPTION:50,X_GOOGLE_START_BITRATE:void 0,NEW_REPORT_SERVER:!1,NEW_REPORT_SERVER_DOMAINS:["data-reporting.agora.io","data-reporting.agora.io"],VIDEO_INSPECT_WORKER_MESSAGE_LENGTH_LIMIT:3e5,VIDEO_INSPECT_INTERVAL_MINIMUM:1e3,VIDEO_INSPECT_QUALITY_RATIO:.9,VIDEO_INSPECT_WORKER_MANAGER_HOST:"edge.agora.io",VIDEO_INSPECT_WORKER_MANAGER_PORT:"",VIDEO_INSPECT_WORKER_PORT:"",SHOW_VIDEO_INSPECT_WORKER_MESSAGE:!1,STATS_COLLECTOR_PORT:443,FORCE_TURN_TCP:!1,SUBSCRIBE_AUDIO_FILTER_TOPN:void 0,ENABLE_PUBLISH_AUDIO_FILTER:void 0,DISABLE_FEC:void 0,WEBAUDIO_INIT_OPTIONS:void 0,FILTER_VIDEO_FEC:!0,FILTER_AUDIO_FEC:!1,CHROME_DUAL_STREAM_USE_ENCODING:!0,DISABLE_DUAL_STREAM_USE_ENCODING:!1,EXTENSION_USAGE_UPLOAD_INTERVAL:1e4,ICE_RESTART:!0,ICE_RESTART_INTERVAL:1e4,NEW_ICE_RESTART:!1,ENABLE_USER_LICENSE_CHECK:!0,SIGNAL_CHANNEL:0,TRANSMITTER_INITIAL_RTT:30,TRANSMITTER_INITIAL_RTO:30,TRANSMITTER_MAX_BATCH_ACK_COUNT:2,TRANSMITTER_MAX_RTO:500,DATACHANNEL_COMPRESS:!1,FINGERPRINT:null,DC_JOIN_WITH_FAILBACK:5e3,ENABLE_VIDEO_FRAME_CALLBACK:!0,VIDEO_FREEZE_DURATION:500,SPATIALIZER_PARAMETERS:{},UPLOAD_LOG_INTERVAL:3e3,UPLOAD_LOG_REQUEST_RETRY_INTERVAL:2e3,UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL:2e4,UPLOAD_LOG_TRY_INTERVAL_WHILE_OFF:5e3,UPLOAD_LOG_RETRY_INTERVAL_V1:1e4,UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1:200,UPLOAD_LOG_LENGTH_EACH_TIME:10,APP_TYPE:0,DISABLE_WEBAUDIO:!1,CHANNEL_MEDIA_RELAY_SERVERS:void 0,KEEP_LAST_FRAME:!0,FORWARD_P2P_CREATION:!0,SYNC_GROUP:!0,BLOCK_LOCAL_CLIENT:!1,AP_AREA:!0,SVC:[],ENABLE_ENCODED_TRANSFORM:!1,ENABLE_VIDEO_SEI:!1,IMAGE_MODERATION_WORKER_HOST:"edge.agora.io",IMAGE_MODERATION_WORKER_MESSAGE_LENGTH_LIMIT:3e5,IMAGE_MODERATION_INTERVAL_MINIMUM:1e3,SHOW_IMAGE_MODERATION_WORKER_MESSAGE:!1,IMAGE_MODERATION_QUALITY_RATIO:.9,IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL:5e3,SHOW_GLOBAL_CLIENT_LIST:!1,ENABLE_DATASTREAM_2:!1,DATASTREAM_MAX_RETRANSMITS:10,ENABLE_USER_AUTO_REBALANCE_CHECK:!0,ENABLE_INSTANT_VIDEO:!1,ENABLE_NTP_REPORT:!1,TCP_CANDIDATE_ONLY:!1,EXTERNAL_SIGNAL_REQUEST_TIMEOUT:3e3,SHOW_P2P_LOG:!1,MAX_P2P_TIMEOUT:3e4,P2P_TOKEN_INTERVAL:1e3,SHOW_DATASTREAM2_LOG:!1,RESTRICTION_SET_PLAYBACK_DEVICE:!0,USE_PURE_ENCRYPTION_MASTER_KEY:!1,ACCOUNT_REGISTER_RETRY_TIMEOUT:1,ACCOUNT_REGISTER_RETRY_RATIO:2,ACCOUNT_REGISTER_RETRY_TIMEOUT_MAX:6e4,ACCOUNT_REGISTER_RETRY_COUNT_MAX:1e5,AUDIO_CONTEXT:null,WEBCS_BACKUP_CONNECT_TIMEOUT:6e3,PLAYER_STATE_DEFER:2e3,SIGNAL_REQUEST_WATCH_INTERVAL:1e3,FILEPATH_LENMAX:255,DUALSTREAM_OPERATION_CHECK:!0,MEDIA_ELEMENT_EXISTS_DEPTH:3,SHIM_CANDIDATE:!1,LEAVE_MSG_TIMEOUT:2e3,STATS_FILTER:{transportId:!0,googTrackId:!0},FILTER_VIDEO_CODEC:[],USE_NEW_NETWORK_CONFIG:!1,AUTO_RESET_AUDIO_ROUTE:!1,PLUGIN_INFO:[],OVERUSE_DETECTOR_PARAMS:KH,ENABLE_AG_ADAPTATION:!0,FORCE_AG_HIGH_FRAMERATE:!1,FORCE_SUPPORT_AG_ADAPTATION:!1,CUSTOM_ADAPTATION_DEFAULT_MODE:"",ENCODER_CONFIG_LIMIT:{},CAMERA_CAPTURE_CONFIG:void 0,HIDE_NO_POSTER:!1,AP_CACHE_NUM:10,AP_UPDATE_INTERVAL:12e4,AP_CACHE_LIFETIME:12e4,MAX_PRELOAD_ASYNC_LENGTH:3,ENABLE_PRELOAD:!0};function Ri(r,a,o){var c,f,m;Tt(c=Object.keys(es)).call(c,r)&&(!o&&Tt(f=Object.keys(x0)).call(f,r)||(es[r]=a,r==="ENABLE_VIDEO_SEI"&&a===!0&&(es.ENABLE_ENCODED_TRANSFORM=!0),r==="USE_NEW_NETWORK_CONFIG"&&a&&(m=!!a,es.USE_NEW_NETWORK_CONFIG=m,m&&(es.WEBCS_DOMAIN=["webrtc2-2.ap.sd-rtn.com"],es.WEBCS_DOMAIN_BACKUP_LIST=["webrtc2-4.ap.sd-rtn.com"],es.CDS_AP=["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],es.ACCOUNT_REGISTER=["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],es.EVENT_REPORT_DOMAIN="web-2.statscollector.sd-rtn.com",es.EVENT_REPORT_BACKUP_DOMAIN="statscollector-1.agora.io",es.GATEWAY_DOMAINS=["edge.sd-rtn.com"]))))}function ve(r){return es[r]}let x0={};var Bn=function(r){return r.SET_SESSION_ID="SET_SESSION_ID",r.SET_P2P_ID="SET_P2P_id",r.SET_DC_ID="SET_DC_id",r.SET_UID="SET_UID",r.SET_INT_UID="SET_INT_UID",r.SET_PUB_ID="SET_PUB_ID",r.SET_CLOUD_PROXY_SERVER_MODE="SET_CLOUD_PROXY_SERVER_MODE",r.KEY_METRIC_CLIENT_CREATED="KEY_METRIC_CLIENT_CREATED",r.KEY_METRIC_JOIN_START="KEY_METRIC_JOIN_START",r.AVOID_JOIN_START="AVOID_JOIN_START",r.KEY_METRIC_JOIN_END="KEY_METRIC_JOIN_END",r.KEY_METRIC_REQUEST_AP_START="KEY_METRIC_REQUEST_AP_START",r.KEY_METRIC_REQUEST_AP_END="KEY_METRIC_REQUEST_AP_END",r.KEY_METRIC_JOIN_GATEWAY_START="KEY_METRIC_JOIN_GATEWAY_START",r.KEY_METRIC_JOIN_GATEWAY_END="KEY_METRIC_JOIN_GATEWAY_END",r.KEY_METRIC_PEER_CONNECTION_START="KEY_METRIC_PEER_CONNECTION_START",r.KEY_METRIC_PEER_CONNECTION_END="KEY_METRIC_PEER_CONNECTION_END",r.KEY_METRIC_DESCRIPTION_START="KEY_METRIC_DESCRIPTION_START",r.KEY_METRIC_ICE_CONNECTION_END="KEY_METRIC_ICE_CONNECTION_END",r.KEY_METRIC_SIGNAL_CHANNEL_OPEN="KEY_METRIC_SIGNAL_CHANNEL_OPEN",r.KEY_METRIC_PUBLISH="KEY_METRIC_PUBLISH",r.KEY_METRIC_SUBSCRIBE="KEY_METRIC_SUBSCRIBE",r.RECORD_JOIN_CHANNEL_SERVICE="RECORD_JOIN_CHANNEL_SERVICE",r.RESET_JOIN_CHANNEL_SERVICE_RECORDS="RESET_JOIN_CHANNEL_SERVICE_RECORDS",r.RESET_KEY_METRICS="RESET_KEY_METRICS",r.SET_USE_DATACHANNEL="SET_USE_DATACHANNEL",r.SET_USE_P2P="SET_USE_P2P",r.SET_TRANSPORT_TYPE="SET_TRANSPORT_TYPE",r}(Bn||{});class cxe{constructor(a,o,c,f){Zi(this,"state",void 0),this.state={codec:a,audioCodec:o,mode:c,clientId:f,sessionId:null,p2pId:0,dcId:0,pubId:0,subId:0,avoidJoinStart:0,keyMetrics:{publish:[],subscribe:[]},joinChannelServiceRecords:[],cloudProxyServerMode:"disabled",useDataChannel:!1,useP2P:!1,p2pTransport:Gy.Default}}dispatch(a){this.state=function(o,c){switch(c.type){case Bn.SET_SESSION_ID:return Kt(Kt({},o),{},{sessionId:c.sessionId});case Bn.SET_P2P_ID:return Kt(Kt({},o),{},{p2pId:c.p2pId});case Bn.SET_UID:return Kt(Kt({},o),{},{uid:c.uid});case Bn.SET_INT_UID:return Kt(Kt({},o),{},{intUid:c.intUid});case Bn.SET_PUB_ID:return Kt(Kt({},o),{},{pubId:c.pubId});case Bn.KEY_METRIC_CLIENT_CREATED:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{clientCreated:c.metric})});case Bn.KEY_METRIC_JOIN_START:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{joinStart:c.metric})});case Bn.AVOID_JOIN_START:return Kt(Kt({},o),{},{avoidJoinStart:c.avoidJoinStart});case Bn.KEY_METRIC_JOIN_END:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{joinEnd:c.metric})});case Bn.KEY_METRIC_REQUEST_AP_START:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{requestAPStart:c.metric})});case Bn.KEY_METRIC_REQUEST_AP_END:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{requestAPEnd:c.metric})});case Bn.KEY_METRIC_JOIN_GATEWAY_START:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{joinGatewayStart:c.metric})});case Bn.KEY_METRIC_JOIN_GATEWAY_END:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{joinGatewayEnd:c.metric})});case Bn.KEY_METRIC_PEER_CONNECTION_START:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{peerConnectionStart:c.metric})});case Bn.KEY_METRIC_PEER_CONNECTION_END:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{peerConnectionEnd:c.metric})});case Bn.KEY_METRIC_DESCRIPTION_START:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{descriptionStart:c.metric})});case Bn.KEY_METRIC_SIGNAL_CHANNEL_OPEN:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{signalChannelOpen:c.metric})});case Bn.KEY_METRIC_ICE_CONNECTION_END:return Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{iceConnectionEnd:c.metric})});case Bn.KEY_METRIC_PUBLISH:{let f=o.keyMetrics.publish,m=f.findIndex(v=>v.trackId===c.metric.trackId);return m!==-1?(f[m]=Kt(Kt({},f[m]),c.metric),Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{publish:[...f]})})):Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{publish:[...o.keyMetrics.publish,c.metric]})})}case Bn.KEY_METRIC_SUBSCRIBE:{let f=o.keyMetrics.subscribe,m=f.findIndex(v=>v.userId===c.metric.userId&&v.type===c.metric.type);return m!==-1?(f[m]=Kt(Kt({},f[m]),c.metric),Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{subscribe:[...f]})})):Kt(Kt({},o),{},{keyMetrics:Kt(Kt({},o.keyMetrics),{},{subscribe:[...o.keyMetrics.subscribe,c.metric]})})}case Bn.SET_CLOUD_PROXY_SERVER_MODE:return o.cloudProxyServerMode=c.mode,o;case Bn.RECORD_JOIN_CHANNEL_SERVICE:return typeof c.index!="number"?o.joinChannelServiceRecords=[...o.joinChannelServiceRecords,c.record]:(o.joinChannelServiceRecords[c.index]=Kt(Kt({},o.joinChannelServiceRecords[c.index]),c.record),o.joinChannelServiceRecords=[...o.joinChannelServiceRecords]),o;case Bn.RESET_JOIN_CHANNEL_SERVICE_RECORDS:return o.joinChannelServiceRecords=[],o;case Bn.RESET_KEY_METRICS:return o.keyMetrics={publish:[],subscribe:[]},o;case Bn.SET_USE_DATACHANNEL:return Kt(Kt({},o),{},{useDataChannel:c.val});case Bn.SET_USE_P2P:return Kt(Kt({},o),{},{useP2P:c.val});case Bn.SET_TRANSPORT_TYPE:return Kt(Kt({},o),{},{p2pTransport:c.val});default:return o}}(this.state,a)}set sessionId(a){this.dispatch({type:Bn.SET_SESSION_ID,sessionId:a})}get sessionId(){return this.state.sessionId}set codec(a){this.state.codec=a}get codec(){return this.state.codec}get mode(){return this.state.mode}get audioCodec(){return this.state.audioCodec}get clientId(){return this.state.clientId}set p2pId(a){this.dispatch({type:Bn.SET_P2P_ID,p2pId:a})}get p2pId(){return this.state.p2pId}set dcId(a){this.dispatch({type:Bn.SET_DC_ID,dcId:a})}get dcId(){return this.state.dcId}set uid(a){this.dispatch({type:Bn.SET_UID,uid:a})}get uid(){return this.state.uid}set intUid(a){this.dispatch({type:Bn.SET_INT_UID,intUid:a})}get intUid(){return this.state.intUid}set pubId(a){this.dispatch({type:Bn.SET_PUB_ID,pubId:a})}get pubId(){return this.state.pubId}set cloudProxyServerMode(a){this.dispatch({type:Bn.SET_CLOUD_PROXY_SERVER_MODE,mode:a})}get cloudProxyServerMode(){return this.state.cloudProxyServerMode}set useDataChannel(a){this.dispatch({type:Bn.SET_USE_DATACHANNEL,val:a})}get useDataChannel(){return this.state.useDataChannel}set useP2P(a){this.dispatch({type:Bn.SET_USE_P2P,val:a})}get useP2P(){return this.state.useP2P}set p2pTransport(a){this.dispatch({type:Bn.SET_TRANSPORT_TYPE,val:a})}get p2pTransport(){return this.state.p2pTransport}clientCreated(){this.dispatch({type:Bn.KEY_METRIC_CLIENT_CREATED,metric:Date.now()})}joinStart(){this.dispatch({type:Bn.KEY_METRIC_JOIN_START,metric:Date.now()})}joinEnd(){this.dispatch({type:Bn.KEY_METRIC_JOIN_END,metric:Date.now()})}requestAPStart(){this.dispatch({type:Bn.KEY_METRIC_REQUEST_AP_START,metric:Date.now()})}requestAPEnd(){this.dispatch({type:Bn.KEY_METRIC_REQUEST_AP_END,metric:Date.now()})}joinGatewayStart(){this.dispatch({type:Bn.KEY_METRIC_JOIN_GATEWAY_START,metric:Date.now()})}joinGatewayEnd(){this.dispatch({type:Bn.KEY_METRIC_JOIN_GATEWAY_END,metric:Date.now()})}peerConnectionStart(){this.dispatch({type:Bn.KEY_METRIC_PEER_CONNECTION_START,metric:Date.now()})}peerConnectionEnd(){this.dispatch({type:Bn.KEY_METRIC_PEER_CONNECTION_END,metric:Date.now()})}descriptionStart(){this.dispatch({type:Bn.KEY_METRIC_DESCRIPTION_START,metric:Date.now()})}signalChannelOpen(){this.dispatch({type:Bn.KEY_METRIC_SIGNAL_CHANNEL_OPEN,metric:Date.now()})}iceConnectionEnd(){this.dispatch({type:Bn.KEY_METRIC_ICE_CONNECTION_END,metric:Date.now()})}publish(a,o,c,f){this.dispatch({type:Bn.KEY_METRIC_PUBLISH,metric:Kt(Kt({trackId:a,type:o},c&&{publishStart:c}),f&&{publishEnd:f})})}subscribe(a,o,c,f,m,v,w){this.dispatch({type:Bn.KEY_METRIC_SUBSCRIBE,metric:Kt(Kt(Kt(Kt(Kt({userId:a,type:o},c&&{subscribeStart:c}),f&&{subscribeEnd:f}),m&&{firstFrame:m}),v&&{streamAdded:v}),w&&{firstDecoded:w})})}massSubscribe(a,o,c,f){a.forEach(m=>{this.dispatch({type:Bn.KEY_METRIC_SUBSCRIBE,metric:Kt(Kt(Kt({userId:m.userId,type:m.type},o&&{subscribeStart:o}),c&&{subscribeEnd:c}),f&&{firstFrame:f})})})}get keyMetrics(){return this.state.keyMetrics}recordJoinChannelService(a,o){a.service==="gateway"&&Array.isArray(a.urls)&&(a.urls=a.urls.map(c=>c.replace(/(\d+)-\d+-\d+-(\d+)/,"$1-*-*-$2")));try{return typeof o!="number"?(this.dispatch({type:Bn.RECORD_JOIN_CHANNEL_SERVICE,record:Kt(Kt({},a),{},{sessionId:this.sessionId,cloudProxyMode:this.cloudProxyServerMode,uid:this.uid})}),this.state.joinChannelServiceRecords.length-1):(o<0||o>=this.state.joinChannelServiceRecords.length||this.dispatch({type:Bn.RECORD_JOIN_CHANNEL_SERVICE,record:a,index:o}),o)}catch{return 0}}resetJoinChannelServiceRecords(){this.dispatch({type:Bn.RESET_JOIN_CHANNEL_SERVICE_RECORDS})}resetKeyMetrics(){this.dispatch({type:Bn.RESET_KEY_METRICS})}get joinChannelServiceRecords(){try{return this.state.joinChannelServiceRecords}catch{return[]}}get avoidJoinStart(){return this.state.avoidJoinStart}set avoidJoinStart(a){this.dispatch({type:Bn.AVOID_JOIN_START,avoidJoinStart:a})}}let VS=function(r){return r.h264="h264",r.h265="h265",r.vp8="vp8",r.vp9="vp9",r.av1="av1",r}({});(function(r){r.opus="opus",r.pcma="pcma",r.pcmu="pcmu",r.g722="g722"})({});let iie=128,dxe=96,rie=1e3,zS=10,uxe=0;function sie(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Ln(r){for(var a=1;athis.currentUploadLogID&&(this.currentUploadLogID=a[a.length-1],this.emit("REPORT_LOG_UPLOAD",r))}};class hxe{constructor(a){Ar(this,"logger",void 0),Ar(this,"prefixLists",[]),this.logger=a}debug(){for(var a=arguments.length,o=new Array(a),c=0;c{for(let a in ud)if(Object.prototype.hasOwnProperty.call(ud,a)&&ud[a]===r)return a;return"DEFAULT"},z=new class{constructor(){Ar(this,"proxyServerURL",void 0),Ar(this,"logLevel",ud.DEBUG),Ar(this,"uploadState","collecting"),Ar(this,"uploadLogWaitingList",[]),Ar(this,"uploadLogUploadingList",[]),Ar(this,"uploadErrorCount",0),Ar(this,"currentLogID",0),Ar(this,"url",void 0),Ar(this,"extLog",(r,a)=>{this.appendLogToWaitingList(r,...a)})}debug(){for(var r=arguments.length,a=new Array(r),o=0;o{this.log(...a)},Date.now()-B8);let c=Math.max(0,Math.min(4,a[0]));if(a[0]=YH()+" Agora-SDK [".concat(g3(c),"]:"),this.appendLogToWaitingList(c,...a),c{this.uploadLog(...a)},Date.now()-B8);let c=Math.max(0,Math.min(4,a[0]));a[0]=YH()+" Agora-SDK [".concat(g3(c),"]:"),this.appendLogToWaitingList(c,...a)}appendLogToWaitingList(r){if(!ve("UPLOAD_LOG"))return;for(var a=arguments.length,o=new Array(a>1?a-1:0),c=1;c{typeof m=="object"&&(m=JSON.stringify(m)),f+="".concat(m," ")}),this.uploadLogWaitingList.push({payload_str:f,log_level:r,log_item_id:this.currentLogID++}),this.uploadState==="uploading"&&this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}startUpload(){this.uploadState="uploading",this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}async uploadLogs(){let r=this.uploadLogUploadingList,a={sdk_version:dd,process_id:ve("PROCESS_ID"),payload:JSON.stringify(r)};return wh(async()=>{let o=await Io.post(this.url||(this.proxyServerURL?"https://".concat(this.proxyServerURL,"/ls/?h=").concat(ve("LOG_UPLOAD_SERVER"),"&p=443&d=upload/v1"):"https://".concat(ve("LOG_UPLOAD_SERVER"),"/upload/v1")),a,{responseType:"text"});if(o.data!=="OK"){let c=new Error("unexpected upload log response");throw c.response=o,c}},()=>(this.uploadLogUploadingList=[],!1),o=>{let c={status:-1,message:o.message,errorRange:r.map(f=>f.log_item_id)};return o.response?(c.status=o.response.status,c.data=o.response.data,c.headers=o.response.headers):o.request&&(c.status=o.request.status),aie.reportLogUploadError(c),!0},{timeout:ve("UPLOAD_LOG_REQUEST_RETRY_INTERVAL"),maxRetryTimeout:ve("UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL")})}uploadLogInterval(){this.uploadLogUploadingList.length===0&&this.uploadLogWaitingList.length===0||(this.uploadLogUploadingList.length===0&&(this.uploadLogUploadingList=this.uploadLogWaitingList.splice(0,ve("UPLOAD_LOG_LENGTH_EACH_TIME"))),this.uploadLogs().then(()=>{this.uploadErrorCount=0,this.uploadLogWaitingList.length>0&&window.setTimeout(()=>this.uploadLogInterval(),ve("UPLOAD_LOG_INTERVAL"))}).catch(r=>{this.uploadErrorCount+=1,this.uploadErrorCount<2?window.setTimeout(()=>this.uploadLogInterval(),ve("UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1")):window.setTimeout(()=>this.uploadLogInterval(),ve("UPLOAD_LOG_RETRY_INTERVAL_V1"))}))}};var lie;function fxe(r){return Ms(r.reportId,"params.reportId",0,100,!1),Ms(r.category,"params.category",0,100,!1),Ms(r.event,"params.event",0,100,!1),Ms(r.label,"params.label",0,100,!1),Ti(r.value,"params.value",Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,!1),!0}(lie={}).FREE="free",lie.UPLOADING="uploading",function(r){r[r.MISC=0]="MISC",r[r.INTERNAL_EVENT=1]="INTERNAL_EVENT",r[r.PUBLIC_EVENT=2]="PUBLIC_EVENT",r[r.WEB_EVENT=3]="WEB_EVENT",r[r.INTERNAL_API=4]="INTERNAL_API",r[r.WEB_API=5]="WEB_API",r[r.PUBLIC_API=6]="PUBLIC_API"}({});let pxe={sid:"",lts:0,success:null,cname:null,uid:null,peer:null,cid:null,elapse:null,extend:null,vid:0},Rs=function(r){return r.PUBLISH="publish",r.SUBSCRIBE="subscribe",r.WS_COMPRESSOR_INIT="ws_compressor_init",r.SESSION_INIT="session_init",r.JOIN_CHOOSE_SERVER="join_choose_server",r.REQ_USER_ACCOUNT="req_user_account",r.JOIN_GATEWAY="join_gateway",r.REJOIN_GATEWAY="rejoin_gateway",r.STREAM_SWITCH="stream_switch",r.REQUEST_PROXY_WORKER_MANAGER="request_proxy_worker_manager",r.REQUEST_PROXY_APPCENTER="request_proxy_appcenter",r.FIRST_VIDEO_RECEIVED="first_video_received",r.FIRST_AUDIO_RECEIVED="first_audio_received",r.FIRST_VIDEO_DECODE="first_video_decode",r.FIRST_AUDIO_DECODE="first_audio_decode",r.ON_ADD_AUDIO_STREAM="on_add_audio_stream",r.ON_ADD_VIDEO_STREAM="on_add_video_stream",r.ON_UPDATE_STREAM="on_update_stream",r.ON_REMOVE_STREAM="on_remove_stream",r.USER_ANALYTICS="req_user_analytics",r.PC_STATS="pc_stats",r.UPDATE_REMOTE_RTPCAPABILITIES="update_remote_rtpCapabilities",r}({}),fr=function(r){return r.SESSION="io.agora.pb.Wrtc.Session",r.JOIN_CHOOSE_SERVER="io.agora.pb.Wrtc.JoinChooseServer",r.REQ_USER_ACCOUNT="io.agora.pb.Wrtc.ReqUserAccount",r.JOIN_GATEWAY="io.agora.pb.Wrtc.JoinGateway",r.RE_JOIN_GATEWAY="io.agora.pb.Wrtc.ReJoinGateway",r.PUBLISH="io.agora.pb.Wrtc.Publish",r.SUBSCRIBE="io.agora.pb.Wrtc.Subscribe",r.WS_COMPRESSOR_INIT="io.agora.pb.Wrtc.WsCompressorInit",r.STREAM_SWITCH="io.agora.pb.Wrtc.StreamSwitch",r.AUDIO_SENDING_STOPPED="io.agora.pb.Wrtc.AudioSendingStopped",r.VIDEO_SENDING_STOPPED="io.agora.pb.Wrtc.VideoSendingStopped",r.REQUEST_PROXY_APPCENTER="io.agora.pb.Wrtc.RequestProxyAppCenter",r.REQUEST_PROXY_WORKER_MANAGER="io.agora.pb.Wrtc.RequestProxyWorkerManager",r.API_INVOKE="io.agora.pb.Wrtc.ApiInvoke",r.FIRST_VIDEO_RECEIVED="io.agora.pb.Wrtc.FirstVideoReceived",r.FIRST_AUDIO_RECEIVED="io.agora.pb.Wrtc.FirstAudioReceived",r.FIRST_VIDEO_DECODE="io.agora.pb.Wrtc.FirstVideoDecode",r.FIRST_AUDIO_DECODE="io.agora.pb.Wrtc.FirstAudioDecode",r.ON_ADD_AUDIO_STREAM="io.agora.pb.Wrtc.OnAddAudioStream",r.ON_ADD_VIDEO_STREAM="io.agora.pb.Wrtc.OnAddVideoStream",r.ON_UPDATE_STREAM="io.agora.pb.Wrtc.OnUpdateStream",r.ON_REMOVE_STREAM="io.agora.pb.Wrtc.OnRemoveStream",r.JOIN_CHANNEL_TIMEOUT="io.agora.pb.Wrtc.JoinChannelTimeout",r.PEER_PUBLISH_STATUS="io.agora.pb.Wrtc.PeerPublishStatus",r.WORKER_EVENT="io.agora.pb.Wrtc.WorkerEvent",r.AP_WORKER_EVENT="io.agora.pb.Wrtc.APWorkerEvent",r.JOIN_WEB_PROXY_AP="io.agora.pb.Wrtc.JoinWebProxyAP",r.WEBSOCKET_QUIT="io.agora.pb.Wrtc.WebSocketQuit",r.USER_ANALYTICS="io.agora.pb.Wrtc.UserAnalytics",r.AUTOPLAY_FAILED="io.agora.pb.Wrtc.AutoplayFailed",r.PC_STATS="io.agora.pb.Wrtc.PCStats",r.UPDATE_REMOTE_RTPCAPABILITIES="io.agora.pb.Wrtc.UpdateRemoteRTPCapabilities",r}({});(function(r){r[r.WORKER_EVENT=156]="WORKER_EVENT",r[r.AP_WORKER_EVENT=160]="AP_WORKER_EVENT"})({}),function(r){r[r.SESSION=26]="SESSION",r[r.JOIN_CHOOSE_SERVER=27]="JOIN_CHOOSE_SERVER",r[r.REQ_USER_ACCOUNT=196]="REQ_USER_ACCOUNT",r[r.JOIN_GATEWAY=28]="JOIN_GATEWAY",r[r.PUBLISH=30]="PUBLISH",r[r.SUBSCRIBE=29]="SUBSCRIBE",r[r.WS_COMPRESSOR_INIT=9430]="WS_COMPRESSOR_INIT",r[r.STREAM_SWITCH=32]="STREAM_SWITCH",r[r.AUDIO_SENDING_STOPPED=33]="AUDIO_SENDING_STOPPED",r[r.VIDEO_SENDING_STOPPED=34]="VIDEO_SENDING_STOPPED",r[r.REQUEST_PROXY_APPCENTER=35]="REQUEST_PROXY_APPCENTER",r[r.REQUEST_PROXY_WORKER_MANAGER=36]="REQUEST_PROXY_WORKER_MANAGER",r[r.API_INVOKE=41]="API_INVOKE",r[r.FIRST_VIDEO_RECEIVED=348]="FIRST_VIDEO_RECEIVED",r[r.FIRST_AUDIO_RECEIVED=349]="FIRST_AUDIO_RECEIVED",r[r.FIRST_VIDEO_DECODE=350]="FIRST_VIDEO_DECODE",r[r.FIRST_AUDIO_DECODE=351]="FIRST_AUDIO_DECODE",r[r.ON_ADD_AUDIO_STREAM=352]="ON_ADD_AUDIO_STREAM",r[r.ON_ADD_VIDEO_STREAM=353]="ON_ADD_VIDEO_STREAM",r[r.ON_UPDATE_STREAM=356]="ON_UPDATE_STREAM",r[r.ON_REMOVE_STREAM=355]="ON_REMOVE_STREAM",r[r.JOIN_CHANNEL_TIMEOUT=407]="JOIN_CHANNEL_TIMEOUT",r[r.PEER_PUBLISH_STATUS=408]="PEER_PUBLISH_STATUS",r[r.WORKER_EVENT=156]="WORKER_EVENT",r[r.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",r[r.JOIN_WEB_PROXY_AP=700]="JOIN_WEB_PROXY_AP",r[r.WEBSOCKET_QUIT=671]="WEBSOCKET_QUIT",r[r.USER_ANALYTICS=1e4]="USER_ANALYTICS",r[r.AUTOPLAY_FAILED=9178]="AUTOPLAY_FAILED"}({});class v3{constructor(){Ar(this,"baseInfoMap",new Map),Ar(this,"proxyServer",void 0),Ar(this,"eventUploadTimer",void 0),Ar(this,"setSessionIdTimer",void 0),Ar(this,"url",void 0),Ar(this,"backupUrl",void 0),Ar(this,"_appId",void 0),Ar(this,"keyEventUploadPendingItems",[]),Ar(this,"normalEventUploadPendingItems",[]),Ar(this,"apiInvokeUploadPendingItems",[]),Ar(this,"apiInvokeCount",0),Ar(this,"ltsList",[]),Ar(this,"lastSendNormalEventTime",Date.now()),Ar(this,"customReportCounterTimer",void 0),Ar(this,"customReportCount",0),Ar(this,"extApiInvoke",async a=>{for(let o of a){let c=Ln(Ln({},o),{},{sid:null,invokeId:++this.apiInvokeCount,tag:vr.TRACER});this.sendApiInvoke(c)}}),this.eventUploadTimer=window.setInterval(this.doSend.bind(this),ve("EVENT_REPORT_SEND_INTERVAL")),this.setSessionIdTimer=window.setInterval(this.appendSessionId.bind(this),ve("EVENT_REPORT_SEND_INTERVAL"))}getBaseInfoBySessionId(a){return this.baseInfoMap.get(a)}adjustSessionStartTime(a){if(!this.baseInfoMap.has(a)&&!this.baseInfoMap.get(a))return void z.error("adjust session ".concat(a," start time, sid is not exist or info is undefined"));let o=this.baseInfoMap.get(a),c=Date.now(),f=o.startTime;o.startTime=c,z.debug("rewrite session ".concat(a," startTime: ").concat(c," , ").concat(c-f,"ms")),this.baseInfoMap.set(a,o)}setAppId(a){this._appId=a}reportApiInvoke(a,o,c){o.timeout=o.timeout||6e4,o.reportResult=o.reportResult===void 0||o.reportResult;let f=Date.now();this.apiInvokeCount+=1;let m=this.apiInvokeCount,v=()=>({tag:o.tag,invokeId:m,sid:a,name:o.name,apiInvokeTime:f,options:o.options,states:o.states||null}),w=!!ve("SHOW_REPORT_INVOKER_LOG");w&&z.info("".concat(o.name," start"),o.options);let C=!1;vs(o.timeout).then(()=>{C||(this.sendApiInvoke(Ln(Ln({},v()),{},{error:ce.API_INVOKE_TIMEOUT,success:!1})),z.debug("".concat(o.name," timeout")))});let R=new Ke(ce.UNEXPECTED_ERROR,"".concat(o.name,": this api invoke is end"));return{onSuccess:x=>{let L=()=>{if(C)throw R;return C=!0,this.sendApiInvoke(Ln(Ln({},v()),{},{success:!0},o.reportResult&&{result:x})),w&&z.info("".concat(o.name," onSuccess")),x};return c?Qne(L,o.name+"Success",c,()=>C=!0):L()},onError:x=>{let L=()=>{if(C)throw x;C=!0,this.sendApiInvoke(Ln(Ln({},v()),{},{success:!1,error:x})),w&&z.info("".concat(o.name," onFailure"),x.toString())};return c?Qne(L,o.name+"Error",c,()=>C=!0):L()}}}sessionInit(a,o){if(this.baseInfoMap.has(a))return;let c=Date.now(),f=this.createBaseInfo(a,c);f.cname=o.cname;let m=Object.assign({},{willUploadConsoleLog:ve("UPLOAD_LOG"),maxTouchPoints:navigator.maxTouchPoints,areaVersion:$H?"global":"oversea",areas:ve("AREAS")&&ve("AREAS").join(",")},o.extend),{stringUid:v,channelProfile:w,channelMode:C,isABTestSuccess:R,lsid:x,clientRole:L}=o,U=Date.now(),F=Ln(Ln({},f),{},{eventType:Rs.SESSION_INIT,appid:o.appid,browser:navigator.userAgent,buildFormat:o.buildFormat,build:qH,lts:U,elapse:U-c,extend:JSON.stringify(m),mode:o.mode,process:ve("PROCESS_ID"),appType:ve("APP_TYPE"),success:!0,version:dd,stringUid:v,channelProfile:w,channelMode:C,isABTestSuccess:R,lsid:x,clientType:20,clientRole:L,serviceId:ve("PROCESS_ID"),extensionID:ve("PLUGIN_INFO").join(",")||"",preload:o.preload?1:0});this.send({type:fr.SESSION,data:F},!0)}joinChooseServer(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln({},f),{},{eventType:Rs.JOIN_CHOOSE_SERVER,lts:m,eventElapse:o.elapse||m-o.lts,chooseServerAddr:o.csAddr,errorCode:o.ec,elapse:m-c.startTime,success:o.succ,chooseServerAddrList:JSON.stringify(o.serverList),uid:o.uid?parseInt(o.uid):null,cid:o.cid?parseInt(o.cid):null,chooseServerIp:o.csIp||"",opid:o.opid,unilbsServerIds:o.unilbsServerIds,extend:o.extend||void 0,isHttp3:o.isHttp3});this.send({type:fr.JOIN_CHOOSE_SERVER,data:v},!0)}reqUserAccount(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln({},f),{},{eventType:Rs.REQ_USER_ACCOUNT,lts:m,success:o.success,serverAddress:o.serverAddr,stringUid:o.stringUid,uid:o.uid,errorCode:o.errorCode,elapse:o.elapse||m-c.startTime,eventElapse:m-o.lts,extend:JSON.stringify(o.extend)});this.send({type:fr.REQ_USER_ACCOUNT,data:v},!0)}joinGateway(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info;o.vid&&(f.vid=o.vid),f.uid=o.uid,f.cid=o.cid;let m=Date.now(),{firstSuccess:v,avoidJoinStartTime:w,isProxy:C,addr:R}=o,x=m-(v&&w?w:c.startTime),L=Ln(Ln({},f),{},{eventType:Rs.JOIN_GATEWAY,lts:m,gatewayAddr:o.addr,success:o.succ,errorCode:o.ec,elapse:x,eventElapse:m-o.lts,firstSuccess:v,signalChannel:o.signalChannel}),U=L.success?1:0;if(o.succ&&(c.lastJoinSuccessTime=m),v)this.send({type:fr.JOIN_GATEWAY,data:L},!0);else{let F;if(R)if(C){let W=R.match(/h=(\d{1,3}-){3}\d{1,3}/g),K=R.match(/p=[0-9]{1,6}/g);F={isSuccess:U,gatewayIp:W&&W.length?W[0].split("=")[1].replace(/-/g,"."):"",port:K&&K.length?K[0].split("=")[1]:"",isProxy:C?1:0}}else{let W=R.match(/wss:\/\/(\d{1,3}-){3}\d{1,3}/g),K=R.match(/(:|p=)[0-9]{1,6}/g);F={isSuccess:U,gatewayIp:W&&W.length?W[0].split("//")[1].replace(/-/g,"."):"",port:K&&K.length?K[0].split(/:|p=/g)[1]:"",isProxy:C?1:0}}else F={isSuccess:U,gatewayIp:"",port:"",isProxy:C?1:0};delete L.success,delete L.eventType,delete L.firstSuccess,L.vid=Number(L.vid);let Z=Object.assign({},L,F,{eventType:Rs.REJOIN_GATEWAY});this.send({type:fr.RE_JOIN_GATEWAY,data:Z},!0)}}joinChannelTimeout(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=Date.now(),m=Ln(Ln({},c.info),{},{lts:f,timeout:o,elapse:f-c.startTime});this.send({type:fr.JOIN_CHANNEL_TIMEOUT,data:m},!0)}publish(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln({},f),{},{eventType:Rs.PUBLISH,lts:m,eventElapse:o.eventElapse,elapse:m-c.startTime,success:o.succ,errorCode:o.ec,videoName:o.videoName,audioName:o.audioName,screenName:o.screenName,screenshare:o.screenshare,audio:o.audio,video:o.video,p2pid:o.p2pid,publishRequestid:o.publishRequestid});this.send({type:fr.PUBLISH,data:v},!0)}subscribe(a,o,c){let f=this.baseInfoMap.get(a);if(!f)return;let m=f.info,v=Date.now(),w=Ln(Ln({},m),{},{eventType:Rs.SUBSCRIBE,lts:v,eventElapse:o.eventElapse,elapse:v-f.startTime,success:o.succ,errorCode:o.ec,video:o.video,audio:o.audio,subscribeRequestid:o.subscribeRequestid,p2pid:o.p2pid},c&&{extend:JSON.stringify({isMassSubscribe:!0})});typeof o.peerid=="string"?w.peerSuid=o.peerid:w.peer=o.peerid,this.send({type:fr.SUBSCRIBE,data:w},!0)}wsCompressorInit(a){var o;let c=[...tl(o=this.baseInfoMap).call(o)],f=c.length?c[0]:"UnableToGetSid",m=this.baseInfoMap.get(f);if(!m)return;let v=m.info,w=Date.now(),C=Ln(Ln({},v),{},{eventType:Rs.WS_COMPRESSOR_INIT,lts:w,eventElapse:a.eventElapse,elapse:w-m.startTime,status:a.status?1:2});this.send({type:fr.WS_COMPRESSOR_INIT,data:C},!0)}firstRemoteVideoDecode(a,o,c,f){let m=this.baseInfoMap.get(a);if(!m)return;let v=m.info,w=Date.now(),C=Ln(Ln(Ln({},v),f),{},{elapse:w-m.startTime,eventType:o,lts:w,firstDecodeFrame:Math.max(w-m.startTime,0),apEnd:Math.max(f.apEnd-m.startTime,0),apStart:Math.max(f.apStart-m.startTime,0),joinGwEnd:Math.max(f.joinGwEnd-m.startTime,0),joinGwStart:Math.max(f.joinGwStart-m.startTime,0),pcEnd:Math.max(f.pcEnd-m.startTime,0),pcStart:Math.max(f.pcStart-m.startTime,0),subscriberEnd:Math.max(f.subscriberEnd-m.startTime,0),subscriberStart:Math.max(f.subscriberStart-m.startTime,0),videoAddNotify:Math.max(f.videoAddNotify-m.startTime,0)});this.send({type:c,data:C},!0)}firstRemoteFrame(a,o,c,f){let m=this.baseInfoMap.get(a);if(!m)return;let v=m.info,w=Date.now(),C=Ln(Ln(Ln({},v),f),{},{elapse:w-m.startTime,eventType:o,lts:w});this.send({type:c,data:C},!0)}pcStats(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln(Ln({},f),o),{},{vid:f.vid===void 0?0:Number(f.vid),elapse:m-c.startTime,eventType:Rs.PC_STATS,lts:m});this.send({type:fr.PC_STATS,data:v},!0)}updateRemoteRTPCapabilities(a,o){if(a){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln(Ln({},f),o),{},{vid:f.vid===void 0?0:Number(f.vid),eventType:Rs.UPDATE_REMOTE_RTPCAPABILITIES,lts:m});this.send({type:fr.UPDATE_REMOTE_RTPCAPABILITIES,data:v},!0)}}onGatewayStream(a,o,c,f){let m=this.baseInfoMap.get(a);if(!m)return;let v=m.info,w=Date.now(),C=Ln(Ln(Ln({},v),f),{},{eventType:o,lts:w});this.send({type:c,data:C},!0)}streamSwitch(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln({},f),{},{eventType:Rs.STREAM_SWITCH,lts:m,isDual:o.isdual,elapse:m-c.startTime,success:o.succ});this.send({type:fr.STREAM_SWITCH,data:v},!0)}requestProxyAppCenter(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln({},f),{},{eventType:Rs.REQUEST_PROXY_APPCENTER,lts:m,eventElapse:m-o.lts,elapse:m-c.startTime,APAddr:o.APAddr,workerManagerList:o.workerManagerList,response:o.response,errorCode:o.ec,success:o.succ});this.send({type:fr.REQUEST_PROXY_APPCENTER,data:v},!0)}requestProxyWorkerManager(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln({},f),{},{eventType:Rs.REQUEST_PROXY_WORKER_MANAGER,lts:m,eventElapse:m-o.lts,elapse:m-c.startTime,workerManagerAddr:o.workerManagerAddr,response:o.response,errorCode:o.ec,success:o.succ});this.send({type:fr.REQUEST_PROXY_WORKER_MANAGER,data:v},!0)}setProxyServer(a){this.proxyServer=a,a?z.debug("reportProxyServerurl: ".concat(a)):z.debug("disable reportProxyServerurl: ".concat(a))}peerPublishStatus(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln({},f),{},{subscribeElapse:o.subscribeElapse,peer:o.peer,peerPublishDuration:Math.max(o.audioPublishDuration,o.videoPublishDuration),audiotag:o.audioPublishDuration>0?1:-1,videotag:o.videoPublishDuration>0?1:-1,lts:m,elapse:m-c.startTime,joinChannelSuccessElapse:m-(c.lastJoinSuccessTime||m),peerPublishDurationVideo:o.videoPublishDuration,peerPublishDurationAudio:o.audioPublishDuration});this.send({type:fr.PEER_PUBLISH_STATUS,data:v},!0)}workerEvent(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now();(function(v,w,C){let R=v[w];if(!R||typeof R!="string")return[v];v[w]="";let x=Df(JSON.stringify(v)),L=0,U=[],F=0;for(let Z=0;Zthis.send({type:fr.WORKER_EVENT,data:v},!0))}apworkerEvent(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln(Ln({},f),o),{},{elapse:m-c.startTime,lts:m});this.send({type:fr.AP_WORKER_EVENT,data:v},!0)}joinWebProxyAP(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln(Ln({},f),o),{},{elapse:m-c.startTime,lts:m,extend:o.extend||void 0});this.send({type:fr.JOIN_WEB_PROXY_AP,data:v},!0)}WebSocketQuit(a,o){let c=this.baseInfoMap.get(a);if(!c)return;let f=c.info,m=Date.now(),v=Ln(Ln(Ln({},f),o),{},{elapse:m-c.startTime,lts:m});this.send({type:fr.WEBSOCKET_QUIT,data:v},!0)}async sendCustomReportMessage(a,o){if(this.customReportCount+=o.length,this.customReportCount>ve("CUSTOM_REPORT_LIMIT"))throw new Ke(ce.CUSTOM_REPORT_FREQUENCY_TOO_HIGH);this.customReportCounterTimer||(this.customReportCounterTimer=window.setInterval(()=>{this.customReportCount=0},5e3));let c=Date.now(),f=o.map(m=>({type:fr.USER_ANALYTICS,data:Ln(Ln({sid:a},m),{},{lts:c})}));try{ve("NEW_REPORT_SERVER")?await this.postDataToStatsCollector2(f):await this.postDataToStatsCollector(f)}catch(m){throw z.error("send custom report message failed",m.toString()),new Ke(ce.CUSTOM_REPORT_SEND_FAILED,m.message)}}sendApiInvoke(a){let o=ve("NOT_REPORT_EVENT");if(a.tag&&Tt(o)&&Tt(o).call(o,a.tag))return!1;if(a.sid===null)return this.apiInvokeUploadPendingItems.push(a),!1;let c=this.baseInfoMap.get(a.sid);if(!c)return this.apiInvokeUploadPendingItems.push(a),!1;let{cname:f,uid:m,cid:v}=c.info,w;if(a.lts=a.lts||Date.now(),a.error)if(a.error instanceof Ke){let{code:R,message:x}=a.error;w=R||x||a.error.toString()}else w=a.error.toString();let C={invokeId:a.invokeId,sid:a.sid,cname:f,cid:v,uid:m,lts:a.lts,success:a.success,elapse:a.lts-c.startTime,execElapse:a.lts-a.apiInvokeTime,apiName:a.name,options:a.options?JSON.stringify(a.options):void 0,execStates:a.states?JSON.stringify(a.states):void 0,execResult:a.result?JSON.stringify(a.result):void 0,errorCode:a.error?w:void 0,errorMsg:a.error?JSON.stringify(a.error):void 0};return this.send({type:fr.API_INVOKE,data:C},!1),!0}appendSessionId(){v3.__CLIENT_LIST__.forEach(a=>{if(a._sessionId){let o=this.apiInvokeUploadPendingItems.length;for(let c=0;cve("NORMAL_EVENT_QUEUE_CAPACITY")&&this.normalEventUploadPendingItems.splice(0,1),this.normalEventUploadPendingItems.length>=10&&this.sendItems(this.normalEventUploadPendingItems,!1)}doSend(){this.keyEventUploadPendingItems.length>0&&this.sendItems(this.keyEventUploadPendingItems,!0),this.normalEventUploadPendingItems.length>0&&Date.now()-this.lastSendNormalEventTime>=5e3&&this.sendItems(this.normalEventUploadPendingItems,!1)}sendItems(a,o){let c=[],f=[];for(;a.length;){let v=a.shift();c.length<20?c.push(v):f.push(v)}a.push(...f);for(let v of[...c]){var m;this.ltsList.indexOf(v.data.lts)!==-1?(v.data.lts=this.ltsList[this.ltsList.length-1]+1,this.ltsList.push(v.data.lts)):(this.ltsList.push(v.data.lts),JA(m=this.ltsList).call(m,(w,C)=>w-C))}return o||(this.lastSendNormalEventTime=Date.now()),ve("ENABLE_EVENT_REPORT")&&c.length&&(ve("NEW_REPORT_SERVER")?this.postDataToStatsCollector2(c):this.postDataToStatsCollector(c)).catch((v=>w=>{ve("EVENT_REPORT_RETRY")&&(o?this.keyEventUploadPendingItems=this.keyEventUploadPendingItems.concat(v):(this.normalEventUploadPendingItems=this.normalEventUploadPendingItems.concat(v),this.normalEventUploadPendingItems.length>ve("NORMAL_EVENT_QUEUE_CAPACITY")&&(this.normalEventUploadPendingItems.splice(0,this.normalEventUploadPendingItems.length-ve("NORMAL_EVENT_QUEUE_CAPACITY")),z.warning("report: drop normal events"))))})(c)),a}async postDataToStatsCollector2(a){yr.networkState===eo.OFFLINE&&await Ct.race([yr.onlineWaiter,vs(2*kr.maxRetryTimeout)]);let o=m=>{let v=new Uint8Array;return m.forEach(w=>{let C=FH(JSON.stringify(w.data)),R=new ArrayBuffer(5),x=(U=>{let F=0;return Object.entries(fr).forEach(Z=>{let[W,K]=Z;K===U.type&&(F=EventNameToID[W])}),F})(w),L=new DataView(R);L.setUint16(0,C.byteLength,!0),L.setUint8(2,255&x),L.setUint8(3,x>>>8&255),L.setUint8(4,x>>>16&255),v=zne(v,new Uint8Array(R)),v=zne(v,C)}),v},c="event",f=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(ve("NEW_REPORT_SERVER_DOMAINS")[0],"&p=443&d=").concat(c):"https://".concat(ve("NEW_REPORT_SERVER_DOMAINS")[0],"/").concat(c);for(let m=0;m<2;m+=1){m===1&&(f=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(ve("NEW_REPORT_SERVER_DOMAINS")[1],"&p=443&d=").concat(c):"https://".concat(ve("NEW_REPORT_SERVER_DOMAINS")[1],"/").concat(c));try{await WH(f,{timeout:1e4,data:o(a),headers:Ln(Ln({biz:"webrtc",sendts:Math.round(Date.now()/1e3),debug:"false"},this._appId&&{appid:this._appId}),{},{"Content-Type":"application/octet-stream"})},!0)}catch(v){if(m===1)throw v;continue}return}}async postDataToStatsCollector(a){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1],c={msgType:"EventMessages",sentTs:Math.round(Date.now()/1e3),payloads:a.map(v=>JSON.stringify(v)),vid:(v=>{let w=v&&v.data.sid&&this.baseInfoMap.get(v.data.sid);return w&&w.info.vid&&+w.info.vid||0})(a[0])};yr.networkState===eo.OFFLINE&&await Ct.race([yr.onlineWaiter,vs(2*kr.maxRetryTimeout)]);let f=o?"/events/proto-raws":"/events/messages",m=this.url||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(ve("EVENT_REPORT_DOMAIN"),"&p=").concat(ve("STATS_COLLECTOR_PORT"),"&d=").concat(f):"https://".concat(ve("EVENT_REPORT_DOMAIN"),":").concat(ve("STATS_COLLECTOR_PORT")).concat(f));for(let v=0;v<2;v+=1){v===1&&(m=this.backupUrl||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(ve("EVENT_REPORT_BACKUP_DOMAIN"),"&p=").concat(ve("STATS_COLLECTOR_PORT"),"&d=").concat(f):"https://".concat(ve("EVENT_REPORT_BACKUP_DOMAIN"),":").concat(ve("STATS_COLLECTOR_PORT")).concat(f)));try{o?await lxe(m,{timeout:1e4,data:c}):await WH(m,{timeout:1e4,data:c})}catch(w){if(v===1)throw w;continue}return}}createBaseInfo(a,o){let c=Object.assign({},pxe);return c.sid=a,this.baseInfoMap.set(a,{info:c,startTime:o}),c}reportResourceTiming(a,o){let c=performance.getEntriesByName(a),f=c[c.length-1];f&&this.reportApiInvoke(o,{name:"Client.resourceTiming",options:f,tag:vr.TRACER}).onSuccess()}}function hn(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(a,o,c){let f=c.value;if(typeof f=="function"){let m=r.className||a.__className__||(a.constructor.name==="AgoraRTCClient"?"Client":a.constructor.name);c.value=function(){for(var v=arguments.length,w=new Array(v),C=0;C(x.onSuccess(r.reportResult&&U),U)).catch(U=>{throw x.onError(U),U}):(x.onSuccess(r.reportResult&&L),L)}catch(L){throw x.onError(L),L}}}return c}}Ar(v3,"__CLIENT_LIST__",[]);let $t=new v3;aie.on("REPORT_LOG_UPLOAD",r=>{r.networkState=yr.networkState,$t.reportApiInvoke(null,{name:"logUploadError",options:r,tag:vr.TRACER}).onSuccess("logUploadError")});let mxe=["CHINA","GLOBAL"],Ks=function(){let r="us".concat("erna","me"),a="pa".concat("sswo","rd"),o=["t","s","t"];o.splice(1,0,"e");let c=o.join(""),f=[];for(let w=0;w<6;w++)f.push("1");let m=f.join(""),v={};return v[r]=c,v[a]=m,Object.assign(v,{turnServerURL:"",tcpport:3433,udpport:3478,forceturn:!1})}();window.DEFAULT_TURN_CONFIG=Ks,$H||(es.WEBCS_DOMAIN=["ap-web-1-oversea.agora.io","ap-web-1-north-america.agora.io"],es.WEBCS_DOMAIN_BACKUP_LIST=["ap-web-2-oversea.agora.io","ap-web-2-north-america.agora.io"],es.PROXY_CS=["proxy-ap-web-oversea.agora.io","proxy-ap-web-america.agora.io"],es.CDS_AP=["cds-ap-web-oversea.agora.io","cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],es.ACCOUNT_REGISTER=["sua-ap-web-oversea.agora.io","sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],es.UAP_AP=["uap-ap-web-oversea.agora.io","uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],es.LOG_UPLOAD_SERVER="logservice-oversea.agora.io",es.EVENT_REPORT_DOMAIN="statscollector-1-oversea.agora.io",es.EVENT_REPORT_BACKUP_DOMAIN="statscollector-2-oversea.agora.io",es.PROXY_SERVER_TYPE3="webrtc-cloud-proxy.agora.io",es.AREAS=["NORTH_AMERICA","OVERSEA"]);let cie=[[0,1,2,3,4,5,5],[0,2,2,3,4,5,5],[0,3,3,3,4,5,5],[0,4,4,4,4,5,5],[0,5,5,5,5,5,5]],A0=[];function Wy(r,a){return!!a&&A0.some(o=>o.uid===r&&o.channelName===a)}v3.__CLIENT_LIST__=A0;var gxe=jee.forEach,die=Sw("forEach")?[].forEach:function(r){return gxe(this,r,arguments.length>1?arguments[1]:void 0)};Ni({target:"Array",proto:!0,forced:[].forEach!=die},{forEach:die});var vxe=vc("Array").forEach,yxe=ad,_xe=fs,Exe=b,wxe=vxe,XH=Array.prototype,Sxe={DOMTokenList:!0,NodeList:!0},bxe=function(r){var a=r.forEach;return r===XH||Exe(XH,r)&&a===XH.forEach||_xe(Sxe,yxe(r))?wxe:a},Cxe=l(bxe),Txe=Ro,uie=Ow;Ni({target:"Object",stat:!0,forced:d(function(){uie(1)})},{keys:function(r){return uie(Txe(r))}});var hie=l(Me.Object.keys),Rxe=l(bx),xxe=Ni,Axe=e3,Ixe=E([].reverse),fie=[1,2];xxe({target:"Array",proto:!0,forced:String(fie)===String(fie.reverse())},{reverse:function(){return Axe(this)&&(this.length=this.length),Ixe(this)}});var Nxe=vc("Array").reverse,Oxe=b,Pxe=Nxe,JH=Array.prototype,Lxe=function(r){var a=r.reverse;return r===JH||Oxe(JH,r)&&a===JH.reverse?Pxe:a},pie=Lxe,Dxe=l(pie),kxe=Ni,mie=e3,Mxe=Pl,jxe=it,gie=Jv,Uxe=lh,Fxe=xt,Bxe=RS,Vxe=Qi,zxe=tA,Hxe=xee("slice"),Gxe=Vxe("species"),QH=Array,Wxe=Math.max;kxe({target:"Array",proto:!0,forced:!Hxe},{slice:function(r,a){var o,c,f,m=Fxe(this),v=Uxe(m),w=gie(r,v),C=gie(a===void 0?v:a,v);if(mie(m)&&(o=m.constructor,(Mxe(o)&&(o===QH||mie(o.prototype))||jxe(o)&&(o=o[Gxe])===null)&&(o=void 0),o===QH||o===void 0))return zxe(m,w,C);for(c=new(o===void 0?QH:o)(Wxe(C-w,0)),f=0;w1&&arguments[1]!==void 0?arguments[1]:"",arguments.length>2?arguments[2]:void 0),X(this,"name","AgoraRTCException")}print(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error";return super.print(a,z)}throw(){super.throw(z)}}function z8(r){if(typeof r!="string"||!/^[a-zA-Z0-9 \!\#\$\%\&\(\)\+\-\:\;\<\=\.\>\?\@\[\]\^\_\{\}\|\~\,]{1,64}$/.test(r))throw z.error("Invalid Channel Name ".concat(r)),new De(ce.INVALID_PARAMS,"The length must be within 64 bytes. The supported characters: a-z,A-Z,0-9,space,!, #, $, %, &, (, ), +, -, :, ;, <, =, ., >, ?, @, [, ], ^, _, {, }, |, ~, ,")}function H8(r){if(!function(a){return typeof a=="number"&&Math.floor(a)===a&&0<=a&&a<=4294967295}(r)&&!Une(r,1,255))throw new De(ce.INVALID_PARAMS,"[String uid] Length of the string: [1,255]. ASCII characters only. [Number uid] The value range is [0,10000]");typeof r=="string"&&z.warn("You input a string as the user ID, to ensure better end-user experience, Agora highly suggests not using a string as the user ID.")}let xs=function(r){return r.TRANSCODE="mix_streaming",r.RAW="raw_streaming",r.INJECT="inject_streaming",r}({}),HS=function(r){return r[r.INJECT_STREAM_STATUS_START_SUCCESS=0]="INJECT_STREAM_STATUS_START_SUCCESS",r[r.INJECT_STREAM_STATUS_START_ALREADY_EXISTS=1]="INJECT_STREAM_STATUS_START_ALREADY_EXISTS",r[r.INJECT_STREAM_STATUS_START_UNAUTHORIZED=2]="INJECT_STREAM_STATUS_START_UNAUTHORIZED",r[r.INJECT_STREAM_STATUS_START_TIMEOUT=3]="INJECT_STREAM_STATUS_START_TIMEOUT",r[r.INJECT_STREAM_STATUS_START_FAILED=4]="INJECT_STREAM_STATUS_START_FAILED",r[r.INJECT_STREAM_STATUS_STOP_SUCCESS=5]="INJECT_STREAM_STATUS_STOP_SUCCESS",r[r.INJECT_STREAM_STATUS_STOP_NOT_FOUND=6]="INJECT_STREAM_STATUS_STOP_NOT_FOUND",r[r.INJECT_STREAM_STATUS_STOP_UNAUTHORIZED=7]="INJECT_STREAM_STATUS_STOP_UNAUTHORIZED",r[r.INJECT_STREAM_STATUS_STOP_TIMEOUT=8]="INJECT_STREAM_STATUS_STOP_TIMEOUT",r[r.INJECT_STREAM_STATUS_STOP_FAILED=9]="INJECT_STREAM_STATUS_STOP_FAILED",r[r.INJECT_STREAM_STATUS_BROKEN=10]="INJECT_STREAM_STATUS_BROKEN",r}({}),sAe={alpha:1,height:640,width:360,x:0,y:0,zOrder:0,audioChannel:0},nG={x:0,y:0,width:160,height:160,zOrder:255,alpha:1};function iG(r,a){Ms(r.url,"".concat(a,".url"),1,1e3,!1),gr(r.x)||Ti(r.x,"".concat(a,".x"),0,1e4),gr(r.y)||Ti(r.y,"".concat(a,".y"),0,1e4),gr(r.width)||Ti(r.width,"".concat(a,".width"),0,1e4),gr(r.height)||Ti(r.height,"".concat(a,".height"),0,1e4),gr(r.zOrder)||Ti(r.zOrder,"".concat(a,".zOrder"),0,255),gr(r.alpha)||Ti(r.alpha,"".concat(a,".alpha"),0,1,!1)}let aAe={audioBitrate:48,audioChannels:1,audioSampleRate:48e3,backgroundColor:0,height:360,lowLatency:!1,videoBitrate:400,videoCodecProfile:100,videoCodecType:1,videoFrameRate:15,videoGop:30,width:640,images:[],userConfigs:[],userConfigExtraInfo:""},oAe={audioBitrate:48,audioChannels:2,audioVolume:100,audioSampleRate:48e3,height:0,width:0,videoBitrate:400,videoFramerate:15,videoGop:30},kf=function(r){return r.WARNING="@live_uap-warning",r.ERROR="@line_uap-error",r.PUBLISH_STREAM_STATUS="@live_uap-publish-status",r.INJECT_STREAM_STATUS="@live_uap-inject-status",r.WORKER_STATUS="@live_uap-worker-status",r.REQUEST_NEW_ADDRESS="@live_uap-request-address",r}({}),G8=function(r){return r.REQUEST_WORKER_MANAGER_LIST="@live_req_worker_manager",r}({}),ts=function(r){return r[r.LIVE_STREAM_RESPONSE_SUCCEED=200]="LIVE_STREAM_RESPONSE_SUCCEED",r[r.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM=454]="LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM",r[r.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR=450]="LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR",r[r.LIVE_STREAM_RESPONSE_BAD_STREAM=451]="LIVE_STREAM_RESPONSE_BAD_STREAM",r[r.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR=400]="LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR",r[r.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST=404]="LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST",r[r.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED=456]="LIVE_STREAM_RESPONSE_NOT_AUTHORIZED",r[r.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE=457]="LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE",r[r.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN=429]="LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN",r[r.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH=452]="LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH",r[r.LIVE_STREAM_RESPONSE_NOT_SUPPORTED=453]="LIVE_STREAM_RESPONSE_NOT_SUPPORTED",r[r.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM=455]="LIVE_STREAM_RESPONSE_MAX_STREAM_NUM",r[r.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR=500]="LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR",r[r.LIVE_STREAM_RESPONSE_WORKER_LOST=501]="LIVE_STREAM_RESPONSE_WORKER_LOST",r[r.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT=502]="LIVE_STREAM_RESPONSE_RESOURCE_LIMIT",r[r.LIVE_STREAM_RESPONSE_WORKER_QUIT=503]="LIVE_STREAM_RESPONSE_WORKER_QUIT",r[r.ERROR_FAIL_SEND_MESSAGE=504]="ERROR_FAIL_SEND_MESSAGE",r[r.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE=30]="PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE",r[r.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT=31]="PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT",r[r.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH=32]="PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH",r[r.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN=33]="PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN",r}({});function vie(r){if(!r.channelName)throw new De(ce.INVALID_PARAMS,"invalid channelName in info");if(typeof r.uid!="number")throw new De(ce.INVALID_PARAMS,"invalid uid in info, uid must be a number");return r.token&&Ms(r.token,"info.token",1,2047),H8(r.uid),z8(r.channelName),!0}let io=function(r){return r[r.SetSdkProfile=0]="SetSdkProfile",r[r.SetSourceChannel=1]="SetSourceChannel",r[r.SetSourceUserId=2]="SetSourceUserId",r[r.SetDestChannel=3]="SetDestChannel",r[r.StartPacketTransfer=4]="StartPacketTransfer",r[r.StopPacketTransfer=5]="StopPacketTransfer",r[r.UpdateDestChannel=6]="UpdateDestChannel",r[r.Reconnect=7]="Reconnect",r[r.SetVideoProfile=8]="SetVideoProfile",r}({}),mm=function(r){return r.NETWORK_DISCONNECTED="NETWORK_DISCONNECTED",r.NETWORK_CONNECTED="NETWORK_CONNECTED",r.PACKET_JOINED_SRC_CHANNEL="PACKET_JOINED_SRC_CHANNEL",r.PACKET_JOINED_DEST_CHANNEL="PACKET_JOINED_DEST_CHANNEL",r.PACKET_SENT_TO_DEST_CHANNEL="PACKET_SENT_TO_DEST_CHANNEL",r.PACKET_RECEIVED_VIDEO_FROM_SRC="PACKET_RECEIVED_VIDEO_FROM_SRC",r.PACKET_RECEIVED_AUDIO_FROM_SRC="PACKET_RECEIVED_AUDIO_FROM_SRC",r.PACKET_UPDATE_DEST_CHANNEL="PACKET_UPDATE_DEST_CHANNEL",r.PACKET_UPDATE_DEST_CHANNEL_REFUSED="PACKET_UPDATE_DEST_CHANNEL_REFUSED",r.PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE="PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE",r}({}),il=function(r){return r.RELAY_STATE_IDLE="RELAY_STATE_IDLE",r.RELAY_STATE_CONNECTING="RELAY_STATE_CONNECTING",r.RELAY_STATE_RUNNING="RELAY_STATE_RUNNING",r.RELAY_STATE_FAILURE="RELAY_STATE_FAILURE",r}({}),GS=function(r){return r.RELAY_OK="RELAY_OK",r.SERVER_CONNECTION_LOST="SERVER_CONNECTION_LOST",r.SRC_TOKEN_EXPIRED="SRC_TOKEN_EXPIRED",r.DEST_TOKEN_EXPIRED="DEST_TOKEN_EXPIRED",r}({}),pi=function(r){return r.High="high",r.Low="low",r.Audio="audio",r.Screen="screen",r.ScreenLow="screen_low",r}({}),Ir=function(r){return r.DISCONNECT="disconnect",r.CONNECTION_STATE_CHANGE="connection-state-change",r.NETWORK_QUALITY="network-quality",r.STREAM_TYPE_CHANGE="stream-type-change",r.IS_P2P_DISCONNECTED="is-p2p-dis",r.DISCONNECT_P2P="dis-p2p",r.REQUEST_NEW_GATEWAY_LIST="req-gate-url",r.NEED_RENEW_SESSION="need-sid",r.REQUEST_P2P_CONNECTION_PARAMS="request-p2p-connection-params",r.JOIN_RESPONSE="join-response",r.REQUEST_DC_CONNECTION_PARAMS="request-dc-connection-params",r.RESET_CONNECTION_EVENTS="reset-connection-events",r.DATACHANNEL_PRECONNECT="datachannel_preconnect",r.DATACHANNEL_FAILBACK="datachannel_failback",r.RESET_SIGNAL="reset-signal",r}({}),y3=function(r){return r.P2P_DISCONNECTED="P2P_DISCONNECTED",r.A_ROUND_WS_FAILED="A_ROUND_WS_FAILED",r.TIMEOUT="TIMEOUT",r.UNKNOWN_REASON="UNKNOWN_REASON",r}({}),ys=function(r){return r[r.Nothing=0]="Nothing",r[r.Audio=1]="Audio",r[r.LwoVideo=2]="LwoVideo",r[r.Video=4]="Video",r[r.Data=8]="Data",r[r.DataStream0=256]="DataStream0",r[r.DataStream1=512]="DataStream1",r[r.DataStream2=1024]="DataStream2",r[r.DataStream3=2048]="DataStream3",r[r.DataStream4=4096]="DataStream4",r[r.DataStream5=8192]="DataStream5",r[r.DataStream6=16384]="DataStream6",r[r.DataStream7=32768]="DataStream7",r}({}),yie=function(r){return r[r.websocket=0]="websocket",r[r.datachannel=1]="datachannel",r}({}),ai=function(r){return r.CHINA="CHINA",r.ASIA="ASIA",r.NORTH_AMERICA="NORTH_AMERICA",r.EUROPE="EUROPE",r.JAPAN="JAPAN",r.INDIA="INDIA",r.KOREA="KOREA",r.HKMC="HKMC",r.US="US",r.OCEANIA="OCEANIA",r.SOUTH_AMERICA="SOUTH_AMERICA",r.AFRICA="AFRICA",r.OVERSEA="OVERSEA",r.GLOBAL="GLOBAL",r.EXTENSIONS="EXTENSIONS",r}({}),_ie=[ai.AFRICA,ai.ASIA,ai.CHINA,ai.EUROPE,ai.GLOBAL,ai.INDIA,ai.JAPAN,ai.NORTH_AMERICA,ai.OCEANIA,ai.OVERSEA,ai.SOUTH_AMERICA],sa=function(r){return r.CHINA="CN",r.ASIA="AS",r.NORTH_AMERICA="NA",r.EUROPE="EU",r.JAPAN="JP",r.INDIA="IN",r.KOREA="KR",r.HKMC="HK",r.US="US",r.OCEANIA="OC",r.SOUTH_AMERICA="SA",r.AFRICA="AF",r.OVERSEA="OVERSEA",r.GLOBAL="GLOBAL",r.EXTENSIONS="GLOBAL",r}({}),W8={CHINA:{},ASIA:{CODE:sa.ASIA,WEBCS_DOMAIN:["ap-web-1-asia.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-asia.agora.io"],PROXY_CS:["proxy-ap-web-asia.agora.io"],CDS_AP:["cds-ap-web-asia.agora.io","cds-ap-web-asia2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-asia.agora.io","sua-ap-web-asia2.agora.io"],UAP_AP:["uap-ap-web-asia.agora.io","uap-ap-web-asia2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-asia.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-asia.agora.io"],LOG_UPLOAD_SERVER:["logservice-asia.agora.io"],PROXY_SERVER_TYPE3:["southeast-asia.webrtc-cloud-proxy.sd-rtn.com"]},NORTH_AMERICA:{CODE:sa.NORTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-north-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-north-america.agora.io"],PROXY_CS:["proxy-ap-web-america.agora.io"],CDS_AP:["cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],UAP_AP:["uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-north-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-north-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-north-america.agora.io"],PROXY_SERVER_TYPE3:["east-usa.webrtc-cloud-proxy.sd-rtn.com"]},EUROPE:{CODE:sa.EUROPE,WEBCS_DOMAIN:["ap-web-1-europe.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-europe.agora.io"],PROXY_CS:["proxy-ap-web-europe.agora.io"],CDS_AP:["cds-ap-web-europe.agora.io","cds-ap-web-europe2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-europe.agora.io","sua-ap-web-europe.agora.io"],UAP_AP:["uap-ap-web-europe.agora.io","uap-ap-web-europe2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-europe.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-europe.agora.io"],LOG_UPLOAD_SERVER:["logservice-europe.agora.io"],PROXY_SERVER_TYPE3:["europe.webrtc-cloud-proxy.sd-rtn.com"]},JAPAN:{CODE:sa.JAPAN,WEBCS_DOMAIN:["ap-web-1-japan.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-japan.agora.io"],PROXY_CS:["proxy-ap-web-japan.agora.io"],CDS_AP:["cds-ap-web-japan.agora.io","cds-ap-web-japan2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-japan.agora.io","sua-ap-web-japan2.agora.io"],UAP_AP:["uap-ap-web-japan.agora.io","uap-ap-web-japan2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-japan.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-japan.agora.io"],LOG_UPLOAD_SERVER:["logservice-japan.agora.io"],PROXY_SERVER_TYPE3:["japan.webrtc-cloud-proxy.sd-rtn.com"]},INDIA:{CODE:sa.INDIA,WEBCS_DOMAIN:["ap-web-1-india.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-india.agora.io"],PROXY_CS:["proxy-ap-web-india.agora.io"],CDS_AP:["cds-ap-web-india.agora.io","cds-ap-web-india2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-india.agora.io","sua-ap-web-india2.agora.io"],UAP_AP:["uap-ap-web-india.agora.io","uap-ap-web-india2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-india.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-india.agora.io"],LOG_UPLOAD_SERVER:["logservice-india.agora.io"],PROXY_SERVER_TYPE3:["india.webrtc-cloud-proxy.sd-rtn.com"]},KOREA:{CODE:sa.KOREA,WEBCS_DOMAIN:["ap-web-1-korea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-korea.agora.io"],PROXY_CS:["proxy-ap-web-korea.agora.io"],CDS_AP:["cds-ap-web-korea.agora.io","cds-ap-web-korea2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-korea.agora.io","sua-ap-web-korea2.agora.io"],UAP_AP:["uap-ap-web-korea.agora.io","uap-ap-web-korea2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-korea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-korea.agora.io"],LOG_UPLOAD_SERVER:["logservice-korea.agora.io"],PROXY_SERVER_TYPE3:["korea.webrtc-cloud-proxy.sd-rtn.com"]},HKMC:{CODE:sa.HKMC,WEBCS_DOMAIN:["ap-web-1-hkmc.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-hkmc.agora.io"],PROXY_CS:["proxy-ap-web-hkmc.agora.io"],CDS_AP:["cds-ap-web-hkmc.agora.io","cds-ap-web-hkmc2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-hkmc.agora.io","sua-ap-web-hkmc2.agora.io"],UAP_AP:["uap-ap-web-hkmc.agora.io","uap-ap-web-hkmc2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-hkmc.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-hkmc.agora.io"],LOG_UPLOAD_SERVER:["logservice-hkmc.agora.io"],PROXY_SERVER_TYPE3:["hkmc.webrtc-cloud-proxy.sd-rtn.com"]},US:{CODE:sa.US,WEBCS_DOMAIN:["ap-web-1-us.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-us.agora.io"],PROXY_CS:["proxy-ap-web-us.agora.io"],CDS_AP:["cds-ap-web-us.agora.io","cds-ap-web-us2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-us.agora.io","sua-ap-web-us2.agora.io"],UAP_AP:["uap-ap-web-us.agora.io","uap-ap-web-us2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-us.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-us.agora.io"],LOG_UPLOAD_SERVER:["logservice-us.agora.io"],PROXY_SERVER_TYPE3:["us.webrtc-cloud-proxy.sd-rtn.com"]},OVERSEA:{CODE:sa.OVERSEA,WEBCS_DOMAIN:["ap-web-1-oversea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oversea.agora.io"],PROXY_CS:["proxy-ap-web-oversea.agora.io"],CDS_AP:["cds-ap-web-oversea.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oversea.agora.io"],UAP_AP:["uap-ap-web-oversea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oversea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oversea.agora.io"],LOG_UPLOAD_SERVER:["logservice-oversea.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.agora.io"]},GLOBAL:{CODE:sa.GLOBAL,WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-ap-web-3.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-ap-web-3.agora.io"],UAP_AP:["uap-ap-web-1.agora.io","uap-ap-web-3.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2.agora.io"],LOG_UPLOAD_SERVER:["logservice.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com"]},OCEANIA:{CODE:sa.OCEANIA,WEBCS_DOMAIN:["ap-web-1-oceania.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oceania.agora.io"],PROXY_CS:["proxy-ap-web-oceania.agora.io"],CDS_AP:["cds-ap-web-oceania.agora.io","cds-ap-web-oceania2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oceania.agora.io","sua-ap-web-oceania2.agora.io"],UAP_AP:["uap-ap-web-oceania.agora.io","uap-ap-web-oceania2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oceania.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oceania.agora.io"],LOG_UPLOAD_SERVER:["logservice-oceania.agora.io"],PROXY_SERVER_TYPE3:["oceania.webrtc-cloud-proxy.sd-rtn.com"]},SOUTH_AMERICA:{CODE:sa.SOUTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-south-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-south-america.agora.io"],PROXY_CS:["proxy-ap-web-south-america.agora.io"],CDS_AP:["cds-ap-web-south-america.agora.io","cds-ap-web-south-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-south-america.agora.io","sua-ap-web-south-america2.agora.io"],UAP_AP:["uap-ap-web-south-america.agora.io","uap-ap-web-south-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-south-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-south-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-america.agora.io"],PROXY_SERVER_TYPE3:["south-america.webrtc-cloud-proxy.sd-rtn.com"]},AFRICA:{CODE:sa.AFRICA,WEBCS_DOMAIN:["ap-web-1-africa.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-africa.agora.io"],PROXY_CS:["proxy-ap-web-africa.agora.io"],CDS_AP:["cds-ap-web-africa.agora.io","cds-ap-web-africa2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-africa.agora.io","sua-ap-web-africa2.agora.io"],UAP_AP:["uap-ap-web-africa.agora.io","uap-ap-web-africa2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-africa.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-africa.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-africa.agora.io"],PROXY_SERVER_TYPE3:["africa.webrtc-cloud-proxy.sd-rtn.com"]},EXTENSIONS:{}};$H&&(W8.CHINA={CODE:sa.CHINA,WEBCS_DOMAIN:["webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["proxy-web.ap.sd-rtn.com"],CDS_AP:["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-web-2.ap.sd-rtn.com","uap-web-4.ap.sd-rtn.com"],EVENT_REPORT_DOMAIN:["web-3.statscollector.sd-rtn.com"],EVENT_REPORT_BACKUP_DOMAIN:["web-4.statscollector.sd-rtn.com"],LOG_UPLOAD_SERVER:["logservice-china.agora.io"],PROXY_SERVER_TYPE3:["east-cn.webrtc-cloud-proxy.sd-rtn.com"]});let rG=function(r){return r.UPDATE_BITRATE_LIMIT="update_bitrate_limit",r}({});class Eie extends nr{constructor(a,o){super(),X(this,"onICEConnectionStateChange",void 0),X(this,"onConnectionStateChange",void 0),X(this,"onDTLSTransportStateChange",void 0),X(this,"onDTLSTransportError",void 0),X(this,"onICETransportStateChange",void 0),X(this,"onFirstAudioReceived",void 0),X(this,"onFirstVideoReceived",void 0),X(this,"onFirstAudioDecoded",void 0),X(this,"onFirstVideoDecoded",void 0),X(this,"onFirstVideoDecodedTimeout",void 0),X(this,"onSelectedLocalCandidateChanged",void 0),X(this,"onSelectedRemoteCandidateChanged",void 0),X(this,"getLocalVideoStats",void 0)}}class $8 extends Eie{constructor(a,o){super(a,o),X(this,"establishPromise",void 0)}}let Wt=function(r){return r.VIDEO="video",r.AUDIO="audio",r}({}),Pa=function(r){return r[r.UDP=0]="UDP",r[r.TCP=1]="TCP",r[r.RELAY=2]="RELAY",r}({}),gm=function(r){return r[r.FIRST_CONNECTION=0]="FIRST_CONNECTION",r[r.TCP_RESTART=1]="TCP_RESTART",r[r.RELAY_RESTART=2]="RELAY_RESTART",r[r.OLD_FIRST_CONNECTION=10]="OLD_FIRST_CONNECTION",r[r.OLD_RESTART=11]="OLD_RESTART",r[r.DISCONNECTED_OR_FAILED=20]="DISCONNECTED_OR_FAILED",r}({}),ht=function(r){return r.LocalVideoTrack="videoTrack",r.LocalAudioTrack="audioTrack",r.LocalVideoLowTrack="videoLowTrack",r}({}),gi=function(r){return r.New="new",r.Connected="connected",r.Reconnecting="reconnecting",r.Disconnected="disconnected",r}({}),pn=function(r){return r.StateChange="stateChange",r.IceConnectionStateChange="iceConnectionStateChange",r.RequestMuteLocal="requestMuteLocal",r.RequestUnmuteLocal="requestUnmuteLocal",r.RequestRePublish="requestRePublish",r.RequestRePublishDataChannel="requestRePublishDataChannel",r.RequestReSubscribe="requestReSubscribe",r.RequestUploadStats="requestUploadStats",r.RequestUpload="requestUpload",r.MediaReconnectStart="MediaReconnectStart",r.MediaReconnectEnd="MediaReconnectEnd",r.NeedSignalRTT="NeedSignalRTT",r.RequestRestartICE="RequestRestartIce",r.PeerConnectionStateChange="PeerConnectionStateChange",r.RequestReconnect="RequestReconnect",r.RequestReconnectPC="RequestReconnectPC",r.RequestUnpublishForReconnectPC="RequestUnpublishForReconnectPC",r.P2PLost="P2PLost",r.UpdateVideoEncoder="UpdateVideoEncoder",r.ConnectionTypeChange="ConnectionTypeChange",r.RequestLowStreamParameter="RequestLowStreamParameter",r.QueryClientConnectionState="QueryClientConnectionState",r.LocalCandidate="LocalCandidate",r.RequestP2PMuteLocal="requestP2PMuteLocal",r.RequestP2PUnPublish="RequestP2PUnPublish",r.RequestP2PUnmuteRemote="RequestP2PUnmuteRemote",r.RequestP2PMuteRemote="RequestP2PMuteRemote",r.RequestP2PRestartICE="RequestP2PRestartICE",r}({}),mu=function(r){return r.CONNECTING="CONNECTING",r.RECONNECTING="RECONNECTING",r.CONNECTED="CONNECTED",r.CLOSED="CLOSED",r}({}),gu=function(r){return r[r.CONNECT_AP=0]="CONNECT_AP",r[r.AP_CONNECTED=1]="AP_CONNECTED",r[r.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",r[r.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",r[r.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",r[r.CONNECT_WORKER=5]="CONNECT_WORKER",r[r.WORKER_CONNECTED=6]="WORKER_CONNECTED",r[r.CLOSED=7]="CLOSED",r}({}),As=function(r){return r.CONNECTION_STATE_CHANGE="connection-state-change",r.STATE_CHANGE="state-change",r.INSPECT_RESULT="inspect-result",r.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",r.REQUEST_NEW_WORKER_URL="request-new-worker-url",r}({}),I0=function(r){return r.NETWORK_ERROR="NETWORK_ERROR",r.SERVER_ERROR="SERVER_ERROR",r.MULTI_IP="MULTI_IP",r.TIMEOUT="TIMEOUT",r.OFFLINE="OFFLINE",r.LEAVE="LEAVE",r.P2P_FAILED="P2P_FAILED",r.FALLBACK="FALLBACK",r}({}),qr=function(r){return r.CONNECTED="transmitter:connected",r.RECONNECTING="transmitter:reconnecting",r.WILL_RECONNECT="transmitter:will_reconnect",r.CLOSED="transmitter:closed",r.FAILED="transmitter:failed",r.ON_MESSAGE="transmitter:on_message",r.REQUEST_NEW_URLS="transmitter:request_new_urls",r.RECONNECT_WAITTING_FINISH="transmitter:reconnect_waitting_finish",r.RECONNECT_CREATE_CONNECTION="transmitter:reconnect_create_connection",r.ON_TOKEN_PRIVILEGE_DID_EXPIRE="transmitter:on_token_privilege_did_expire",r.TO_CONNECT_DATACHANNEL="transmitter:to_connect_datachannel",r.FAILBACK="transmitter:failback",r}({}),Mf=function(r){return r.CAMERA_CHANGED="camera-changed",r.MICROPHONE_CHANGED="microphone-changed",r.PLAYBACK_DEVICE_CHANGED="playback-device-changed",r.AUDIO_AUTOPLAY_FAILED="audio-autoplay-failed",r.AUTOPLAY_FAILED="autoplay-failed",r.AUDIO_CONTEXT_STATE_CHANGED="audio-context-state-changed",r.SECURITY_POLICY_VIOLATION="security-policy-violation",r}({}),hd=function(r){return r.CONNECTING="CONNECTING",r.RECONNECTING="RECONNECTING",r.CONNECTED="CONNECTED",r.CLOSED="CLOSED",r}({}),bh=function(r){return r.CONNECTION_STATE_CHANGE="connection-state-change",r.STATE_CHANGE="state-change",r.INSPECT_RESULT="inspect-result",r.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",r.REQUEST_NEW_WORKER_URL="request-new-worker-url",r}({}),WS=function(r){return r[r.CONNECT_AP=0]="CONNECT_AP",r[r.AP_CONNECTED=1]="AP_CONNECTED",r[r.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",r[r.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",r[r.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",r[r.CONNECT_WORKER=5]="CONNECT_WORKER",r[r.WORKER_CONNECTED=6]="WORKER_CONNECTED",r[r.CLOSED=7]="CLOSED",r}({}),Nr=function(r){return r.CALL="call",r.CANDIDATE="candidate",r.PUBLISH="publish",r.UNPUBLISH="unpublish",r.CONTROL="control",r.RESTART_ICE="restart_ice",r.ACK="ack",r.RESPONSE="response",r.JOIN="join",r.CHECK="check",r}({}),$S=function(r){return r.ABORT="abort",r}({}),N0=function(r){return r.MUTE_LOCAL_AUDIO="mute_local_audio",r.MUTE_LOCAL_VIDEO="mute_local_video",r.UNMUTE_LOCAL_AUDIO="unmute_local_audio",r.UNMUTE_LOCAL_VIDEO="unmute_local_video",r}({}),lAe=function(r){return r.P2P_TOKEN_TIMEOUT="p2p_token_timeout",r.P2P_TOKEN_CHANGED="p2p_token_changed",r}({}),cAe={[V8.ACCESS_POINT]:{[to.NO_FLAG_SET]:{desc:"flag is zero",retry:!1},[to.FLAG_SET_BUT_EMPTY]:{desc:"flag is empty",retry:!1},[to.INVALID_FALG_SET]:{desc:"invalid flag",retry:!1},[to.FLAG_SET_BUT_NO_RE]:{desc:"flag set unilbs but no request",retry:!1},[to.INVALID_SERVICE_ID]:{desc:"invalid service id",retry:!1},[to.NO_SERVICE_AVAILABLE]:{desc:"no service available",retry:!0},[to.NO_SERVICE_AVAILABLE_P2P]:{desc:"no unilbs p2p service available",retry:!0},[to.NO_SERVICE_AVAILABLE_VOICE]:{desc:"no unilbs voice service available",retry:!0},[to.NO_SERVICE_AVAILABLE_WEBRTC]:{desc:"no unilbs webrtc service available",retry:!0},[to.NO_SERVICE_AVAILABLE_CDS]:{desc:"no cds service available",retry:!0},[to.NO_SERVICE_AVAILABLE_CDN]:{desc:"no cdn dispatcher service available",retry:!0},[to.NO_SERVICE_AVAILABLE_TDS]:{desc:"no tds service available",retry:!0},[to.NO_SERVICE_AVAILABLE_REPORT]:{desc:"no unilbs report service available",retry:!0},[to.NO_SERVICE_AVAILABLE_APP_CENTER]:{desc:"no app center service available",retry:!0},[to.NO_SERVICE_AVAILABLE_ENV0]:{desc:"no unilbs sig env0 service available",retry:!0},[to.NO_SERVICE_AVAILABLE_VOET]:{desc:"no unilbs voet service available",retry:!0},[to.NO_SERVICE_AVAILABLE_STRING_UID]:{desc:"no string uid service available",retry:!0},[to.NO_SERVICE_AVAILABLE_WEBRTC_UNILBS]:{desc:"no webrtc unilbs service available",retry:!0}},[V8.UNILBS]:{[pu.INVALID_VENDOR_KEY]:{desc:"invalid vendor key, can not find appid",retry:!1},[pu.INVALID_CHANNEL_NAME]:{desc:"invalid channel name",retry:!1},[pu.INTERNAL_ERROR]:{desc:"unilbs internal error",retry:!1},[pu.NO_AUTHORIZED]:{desc:"invalid token, authorized failed",retry:!1},[pu.DYNAMIC_KEY_TIMEOUT]:{desc:"dynamic key or token timeout",retry:!1},[pu.NO_ACTIVE_STATUS]:{desc:"no active status",retry:!1},[pu.DYNAMIC_KEY_EXPIRED]:{desc:"dynamic key expired",retry:!1},[pu.STATIC_USE_DYNAMIC_KEY]:{desc:"static use dynamic key",retry:!1},[pu.DYNAMIC_USE_STATIC_KEY]:{desc:"dynamic use static key",retry:!1},[pu.USER_OVERLOAD]:{desc:"amount of users over load",retry:!1},[pu.FORBIDDEN_REGION]:{desc:"the request is forbidden in this area",retry:!1},[pu.CANNOT_MEET_AREA_DEMAND]:{desc:"unable to allocate services in this area",retry:!1}},[V8.STRING_UID_ALLOCATOR]:{[tG.IIIEGAL_APPID]:{desc:"invalid appid",retry:!1},[tG.IIIEGAL_UID]:{desc:"invalid string uid",retry:!1},[tG.INTERNAL_ERROR]:{desc:"string uid allocator internal error",retry:!0}}};function KS(r){let a=cAe[Math.floor(r/1e4)];if(!a)return{desc:"unknown error",retry:!1};let o=a[r%1e4];if(!o){if(Math.floor(r/1e4)===V8.ACCESS_POINT){let c=r%1e4;if(c.toString()[0]==="1")return{desc:r.toString(),retry:!1};if(c.toString()[0]==="2")return{desc:r.toString(),retry:!0}}return{desc:"unknown error",retry:!1}}return o}let dAe={[ln.K_TIMESTAMP_EXPIRED]:{desc:"K_TIMESTAMP_EXPIRED",action:"failed"},[ln.K_CHANNEL_PERMISSION_INVALID]:{desc:"K_CHANNEL_PERMISSION_INVALID",action:"failed"},[ln.K_CERTIFICATE_INVALID]:{desc:"K_CERTIFICATE_INVALID",action:"failed"},[ln.K_CHANNEL_NAME_EMPTY]:{desc:"K_CHANNEL_NAME_EMPTY",action:"failed"},[ln.K_CHANNEL_NOT_FOUND]:{desc:"K_CHANNEL_NOT_FOUND",action:"failed"},[ln.K_TICKET_INVALID]:{desc:"K_TICKET_INVALID",action:"failed"},[ln.K_CHANNEL_CONFLICTED]:{desc:"K_CHANNEL_CONFLICTED",action:"failed"},[ln.K_SERVICE_NOT_READY]:{desc:"K_SERVICE_NOT_READY",action:"tryNext"},[ln.K_SERVICE_TOO_HEAVY]:{desc:"K_SERVICE_TOO_HEAVY",action:"tryNext"},[ln.K_UID_BANNED]:{desc:"K_UID_BANNED",action:"failed"},[ln.K_IP_BANNED]:{desc:"K_IP_BANNED",action:"failed"},[ln.K_AUTO_REBALANCE]:{desc:"k_AUTO_REBALANCE",action:"recover"},[ln.ERR_INVALID_VENDOR_KEY]:{desc:"ERR_INVALID_VENDOR_KEY",action:"failed"},[ln.ERR_INVALID_CHANNEL_NAME]:{desc:"ERR_INVALID_CHANNEL_NAME",action:"failed"},[ln.WARN_NO_AVAILABLE_CHANNEL]:{desc:"WARN_NO_AVAILABLE_CHANNEL",action:"failed"},[ln.WARN_LOOKUP_CHANNEL_TIMEOUT]:{desc:"WARN_LOOKUP_CHANNEL_TIMEOUT",action:"tryNext"},[ln.WARN_LOOKUP_CHANNEL_REJECTED]:{desc:"WARN_LOOKUP_CHANNEL_REJECTED",action:"failed"},[ln.WARN_OPEN_CHANNEL_TIMEOUT]:{desc:"WARN_OPEN_CHANNEL_TIMEOUT",action:"tryNext"},[ln.WARN_OPEN_CHANNEL_REJECTED]:{desc:"WARN_OPEN_CHANNEL_REJECTED",action:"failed"},[ln.WARN_REQUEST_DEFERRED]:{desc:"WARN_REQUEST_DEFERRED",action:"failed"},[ln.ERR_DYNAMIC_KEY_TIMEOUT]:{desc:"ERR_DYNAMIC_KEY_TIMEOUT",action:"failed"},[ln.ERR_NO_AUTHORIZED]:{desc:"ERR_NO_AUTHORIZED",action:"failed"},[ln.ERR_VOM_SERVICE_UNAVAILABLE]:{desc:"ERR_VOM_SERVICE_UNAVAILABLE",action:"tryNext"},[ln.ERR_NO_CHANNEL_AVAILABLE_CODE]:{desc:"ERR_NO_CHANNEL_AVAILABLE_CODE",action:"failed"},[ln.ERR_MASTER_VOCS_UNAVAILABLE]:{desc:"ERR_MASTER_VOCS_UNAVAILABLE",action:"tryNext"},[ln.ERR_INTERNAL_ERROR]:{desc:"ERR_INTERNAL_ERROR",action:"tryNext"},[ln.ERR_NO_ACTIVE_STATUS]:{desc:"ERR_NO_ACTIVE_STATUS",action:"failed"},[ln.ERR_INVALID_UID]:{desc:"ERR_INVALID_UID",action:"failed"},[ln.ERR_DYNAMIC_KEY_EXPIRED]:{desc:"ERR_DYNAMIC_KEY_EXPIRED",action:"failed"},[ln.ERR_STATIC_USE_DYANMIC_KE]:{desc:"ERR_STATIC_USE_DYANMIC_KE",action:"failed"},[ln.ERR_DYNAMIC_USE_STATIC_KE]:{desc:"ERR_DYNAMIC_USE_STATIC_KE",action:"failed"},[ln.ERR_NO_VOCS_AVAILABLE]:{desc:"ERR_NO_VOCS_AVAILABLE",action:"tryNext"},[ln.ERR_NO_VOS_AVAILABLE]:{desc:"ERR_NO_VOS_AVAILABLE",action:"tryNext"},[ln.ERR_JOIN_CHANNEL_TIMEOUT]:{desc:"ERR_JOIN_CHANNEL_TIMEOUT",action:"tryNext"},[ln.ERR_JOIN_BY_MULTI_IP]:{desc:"ERR_JOIN_BY_MULTI_IP",action:"recover"},[ln.ERR_NOT_JOINED]:{desc:"ERR_NOT_JOINED",action:"failed"},[ln.ERR_REPEAT_JOIN_REQUEST]:{desc:"ERR_REPEAT_JOIN_REQUEST",action:"quit"},[ln.ERR_REPEAT_JOIN_CHANNEL]:{desc:"ERR_REPEAT_JOIN_CHANNEL",action:"quit"},[ln.ERR_INVALID_STRINGUID]:{desc:"ERR_INVALID_STRINGUID",action:"failed"},[ln.ERR_TOO_MANY_USERS]:{desc:"ERR_TOO_MANY_USERS",action:"tryNext"},[ln.ERR_SET_CLIENT_ROLE_TIMEOUT]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[ln.ERR_SET_CLIENT_ROLE_NO_PERMISSION]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[ln.ERR_SET_CLIENT_ROLE_ALREADY_IN_USE]:{desc:"ERR_SET_CLIENT_ROLE_ALREADY_IN_USE",action:"success"},[ln.ERR_PUBLISH_REQUEST_INVALID]:{desc:"ERR_PUBLISH_REQUEST_INVALID",action:"failed"},[ln.ERR_SUBSCRIBE_REQUEST_INVALID]:{desc:"ERR_SUBSCRIBE_REQUEST_INVALID",action:"failed"},[ln.ERR_NOT_SUPPORTED_MESSAGE]:{desc:"ERR_NOT_SUPPORTED_MESSAGE",action:"failed"},[ln.ERR_ILLEAGAL_PLUGIN]:{desc:"ERR_ILLEAGAL_PLUGIN",action:"failed"},[ln.ILLEGAL_CLIENT_ROLE_LEVEL]:{desc:"ILLEGAL_CLIENT_ROLE_LEVEL",action:"failed"},[ln.ERR_REJOIN_TOKEN_INVALID]:{desc:"ERR_REJOIN_TOKEN_INVALID",action:"failed"},[ln.ERR_REJOIN_USER_NOT_JOINED]:{desc:"ERR_REJOIN_NOT_JOINED",action:"failed"},[ln.ERR_INVALID_OPTIONAL_INFO]:{desc:"ERR_INVALID_OPTIONAL_INFO",action:"quit"},[ln.ERR_TEST_RECOVER]:{desc:"ERR_TEST_RECOVER",action:"recover"},[ln.ERR_TEST_TRYNEXT]:{desc:"ERR_TEST_TRYNEXT",action:"recover"},[ln.ERR_TEST_RETRY]:{desc:"ERR_TEST_RETRY",action:"recover"},[ln.ILLEGAL_AES_PASSWORD]:{desc:"ERR_TEST_RETRY",action:"failed"},[ln.ERR_TOO_MANY_BROADCASTERS]:{desc:"ERR_TOO_MANY_BROADCASTERS",action:"failed"},[ln.ERR_TOO_MANY_SUBSCRIBERS]:{desc:"ERR_TOO_MANY_SUBSCRIBERS",action:"failed"},[ln.ERR_LICENSE_ILLEGAL]:{desc:"ERR_LICENSE_ILLEGAL",action:"quit"},[ln.ERR_LICENSE_MISSING]:{desc:"ERR_LICENSE_MISSING",action:"quit"},[ln.ERR_LICENSE_EXPIRED]:{desc:"ERR_LICENSE_EXPIRED",action:"quit"},[ln.ERR_LICENSE_MINUTES_EXCEEDED]:{desc:"ERR_LICENSE_MINUTES_EXCEEDED",action:"quit"},[ln.ERR_LICENSE_PERIOD_INVALID]:{desc:"ERR_LICENSE_PERIOD_INVALID",action:"quit"},[ln.ERR_LICENSE_MULTIPLE_SDK_SERVICE]:{desc:"ERR_LICENSE_MULTIPLE_SDK_SERVICE",action:"quit"}};function Ky(r){return dAe[r]||{desc:"UNKNOW_ERROR_".concat(r),action:"failed"}}function wie(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function sG(r){for(var a=1;aa.readyState===WebSocket.CLOSED||a.readyState===WebSocket.CLOSING)}function bie(r,a){if(typeof r=="string")return r;let{proxy:o,host:c,port:f}=r;if(a){let m=ve("JOIN_GATEWAY_FALLBACK_PORT")||443;return m===443?"wss://".concat(c,"/ws/?p=").concat(Number(f)+150):"wss://".concat(c,":").concat(m,"/ws/?p=").concat(Number(f)+150)}return o?"wss://".concat(o,"/ws/?h=").concat(c,"&p=").concat(f):"wss://".concat(c,":").concat(f)}let uAe=/wss:\/\/(.+)\/ws\/\?h=(.+)&p=([0-9]+)\/?/,hAe=/wss:\/\/(.+)\/ws\/\?p=([0-9]+)\/?/,fAe=/wss:\/\/(.+):([0-9]+)\/?/,pAe=/wss:\/\/(.[^\/]+)\/?/,mAe=0;class gAe{constructor(a,o){X(this,"id",0),X(this,"store",void 0),X(this,"recordIndex",void 0),X(this,"websockets",[]),X(this,"try443PortDuration",2e3),X(this,"forceCloseWSDuration",5e3),X(this,"try443PortTimeout",null),X(this,"forceCloseTimeout",null),X(this,"isTry443PortFailed",!1),X(this,"isNormalPortFailed",!1),X(this,"useDoubleDomain",!1),X(this,"useProxy",!1),X(this,"startTime",Date.now()),this.id=++mAe,this.try443PortDuration=ve("JOIN_GATEWAY_TRY_443PORT_DURATION")||2e3,this.forceCloseWSDuration=a||5e3,this.store=o}closeAllWebsockets(){this.websockets.forEach(a=>{a.onopen=null,a.onclose=null,a.onmessage=null,a.close()}),this.websockets.length=0}clearTimeout(){this.forceCloseTimeout&&clearTimeout(this.forceCloseTimeout),this.try443PortTimeout&&clearTimeout(this.try443PortTimeout)}logger(){var a;let o=Date.now()-this.startTime;for(var c=arguments.length,f=new Array(c),m=0;m{var L;return Tt(L=a.host).call(L,x)});w||(this.useDoubleDomain=!1);let C=[];if(this.useDoubleDomain)f.forEach(x=>{C.push(bie(sG(sG({},a),{},{host:a.host.replace(w,x)}),o))});else{let x=sG({},a);if(o&&w){let L=f.find(U=>U!==w);L&&(x.host=x.host.replace(w,L))}C.push(bie(x,o))}try{C.forEach(x=>{let L=new WebSocket(x);L.binaryType="arraybuffer",v.push(L),this.logger("ws is connecting:",L.url)})}catch(x){if(this.logger("ws create failed"),v.forEach(L=>L.close()),v.length=0,this.useDoubleDomain)return this.useDoubleDomain=!1,this.createWebSocket(a,o,c);if(!o&&Number(a.port)!==443)return this.createWebSocket(a,!0,c);throw new De(ce.WS_ERR,"init websocket failed! Error: ".concat(x.toString()))}let R=u3();return this.store&&this.store.recordJoinChannelService({urls:v.map(x=>x.url),service:"gateway"},this.recordIndex),v.forEach(x=>{x.onopen=()=>{this.logger("onopen: ws ".concat(x.url," open cost ").concat(Date.now()-m,"ms")),this.websockets.forEach(L=>{L!==x&&(L.onopen=null,L.onclose=null,L.onmessage=null,L.close(),this.logger("close backup websocket: ".concat(L.url)))}),this.websockets.length=0,R.resolve(x)},x.onclose=L=>{this.logger("onclose: ws ".concat(x.url," closed cost ").concat(Date.now()-m,"ms state: ").concat(x.readyState)),o?this.isTry443PortFailed=Sie(v):this.isNormalPortFailed=Sie(v),this.logger("443: ".concat(this.useProxy?"not try":this.isTry443PortFailed?"failed":"trying"," 47xx: ").concat(this.isNormalPortFailed?"failed":"trying")),(o&&this.isTry443PortFailed||!o&&(this.isTry443PortFailed||this.useProxy)&&this.isNormalPortFailed)&&(this.logger("onclose: all websocket is closed, ".concat(L.reason)),R.reject({code:L.code,reason:y3.A_ROUND_WS_FAILED}))},x.onmessage=L=>this.logger("".concat(x.url," onmessage: ").concat(L.data))}),this.websockets.push(...v),c||(()=>{let x=()=>{this.logger("5s timeout close un-opens, isWebsocket created: ",R.isResolved),this.websockets.forEach(L=>L.readyState!==WebSocket.OPEN&&L.close())};if(o||this.useProxy)return this.logger("add 5s timeout at ".concat(o?"try-443":"proxy"," condition")),this.forceCloseTimeout=window.setTimeout(x,this.forceCloseWSDuration);this.try443PortTimeout=window.setTimeout(()=>{if(this.logger("2s timeout, isWebsocket created: ",R.isResolved),R.isResolved)return x();ni().os===ms.MAC_OS&&Pi()&&x(),this.createWebSocket(a,!0,!0).then(L=>R.resolve(L)).catch(L=>{this.isNormalPortFailed&&R.reject(L),this.logger("try 443 port to create ws failed")}),this.forceCloseTimeout=window.setTimeout(x,this.forceCloseWSDuration)},this.try443PortDuration)})(),R.promise}chooseBestWebsocket(a,o,c,f){return this.useDoubleDomain=!!o,typeof a=="string"&&(a=function(m){let v,w,C;return[,v,w,C]=m.match(uAe)||[],v||([,w,C]=m.match(hAe)||[]),w&&C||([,w,C]=m.match(fAe)||[]),w&&C||([,w]=m.match(pAe)||[]),w||z.warning("un-destructible url: ",m),{proxy:v,host:w,port:C||"443"}}(a)),this.recordIndex=f,this.useProxy=!!a.proxy,c&&this.useProxy&&(z.warn("cannot use 443 only when use proxy"),c=!1),this.createWebSocket(a,!!c,!1).finally(()=>this.clearTimeout())}}function Cie(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}class Tie extends nr{get url(){return this.websocket&&this.websocket.url||null}get reconnectMode(){return this._reconnectMode}set reconnectMode(a){var o;Tt(o=["tryNext","recover"]).call(o,a)&&this.resetReconnectCount(a),this._reconnectMode=a}get state(){return this._state}set state(a){a!==this._state&&(this._state=a,this._state==="reconnecting"?this.emit(En.RECONNECTING,this.reconnectReason):this._state==="connected"?this.emit(En.CONNECTED):this._state==="closed"?this.emit(En.CLOSED):this._state==="failed"&&this.emit(En.FAILED))}resetReconnectCount(a){z.debug("websocket reset reconnect count, reason: "+a),this.reconnectCount=0}constructor(a,o){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2],f=arguments.length>3&&arguments[3]!==void 0&&arguments[3],m=arguments.length>4&&arguments[4]!==void 0&&arguments[4],v=arguments.length>5?arguments[5]:void 0;super(),X(this,"connectionID",0),X(this,"currentURLIndex",0),X(this,"urls",[]),X(this,"_reconnectMode","tryNext"),X(this,"reconnectReason",void 0),X(this,"_initMutex",new Ts("websocket")),X(this,"name",void 0),X(this,"_state","closed"),X(this,"reconnectInterrupter",void 0),X(this,"websocket",void 0),X(this,"retryConfig",void 0),X(this,"reconnectCount",0),X(this,"forceCloseTimeout",5e3),X(this,"onlineReconnectListener",void 0),X(this,"useCompress",void 0),X(this,"tryDoubleDomain",!1),X(this,"use443PortOnly",!1),X(this,"wsInflateLength",0),X(this,"wsDeflateLength",0),X(this,"closeEstablishingWs",()=>{}),X(this,"store",void 0),X(this,"joinGatewayRecordIndex",void 0),this.store=v,this.name=a,this.retryConfig=function(L){for(var U=1;U{L!==U&&(this.resetReconnectCount("network state change: ".concat(U," -> ").concat(L)),L===eo.ONLINE?(this.retryConfig.timeout=R,this.retryConfig.timeoutFactor=x):(this.retryConfig.timeout=w,this.retryConfig.timeoutFactor=C))})}getConnection(){return this.websocket||void 0}async init(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,c=await this._initMutex.lock();this.forceCloseTimeout=o,this.urls=a,this.state="connecting";try{let f=u3(),m=this.urls[this.currentURLIndex];this.createWebSocketConnection(m).then(f.resolve).catch(f.reject),this.once(En.CLOSED,()=>{f.reject(new Ke(ce.WS_DISCONNECT))}),this.once(En.CONNECTED,f.resolve),await f.promise}catch{}finally{c()}}close(a,o){if(this.currentURLIndex=0,this.resetReconnectCount("close"),this.reconnectInterrupter&&this.reconnectInterrupter(),this.websocket){this.websocket.onclose=null,this.websocket.onopen=null,this.websocket.onmessage=null;let c=this.websocket;o?setTimeout(()=>c.close(),500):c.close(),this.websocket=void 0}this.state=a?"failed":"closed",this.closeEstablishingWs&&this.closeEstablishingWs()}reconnect(a,o){if(!this.websocket)return void z.warning("[".concat(this.name,"] can not reconnect, no websocket"));a!==void 0&&(this.reconnectMode=a),z.debug("[".concat(this.name,"] reconnect is triggered initiative")),typeof this.joinGatewayRecordIndex=="number"&&this.store&&this.store.recordJoinChannelService({status:"error",errors:[new Error(o)]},this.joinGatewayRecordIndex);let c=this.websocket.onclose;this.websocket.onclose=null,this.websocket.close(),c&&c.bind(this.websocket)({code:9999,reason:o})}sendMessage(a){let o=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this.websocket||this.websocket.readyState!==WebSocket.OPEN)throw new Ke(ce.WS_ABORT,"websocket is not ready");try{o||(a=JSON.stringify(a)),this.websocket.send(a)}catch(c){throw new Ke(ce.WS_ERR,"send websocket message error"+c.toString())}}setWsInflateData(a){this.wsDeflateLength=this.wsDeflateLength+a.originLength,this.wsInflateLength=this.wsInflateLength+a.compressedLength}getWsInflateData(){let a=this.wsInflateLength,o=this.wsDeflateLength;return this.clearWsInflateData(),{wsInflateLength:a,wsDeflateLength:o}}clearWsInflateData(){this.wsInflateLength=0,this.wsDeflateLength=0}async createWebSocketConnection(a){var o;let c=u3();this.connectionID+=1,this.joinGatewayRecordIndex=void 0;let f=x=>{var L;(L=this.store)===null||L===void 0||L.signalChannelOpen(),z.debug("[".concat(this.name,"] websocket opened:"),x),this.reconnectMode="retry",this.state="connected",this.resetReconnectCount("opened"),c.resolve()},m=async x=>{var L;if(z.debug("[".concat(this.name,"] websocket close ").concat((L=this.websocket)===null||L===void 0?void 0:L.url,", code: ").concat(x.code,", reason: ").concat(x.reason,", current mode: ").concat(this.reconnectMode)),this.reconnectCount>=this.retryConfig.maxRetryCount)c.reject(new Ke(ce.WS_DISCONNECT,"websocket close: ".concat(x.code))),this.close();else{this.state==="connected"&&(this.reconnectReason=x.reason,this.state="reconnecting");let U=Ml(this,En.WILL_RECONNECT,this.reconnectMode,x.reason)||this.reconnectMode,F=await this.reconnectWithAction(U);if(this.state==="closed")return void z.debug("[".concat(this.connectionID,"] ws is closed, no need to reconnect"));if(!F)return c.reject(new Ke(ce.WS_DISCONNECT,"websocket reconnect failed: ".concat(x.code))),this.close(!0);c.resolve()}},v=x=>{this.emit(En.ON_MESSAGE,x)},w=x=>{z.warn("[".concat(this.connectionID,"] ws open error ").concat(x))};this.websocket&&(this.websocket.onclose=null,this.websocket.close()),ve("GATEWAY_WSS_ADDRESS")&&this.name.startsWith("gateway")&&(a=ve("GATEWAY_WSS_ADDRESS")),z.debug("[".concat(this.name,"] start connect, url:"),a);let C=(o=this.store)===null||o===void 0?void 0:o.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"});try{var R;let x=await this.chooseBestWebsocketConnection(a);this.websocket=x,f&&f(this.websocket.url),this.websocket.onclose=m,this.websocket.onmessage=v,this.websocket.onerror=w,(R=this.store)===null||R===void 0||R.recordJoinChannelService({endTs:Date.now(),status:"success"},C),this.joinGatewayRecordIndex=C}catch(x){let L=this.state==="closed",U=x instanceof Ke,F=U&&x.code===ce.WS_ABORT,Z=U&&x.code===ce.WS_ERR,W=U?x.message:x&&(x.reason||x.toString());z.warning("[choose-best-ws] chooseBestWebsocket error: ".concat(W)),this.store&&this.store.recordJoinChannelService({endTs:Date.now(),status:F?"aborted":"error",errors:[x]},C),L||Z?(c.reject(L?new Ke(ce.WS_DISCONNECT,"websocket is closed: ".concat(W)):new Ke(ce.WS_ERR,"init websocket failed: ".concat(W))),Z&&z.error("[".concat(this.name,"] init websocket failed: ").concat(W))):m&&m(x)}return c.promise}async reconnectWithAction(a){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this.reconnectCount>=this.retryConfig.maxRetryCount||this.urls.length===0||this.state==="closed")return!1;z.warning("[choose-best-ws] action: =>",a),this.onlineReconnectListener||yr.isOnline||!yr.onlineWaiter||(this.onlineReconnectListener=yr.onlineWaiter.then(()=>{this.onlineReconnectListener=void 0}));let c=!0;if(this.reconnectInterrupter=()=>c=!1,o){let v=j8(this.reconnectCount,this.retryConfig);z.debug("[".concat(this.name,"] wait ").concat(v,"ms to reconnect websocket, mode: ").concat(a)),await Ct.race([vs(v),this.onlineReconnectListener||new Ct(()=>{})])}if(this._state==="closed"||!c)return!1;this.reconnectCount+=1;let f=async(v,w)=>{this.emit(En.RECONNECT_CREATE_CONNECTION,w),await this.createWebSocketConnection(v)};try{if(a==="retry")this.emit(En.RECONNECT_WAITTING_FINISH,a),await f(this.urls[this.currentURLIndex],a);else if(a==="tryNext"){if(this.currentURLIndex+=1,this.currentURLIndex>=this.urls.length)return this.reconnectWithAction("recover",!1);z.debug("[".concat(this.name,"] websocket url length: ").concat(this.urls.length," current index: ").concat(this.currentURLIndex)),this.emit(En.RECONNECT_WAITTING_FINISH,a),await f(this.urls[this.currentURLIndex],a)}else a==="recover"&&(z.debug("[".concat(this.name,"] request new urls")),this.resetReconnectCount("recover mode"),this.emit(En.RECONNECT_WAITTING_FINISH,a),this.urls=await Kr(this,En.REQUEST_NEW_URLS),this.currentURLIndex=0,await f(this.urls[this.currentURLIndex],a))}catch(v){var m;z.error("[".concat(this.name,"] reconnect failed ").concat(v&&v.toString()));let w=v==null||(m=v.data)===null||m===void 0?void 0:m.desc;return Array.isArray(w)&&Tt(w).call(w,"dynamic key expired")?(this.emit(En.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1):this.reconnectWithAction(a,o)}return!0}}class _3 extends Tie{constructor(a,o){super(a,o,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(a,o){let c=u3(),f=function(v,w){return new gAe(v,w)}(this.forceCloseTimeout,this.store);this.closeEstablishingWs=()=>{z.debug("[choose-best-ws] close establishing websockets"),f.closeAllWebsockets(),c.reject(new Ke(ce.WS_ABORT,"choose best websocket aborted"))};let m=ve("GATEWAY_DOMAINS");return z.debug("[choose-best-ws] currentDomain: ",a,", domains: ",m,"total: ".concat(this.urls.length),"current: ".concat(this.currentURLIndex+1)),f.chooseBestWebsocket(a,this.tryDoubleDomain,this.use443PortOnly,o).then(c.resolve).catch(c.reject),c.promise.finally(()=>{this.closeEstablishingWs=void 0})}}class E3 extends Tie{constructor(a,o){super(a,o,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(a,o){return new Ct((c,f)=>{let m=!1,v=[];this.closeEstablishingWs=()=>{z.debug("[choose-best-ws] close establishing websockets"),v.forEach(Z=>{Z.onclose=null,Z.onopen=null,Z.onmessage=null,Z.close()}),f(new Ke(ce.WS_ABORT,"choose best websocket aborted"))};let w=ve("GATEWAY_DOMAINS"),C,R=a.indexOf("?h="),x=w.find(Z=>R!==-1?Tt(a).call(a,Z,R):Tt(a).call(a,Z));z.debug("[choose-best-ws] currentDomain: ",x,", domains: ",w);let L=!this.tryDoubleDomain||!x;if(!L&&x){var U;let Z=Date.now();try{w.forEach(W=>{let K=R===-1?a.replace(x,W):a.substr(0,R)+a.substr(R).replace(x,W),oe=new WebSocket(K);oe.binaryType="arraybuffer",v.push(oe),z.debug("[choose-best-ws] ws is connecting:",oe.url)})}catch{for(z.debug("[choose-best-ws] ws create failed, fallback to single url"),v.forEach(W=>W.close());v.length;)v.pop();L=!0}(U=this.store)===null||U===void 0||U.recordJoinChannelService({urls:v.map(W=>W.url),service:"gateway"},o),v.forEach(W=>{W.onopen=()=>{if(m)return;let K=Date.now()-Z;z.debug("[choose-best-ws] ws open cost ".concat(K,"ms")),v.filter(oe=>oe!==W).forEach(oe=>{z.debug("[choose-best-ws]close backup websocket: ".concat(oe.url)),oe.close()}),m=!0,c(W)},W.onclose=K=>{C=K,!m&&(v.find(oe=>!(oe.readyState===WebSocket.CLOSED||oe.readyState===WebSocket.CLOSING))||(z.debug("[choose-best-ws] all websocket is closed"),m=!0,f(C)))},W.onmessage=K=>{z.debug("[choose-best-ws]".concat(W.url," onmessage: ").concat(K.data))}}),vs(this.forceCloseTimeout).then(()=>{v.forEach(W=>{W.readyState!==WebSocket.OPEN&&W.close()})})}if(L){var F;let Z;z.debug("[choose-best-ws] use single url: ",a),(F=this.store)===null||F===void 0||F.recordJoinChannelService({urls:[a],service:"gateway"},o);try{Z=new WebSocket(a),v.push(Z),Z.binaryType="arraybuffer"}catch(W){let K=new Ke(ce.WS_ERR,"init websocket failed! Error: ".concat(W.toString()));return z.error("[".concat(this.name,"]").concat(K)),void f(K)}Z.onopen=()=>{c(Z)},Z.onclose=W=>{f(W)},Z.onmessage=W=>{z.debug("[choose-best-ws]".concat(Z.url," onmessage: ").concat(W.data))},vs(this.forceCloseTimeout).then(()=>{Z&&Z.readyState!==WebSocket.OPEN&&Z.close()})}}).then(c=>(this.closeEstablishingWs=void 0,c)).catch(c=>{throw this.closeEstablishingWs=void 0,c})}}class Rie extends nr{get connectionState(){return this._connectionState}set connectionState(a){a!==this._connectionState&&(this._connectionState=a,a===Vn.CONNECTED?this.emit(Ut.WS_CONNECTED):a===Vn.RECONNECTING?this.emit(Ut.WS_RECONNECTING,this._websocketReconnectReason):a===Vn.CLOSED&&this.emit(Ut.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(a,o){super(),X(this,"_disconnectedReason",void 0),X(this,"_websocketReconnectReason",void 0),X(this,"_connectionState",Vn.CLOSED),X(this,"reconnectToken",void 0),X(this,"websocket",void 0),X(this,"openConnectionTime",void 0),X(this,"clientId",void 0),X(this,"lastMsgTime",Date.now()),X(this,"uploadCache",[]),X(this,"uploadCacheInterval",void 0),X(this,"rttRolling",new HH(5)),X(this,"pingpongTimer",void 0),X(this,"wsInflateDataTimer",void 0),X(this,"pingpongTimeoutCount",0),X(this,"joinResponse",void 0),X(this,"multiIpOption",void 0),X(this,"initError",void 0),X(this,"spec",void 0),X(this,"store",void 0),X(this,"onWebsocketMessage",c=>{if(c.data instanceof ArrayBuffer)return void this.emit(Ut.ON_BINARY_DATA,c.data);let f=JSON.parse(c.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(f,"_id")){let m="res-@".concat(f._id);this.emit(m,f._result,f._message)}else if(Object.prototype.hasOwnProperty.call(f,"_type")){if(this.emit(f._type,f._message),f._type===Sn.ON_NOTIFICATION&&this.handleNotification(f._message),f._type===Sn.ON_USER_BANNED)switch(f._message.error_code){case 14:this.close(Hn.UID_BANNED);break;case 15:this.close(Hn.IP_BANNED);break;case 16:this.close(Hn.CHANNEL_BANNED)}if(f._type===Sn.ON_USER_LICENSE_BANNED)switch(f._message.error_code){case ln.ERR_LICENSE_MISSING:this.close(Hn.LICENSE_MISSING);break;case ln.ERR_LICENSE_EXPIRED:this.close(Hn.LICENSE_EXPIRED);break;case ln.ERR_LICENSE_MINUTES_EXCEEDED:this.close(Hn.LICENSE_MINUTES_EXCEEDED);break;case ln.ERR_LICENSE_PERIOD_INVALID:this.close(Hn.LICENSE_PERIOD_INVALID);break;case ln.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(Hn.LICENSE_MULTIPLE_SDK_SERVICE);break;case ln.ERR_LICENSE_ILLEGAL:this.close(Hn.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=a.clientId,this.spec=a,this.store=o,this.websocket=new _3("gateway-".concat(this.clientId),this.spec.retryConfig,!0,ve("JOIN_GATEWAY_USE_DUAL_DOMAIN"),ve("JOIN_GATEWAY_USE_443PORT_ONLY"),o),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Vn.CONNECTED&&this.reconnect("retry",$s.OFFLINE)})}async request(a,o,c,f){let m=Di(6,""),v={_id:m,_type:a,_message:o},w=this.websocket.connectionID,C=()=>new Ct((Z,W)=>{if(this.connectionState===Vn.CONNECTED)return Z();let K=()=>{this.off(Ut.WS_CLOSED,oe),Z()},oe=()=>{this.off(Ut.WS_CONNECTED,K),W(new De(ce.WS_ABORT))};this.once(Ut.WS_CONNECTED,K),this.once(Ut.WS_CLOSED,oe),a!==rn.PUBLISH&&a!==rn.PUBLISH_DATASTREAM&&a!==rn.SUBSCRIBE&&a!==rn.SUBSCRIBE_DATASTREAM&&a!==rn.UNSUBSCRIBE&&a!==rn.UNSUBSCRIBE_DATASTREAM&&a!==rn.UNPUBLISH&&a!==rn.UNPUBLISH_DATASTREAM&&a!==rn.CONTROL&&a!==rn.RESTART_ICE||this.once(Ut.DISCONNECT_P2P,()=>{W(new De(ce.DISCONNECT_P2P))}),a!==rn.PUBLISH&&a!==rn.RESTART_ICE||this.once(Ut.ABORT_P2P_EXECUTION,()=>{W(new De(ce.DISCONNECT_P2P))})});if(this.connectionState!==Vn.CONNECTING&&this.connectionState!==Vn.RECONNECTING||a===rn.JOIN||a===rn.REJOIN||await C(),this.websocket.sendMessage(v,!0),f)return;let R=new Ct((Z,W)=>{let K=!1,oe=(xe,Oe)=>{K=!0,Z({isSuccess:xe==="success",message:Oe||{}}),this.off(Ut.WS_CLOSED,ue),this.off(Ut.WS_RECONNECTING,ue),this.emit(Ut.REQUEST_SUCCESS,a,o)};this.once("res-@".concat(m),oe);let ue=()=>{W(new De(ce.WS_ABORT,"type: ".concat(a))),this.off(Ut.WS_CLOSED,ue),this.off(Ut.WS_RECONNECTING,ue),this.off("res-@".concat(m),oe)};this.once(Ut.WS_CLOSED,ue),this.once(Ut.WS_RECONNECTING,ue),vs(ve("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||K||(z.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(a)),this.emit(Ut.REQUEST_TIMEOUT,a,o))})}),x=null;try{x=await R}catch(Z){if(this.connectionState===Vn.CLOSED||a===rn.LEAVE)throw new De(ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||c?Z.throw():a===rn.JOIN||a===rn.REJOIN?null:(await C(),await this.request(a,o))}if(x.isSuccess)return x.message;let L=Number(x.message.error_code||x.message.code),U=Ky(L),F=new De(ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(x.message.error_str),{code:L,data:x.message});return U.action==="success"?x.message:(z.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(a,", error_code: ").concat(L,", message: ").concat(U.desc,", action: ").concat(U.action)),L===ln.ERR_TOO_MANY_BROADCASTERS?((a===rn.JOIN||a===rn.REJOIN)&&(this.initError=F,this.close()),F.throw()):U.action==="failed"?F.throw():U.action==="quit"?(this.initError=F,this.close(),F.throw()):(L===ln.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=x.message.option,z.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",$s.MULTI_IP)):this.reconnect(U.action,$s.SERVER_ERROR),a===rn.JOIN||a===rn.REJOIN?null:await this.request(a,o)))}waitMessage(a,o){return new Ct(c=>{let f=m=>{(!o||o(m))&&(this.off(a,f),c(m))};this.on(a,f)})}uploadWRTCStats(a){if(!this.store.sessionId)return void z.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let o={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:a};this.upload($y.WRTC_STATS,o)}upload(a,o){let c={_type:a,_message:o};try{this.websocket.sendMessage(c)}catch{let f=ve("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(c),this.uploadCache.length>f&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Vn.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},ve("UPLOAD_CACHE_INTERVAL")||2e3))}}send(a,o){let c={_type:a,_message:o};this.websocket.sendMessage(c)}init(a,o){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ct((c,f)=>{this.once(Ut.WS_CONNECTED,()=>c(this.joinResponse)),this.once(Ut.WS_CLOSED,()=>f(this.initError||new De(ce.WS_ABORT))),this.connectionState=Vn.CONNECTING,this.websocket.init(a).catch(f),this.wsInflateDataTimer&&window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=window.setInterval(()=>{this.handleWsInflateData()},2e4)})}close(a){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.wsInflateDataTimer&&(this.handleWsInflateData(),window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._disconnectedReason=a||Hn.LEAVE,this.connectionState=Vn.CLOSED,z.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close(),a===Hn.FALLBACK&&(this.websocket.removeAllListeners(),this.websocket=new _3("gateway-".concat(this.clientId),this.spec.retryConfig,!0,ve("JOIN_GATEWAY_USE_DUAL_DOMAIN"),ve("JOIN_GATEWAY_USE_443PORT_ONLY"),this.store),this.handleWebsocketEvents())}async join(){if(!this.joinResponse){this.emit(Ut.ABORT_P2P_EXECUTION);let a=await Kr(this,Ut.REQUEST_JOIN_INFO),o=await this.request(rn.JOIN,a);if(!o)return this.emit(Ut.REPORT_JOIN_GATEWAY,y3.TIMEOUT,this.url||""),!1;this.joinResponse=o,this.emit(Ut.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Vn.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}async rejoin(){if(!this.reconnectToken)throw new De(ce.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");let a=Vy(this,Ut.REQUEST_REJOIN_INFO);a.token=this.reconnectToken;let o=await this.request(rn.REJOIN,a);return!!o&&(this.connectionState=Vn.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),o.peers&&o.peers.forEach(c=>{this.emit(Sn.ON_USER_ONLINE,{uid:c.uid}),c.audio&&this.emit(Sn.ON_ADD_AUDIO_STREAM,{uid:c.uid,uint_id:c.uint_id,audio:!0,ssrcId:c.audio_ssrc}),c.video&&this.emit(Sn.ON_ADD_VIDEO_STREAM,{uid:c.uid,uint_id:c.uint_id,video:!0,ssrcId:c.video_ssrc}),c.audio_mute?this.emit(Sn.MUTE_AUDIO,{uid:c.uid}):this.emit(Sn.UNMUTE_AUDIO,{uid:c.uid}),c.video_mute?this.emit(Sn.MUTE_VIDEO,{uid:c.uid}):this.emit(Sn.UNMUTE_VIDEO,{uid:c.uid}),c.audio_enable_local?this.emit(Sn.ENABLE_LOCAL_AUDIO,{uid:c.uid}):this.emit(Sn.DISABLE_LOCAL_AUDIO,{uid:c.uid}),c.video_enable_local?this.emit(Sn.ENABLE_LOCAL_VIDEO,{uid:c.uid}):this.emit(Sn.DISABLE_LOCAL_VIDEO,{uid:c.uid}),c.audio||c.video||this.emit(Sn.ON_REMOVE_STREAM,{uid:c.uid,uint_id:c.uint_id})}),!0)}reconnect(a,o){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(a,o)}handleNotification(a){z.debug("[".concat(this.clientId,"] receive notification: "),a);let o=Ky(a.code);if(o.action!=="success"){if(o.action!=="failed")return o.action==="quit"?(o.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(Hn.UID_BANNED),void this.close()):void this.reconnect(o.action,$s.SERVER_ERROR);z.error("[".concat(this.clientId,"] ignore error: "),o.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;let a=ve("PING_PONG_TIME_OUT"),o=Date.now();this.pingpongTimeoutCount>=a&&(z.warning("[".concat(this.clientId,"] PING-PONG Timeout. Last Socket Message: ").concat(o-this.lastMsgTime,"ms")),o-this.lastMsgTime>ve("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",$s.TIMEOUT):this.request(rn.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let c=Date.now()-o;this.rttRolling.add(c),ve("REPORT_STATS")&&this.send(rn.PING_BACK,{pingpongElapse:c})}).catch(c=>{})}handleWsInflateData(){let{wsInflateLength:a,wsDeflateLength:o}=this.websocket.getWsInflateData();a!==0&&o!==0&&this.upload($y.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:o,ws_inflate_length:a})}handleWebsocketEvents(){this.websocket.on(En.RECONNECT_WAITTING_FINISH,a=>{this.emit(Ut.WS_RECONNECT_WAITTING_FINISH,a)}),this.websocket.on(En.RECONNECT_CREATE_CONNECTION,a=>{this.emit(Ut.WS_RECONNECT_CREATE_CONNECTION,a)}),this.websocket.on(En.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(En.CLOSED,()=>{this.connectionState=Vn.CLOSED}),this.websocket.on(En.FAILED,()=>{this._disconnectedReason=Hn.NETWORK_ERROR,this.connectionState=Vn.CLOSED}),this.websocket.on(En.RECONNECTING,a=>{this._websocketReconnectReason=a,this.joinResponse=void 0,this.connectionState===Vn.CONNECTED?this.connectionState=Vn.RECONNECTING:this.connectionState=Vn.CONNECTING}),this.websocket.on(En.WILL_RECONNECT,(a,o,c)=>{let f=Vy(this,Ut.IS_P2P_DISCONNECTED),m=f||a!=="retry";f&&a==="retry"&&(z.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),a="tryNext",o=y3.P2P_DISCONNECTED),m&&(z.debug("".concat(this.clientId," will renewSession, reconnect mode: ").concat(a)),this.emit(Ut.REPORT_JOIN_GATEWAY,o||y3.UNKNOWN_REASON,this.url||""),this.reconnectToken=void 0,this.emit(Ut.NEED_RENEW_SESSION,this.websocket.currentURLIndex>=this.websocket.urls.length-1?"recover":a),this.emit(Ut.DISCONNECT_P2P)),c(a)}),this.websocket.on(En.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(a=>{z.warning("[".concat(this.clientId,"] rejoin failed ").concat(a)),this.reconnect("tryNext",$s.SERVER_ERROR)}):this.join().catch(a=>{if(this.emit(Ut.REPORT_JOIN_GATEWAY,a.message||a.code||y3.UNKNOWN_REASON,this.url||""),a instanceof De){if(a.code===ce.UNEXPECTED_RESPONSE&&a.data.code===ln.ERR_NO_AUTHORIZED)return this.initError=new De(ce.CAN_NOT_GET_GATEWAY_SERVER,"AgoraRTCError CAN_NOT_GET_GATEWAY_SERVER: dynamic key expired"),z.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",$s.SERVER_ERROR);z.error("[".concat(this.clientId,"] join gateway request failed"),a.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",$s.SERVER_ERROR):(this.initError=a,this.close())}})}),this.websocket.on(En.REQUEST_NEW_URLS,(a,o)=>{Kr(this,Ut.REQUEST_RECOVER,this.multiIpOption).then(a).catch(o)}),this.websocket.on(En.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Sn.ON_TOKEN_PRIVILEGE_DID_EXPIRE)})}}let Mr=function(r){return r[r.CHOOSE_SERVER=11]="CHOOSE_SERVER",r[r.CLOUD_PROXY=18]="CLOUD_PROXY",r[r.CLOUD_PROXY_5=20]="CLOUD_PROXY_5",r[r.CLOUD_PROXY_FALLBACK=26]="CLOUD_PROXY_FALLBACK",r}({});function xie(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function K8(r){for(var a=1;a{let{ip:x,port:L}=R;return{address:"".concat(x,":").concat(L)}});let w=ve("GATEWAY_DOMAINS"),C=w[1]&&Tt(v).call(v,w[1])?1:0;return m.map(R=>{let{domain_prefix:x,port:L,ip:U}=R;if(x)return{address:"".concat(x,".").concat(w[C++%w.length],":").concat(L)};let F=/^[\.\:\d]+$/.test(U),Z=F?"".concat(U.replace(/[^\d]/g,"-"),".").concat(w[C++%w.length],":").concat(L):"".concat(U,":").concat(L);return F||z.info("Unidentified as ip: ".concat(U,", use as host")),{ip:U,port:L,address:Z}})}(r.addresses,a),c=Array.isArray(r.detail)&&r.detail[18];if(c&&typeof c=="string"){let m=c.split(";");for(let v=0;v=0&&r<.17?1:r>=.17&&r<.36?2:r>=.36&&r<.59?3:r>=.59&&r<=1?4:r>1?5:0}function w3(r,a){let o,c,f;switch(a){case Mr.CHOOSE_SERVER:c=4096,f="choose server";break;case Mr.CLOUD_PROXY:c=1048576,f="proxy";break;case Mr.CLOUD_PROXY_5:c=4194304,f="proxy5";break;case Mr.CLOUD_PROXY_FALLBACK:c=4194310,f="proxy fallback";break;default:throw new De(ce.UNEXPECTED_ERROR,"multi unlibs response transformer get unknown service id",{csIp:r.detail&&r.detail[502],retry:!1})}if(r.response_body.forEach(m=>{m.buffer&&m.buffer.flag===c&&(o={code:m.buffer.code,addresses:(m.buffer.edges_services||[]).map(v=>K8(K8({},v),{},{ticket:m.buffer.cert})),server_ts:r.enter_ts,uid:m.buffer.uid,cid:m.buffer.cid,cname:m.buffer.cname,detail:K8(K8({},m.buffer.detail),r.detail),flag:m.buffer.flag,opid:r.opid,cert:m.buffer.cert})}),!o)throw new De(ce.MULTI_UNILBS_RESPONSE_ERROR,"cannot parse response ".concat(f," from multi unilbs response"),{csIp:r.detail&&r.detail[502]});return o}async function Nie(r,a){return await Ct.all(r.addresses.map(async o=>({address:O0(o.ip),tcpport:o.port,udpport:o.port,username:a&&ve("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?a.toString():Ks.username,password:a&&ve("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?await BH(a.toString()):Ks.password})))}function oG(r,a){let o=a.getMediaStreamTrack(!0).getSettings(),c=a.videoHeight||o.height,f=a.videoWidth||o.width;return c&&f?Math.max(Math.min(c,f)/Math.min(rl(r.height),rl(r.width)),1):(z.warning("can't get ori-track's height, default scale down 4 times for low stream"),4)}function P0(r){let{candidateType:a,relayProtocol:o,type:c,address:f,port:m,protocol:v}=r;return c==="local-candidate"?{candidateType:a,relayProtocol:o,protocol:v}:{candidateType:a,relayProtocol:o,address:f,port:m,protocol:v}}function Oie(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}class vAe extends nr{get url(){return this._url?this._url:null}get reconnectMode(){return this._reconnectMode}set reconnectMode(a){var o;Tt(o=["tryNext","recover"]).call(o,a)&&this.resetReconnectCount(a),this._reconnectMode=a}get state(){return this._state}set state(a){a!==this._state&&(this._state=a,this._state==="reconnecting"?this.emit(qr.RECONNECTING,this.reconnectReason):this._state==="connected"?this.emit(qr.CONNECTED):this._state==="closed"?this.emit(qr.CLOSED):this._state==="failed"&&this.emit(qr.FAILED))}constructor(a,o,c,f){super(),X(this,"connectionID",0),X(this,"currentURLIndex",0),X(this,"reconnectReason",void 0),X(this,"_reconnectMode","tryNext"),X(this,"_initMutex",void 0),X(this,"_name",void 0),X(this,"_state","closed"),X(this,"_reconnectInterrupter",void 0),X(this,"_url",void 0),X(this,"_retryConfig",void 0),X(this,"_reconnectCount",0),X(this,"_forceCloseTimeout",5e3),X(this,"_onlineReconnectListener",void 0),X(this,"_closeEstablishingTransmitter",()=>{}),X(this,"_store",void 0),X(this,"_joinChannelServiceRecordIndex",void 0),X(this,"_transmitter",void 0),X(this,"_useCompress",void 0),X(this,"_inflateLength",0),X(this,"_deflateLength",0),this._store=f,this._name=a,this._retryConfig=function(m){for(var v=1;vc.close(),500):c.close(),this._transmitter=void 0}this.state=a?"failed":"closed",this._closeEstablishingTransmitter&&this._closeEstablishingTransmitter()}reconnect(a,o){if(!this._transmitter)return void z.warning("[".concat(this._name,"] can not reconnect, no websocket"));var c;a!==void 0&&(this.reconnectMode=a),z.debug("[".concat(this._name,"] reconnect is triggered initiative")),typeof this._joinChannelServiceRecordIndex=="number"&&((c=this._store)===null||c===void 0||c.recordJoinChannelService({status:"error",errors:[new Error(o)]},this._joinChannelServiceRecordIndex));let f=this._transmitter.onclose;this._transmitter.onclose=null,this._transmitter.close(),f&&f.bind(this._transmitter)({code:9999,reason:o})}getInflateData(){let a=this._inflateLength,o=this._deflateLength;return this.clearInflateData(),{inflateLength:a,deflateLength:o}}setInflateData(a){this._deflateLength=this._deflateLength+a.originLength,this._inflateLength=this._inflateLength+a.compressedLength}clearInflateData(){this._inflateLength=0,this._deflateLength=0}}let Ch=function(r){return r[r.Default=0]="Default",r[r.Ack=1]="Ack",r}({});class yAe{constructor(a,o,c){X(this,"version",1),X(this,"initialRTO",void 0),X(this,"maxBatchAckCount",void 0),X(this,"maxRTO",void 0),X(this,"initialRTT",void 0),X(this,"ID",void 0),X(this,"rtt",void 0),X(this,"packetNumber",1),X(this,"rtoRatioMap",new Map),X(this,"timeoutMap",new Map),X(this,"unorderedPacketQueue",[]),X(this,"batchAckPacketQueue",[]),X(this,"lastOrderedPacketNumber",0),X(this,"batchAckTimer",void 0),X(this,"sendImpl",void 0),X(this,"receiveImpl",void 0),this.sendImpl=a,this.receiveImpl=o,this.ID=Di(7,"transmitter-"),this.initialRTO=(c==null?void 0:c.initialRTO)!==void 0?c.initialRTO:ve("TRANSMITTER_INITIAL_RTO"),this.initialRTT=(c==null?void 0:c.initialRTT)!==void 0?c.initialRTT:ve("TRANSMITTER_INITIAL_RTT"),this.rtt=(c==null?void 0:c.initialRTT)!==void 0?c.initialRTT:ve("TRANSMITTER_INITIAL_RTT"),this.maxBatchAckCount=(c==null?void 0:c.maxBatchAckCount)!==void 0?c.maxBatchAckCount:ve("TRANSMITTER_MAX_BATCH_ACK_COUNT"),this.maxRTO=(c==null?void 0:c.maxRTO)!==void 0?c.maxRTO:ve("TRANSMITTER_MAX_RTO")}packetize(a,o){return{type:Ch.Default,version:this.version,packetNumber:o,payload:a}}serialize(a){switch(a.type){case Ch.Default:{let o;typeof a.payload=="string"?o=new TextEncoder().encode(a.payload):o=a.payload;let c=new ArrayBuffer(o.length+15),f=new DataView(c);return f.setUint16(0,a.version),f.setUint8(2,a.type),f.setUint32(3,a.packetNumber),Bne(f,7,BigInt(a.sendTs)),new Uint8Array(f.buffer).set(o,15),c}case Ch.Ack:{let o=new ArrayBuffer(16),c=new DataView(o);return c.setUint16(0,a.version),c.setUint8(2,a.type),c.setUint32(3,a.maxAckPacketNumber),c.setUint8(7,a.shift),Bne(c,8,BigInt(a.ackSendTs)),o}}}deserialize(a){let o=new DataView(a),c=o.getUint16(0),f=o.getUint8(2);switch(f){case Ch.Default:{let m=o.getUint32(3),v=Fne(o,7),w=a.slice(15),C=new TextDecoder().decode(w);return{version:c,type:f,packetNumber:m,sendTs:Number(v),payload:C}}case Ch.Ack:{let m=o.getUint32(3),v=o.getUint8(7),w=Fne(o,8);return{version:c,type:f,maxAckPacketNumber:m,shift:v,ackSendTs:Number(w)}}default:throw z.error("[".concat(this.ID,"] Unrecognized packet type ").concat(f)),new Error("Unrecognized packet type ".concat(f))}}sendMessage(a){let o=this.packetize(a,this.packetNumber);this.packetNumber=this.packetNumber===4294967295?1:this.packetNumber+1;let c=this.calculateRTO(o),f=window.setTimeout(()=>{this.resendMessage(o)},c);this.timeoutMap.set(o.packetNumber,f),this.sendPacket(o)}onData(a){let o=this.deserialize(a);o.type===Ch.Default?this.ack(o):o.type===Ch.Ack&&(this.updateRTT(o,Math.round(performance.now())),this.clearRTO(o))}close(){this.rtt=this.initialRTT,this.packetNumber=1,Array.from(this.timeoutMap.entries()).forEach(a=>{let[o,c]=a;window.clearTimeout(c)}),this.timeoutMap=new Map,this.rtoRatioMap=new Map,this.unorderedPacketQueue=[],this.batchAckPacketQueue=[],this.lastOrderedPacketNumber=0,this.batchAckTimer!==void 0&&window.clearTimeout(this.batchAckTimer)}resendMessage(a){let o=this.calculateRTO(a),c=window.setTimeout(()=>{this.resendMessage(a)},o);this.timeoutMap.set(a.packetNumber,c),this.sendPacket(a)}calculateRTO(a){let o=this.rtoRatioMap.get(a.packetNumber);if(o===void 0)return this.rtoRatioMap.set(a.packetNumber,1),this.initialRTO;{let c=9*this.rtt/8*o;return this.rtoRatioMap.set(a.packetNumber,o+1),c>this.maxRTO?this.maxRTO:c}}updateRTT(a,o){let c=a.ackSendTs;this.rtt=this.rtt*(7/8)+(o-c-this.rtt)/8}ack(a){if(a.packetNumber===this.lastOrderedPacketNumber+1)for(this.batchAckPacketQueue.length>=this.maxBatchAckCount&&this.batchAck(),this.batchAckTimer?this.batchAckPacketQueue.push(a):(this.batchAckPacketQueue.push(a),this.batchAckTimer=window.setTimeout(()=>{this.batchAck()},this.rtt/8)),this.lastOrderedPacketNumber+=1,this.receiveImpl(a.payload);;){let o=this.unorderedPacketQueue[0];if(!o){this.unorderedPacketQueue.shift();break}this.batchAckTimer&&this.batchAck(),this.receiveImpl(o.payload),this.unorderedPacketQueue.shift(),this.lastOrderedPacketNumber+=1}else if(a.packetNumber<=this.lastOrderedPacketNumber){let o={ackSendTs:a.sendTs,maxAckPacketNumber:a.packetNumber,shift:0,type:Ch.Ack,version:this.version};this.sendPacket(o)}else if(a.packetNumber>this.lastOrderedPacketNumber){this.unorderedPacketQueue[a.packetNumber-this.lastOrderedPacketNumber-2]=a;let o={ackSendTs:a.sendTs,maxAckPacketNumber:a.packetNumber,shift:0,type:Ch.Ack,version:this.version};this.sendPacket(o)}}batchAck(){window.clearTimeout(this.batchAckTimer),this.batchAckTimer=void 0;let a={ackSendTs:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].sendTs,maxAckPacketNumber:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].packetNumber,shift:this.batchAckPacketQueue.length-1,type:Ch.Ack,version:this.version};this.sendPacket(a),this.batchAckPacketQueue=[]}sendPacket(a){a.type===Ch.Default&&(a.sendTs=Math.round(performance.now()));let o=this.serialize(a);this.sendImpl(o)}clearRTO(a){for(let o=a.maxAckPacketNumber-a.shift;o<=a.maxAckPacketNumber;o++){let c=this.timeoutMap.get(o);c!==void 0&&window.clearTimeout(c),this.timeoutMap.delete(o),this.rtoRatioMap.delete(o)}}}class Pie extends vAe{constructor(a,o){super(a,o,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3?arguments[3]:void 0),X(this,"_initMutex",void 0),X(this,"_reconnectInterrupter",void 0),X(this,"_url",void 0),X(this,"_transmitter",void 0),X(this,"_addresses",void 0),X(this,"_reliableTransmission",void 0),this._initMutex=new Ts("datachannel");let{timeout:c,timeoutFactor:f}=o,m=Math.max(300,Math.floor(3*c/5)),v=Math.max(1.2,Math.floor(8*f)/10);eo.ONLINE&&(this._retryConfig.timeout=m,this._retryConfig.timeoutFactor=v),yr.on(By.NETWORK_STATE_CHANGE,(w,C)=>{w!==C&&(this.resetReconnectCount("network state change: ".concat(C," -> ").concat(w)),w===eo.ONLINE?(this._retryConfig.timeout=m,this._retryConfig.timeoutFactor=v):(this._retryConfig.timeout=c,this._retryConfig.timeoutFactor=f))})}getConnection(){if(this._reliableTransmission)return this._reliableTransmission}async init(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;this._forceCloseTimeout=o;let c=(f,m)=>{this._addresses=a,this.currentURLIndex=this._addresses.findIndex(w=>w.fingerprint||ve("FINGERPRINT"));let v=this._addresses[this.currentURLIndex];this.state="connecting",this.createTransmitterConnection(v).then(f).catch(m),this.once(qr.CLOSED,()=>m(new De(ce.WS_DISCONNECT))),this.once(qr.CONNECTED,()=>f())};return this._initMutex.lock().then(f=>new Ct((m,v)=>{c(m,v)}).then(()=>{f()}).catch(()=>{f()}))}sendMessage(a){let o=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this._transmitter||!this._reliableTransmission)throw new De(ce.WS_ABORT,"datachannel is not ready");try{o||(a=JSON.stringify(a)),this._reliableTransmission.sendMessage(a)}catch(c){throw new De(ce.WS_ERR,"send datachannel signal message error"+c.toString())}}unbindDcCloseEventListener(){this._transmitter&&(this._transmitter.onclose=null)}sendMessageWithJSON(a){let o=JSON.stringify(a);return{compressed:o,compressedLength:o.length,origin:a}}sendMessageWithUint8Array(a){return{compressed:a,compressedLength:a.byteLength,origin:a}}createTransmitterConnection(a){return this.connectionID+=1,this._joinChannelServiceRecordIndex=void 0,this._url="dc://".concat(a.ip,":").concat(a.port),new Ct((o,c)=>{var f;let m=()=>{z.debug("[".concat(this._name,"] datachannel opened:"),this._url),this.reconnectMode="retry",this.state="connected",this.resetReconnectCount("opened"),o()},v=async x=>{var L;if((L=this._closeEstablishingTransmitter)===null||L===void 0||L.call(this),z.debug("[".concat(this._name,"] datachannel close ").concat(this._url,", code: ").concat(x.code,", reason: ").concat(x.reason,", current mode: ").concat(this.reconnectMode)),this._reconnectCount{var L;(L=this._reliableTransmission)===null||L===void 0||L.onData(x.data)};this._transmitter&&(this._transmitter.onclose=null,this._transmitter.close()),this._reliableTransmission&&(this._reliableTransmission.close(),this._reliableTransmission=void 0),z.debug("[".concat(this._name,"] start connect, address: ").concat(JSON.stringify(a)));let C=(f=this._store)===null||f===void 0?void 0:f.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"}),R=Date.now();Kr(this,qr.TO_CONNECT_DATACHANNEL,a).then(x=>{var L,U;if(!x)throw new Error("transmissonInfo not exist yet");let{transmitter:F,close:Z}=x;this._transmitter=F,(L=this._store)===null||L===void 0||L.signalChannelOpen();let W=Date.now()-R;z.debug("[choose dc] dc open cost ".concat(W,"ms")),this._reliableTransmission=new yAe(K=>{var oe;this._transmitter&&this._transmitter.readyState==="open"&&((oe=this._transmitter)===null||oe===void 0||oe.send(K))},K=>{typeof K=="string"&&this.emit(qr.ON_MESSAGE,K)}),this._closeEstablishingTransmitter=()=>{var K;(K=this._reliableTransmission)===null||K===void 0||K.close(),this._reliableTransmission=void 0,Z()},m&&m(),F.onclose=v,F.onmessage=w,(U=this._store)===null||U===void 0||U.recordJoinChannelService({endTs:Date.now(),status:"success"},C),this._joinChannelServiceRecordIndex=C}).catch(x=>{var L;if((L=this._store)===null||L===void 0||L.recordJoinChannelService({endTs:Date.now(),status:x instanceof De&&x.code===ce.WS_ABORT?"aborted":"error",errors:[x]},C),this.state!=="closed"){if(x instanceof De&&x.code===ce.WS_ERR){let U=new De(ce.WS_ERR,"init datachannel failed! Error: ".concat(x.toString()));return z.error("[".concat(this._name,"]").concat(U)),void c(U)}v&&v(x)}else c(new De(ce.WS_DISCONNECT,"datachannel is closed: ".concat(x.toString())))})})}async reconnectWithAction(a){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._reconnectCount>=this._retryConfig.maxRetryCount||!this._addresses||this.state==="closed")return!1;this._onlineReconnectListener||yr.networkState!==eo.OFFLINE||(this._onlineReconnectListener=yr.onlineWaiter&&yr.onlineWaiter.then(()=>{this._onlineReconnectListener=void 0}));let c=!0;if(this._reconnectInterrupter=()=>{c=!1},o){let w=j8(this._reconnectCount,this._retryConfig);z.debug("[".concat(this._name,"] wait ").concat(w,"ms to reconnect datachannel, mode: ").concat(a)),await Ct.race([vs(w),this._onlineReconnectListener||new Ct(()=>{})])}if(this.state==="closed"||!c)return!1;this._reconnectCount+=1;let f=async(w,C)=>{this.emit(qr.RECONNECT_CREATE_CONNECTION,C),await this.createTransmitterConnection(w)};try{if(a==="retry"){let w=this._addresses[this.currentURLIndex];this.emit(qr.RECONNECT_WAITTING_FINISH,a),await f(w,a)}else if(a==="tryNext"){this.currentURLIndex+=1;for(let C=this.currentURLIndex;C=this._addresses.length)return z.debug("[".concat(this._name,"] the available addresses are exhausted, change to recover")),await this.reconnectWithAction("recover",!1);z.debug("[".concat(this._name,"] datachannel url length: ").concat(this._addresses.length," current index: ").concat(this.currentURLIndex));let w=this._addresses[this.currentURLIndex];this.emit(qr.RECONNECT_WAITTING_FINISH,a),await f(w,a)}else a==="recover"&&(z.debug("[".concat(this._name,"] start to failback to websocket")),this.resetReconnectCount("recover mode"),this.emit(qr.RECONNECT_WAITTING_FINISH,a),this.emit(qr.FAILBACK));return!0}catch(w){var m,v;return z.error("[".concat(this._name,"] reconnect failed"),w.toString()),w!=null&&(m=w.data)!==null&&m!==void 0&&m.desc&&Array.isArray(w.data.desc)&&w.data.desc.length&&Tt(v=w.data.desc).call(v,"dynamic key expired")?(this.emit(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1):await this.reconnectWithAction(a,o)}}}class vm extends nr{get connectionState(){return this._connectionState}set connectionState(a){a!==this._connectionState&&(this._connectionState=a,a===Vn.CONNECTED?this.emit(Ut.WS_CONNECTED):a===Vn.RECONNECTING?this.emit(Ut.WS_RECONNECTING,this._websocketReconnectReason):a===Vn.CLOSED&&this.emit(Ut.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket?this.websocket.url:null}get rtt(){return this.rttRolling.mean()}constructor(a,o){super(),X(this,"_disconnectedReason",void 0),X(this,"_websocketReconnectReason",void 0),X(this,"_connectionState",Vn.CLOSED),X(this,"reconnectToken",void 0),X(this,"websocket",void 0),X(this,"openConnectionTime",void 0),X(this,"clientId",void 0),X(this,"lastMsgTime",Date.now()),X(this,"uploadCache",[]),X(this,"uploadCacheInterval",void 0),X(this,"rttRolling",new HH(5)),X(this,"pingpongTimer",void 0),X(this,"inflateDataTimer",void 0),X(this,"pingpongTimeoutCount",0),X(this,"joinResponse",void 0),X(this,"multiIpOption",void 0),X(this,"initError",void 0),X(this,"spec",void 0),X(this,"store",void 0),X(this,"onWebsocketMessage",c=>{if(c instanceof ArrayBuffer)return void this.emit(Ut.ON_BINARY_DATA,c);let f=JSON.parse(c);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(f,"_id")){let m="res-@".concat(f._id);this.emit(m,f._result,f._message)}else if(Object.prototype.hasOwnProperty.call(f,"_type")&&(this.emit(f._type,f._message),f._type===Sn.ON_NOTIFICATION&&this.handleNotification(f._message),f._type===Sn.ON_USER_BANNED))switch(f._message.error_code){case 14:this.close(Hn.UID_BANNED);break;case 15:this.close(Hn.IP_BANNED);break;case 16:this.close(Hn.CHANNEL_BANNED)}}),this.clientId=a.clientId,this.spec=a,this.store=o,this.websocket=new Pie("gateway-".concat(this.clientId),this.spec.retryConfig,!0,o),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Vn.CONNECTED&&this.reconnect("retry",I0.OFFLINE)})}async request(a,o,c,f){let m=Di(6,""),v={_id:m,_type:a,_message:o},w=this.websocket.connectionID,C=()=>new Ct((Z,W)=>{if(this.connectionState===Vn.CONNECTED)return Z();let K=()=>{this.off(Ut.WS_CLOSED,oe),Z()},oe=()=>{this.off(Ut.WS_CONNECTED,K),W(new De(ce.WS_ABORT))};this.once(Ut.WS_CONNECTED,K),this.once(Ut.WS_CLOSED,oe),a!==rn.PUBLISH&&a!==rn.SUBSCRIBE&&a!==rn.UNSUBSCRIBE&&a!==rn.UNPUBLISH&&a!==rn.CONTROL&&a!==rn.RESTART_ICE||this.once(Ut.DISCONNECT_P2P,()=>{W(new De(ce.DISCONNECT_P2P))}),a!==rn.PUBLISH&&a!==rn.RESTART_ICE||this.once(Ut.ABORT_P2P_EXECUTION,()=>{W(new De(ce.DISCONNECT_P2P))})});if(this.connectionState!==Vn.CONNECTING&&this.connectionState!==Vn.RECONNECTING||a===rn.JOIN||a===rn.REJOIN||await C(),a===rn.LEAVE&&(this.websocket.unbindDcCloseEventListener(),f=!0),this.websocket.sendMessage(v,!0,!1),f)return;let R=new Ct((Z,W)=>{let K=!1,oe=(xe,Oe)=>{K=!0,Z({isSuccess:xe==="success",message:Oe||{}}),this.off(Ut.WS_CLOSED,ue),this.off(Ut.WS_RECONNECTING,ue),this.emit(Ut.REQUEST_SUCCESS,a,o)};this.once("res-@".concat(m),oe);let ue=()=>{W(new De(ce.WS_ABORT,"type: ".concat(a))),this.off(Ut.WS_CLOSED,ue),this.off(Ut.WS_RECONNECTING,ue),this.off("res-@".concat(m),oe)};this.once(Ut.WS_CLOSED,ue),this.once(Ut.WS_RECONNECTING,ue),vs(ve("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||K||(z.warning("dc request timeout, type: ".concat(a)),this.emit(Ut.REQUEST_TIMEOUT,a,o))})}),x=null;try{x=await R}catch(Z){if(this.connectionState===Vn.CLOSED||a===rn.LEAVE)throw new De(ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||c?Z.throw():a===rn.JOIN||a===rn.REJOIN?null:(await C(),await this.request(a,o))}if(x.isSuccess)return x.message;let L=Number(x.message.error_code||x.message.code),U=Ky(L),F=new De(ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(x.message.error_str),{code:L,data:x.message});return U.action==="success"?x.message:(z.warning("[".concat(this.websocket.connectionID,"] unexpected response from type ").concat(a,", error_code: ").concat(L,", message: ").concat(U.desc,", action: ").concat(U.action)),L===ln.ERR_TOO_MANY_BROADCASTERS?((a===rn.JOIN||a===rn.REJOIN)&&(this.initError=F,this.close()),F.throw()):U.action==="failed"?F.throw():U.action==="quit"?(this.initError=F,this.close(),F.throw()):(L===ln.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=x.message.option,z.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",I0.MULTI_IP)):this.reconnect(U.action,I0.SERVER_ERROR),a===rn.JOIN||a===rn.REJOIN?null:await this.request(a,o)))}waitMessage(a,o){return new Ct(c=>{let f=m=>{(!o||o(m))&&(this.off(a,f),c(m))};this.on(a,f)})}uploadWRTCStats(a){if(!this.store.sessionId)return void z.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let o={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:a};this.upload($y.WRTC_STATS,o)}upload(a,o){let c={_type:a,_message:o};try{this.websocket.sendMessage(c)}catch{let f=ve("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(c),this.uploadCache.length>f&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Vn.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},ve("UPLOAD_CACHE_INTERVAL")||2e3))}}send(a,o){let c={_type:a,_message:o};this.websocket.sendMessage(c)}init(a,o){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ct((c,f)=>{this.once(Ut.WS_CONNECTED,()=>c(this.joinResponse)),this.once(Ut.WS_CLOSED,()=>f(this.initError||new De(ce.WS_ABORT))),this.connectionState=Vn.CONNECTING,this.websocket.init(a).catch(f),this.websocket.once(qr.FAILBACK,()=>{this.openConnectionTime===void 0&&f(new De(ce.INIT_DATACHANNEL_TIMEOUT))}),this.inflateDataTimer&&window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=window.setInterval(()=>{this.handleInflateData()},2e4),setTimeout(()=>{o&&this.openConnectionTime===void 0&&(z.debug("[".concat(this.clientId,"] init datachannel timeout while join with failback to websocket")),f(new De(ce.INIT_DATACHANNEL_TIMEOUT)))},ve("DC_JOIN_WITH_FAILBACK"))})}close(a){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.inflateDataTimer&&(this.handleInflateData(),window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._disconnectedReason=a||Hn.LEAVE,this.connectionState=Vn.CLOSED,z.debug("[".concat(this.clientId,"] ")+"will close datachannel in signal"),this.websocket.close(),a===Hn.FALLBACK&&(this.websocket.removeAllListeners(),this.websocket=new Pie("gateway-".concat(this.clientId),this.spec.retryConfig,!0,this.store),this.handleWebsocketEvents())}async join(){if(!this.joinResponse){this.emit(Ut.ABORT_P2P_EXECUTION);let a=await Kr(this,Ut.DATACHANNEL_CONNECTING),o=await this.request(rn.JOIN,a);if(!o)return this.emit(Ut.REPORT_JOIN_GATEWAY,ce.TIMEOUT,this.url||""),!1;this.joinResponse=o,this.emit(Ut.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Vn.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}async rejoin(){if(!this.reconnectToken)throw new De(ce.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");let a=Vy(this,Ut.REQUEST_REJOIN_INFO);a.token=this.reconnectToken;let o=await this.request(rn.REJOIN,a);return!!o&&(this.connectionState=Vn.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),o.peers&&o.peers.forEach(c=>{this.emit(Sn.ON_USER_ONLINE,{uid:c.uid}),c.audio&&this.emit(Sn.ON_ADD_AUDIO_STREAM,{uid:c.uid,uint_id:c.uint_id,audio:!0,ssrcId:c.audio_ssrc}),c.video&&this.emit(Sn.ON_ADD_VIDEO_STREAM,{uid:c.uid,uint_id:c.uint_id,video:!0,ssrcId:c.video_ssrc}),c.audio_mute?this.emit(Sn.MUTE_AUDIO,{uid:c.uid}):this.emit(Sn.UNMUTE_AUDIO,{uid:c.uid}),c.video_mute?this.emit(Sn.MUTE_VIDEO,{uid:c.uid}):this.emit(Sn.UNMUTE_VIDEO,{uid:c.uid}),c.audio_enable_local?this.emit(Sn.ENABLE_LOCAL_AUDIO,{uid:c.uid}):this.emit(Sn.DISABLE_LOCAL_AUDIO,{uid:c.uid}),c.video_enable_local?this.emit(Sn.ENABLE_LOCAL_VIDEO,{uid:c.uid}):this.emit(Sn.DISABLE_LOCAL_VIDEO,{uid:c.uid}),c.audio||c.video||this.emit(Sn.ON_REMOVE_STREAM,{uid:c.uid,uint_id:c.uint_id})}),!0)}reconnect(a,o){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(a,o)}handleNotification(a){z.debug("[".concat(this.clientId,"] receive notification: "),a);let o=Ky(a.code);if(o.action!=="success"){if(o.action!=="failed")return o.action==="quit"?(o.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(Hn.UID_BANNED),void this.close()):void this.reconnect(o.action,I0.SERVER_ERROR);z.error("[".concat(this.clientId,"] ignore error: "),o.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;let a=ve("PING_PONG_TIME_OUT"),o=Date.now();this.pingpongTimeoutCount>=a&&(z.warning("PINGPONG Timeout. Last Socket Message: ".concat(o-this.lastMsgTime,"ms")),o-this.lastMsgTime>ve("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",I0.TIMEOUT):this.request(rn.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let c=Date.now()-o;this.rttRolling.add(c),ve("REPORT_STATS")&&this.send(rn.PING_BACK,{pingpongElapse:c})}).catch(c=>{})}handleInflateData(){let{inflateLength:a,deflateLength:o}=this.websocket.getInflateData();a!==0&&o!==0&&this.upload($y.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:o,ws_inflate_length:a})}handleWebsocketEvents(){this.websocket.on(qr.RECONNECT_WAITTING_FINISH,a=>{this.emit(Ut.WS_RECONNECT_WAITTING_FINISH,a)}),this.websocket.on(qr.RECONNECT_CREATE_CONNECTION,a=>{this.emit(Ut.WS_RECONNECT_CREATE_CONNECTION,a)}),this.websocket.on(qr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(qr.CLOSED,()=>{this.connectionState=Vn.CLOSED}),this.websocket.on(qr.FAILED,()=>{this._disconnectedReason=Hn.NETWORK_ERROR,this.connectionState=Vn.CLOSED}),this.websocket.on(qr.RECONNECTING,a=>{this._websocketReconnectReason=a,this.joinResponse=void 0,this.connectionState===Vn.CONNECTED?this.connectionState=Vn.RECONNECTING:this.connectionState=Vn.CONNECTING}),this.websocket.on(qr.WILL_RECONNECT,(a,o)=>{if(Vy(this,Ut.IS_P2P_DISCONNECTED)&&a==="retry")return z.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),this.reconnectToken=void 0,this.emit(Ut.NEED_RENEW_SESSION),this.emit(Ut.DISCONNECT_P2P),o("tryNext");a!=="retry"&&(z.debug("".concat(this.clientId," websockt will_connect event, renewSession reconnectMode is ").concat(a)),this.reconnectToken=void 0,this.emit(Ut.NEED_RENEW_SESSION),this.emit(Ut.DISCONNECT_P2P)),o(a)}),this.websocket.on(qr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(a=>{z.warning("[".concat(this.clientId,"] rejoin failed ").concat(a)),this.reconnect("tryNext",I0.SERVER_ERROR)}):this.join().catch(a=>{if(this.emit(Ut.REPORT_JOIN_GATEWAY,a.message||a.code,this.url||""),a instanceof De&&a.code===ce.UNEXPECTED_RESPONSE&&a.data.code===ln.ERR_NO_AUTHORIZED)return z.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",I0.SERVER_ERROR);z.error("[".concat(this.clientId,"] join gateway request failed"),a.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",I0.SERVER_ERROR):(this.initError=a,this.close())})}),this.websocket.on(qr.REQUEST_NEW_URLS,(a,o)=>{Kr(this,Ut.REQUEST_RECOVER,this.multiIpOption).then(a).catch(o)}),this.websocket.on(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Sn.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(qr.TO_CONNECT_DATACHANNEL,async(a,o,c)=>Kr(this,Ut.DATACHANNEL_PRECONNECT,a).then(o).catch(c)),this.websocket.on(qr.FAILBACK,()=>{this.openConnectionTime!==void 0&&this.emit(Ut.DATACHANNEL_FAILBACK)})}}class qy extends nr{constructor(a,o){super(),X(this,"signal",void 0),X(this,"token",void 0),X(this,"tokenTimeout",void 0),X(this,"tokenInterval",void 0),X(this,"_sequence",0),X(this,"userMap",new Map),X(this,"encoder",new TextEncoder),this.signal=a,this.token=o;let c=()=>{this.signal.connectionState===Vn.CONNECTED&&this.check(),this.userMap.size===0?this.tokenInterval=window.setTimeout(c,1e3):this.tokenInterval=window.setTimeout(c,3*ve("P2P_TOKEN_INTERVAL"))};c()}async send(a,o,c,f,m){var v,w,C;if(this.userMap.size===0)return;let R=Array.from(Sh(v=this.userMap).call(v))[0].token;typeof o!="string"&&(o=JSON.stringify(o)),f=(w=f)!==null&&w!==void 0?w:Di(6,""),m=(C=m)!==null&&C!==void 0?C:this._sequence++;let x={_id:f,_type:a,_seq:m,_message:o,token:"".concat(this.token,"_").concat(R)};ve("SHOW_P2P_LOG")&&z.debug("send message",x,"noNeedResponse : ".concat(c)),this.splitMessage(JSON.stringify(x)).forEach(U=>{this.signal.request(rn.DATA_STREAM,{payload:R0(this.encoder.encode(U))})});let L=new Ct((U,F)=>{let Z=window.setTimeout(()=>{this.off("res-@".concat(f,"_ack"),W),this.off("res-@".concat(f),oe),this.off($S.ABORT,K),z.debug("[external-signal] request timeout, type: ".concat(a,", requestId: ").concat(f)),this.userMap.size===0?F(new Ke(ce.INVALID_REMOTE_USER)):F(new Ke(ce.TIMEOUT))},ve("EXTERNAL_SIGNAL_REQUEST_TIMEOUT")),W=()=>{Z&&window.clearTimeout(Z),this.off($S.ABORT,K),c&&U()},K=()=>{Z&&window.clearTimeout(Z),this.off("res-@".concat(f,"_ack"),W),this.off("res-@".concat(f),oe),F(new Ke(ce.EXTERNAL_SIGNAL_ABORT,"type: ".concat(a,", requestId: ").concat(f)))};this.once($S.ABORT,K),this.once("res-@".concat(f,"_ack"),W);let oe=(xe,Oe)=>{ue=!0,Z&&window.clearTimeout(Z),this.off("res-@".concat(f,"_ack"),W),this.off($S.ABORT,K),xe==="success"?U(Oe):F(new Ke(ce.P2P_MESSAGE_FAILED,"request ".concat(a," failed, requestId: ").concat(f)))},ue=!1;c||(this.once("res-@".concat(f),oe),vs(ve("SIGNAL_REQUEST_TIMEOUT")).then(()=>{ue||z.warning("external_signal request timeout, type: ".concat(a,", requestId: ").concat(f,", ").concat(x))}))});try{return await L}catch(U){if(U.code===ce.TIMEOUT)return await this.send(a,o,c,f,m);throw U}}onMessage(a){var o;let{_uid:c}=a,f,m=this.userMap.get(c);if(m)f=m.splitMessageMap;else{if(this.userMap.size>0||!("_type"in a)||a._type!==Nr.CHECK)return;let{token:R}=a;f=new Map,m={uid:c,isStart:!0,token:R,splitMessageMap:f,nextExpectedSequenceNumber:0,receivedMessagesMap:new Map},this.userMap.set(c,m),this.signal.emit(Sn.ON_USER_ONLINE,{uid:c}),this.handleUserOnline()}if("id"in a&&"total"in a){var v;let{id:R,total:x}=a,L=(v=f.get(R))!==null&&v!==void 0?v:[];if(L.push(a),f.has(R)||f.set(R,L),L.length!==x)return;{let U=JA(L).call(L,(F,Z)=>F.index-Z.index).map(F=>F.payload).join("");f.delete(R),(a=JSON.parse(U))._uid=c}}let{_type:w,token:C}=a;if(Tt(o=[Nr.ACK,Nr.CHECK]).call(o,w))return w===Nr.CHECK&&this.handleCheckToken(m,C),void this.receiveMessage(a);C==="".concat(m.token,"_").concat(this.token)?this.handleReceivedMessage(a):z.debug('Receive unexpected message", '.concat(C,", cur_token: ").concat(m.token,"_").concat(this.token),a)}check(){let a={_id:Di(6,""),token:this.token,_type:Nr.CHECK};ve("SHOW_P2P_LOG")&&z.debug("send message",a),this.signal.request(rn.DATA_STREAM,{payload:R0(this.encoder.encode(JSON.stringify(a)))})}ack(a){let o={_id:a,_type:Nr.ACK,token:this.token};ve("SHOW_P2P_LOG")&&z.debug("send message",o),this.signal.request(rn.DATA_STREAM,{payload:R0(this.encoder.encode(JSON.stringify(o)))})}response(a,o,c){this.send(Nr.RESPONSE,JSON.stringify({success:!c,message:o}),!0,a)}handleReceivedMessage(a){let o=()=>{this.userMap.forEach(R=>{let{receivedMessagesMap:x,nextExpectedSequenceNumber:L}=R;for(;x.has(L);){let U=x.get(L);x.delete(L),this.receiveMessage(U),R.nextExpectedSequenceNumber++}})};if(!a)return void o();let{_uid:c,_seq:f}=a,m=this.userMap.get(c),{receivedMessagesMap:v,isStart:w,nextExpectedSequenceNumber:C}=m;if(f{this.response(a._id,w)}).catch(()=>{this.response(a._id,void 0,!0)});break;case Nr.ACK:this.getListeners("res-@".concat(o,"_ack")).length>0&&this.emit("res-@".concat(o,"_ack"));break;case Nr.RESPONSE:{let{success:w,message:C}=v;this.emit("res-@".concat(o),w?"success":"failed",C);break}}}}splitMessage(a){if(a.length0;){m++;let C={id:f,index:m,total:w,payload:a.slice(0,v),token:"".concat(this.token,"_").concat(c)};JSON.stringify(C).length>qy.MAX_MESSAGE_SIZE?v-=50:(o.push(C),a=a.slice(v))}return o.map(C=>JSON.stringify(C))}handleCheckToken(a,o){return a.token!==o?(z.debug("token changed, from ".concat(a.token," to ").concat(o)),this.reset(a.uid,o),!1):(this.tokenTimeout&&(window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0),this.tokenTimeout=window.setTimeout(()=>{z.debug("token timeout, ".concat(o)),this.reset(a.uid)},ve("MAX_P2P_TIMEOUT")),!0)}async handleUserOnline(){let a=await Kr(this.signal,Nr.CALL,void 0),o=await this.send(Nr.CALL,a);this.signal.emit(Ut.P2P_CONNECTION,o,!0)}async reset(a,o){let c=this.userMap.get(a);c&&(this.emit($S.ABORT),this.signal.emit(Sn.ON_USER_OFFLINE,{uid:c.uid,reason:lAe.P2P_TOKEN_CHANGED}),this._sequence=0,this.userMap.clear(),o||(z.debug("change local token from ".concat(o," to ").concat(o)),this.token=Di(6,"")))}clear(){this._sequence=0,this.userMap.clear(),this.tokenInterval&&window.clearTimeout(this.tokenInterval),this.tokenInterval=void 0,this.tokenTimeout&&window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0,this.emit($S.ABORT)}}X(qy,"MAX_SIZE",1),X(qy,"MAX_MESSAGE_SIZE",1024);class Lie extends nr{get connectionState(){return this._connectionState}set connectionState(a){a!==this._connectionState&&(this._connectionState=a,a===Vn.CONNECTED?this.emit(Ut.WS_CONNECTED):a===Vn.RECONNECTING?this.emit(Ut.WS_RECONNECTING,this._websocketReconnectReason):a===Vn.CLOSED&&this.emit(Ut.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(a,o){super(),X(this,"_disconnectedReason",void 0),X(this,"_websocketReconnectReason",void 0),X(this,"_connectionState",Vn.CLOSED),X(this,"reconnectToken",void 0),X(this,"p2pToken",void 0),X(this,"websocket",void 0),X(this,"openConnectionTime",void 0),X(this,"clientId",void 0),X(this,"lastMsgTime",Date.now()),X(this,"uploadCache",[]),X(this,"uploadCacheInterval",void 0),X(this,"rttRolling",new HH(5)),X(this,"pingpongTimer",void 0),X(this,"pingpongTimeoutCount",0),X(this,"joinResponse",void 0),X(this,"multiIpOption",void 0),X(this,"initError",void 0),X(this,"spec",void 0),X(this,"store",void 0),X(this,"_external_signal",void 0),X(this,"onWebsocketMessage",c=>{if(c.data instanceof ArrayBuffer)return void this.emit(Ut.ON_BINARY_DATA,c.data);let f=JSON.parse(c.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(f,"_id")){let m="res-@".concat(f._id);this.emit(m,f._result,f._message)}else if(Object.prototype.hasOwnProperty.call(f,"_type")){switch(f._type){case Sn.ON_DATA_STREAM:return void this.handleDataStream(f._message);case Sn.MUTE_AUDIO:case Sn.MUTE_VIDEO:case Sn.ON_P2P_LOST:case Sn.ON_USER_ONLINE:return;case Sn.ON_USER_OFFLINE:let{uid:m}=f._message;return z.debug("[".concat(this.clientId,"] user-offline uid: ").concat(m)),void this._external_signal.reset(m)}if(this.emit(f._type,f._message),f._type===Sn.ON_NOTIFICATION&&this.handleNotification(f._message),f._type===Sn.ON_USER_BANNED)switch(f._message.error_code){case 14:this.close(Hn.UID_BANNED);break;case 15:this.close(Hn.IP_BANNED);break;case 16:this.close(Hn.CHANNEL_BANNED)}if(f._type===Sn.ON_USER_LICENSE_BANNED)switch(f._message.error_code){case ln.ERR_LICENSE_MISSING:this.close(Hn.LICENSE_MISSING);break;case ln.ERR_LICENSE_EXPIRED:this.close(Hn.LICENSE_EXPIRED);break;case ln.ERR_LICENSE_MINUTES_EXCEEDED:this.close(Hn.LICENSE_MINUTES_EXCEEDED);break;case ln.ERR_LICENSE_PERIOD_INVALID:this.close(Hn.LICENSE_PERIOD_INVALID);break;case ln.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(Hn.LICENSE_MULTIPLE_SDK_SERVICE);break;case ln.ERR_LICENSE_ILLEGAL:this.close(Hn.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=a.clientId,this.spec=a,this.store=o,this.websocket=new _3("gateway-".concat(this.clientId),this.spec.retryConfig,!0,ve("JOIN_GATEWAY_USE_DUAL_DOMAIN"),ve("JOIN_GATEWAY_USE_443PORT_ONLY"),o),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Vn.CONNECTED&&this.reconnect("retry",$s.OFFLINE)}),this.p2pToken=Di(6,""),this._external_signal=new qy(this,this.p2pToken)}async request(a,o,c,f){let m=Di(6,""),v={_id:m,_type:a,_message:o},w=this.websocket.connectionID,C=()=>new Ct((Z,W)=>{if(this.connectionState===Vn.CONNECTED)return Z();let K=()=>{this.off(Ut.WS_CLOSED,oe),Z()},oe=()=>{this.off(Ut.WS_CONNECTED,K),W(new Ke(ce.WS_ABORT))};this.once(Ut.WS_CONNECTED,K),this.once(Ut.WS_CLOSED,oe)});if(this.connectionState!==Vn.CONNECTING&&this.connectionState!==Vn.RECONNECTING||a===rn.JOIN||a===rn.REJOIN||await C(),this.websocket.sendMessage(v,!0),f)return;let R=new Ct((Z,W)=>{let K=!1,oe=(xe,Oe)=>{K=!0,Z({isSuccess:xe==="success",message:Oe||{}}),this.off(Ut.WS_CLOSED,ue),this.off(Ut.WS_RECONNECTING,ue),this.emit(Ut.REQUEST_SUCCESS,a,o)};this.once("res-@".concat(m),oe);let ue=()=>{W(new Ke(ce.WS_ABORT,"type: ".concat(a))),this.off(Ut.WS_CLOSED,ue),this.off(Ut.WS_RECONNECTING,ue),this.off("res-@".concat(m),oe)};this.once(Ut.WS_CLOSED,ue),this.once(Ut.WS_RECONNECTING,ue),vs(ve("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||K||(z.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(a)),this.emit(Ut.REQUEST_TIMEOUT,a,o))})}),x=null;try{x=await R}catch(Z){if(this.connectionState===Vn.CLOSED||a===rn.LEAVE)throw new Ke(ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||c?Z.throw():a===rn.JOIN||a===rn.REJOIN?null:(await C(),await this.request(a,o))}if(x.isSuccess)return x.message;let L=Number(x.message.error_code||x.message.code),U=Ky(L),F=new Ke(ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(x.message.error_str),{code:L,data:x.message});return U.action==="success"?x.message:(z.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(a,", error_code: ").concat(L,", message: ").concat(U.desc,", action: ").concat(U.action)),L===ln.ERR_TOO_MANY_BROADCASTERS?((a===rn.JOIN||a===rn.REJOIN)&&(this.initError=F,this.close()),F.throw()):U.action==="failed"?F.throw():U.action==="quit"?(this.initError=F,this.close(),F.throw()):(L===ln.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=x.message.option,z.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",$s.MULTI_IP)):this.reconnect(U.action,$s.SERVER_ERROR),a===rn.JOIN||a===rn.REJOIN?null:await this.request(a,o)))}waitMessage(a,o){return new Ct(c=>{let f=m=>{(!o||o(m))&&(this.off(a,f),c(m))};this.on(a,f)})}uploadWRTCStats(a){if(!this.store.sessionId)return void z.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let o={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:a};this.upload($y.WRTC_STATS,o)}upload(a,o){let c={_type:a,_message:o};try{this.websocket.sendMessage(c)}catch{let f=ve("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(c),this.uploadCache.length>f&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Vn.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},ve("UPLOAD_CACHE_INTERVAL")||2e3))}}send(a,o){let c={_type:a,_message:o};this.websocket.sendMessage(c)}async sendExtensionMessage(a,o,c){return await this._external_signal.send(a,o,c)}init(a){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ct((o,c)=>{this.once(Ut.WS_CONNECTED,()=>o(this.joinResponse)),this.once(Ut.WS_CLOSED,()=>c(this.initError||new Ke(ce.WS_ABORT))),this.connectionState=Vn.CONNECTING,this.websocket.init(a).catch(c)})}close(a){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._external_signal.clear(),this._disconnectedReason=a||Hn.LEAVE,this.connectionState=Vn.CLOSED,z.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close(),a===Hn.FALLBACK&&(this.websocket.removeAllListeners(),this.websocket=new _3("gateway-".concat(this.clientId),this.spec.retryConfig,!0,ve("JOIN_GATEWAY_USE_DUAL_DOMAIN"),ve("JOIN_GATEWAY_USE_443PORT_ONLY"),this.store),this.handleWebsocketEvents()),this.p2pToken=Di(6,""),this._external_signal.clear(),this._external_signal=new qy(this,this.p2pToken)}async join(){if(!this.joinResponse){this.emit(Ut.ABORT_P2P_EXECUTION);let a=await Kr(this,Ut.REQUEST_JOIN_INFO),o=await this.request(rn.JOIN,a);if(!o)return this.emit(Ut.REPORT_JOIN_GATEWAY,ce.TIMEOUT,this.url||""),!1;this.joinResponse=o,this.emit(Ut.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Vn.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}reconnect(a,o){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(a,o)}handleDataStream(a){try{var o;let c=Hy(a.payload),f=new TextDecoder().decode(c),m=JSON.parse(f);"total"in m&&"id"in m||Tt(o=Object.values(Nr)).call(o,m._type)?(m._uid=a.uid,this._external_signal.onMessage(m)):this.emit(Sn.ON_DATA_STREAM,a)}catch{this.emit(Sn.ON_DATA_STREAM,a)}}handleNotification(a){z.debug("[".concat(this.clientId,"] receive notification: "),a);let o=Ky(a.code);if(o.action!=="success"){if(o.action!=="failed")return o.action==="quit"?(o.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(Hn.UID_BANNED),void this.close()):void this.reconnect(o.action,$s.SERVER_ERROR);z.error("[".concat(this.clientId,"] ignore error: "),o.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;let a=ve("PING_PONG_TIME_OUT"),o=Date.now();this.pingpongTimeoutCount>=a&&(z.warning("[".concat(this.clientId,"] PINGPONG Timeout. Last Socket Message: ").concat(o-this.lastMsgTime,"ms")),o-this.lastMsgTime>ve("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",$s.TIMEOUT):this.request(rn.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let c=Date.now()-o;this.rttRolling.add(c),ve("REPORT_STATS")&&this.send(rn.PING_BACK,{pingpongElapse:c})}).catch(c=>{})}handleWebsocketEvents(){this.websocket.on(En.RECONNECT_WAITTING_FINISH,a=>{this.emit(Ut.WS_RECONNECT_WAITTING_FINISH,a)}),this.websocket.on(En.RECONNECT_CREATE_CONNECTION,a=>{this.emit(Ut.WS_RECONNECT_CREATE_CONNECTION,a)}),this.websocket.on(En.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(En.CLOSED,()=>{this.connectionState=Vn.CLOSED}),this.websocket.on(En.FAILED,()=>{this._disconnectedReason=Hn.NETWORK_ERROR,this.connectionState=Vn.CLOSED}),this.websocket.on(En.RECONNECTING,a=>{this._websocketReconnectReason=a,this.joinResponse=void 0,this.connectionState===Vn.CONNECTED?this.connectionState=Vn.RECONNECTING:this.connectionState=Vn.CONNECTING}),this.websocket.on(En.WILL_RECONNECT,(a,o,c)=>{a!=="retry"?(z.debug("".concat(this.clientId," websocket will_connect event, renewSession reconnectMode is ").concat(a)),this.reconnectToken=void 0,this.emit(Ut.NEED_RENEW_SESSION)):z.debug("".concat(this.clientId," reconnect mode is retry, no need to renew session")),c(a)}),this.websocket.on(En.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.join().catch(a=>{if(this.emit(Ut.REPORT_JOIN_GATEWAY,a.message||a.code,this.url||""),a instanceof Ke&&a.code===ce.UNEXPECTED_RESPONSE&&a.data.code===ln.ERR_NO_AUTHORIZED)return z.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",$s.SERVER_ERROR);z.error("[".concat(this.clientId,"] join gateway request failed"),a.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",$s.SERVER_ERROR):(this.initError=a,this.close())})}),this.websocket.on(En.REQUEST_NEW_URLS,(a,o)=>{Kr(this,Ut.REQUEST_RECOVER,this.multiIpOption).then(a).catch(o)}),this.websocket.on(En.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Sn.ON_TOKEN_PRIVILEGE_DID_EXPIRE)})}}function Die(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function vu(r){for(var a=1;a255||"".concat(a.apResponse.cid,"_").concat(a.apResponse.cert).length<22?(z.debug("[".concat(this.store.clientId,"] Dc is not supported, because ticket length is incorrect, it has to be between 22 and 255")),C=!0):a.apResponse.addresses.some(R=>R.fingerprint)||ve("FINGERPRINT")||(z.debug("[".concat(this.store.clientId,"] Dc is not supported, because fingerprint does not exist")),C=!0),C&&this.resetSignal()}this.store.joinGatewayStart(),a.cloudProxyServer!=="disabled"&&(this.hasChangeBGPAddress=!0);let f=Date.now(),m=lG.get(a.cname);if(m||(m=new Map,lG.set(a.cname,m)),this._isProactiveJoin=!0,m.has(a.uid)){let C=new De(ce.UID_CONFLICT);throw $t.joinGateway(a.sid,{lts:f,succ:!1,ec:C.message,addr:null,uid:a.uid,cid:a.cid,firstSuccess:this._isProactiveJoin,avoidJoinStartTime:this.store.avoidJoinStart,isProxy:!!a.proxyServer,signalChannel:this.signal instanceof vm?"1":"0"}),this._isProactiveJoin=!1,C}m.set(a.uid,!0),this.joinInfo=a,this.key=o;let v=0;this.joinGatewayStartTime=f;let w=a.proxyServer;try{let C;if(z.debug("[".concat(this.store.clientId,"] use ").concat(this.signal instanceof vm?"datachannel":"websocket"," join uid ").concat(v)),this.signal instanceof vm)C=await this.signal.init(a.apResponse.addresses,c);else{let R=a.gatewayAddrs.map(x=>{let{address:L}=x,[U,F]=L.split(":"),Z={host:U,port:F};return a.proxyServer&&(Z.proxy=a.proxyServer),Z});C=await this.signal.init(R,c)}v=C.uid,z.debug("[".concat(this.store.clientId,"] ").concat(this.signal instanceof vm?"datachannel":"websocket"," join uid ").concat(v," cost ").concat(Date.now()-this.joinGatewayStartTime))}catch(C){throw C&&C.code===ce.INIT_WEBSOCKET_TIMEOUT?(z.warning("[".concat(this.store.clientId,"] User join failed"),C.toString()),C):C&&C.code===ce.INIT_DATACHANNEL_TIMEOUT?(z.warning("[".concat(this.store.clientId,"] User join datachannel failed"),C.toString()),this.resetSignal(),C):(z.error("[".concat(this.store.clientId,"] User join failed"),C.toString()),$t.joinGateway(a.sid,{lts:f,succ:!1,ec:C.message,addr:this.signal.url,uid:a.uid,cid:a.cid,firstSuccess:this._isProactiveJoin,avoidJoinStartTime:this.store.avoidJoinStart,isProxy:!!w,signalChannel:this.signal instanceof vm?"1":"0"}),this._isProactiveJoin=!1,m.delete(a.uid),this.signal.close(),C)}return this.state="CONNECTED",this.inChannelInfo.joinAt=Date.now(),z.debug("[".concat(this.store.clientId,"] Connected to gateway server")),this.trafficStatsInterval=window.setInterval(()=>{this.updateTrafficStats().catch(C=>{z.warning("[".concat(this.store.clientId,"] get traffic stats error"),C.toString())})},3e3),this.networkQualityInterval=window.setInterval(()=>{navigator&&navigator.onLine!==void 0&&!navigator.onLine?this.emit(Ir.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6}):this._signalTimeout?this.emit(Ir.NETWORK_QUALITY,{downlinkNetworkQuality:5,uplinkNetworkQuality:5}):this.state==="CONNECTED"&&this._statsCollector.trafficStats?this.emit(Ir.NETWORK_QUALITY,{uplinkNetworkQuality:Iie(this._statsCollector.trafficStats.B_unq),downlinkNetworkQuality:Iie(this._statsCollector.trafficStats.B_dnq)}):this.emit(Ir.NETWORK_QUALITY,{uplinkNetworkQuality:0,downlinkNetworkQuality:0})},2e3),this.store.joinGatewayEnd(),v}async leave(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0],o=arguments.length>1?arguments[1]:void 0;if(this.state!=="DISCONNECTED"){o!==Hn.FALLBACK&&(this.state="DISCONNECTING");try{a||this.signal.connectionState!==Vn.CONNECTED||await function(c,f){return f===1/0?c:Ct.race([c,axe(f)])}(this.signal.request(rn.LEAVE,void 0,!0),3e3)}catch(c){z.warning("[".concat(this.store.clientId,"] leave request failed, ignore"),c)}this.signal.close(o),o!==Hn.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}}async publish(a,o,c){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));let f={state:"offer",p2p_id:this.store.p2pId,ortc:o,mode:this.spec.mode,extend:ve("PUB_EXTEND"),twcc:!!ve("PUBLISH_TWCC"),rtx:!!ve("USE_PUB_RTX")};try{return(await this.signal.request(rn.PUBLISH,f,!0))._message}catch(m){if(c&&m.data&&m.data.code===ln.ERR_PUBLISH_REQUEST_INVALID)return z.warning("[".concat(this.store.clientId,"] receive publish error code, retry"),m.toString()),await this.tryUnpubBeforeRepub(a,o),this.publish(a,o,!1);throw m}}async publishDataChannel(a,o,c){var f;if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));let m={stream_id:o.streamId,ordered:o.ordered?1:0,max_retrans_times:(f=o.maxRetransmits)!==null&&f!==void 0?f:10,channel_id:o.channelId,metadata:o.metadata};try{await this.signal.request(rn.PUBLISH_DATASTREAM,m,!0)}catch(v){if(c&&v.data&&v.data.code===ln.ERR_PUBLISH_REQUEST_INVALID)return z.warning("[".concat(this.store.clientId,"] receive publish datachannels error code, retry"),v.toString()),await this.tryUnpubDataChannelBeforeRepub(a,o),this.publishDataChannel(a,o,!1);throw v}}async unpublish(a,o){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await this.signal.request(rn.UNPUBLISH,{stream_id:o,ortc:a},!0)}catch(c){z.warning("[".concat(this.store.clientId,"] unpublish warning: "),c)}}async unpublishDataChannel(a){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ct.all(a.map(o=>this.signal.request(rn.UNPUBLISH_DATASTREAM,{channel_id:o},!0)))}catch(o){z.warning("unpublish datachannels warning: ",o)}}async presubscribe(a,o,c){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not presubscribe when connection state is ".concat(this.state));let f={stream_id:a,stream_type:o,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!ve("SUBSCRIBE_TWCC"),rtx:!!ve("USE_SUB_RTX")||void 0,extend:ve("SUB_EXTEND"),svc:Array.isArray(ve("SVC"))&&ve("SVC").length!==0?ve("SVC"):void 0};try{return await this.signal.request(rn.PRE_SUBSCRIBE,f,!0)}catch(m){if(c&&m.data&&m.data.code===ln.ERR_SUBSCRIBE_REQUEST_INVALID)return z.warning("[".concat(this.store.clientId,"] pre-subscribe error, retry"),m.toString()),this.presubscribe(a,o,!1);throw m}}async subscribe(a,o,c){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not subscribe when connection state is ".concat(this.state));let f={stream_id:a,stream_type:o.stream_type,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!ve("SUBSCRIBE_TWCC"),rtx:!!ve("USE_SUB_RTX"),extend:ve("SUB_EXTEND"),ssrcId:o.ssrcId,svc:Array.isArray(ve("SVC"))&&ve("SVC").length!==0?ve("SVC"):void 0};try{return(await this.signal.request(rn.SUBSCRIBE,f,!0))._message}catch(m){if(c&&m.data&&m.data.code===ln.ERR_SUBSCRIBE_REQUEST_INVALID)return z.warning("[".concat(this.store.clientId,"] receiver subscribe error code, retry"),m.toString()),await this.tryUnsubBeforeResub(a,o),await this.subscribe(a,o,!1);throw m}}async subscribeDataChannel(a,o,c){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not subscribe datachannel when connection state is ".concat(this.state));let f={uid:a,stream_id:o.id,channel_id:o.datachannelId};try{return void await this.signal.request(rn.SUBSCRIBE_DATASTREAM,f,!0)}catch(m){if(c&&m.data&&m.data.code===ln.ERR_SUBSCRIBE_REQUEST_INVALID)return z.warning("[".concat(this.store.clientId,"] receiver subscribe datachannel error code, retry"),m.toString()),await this.tryUnsubDataChannelBeforeResub(a,o),await this.subscribeDataChannel(a,o,!1);throw m}}async subscribeAll(a,o){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not massSubscribe when connection state is ".concat(this.state));let c={p2p_id:this.store.p2pId,users:a,dtx:!1,rtx:!!ve("USE_SUB_RTX"),twcc:!!ve("SUBSCRIBE_TWCC"),svc:Array.isArray(ve("SVC"))&&ve("SVC").length!==0?ve("SVC"):void 0};try{return await this.signal.request(rn.SUBSCRIBE_STREAMS,c,!0)}catch(f){if(o&&f.data&&f.data.code===ln.ERR_SUBSCRIBE_REQUEST_INVALID)return z.warning("[".concat(this.store.clientId,"] receiver massSubscribe error code, retry"),f.toString()),await this.tryMassUnsubBeforeResub(a),await this.subscribeAll(a,!1);throw f}}async setVideoProfile(a){let o=function(c){if(!(c.bitrateMax&&c.bitrateMin&&c.frameRate&&c.height&&c.width))return;let f=c.frameRate,m=c.width,v=c.height,w=!0;return typeof f!="number"&&(f=f.exact||f.ideal||f.max||f.min||0,f||(w=!1)),typeof m!="number"&&(m=m.exact||m.ideal||m.max||m.min||0,m||(w=!1)),typeof v!="number"&&(v=v.exact||v.ideal||v.max||v.min||0,f||(w=!1)),w?{stream_type:0,width:m,height:v,fps:f,start_bps:1e3*c.bitrateMax,min_bps:1e3*c.bitrateMin,target_bps:1e3*c.bitrateMax}:void 0}(a);if(o)return this.signal.request(rn.SET_VIDEO_PROFILE,o);z.debug("[".concat(this.store.clientId,"] encoder config is not complete, do not report to gateway"))}async unsubscribe(a,o){try{await this.signal.request(rn.UNSUBSCRIBE,{p2p_id:this.store.p2pId,ortc:a,stream_id:o},!0)}catch(c){z.warning("[".concat(this.store.clientId,"] unsubscribe warning: "),c)}}async unsubscribeDataChannel(a,o){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ct.all(a.map(c=>this.signal.request(rn.UNSUBSCRIBE_DATASTREAM,{stream_id:c,uid:o},!0)))}catch(c){z.warning("unsubscribeDataChannel warning: ",c)}}async massUnsubscribe(a){try{await this.signal.request(rn.UNSUBSCRIBE_STREAMS,a,!0)}catch(o){z.warning("[".concat(this.store.clientId,"] massUnsubscribeAll warning: "),o)}}async reconnectPC(a){let{iceParameters:o,dtlsParameters:c,rtpCapabilities:f}=a;return{gatewayEstablishParams:await this.signal.request(rn.CONNECT_PC,{p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:{iceParameters:o,dtlsParameters:c,rtpCapabilities:f}},!0),gatewayAddress:this.getCurrentGatewayAddress()}}getGatewayInfo(){return this.signal.request(rn.GATEWAY_INFO)}async renewToken(a){await this.signal.request(rn.RENEW_TOKEN,a),this.key=a.token}async setClientRole(a,o){if(o&&(this._clientRoleOptions=Object.assign({},o)),this.state!=="CONNECTED")return void(this.role=a);let c,f=0;a==="audience"?this._clientRoleOptions&&this._clientRoleOptions.delay?(c=this._clientRoleOptions.delay,f=1):f=this._clientRoleOptions&&this._clientRoleOptions.level?this._clientRoleOptions.level:2:f=0,await this.signal.request(rn.SET_CLIENT_ROLE,{role:a,level:f,delay:c,client_ts:Date.now()}),this.role=a}async setRemoteVideoStreamType(a,o){await this.signal.request(rn.SWITCH_VIDEO_STREAM,{stream_id:a,stream_type:o})}async setDefaultRemoteVideoStreamType(a){await this.signal.request(rn.DEFAULT_VIDEO_STREAM,{stream_type:a})}async setStreamFallbackOption(a,o){await this.signal.request(rn.SET_FALLBACK_OPTION,{stream_id:a,fallback_type:o})}async pickSVCLayer(a,o){await this.signal.request(rn.PICK_SVC_LAYER,{stream_id:a,spatial_layer:o.spatialLayer,temporal_layer:o.temporalLayer})}async setRTM2Flag(a){await this.signal.request(rn.SET_RTM2_FLAG,{rtm2_flag:a})}async sendExtensionMessage(a,o,c){if(this.signal instanceof Lie)return this.signal.sendExtensionMessage(a,o,c)}getInChannelInfo(){return this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt),vu({},this.inChannelInfo)}async getGatewayVersion(){return(await this.signal.request(rn.GATEWAY_INFO)).version}reset(){if(this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt,this.inChannelInfo.joinAt=null),this.trafficStatsInterval&&(window.clearInterval(this.trafficStatsInterval),this.trafficStatsInterval=void 0),this.joinInfo){let a=lG.get(this.joinInfo.cname);a&&a.delete(this.joinInfo.uid)}this.joinInfo=void 0,this.key=void 0,this.networkQualityInterval&&(window.clearInterval(this.networkQualityInterval),this.networkQualityInterval=void 0)}updateTurnConfigFromSignal(){if(!this.joinInfo)return;let a=function(o){let c;return c=o.startsWith("dc")?o.match(/(dc\:\/\/)?([^:]+):(\d+)/):o.match(/(wss\:\/\/)?([^:]+):(\d+)/),c?{username:Ks.username,password:Ks.password,turnServerURL:c[2],tcpport:parseInt(c[3])+30,udpport:parseInt(c[3])+30,forceturn:!1}:null}((this.joinInfo.cloudProxyServer==="disabled"?this.signal.url:this.joinInfo.gatewayAddrs[this.signal.currentURLIndex].address)||"");this.joinInfo.turnServer.serversFromGateway=[],a&&this.joinInfo.turnServer.mode!=="off"&&this.joinInfo.cloudProxyServer==="disabled"&&this.joinInfo.turnServer.serversFromGateway.push(vu(vu({},Ks),{},{turnServerURL:a.turnServerURL,tcpport:a.tcpport,udpport:a.udpport,username:this.joinInfo.uid.toString(),password:this.joinInfo.token}))}async updateTrafficStats(){if(this.state!=="CONNECTED")return;let a=await this.signal.request(rn.TRAFFIC_STATS,void 0,!0);a.timestamp=Date.now(),a.ntp_offset!=null&&(this.ntpOffset=a.ntp_offset),a.peer_delay.forEach(o=>{let c=this._statsCollector.trafficStats&&this._statsCollector.trafficStats.peer_delay.find(f=>f.peer_uid===o.peer_uid);c&&c.B_st!==o.B_st&&D8(()=>{this.emit(Ir.STREAM_TYPE_CHANGE,o.peer_uid,o.B_st)})}),this._statsCollector.updateTrafficStats(a)}getJoinMessage(a){if(!this.joinInfo||!this.key)throw new De(ce.UNEXPECTED_ERROR,"can not generate join message, no join info");let o=Object.assign({},this.joinInfo.apResponse),c=ve("REPORT_APP_SCENARIO");if(typeof c!="string")try{c=JSON.stringify(c)}catch{c=void 0}c&&c.length>128&&(c=void 0);let f=vu({license:this.joinInfo.license,p2p_id:this.store.p2pId,session_id:this.joinInfo.sid,app_id:this.joinInfo.appId,channel_key:this.key,channel_name:this.joinInfo.cname,sdk_version:dd,browser:navigator.userAgent,process_id:ve("PROCESS_ID"),mode:this.store.useP2P?"p2p":this.spec.mode,codec:this.spec.codec,role:this.role,has_changed_gateway:this.hasChangeBGPAddress,ap_response:o,extend:ve("JOIN_EXTEND"),details:{6:this.joinInfo.stringUid,cservice_map:this.joinInfo.cloudProxyServer==="proxy3"?"1":this.joinInfo.cloudProxyServer==="proxy5"?"2":void 0},features:{rejoin:!0},optionalInfo:this.joinInfo.optionalInfo,appScenario:c,attributes:{userAttributes:{enablePublishedUserList:ve("ENABLE_PUBLISHED_USER_LIST"),maxSubscription:ve("MAX_SUBSCRIPTION"),subscribeAudioFilterTopN:typeof ve("SUBSCRIBE_AUDIO_FILTER_TOPN")=="number"?ve("SUBSCRIBE_AUDIO_FILTER_TOPN"):void 0,enablePublishAudioFilter:typeof ve("ENABLE_PUBLISH_AUDIO_FILTER")=="boolean"?ve("ENABLE_PUBLISH_AUDIO_FILTER"):void 0,enableUserLicenseCheck:typeof ve("ENABLE_USER_LICENSE_CHECK")=="boolean"?ve("ENABLE_USER_LICENSE_CHECK"):void 0,enableRTX:ve("USE_PUB_RTX")===!0||ve("USE_SUB_RTX")===!0||void 0,disableFEC:ve("DISABLE_FEC"),enableNTPReport:!!ve("ENABLE_NTP_REPORT")||void 0,enableInstantVideo:!!ve("ENABLE_INSTANT_VIDEO")||void 0,enableDataStream2:typeof ve("ENABLE_DATASTREAM_2")=="boolean"?ve("ENABLE_DATASTREAM_2"):void 0,rtm2Flag:typeof this.joinInfo.rtmFlag=="number"?this.joinInfo.rtmFlag:void 0,enableUserAutoRebalanceCheck:!!ve("ENABLE_USER_AUTO_REBALANCE_CHECK"),enableXR:typeof ve("USE_XR")=="boolean"?ve("USE_XR"):void 0,enableLossbasedBwe:typeof ve("ENABLE_LOSSBASED_BWE")=="boolean"?ve("ENABLE_LOSSBASED_BWE"):void 0,enableAutCC:typeof ve("ENABLE_AUT_CC")=="boolean"?ve("ENABLE_AUT_CC"):void 0,enableCCFallback:typeof ve("ENABLE_CC_FALLBACK")=="boolean"?ve("ENABLE_CC_FALLBACK"):void 0}},join_ts:this.joinGatewayStartTime},a);return this.joinInfo.stringUid&&(f.string_uid=this.joinInfo.stringUid),this.joinInfo.aesmode&&this.joinInfo.aespassword&&(f.aes_mode=this.joinInfo.aesmode,ve("ENCRYPT_AES")?(f.aes_secret=this.joinInfo.aespassword,f.aes_encrypt=!0):f.aes_secret=this.joinInfo.aespassword,this.joinInfo.aessalt&&(f.aes_salt=this.joinInfo.aessalt)),o.addresses[this.signal.websocket.currentURLIndex]&&(f.ap_response.ticket=o.addresses[this.signal.websocket.currentURLIndex].ticket,delete o.addresses),this.joinInfo.defaultVideoStream!==void 0&&(f.default_video_stream=this.joinInfo.defaultVideoStream),f}getRejoinMessage(){if(!this.joinInfo)throw new De(ce.UNEXPECTED_ERROR,"can not generate rejoin message, no join info");return{session_id:this.joinInfo.sid,channel_name:this.joinInfo.cname,cid:this.joinInfo.cid,uid:this.joinInfo.uid,vid:Number(this.joinInfo.vid)}}handleSignalEvents(){this.signal.on(Ut.WS_RECONNECT_WAITTING_FINISH,a=>{var o;Tt(o=["tryNext","recover"]).call(o,a)&&this.joinInfo&&$t.adjustSessionStartTime(this.joinInfo.sid)}),this.signal.on(Ut.WS_RECONNECT_CREATE_CONNECTION,a=>{this.joinGatewayStartTime=Date.now()}),this.signal.on(Ut.WS_RECONNECTING,a=>{this.joinInfo&&$t.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:a||$s.NETWORK_ERROR}),this.joinInfo&&(this.state="RECONNECTING",$t.sessionInit(this.joinInfo.sid,{lts:new Date().getTime(),extend:this.isSignalRecover?{recover:!0}:{rejoin:!0},cname:this.joinInfo.cname,appid:this.joinInfo.appId,mode:this.spec.mode,stringUid:this.joinInfo.stringUid,channelProfile:this.spec.mode==="live"?1:0,channelMode:0,lsid:this.joinInfo.sid,clientRole:this.role==="audience"?2:1,buildFormat:1}),this.isSignalRecover=!1,this.joinGatewayStartTime=Date.now())}),this.signal.on(Ut.WS_CLOSED,a=>{let o;switch(a){case Hn.LEAVE:o=$s.LEAVE;break;case Hn.UID_BANNED:case Hn.IP_BANNED:case Hn.CHANNEL_BANNED:case Hn.SERVER_ERROR:o=$s.SERVER_ERROR;break;case Hn.FALLBACK:o=$s.FALLBACK;break;case Hn.LICENSE_MISSING:case Hn.LICENSE_EXPIRED:case Hn.LICENSE_MINUTES_EXCEEDED:case Hn.LICENSE_PERIOD_INVALID:case Hn.LICENSE_MULTIPLE_SDK_SERVICE:case Hn.LICENSE_ILLEGAL:case Hn.TOKEN_EXPIRE:o=a;break;default:o=$s.NETWORK_ERROR}z.debug("[".concat(this.store.clientId,"] [signal] websocket closed, reason: ").concat(o||"undefined -> "+$s.NETWORK_ERROR)),this.joinInfo&&$t.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:a===Hn.LEAVE?1:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:o}),this._disconnectedReason=a,a!==Hn.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}),this.signal.on(Ut.WS_CONNECTED,()=>{if(this.updateTurnConfigFromSignal(),this.state="CONNECTED",this.joinInfo&&(this.role==="audience"&&this._clientRoleOptions&&(this._clientRoleOptions.level||this._clientRoleOptions.delay)&&(z.debug("[".concat(this.store.clientId,"] patch to send set client role, role: ").concat(this.role,", mode: ").concat(this.spec.mode,", level: ").concat(this._clientRoleOptions.level,", delay: ").concat(this._clientRoleOptions.delay)),this.setClientRole(this.role,this._clientRoleOptions)),$t.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!0,ec:null,vid:this.joinInfo.vid,addr:this.signal.url,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,avoidJoinStartTime:this.store.avoidJoinStart,isProxy:!!this.joinInfo.proxyServer,signalChannel:this.signal instanceof vm?"1":"0"}),this._isProactiveJoin=!1,this.joinInfo.useLocalAccessPoint&&this.joinInfo.setLocalAPVersion===1)){let a=this.signal.url&&this.signal.url.match(/wss\:\/\/([^:]+):(\d+)/);if(!a)return void z.error("[".concat(this.store.clientId,"] set local access point after joined failed: ").concat(a));Ri("EVENT_REPORT_DOMAIN",a[1]),Ri("EVENT_REPORT_BACKUP_DOMAIN",a[1]),Ri("LOG_UPLOAD_SERVER","".concat(a[1],":6444"))}}),this.signal.on(Sn.ON_UPLINK_STATS,a=>{this._statsCollector.updateUplinkStats(a)}),this.signal.on(Ut.REQUEST_RECOVER,(a,o,c)=>{if(!this.joinInfo)return c(new De(ce.UNEXPECTED_ERROR,"gateway: can not recover, no join info"));a&&(this.joinInfo.multiIP=a,this.hasChangeBGPAddress=!0),this.isSignalRecover=!0,Kr(this,Ir.REQUEST_NEW_GATEWAY_LIST).then(o).catch(c)}),this.signal.on(Ut.REQUEST_JOIN_INFO,async a=>{var o;if(this.updateTurnConfigFromSignal(),this.store.useP2P)return void a(this.getJoinMessage({ortc:{}}));let{iceParameters:c,dtlsParameters:f,rtpCapabilities:m}=await Kr(this,Ir.REQUEST_P2P_CONNECTION_PARAMS,{turnServer:(o=this.joinInfo)===null||o===void 0?void 0:o.turnServer});a(this.getJoinMessage({ortc:{iceParameters:c,dtlsParameters:f,rtpCapabilities:m,version:"2"}}))}),this.signal.on(Ut.REQUEST_REJOIN_INFO,a=>{a(this.getRejoinMessage())}),this.signal.on(Ut.REPORT_JOIN_GATEWAY,(a,o)=>{this.joinInfo&&($t.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!1,ec:a,addr:o,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,avoidJoinStartTime:this.store.avoidJoinStart,isProxy:!!this.joinInfo.proxyServer,signalChannel:this.signal instanceof vm?"1":"0"}),this._isProactiveJoin=!1)}),this.signal.on(Ut.IS_P2P_DISCONNECTED,a=>{a(Vy(this,Ir.IS_P2P_DISCONNECTED))}),this.signal.on(Ut.DISCONNECT_P2P,()=>{this.emit(Ir.DISCONNECT_P2P)}),this.signal.on(Ut.NEED_RENEW_SESSION,a=>{this.emit(Ir.NEED_RENEW_SESSION,a)}),this.signal.on(Ut.REQUEST_SUCCESS,()=>{this._signalTimeout=!1}),this.signal.on(Ut.REQUEST_TIMEOUT,()=>{this._signalTimeout=!0}),this.signal.on(Ut.JOIN_RESPONSE,a=>{let o=this.getCurrentGatewayAddress();this.emit(Ir.JOIN_RESPONSE,a,o)}),this.signal.on(Ut.DATACHANNEL_PRECONNECT,async(a,o,c)=>{this.updateTurnConfigFromSignal();let f=this.getCurrentGatewayAddress();return Kr(this,Ir.DATACHANNEL_PRECONNECT,a,f).then(o).catch(c)}),this.signal.on(Ut.DATACHANNEL_CONNECTING,async a=>{let{iceParameters:o,dtlsParameters:c,rtpCapabilities:f}=await Kr(this,Ir.REQUEST_DC_CONNECTION_PARAMS);a(this.getJoinMessage({ortc:{iceParameters:o,dtlsParameters:c,rtpCapabilities:f,version:"2"}}))}),this.signal.on(Ut.DATACHANNEL_FAILBACK,()=>{z.warning("[".concat(this.store.clientId,"] User join datachannel failed")),this.reset(),this.resetSignal(),this.emit(Ir.DATACHANNEL_FAILBACK)})}async tryUnsubBeforeResub(a,o){try{await this.signal.request(rn.UNSUBSCRIBE,{p2p_id:this.store.p2pId,stream_id:a,ortc:[o]},!0)}catch(c){throw z.warning("[".concat(this.store.clientId,"] tryUnsubBeforeResub warning"),c),c}}async tryUnsubDataChannelBeforeResub(a,o){try{await this.signal.request(rn.UNSUBSCRIBE,{stream_id:o.id},!0)}catch(c){throw z.warning("unsubscribe datachannel warning",c),c}}async tryUnpubBeforeRepub(a,o){try{await this.signal.request(rn.UNPUBLISH,{stream_id:a,ortc:o},!0)}catch(c){throw z.warning("[".concat(this.store.clientId,"] tryUnpubBeforeRepub warning: "),c),c}}async tryUnpubDataChannelBeforeRepub(a,o){try{await this.signal.request(rn.UNPUBLISH_DATASTREAM,{channnel_id:o.channelId},!0)}catch(c){throw z.warning("unpublish datastream warning: ",c),c}}async tryMassUnsubBeforeResub(a){let o={users:a.map(c=>({stream_id:c.stream_id,stream_type:c.stream_type}))};try{await this.signal.request(rn.UNSUBSCRIBE_STREAMS,o,!0)}catch(c){throw z.warning("[".concat(this.store.clientId,"] tryMassUnsubBeforeResub warning"),c),c}}async muteLocal(a,o){let c={action:a.find(f=>f.stream_type===pi.Audio)?"mute_local_audio":"mute_local_video",p2p_id:this.store.p2pId,ortc:a,stream_id:o};try{await this.signal.request(rn.CONTROL,c,!0,!0)}catch(f){throw z.warning("[".concat(this.store.clientId,"] gateway muteLocal warning: "),f),f}}async unmuteLocal(a,o){let c={action:a.find(f=>f.stream_type===pi.Audio)?"unmute_local_audio":"unmute_local_video",p2p_id:this.store.p2pId,ortc:a,stream_id:o};try{await this.signal.request(rn.CONTROL,c,!0,!0)}catch(f){throw z.warning("[".concat(this.store.clientId,"] gateway unmuteLocal warning: "),f),f}}async muteRemote(a,o){let c={action:a===Wt.AUDIO?"mute_remote_audio":"mute_remote_video",p2p_id:this.store.p2pId,stream_id:o};try{await this.signal.request(rn.CONTROL,c,!0,!0)}catch(f){throw z.warning("[".concat(this.store.clientId,"] gateway muteRemote warning: "),f),f}}async unmuteRemote(a,o){let c={action:a===Wt.AUDIO?"unmute_remote_audio":"unmute_remote_video",p2p_id:this.store.p2pId,stream_id:o};try{await this.signal.request(rn.CONTROL,c,!0,!0)}catch(f){throw z.warning("[".concat(this.store.clientId,"] gateway unmuteRemote warning: "),f),f}}uploadWRTCStats(a){this.signal.uploadWRTCStats(a)}upload(a,o){this.signal.upload(a,o)}getSignalRTT(){return this.signal.rtt}async restartICE(a){let o={p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:a};try{return await this.signal.request(rn.RESTART_ICE,o,!0)}catch(c){throw z.warning("[".concat(this.store.clientId,"] P2PChannel.restartICE warning: "),c),c}}reconnect(){this.state==="CONNECTED"&&this.signal.reconnect(void 0,$s.P2P_FAILED)}getCurrentGatewayAddress(){var a;if(!ve("GATEWAY_WSS_ADDRESS"))return(a=this.joinInfo)!==null&&a!==void 0&&a.gatewayAddrs?this.joinInfo.gatewayAddrs[this.signal.currentURLIndex]:void 0}async setPublishAudioFilterEnabled(a){await this.signal.request(rn.SET_PARAMETER,{enablePublishAudioFilter:a})}resetSignal(){this.signal&&(this.signal.removeAllListeners(),this.signal.close(Hn.FALLBACK)),this.store.useDataChannel=!1,this.signal=new Rie(vu(vu({},this.spec),{},{retryConfig:this.spec.websocketRetryConfig}),this.store),this.handleSignalEvents(),this.emit(Ir.RESET_SIGNAL,yie.websocket)}}let q8=0,cG=0;function Th(r,a,o,c){return new Ct((f,m)=>{a.timeout=a.timeout||ve("HTTP_CONNECT_TIMEOUT"),a.responseType=a.responseType||"json",a.data&&!o?(a.data=JSON.stringify(a.data),q8+=Df(a.data)):o&&(a.data.size?q8+=a.data.size:a.data instanceof FormData?q8+=Xne(a.data):q8+=Df(JSON.stringify(a.data))),a.headers=a.headers||{},a.headers["Content-Type"]=a.headers["Content-Type"]||"application/json",a.method="POST",a.url=r,Io.request(a).then(v=>{typeof v.data=="string"?cG+=Df(v.data):v.data instanceof ArrayBuffer||v.data instanceof Uint8Array?cG+=v.data.byteLength:cG+=Df(JSON.stringify(v.data)),c&&f({data:v.data,headers:v.headers}),f(v.data)}).catch(v=>{Io.isCancel(v)?m(new De(ce.OPERATION_ABORTED,"cancel token canceled")):v.code==="ECONNABORTED"?m(new De(ce.NETWORK_TIMEOUT,v.message)):v.response?m(new De(ce.NETWORK_RESPONSE_ERROR,v.response.status)):m(new De(ce.NETWORK_ERROR,v.message))})})}(function(){var r;function a(at){var yt=0;return function(){return yt>>0)+"_",Rn=0;return function oi(Rt){if(this instanceof oi)throw new TypeError("Symbol is not a constructor");return new yt(Vt+(Rt||"")+"_"+Rn++,Rt)}}),m("Symbol.iterator",function(at){if(at)return at;at=Symbol("Symbol.iterator");for(var yt="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Vt=0;Vt"u"||!FormData.prototype.keys)){var xe=function(at,yt){for(var Vt=0;Vt{let r=ve("AREAS");return r.length===0&&r.push(ai.GLOBAL),_c(r).call(r,(a,o,c)=>{let f=kie(o);return f?c===0?f:"".concat(a,",").concat(f):a},"")},kie=r=>r===ai.OVERSEA?"".concat(sa.ASIA,",").concat(sa.EUROPE,",").concat(sa.AFRICA,",").concat(sa.NORTH_AMERICA,",").concat(sa.SOUTH_AMERICA,",").concat(sa.OCEANIA):sa[r],EAe=r=>{let a={CODE:"",WEBCS_DOMAIN:[],WEBCS_DOMAIN_BACKUP_LIST:[],PROXY_CS:[],CDS_AP:[],ACCOUNT_REGISTER:[],UAP_AP:[],EVENT_REPORT_DOMAIN:[],EVENT_REPORT_BACKUP_DOMAIN:[],LOG_UPLOAD_SERVER:[],PROXY_SERVER_TYPE3:[]};return r.map(o=>{let c=W8[o],f=Object.keys(c);f&&f.map(m=>{m!=="CODE"&&(a[m]=a[m].concat(c[m]))})}),a},Y8={GLOBAL:{ASIA:[ai.CHINA,ai.JAPAN,ai.INDIA,ai.KOREA,ai.HKMC],EUROPE:[],NORTH_AMERICA:[ai.US],SOUTH_AMERICA:[],OCEANIA:[],AFRICA:[]}},X8=Object.keys(Y8[ai.GLOBAL]),dG=[ai.CHINA,ai.NORTH_AMERICA,ai.EUROPE,ai.ASIA,ai.JAPAN,ai.INDIA,ai.OCEANIA,ai.SOUTH_AMERICA,ai.AFRICA,ai.KOREA,ai.HKMC,ai.US],wAe=function(r,a){let o=[];if(Tt(r).call(r,ai.GLOBAL)){let m=[ai.GLOBAL,ai.OVERSEA],v=Object.keys(W8);if(a===ai.GLOBAL)throw new De(ce.INVALID_PARAMS,"GLOBAL is an invalid excludedArea value");if(a===ai.CHINA)o=[ai.OVERSEA];else if(f=a,Tt(X8).call(X8,f)){let w=(c=a,Y8[ai.GLOBAL][c]||[]),C=[...m,a,...w];o=v.filter(R=>!Tt(C).call(C,R))}else if(function(w){let C=!1;return X8.forEach(R=>{var x;Tt(x=Y8[ai.GLOBAL][R]).call(x,w)&&(C=!0)}),C}(a)){let w=function(R){let x;return X8.forEach(L=>{var U;Tt(U=Y8[ai.GLOBAL][L]).call(U,R)&&(x=L)}),x}(a),C=[...m,w,a];o=v.filter(R=>!Tt(C).call(C,R))}else o=r;o=function(w){let C=[];return dG.forEach(R=>{Tt(w).call(w,R)&&C.push(R)}),C.concat(w.filter(R=>!Tt(dG).call(dG,R)))}(o)}else o=r;var c,f;return o};function Mie(r){var a,o;if(!r&&Tt(a=ve("AREAS")).call(a,ai.EXTENSIONS))return z.debug("update area from ap : reset"),void uG(mxe,!0);if(!Tt(o=ve("AREAS")).call(o,ai.GLOBAL)||!r)return;let c=W8.EXTENSIONS;c&&(c={CODE:kie(ai.EXTENSIONS),WEBCS_DOMAIN:["ap-web-1-".concat(r,".agora.io")],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-".concat(r,".ap.sd-rtn.com")],PROXY_CS:["proxy-ap-web-".concat(r,".agora.io")],CDS_AP:["cds-ap-web-1-".concat(r,".agora.io"),"cds-ap-web-2-".concat(r,".ap.sd-rtn.com")],ACCOUNT_REGISTER:["sua-ap-web-1-".concat(r,".agora.io"),"sua-ap-web-2-".concat(r,".ap.sd-rtn.com")],UAP_AP:["uap-ap-web-1-".concat(r,".agora.io"),"uap-ap-web-2-".concat(r,".ap.sd-rtn.com")],EVENT_REPORT_DOMAIN:["statscollector-1-".concat(r,".agora.io")],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-".concat(r,".agora.io")],LOG_UPLOAD_SERVER:["logservice-".concat(r,".agora.io")],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy-".concat(r,".agora.io")]},z.debug("update area from ap success: ".concat(r,",config is "),c),Ri("AREAS",[ai.EXTENSIONS],!0),Object.keys(c).map(f=>{f==="LOG_UPLOAD_SERVER"||f==="EVENT_REPORT_DOMAIN"||f==="EVENT_REPORT_BACKUP_DOMAIN"||f==="PROXY_SERVER_TYPE3"?Ri(f,c[f][0]):Ri(f,c[f])}))}function uG(r){let a=arguments.length>1&&arguments[1]!==void 0&&arguments[1],o=$t.reportApiInvoke(null,{name:$r.SET_AREA,options:r,tag:vr.TRACER});try{let c=[];if(typeof r=="string"&&(c=[r]),Array.isArray(r)&&(r.forEach(m=>{if(!Tt(_ie).call(_ie,m))throw new De(ce.INVALID_PARAMS,"invalid area code")}),c=r),Object.prototype.toString.call(r)==="[object Object]"){let{areaCode:m,excludedArea:v}=r;if(!m)throw new De(ce.INVALID_PARAMS,"area code is needed");let w=m;typeof m=="string"&&(w=[m]),c=v?wAe(w,v):w}if(!a){if(x0.AREAS){let m=new De(ce.PROHIBITED_OPERATION,"setArea is prohibited because of config-distribute");return o.onError(m),void z.warning("setArea is prohibited because of config-distribute")}if(Tt(c).call(c,ai.GLOBAL)&&ve("AREAS")===ai.EXTENSIONS){let m=new De(ce.PROHIBITED_OPERATION,"setArea is prohibited because of ap extensions");return o.onError(m),void z.warning("setArea is prohibited because of ap extensions")}}Ri("AREAS",c,a);let f=EAe(c);Object.keys(f).map(m=>{m==="LOG_UPLOAD_SERVER"||m==="EVENT_REPORT_DOMAIN"||m==="EVENT_REPORT_BACKUP_DOMAIN"||m==="PROXY_SERVER_TYPE3"?Ri(m,f[m][0]):Ri(m,f[m])}),z.debug("set area success:",c.join(","))}catch(c){throw o.onError(c),c}o.onSuccess()}function jie(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function hG(r){for(var a=1;a{w=Date.now();let x=await Th(R,{data:v,cancelToken:c,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"}});if(C=Date.now()-w,x.code!==0){let F=new De(ce.UNEXPECTED_RESPONSE,"live streaming ap error, code"+x.code,{retry:!0,responseTime:C});throw z.error(F.toString()),F}let L=JSON.parse(x.json_body);if(L.code!==200){let F=new De(ce.UNEXPECTED_RESPONSE,"live streaming app center error, code: ".concat(L.code,", reason: ").concat(L.reason),{code:L.code,responseTime:C});throw z.error(F.toString()),F}if(!L.servers||L.servers.length===0){let F=new De(ce.UNEXPECTED_RESPONSE,"live streaming app center empty server",{code:L.code,responseTime:C});throw z.error(F.toString()),F}let U=function(F,Z){return{addressList:F.servers.map(W=>"wss://".concat(W.address.replace(/\./g,"-"),".").concat(ve("WORKER_DOMAIN"),":").concat(W.wss,"?serviceName=").concat(encodeURIComponent(Z))),workerToken:F.workerToken,vid:F.vid}}(L,a);return ve("LIVE_STREAMING_ADDRESS")&&(U.addressList=ve("LIVE_STREAMING_ADDRESS")instanceof Array?ve("LIVE_STREAMING_ADDRESS"):[ve("LIVE_STREAMING_ADDRESS")]),hG(hG({},U),{},{responseTime:C})},(x,L)=>($t.apworkerEvent(o.sid,{success:!0,sc:200,serviceName:a,responseDetail:JSON.stringify(x.addressList),firstSuccess:L===0,responseTime:C,serverIp:r[L%r.length]}),!1),(x,L)=>($t.apworkerEvent(o.sid,{success:!1,sc:x.data&&x.data.code||200,serviceName:a,responseTime:C,serverIp:r[L%r.length]}),!!(x.code!==ce.OPERATION_ABORTED&&x.code!==ce.UNEXPECTED_RESPONSE||x.data&&x.data.retry)&&(R=r[(L+1)%r.length],!0)),f)}let pG=1;function Uie(r,a,o,c){let{url:f,areaCode:m}=r,{clientId:v,sid:w}=a,C=Date.now(),R,[x,L]=gG(a,m,[Mr.CHOOSE_SERVER]),U=yr.networkState;return wh(async()=>{U&&yr.networkState===eo.OFFLINE&&yr.onlineWaiter&&await Ct.race([yr.onlineWaiter,vs(c&&c.maxRetryTimeout||kr.maxRetryTimeout)]),U=yr.networkState;let{data:F,headers:Z}=await Th(f,{data:x,cancelToken:o,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);R=Z.http3==="1"?1:-1,$t.reportResourceTiming(f,w),Bie(F,f,a,C,[Mr.CHOOSE_SERVER],R);let W=w3(F,Mr.CHOOSE_SERVER);return mG(W),aG(W,f)},F=>(F&&$t.joinChooseServer(w,{lts:C,succ:!0,csAddr:f,opid:L,serverList:F.gatewayAddrs.map(Z=>Z.address),ec:null,cid:F.cid.toString(),uid:F.uid.toString(),csIp:F.csIp,unilbsServerIds:[Mr.CHOOSE_SERVER].toString(),isHttp3:R}),!1),F=>F.code!==ce.OPERATION_ABORTED&&(F.code===ce.CAN_NOT_GET_GATEWAY_SERVER?F.data.retry:($t.joinChooseServer(w,{lts:C,succ:!1,csAddr:f,serverList:null,opid:L,ec:F.code,csIp:F.data&&F.data.csIp,unilbsServerIds:[Mr.CHOOSE_SERVER].toString(),extend:JSON.stringify({networkState:U}),isHttp3:R}),z.warning("[".concat(v||"sid-".concat(w.slice(0,6)),"] Choose server network error, retry"),F),!0)),c)}function Fie(r,a,o,c){let f,{url:m,areaCode:v,serviceIds:w}=r,C=Date.now(),[R,x]=gG(a,v,w),L;return wh(async()=>{L&&yr.networkState===eo.OFFLINE&&yr.onlineWaiter&&await Ct.race([yr.onlineWaiter,vs(c&&c.maxRetryTimeout||kr.maxRetryTimeout)]),L=yr.networkState;let{data:U,headers:F}=await Th(m,{data:R,cancelToken:o,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);f=F.http3==="1"?1:-1,$t.reportResourceTiming(m,a.sid),Bie(U,m,a,C,w,f);let Z=w3(U,Mr.CHOOSE_SERVER),W=w3(U,a.cloudProxyServer==="proxy5"?Mr.CLOUD_PROXY_5:a.cloudProxyServer==="proxy3"||a.cloudProxyServer==="proxy4"?Mr.CLOUD_PROXY:Mr.CLOUD_PROXY_FALLBACK);return mG(Z),{gatewayInfo:aG(Z,m),proxyInfo:W,url:m}},U=>(U.gatewayInfo&&$t.joinChooseServer(a.sid,{lts:C,succ:!0,csAddr:m,serverList:U.gatewayInfo.gatewayAddrs.map(F=>F.address),ec:null,opid:x,cid:U.gatewayInfo.cid.toString(),uid:U.gatewayInfo.uid.toString(),csIp:U.gatewayInfo.csIp,unilbsServerIds:w.toString(),isHttp3:f}),U.proxyInfo&&$t.joinWebProxyAP(a.sid,{lts:C,sucess:1,apServerAddr:m,turnServerAddrList:U.proxyInfo.addresses.map(F=>F.ip).join(","),errorCode:null,eventType:a.cloudProxyServer,unilbsServerIds:w.toString()}),!1),U=>U.code!==ce.OPERATION_ABORTED&&(U.code===ce.CAN_NOT_GET_GATEWAY_SERVER?U.data.retry:($t.joinWebProxyAP(a.sid,{lts:C,sucess:0,apServerAddr:m,turnServerAddrList:null,errorCode:U.code,eventType:a.cloudProxyServer,unilbsServerIds:w.toString(),extend:JSON.stringify({networkState:L})}),z.warning("[".concat(a.clientId,"] multi unilbs network error, retry"),U),!0)),c)}let Bie=(r,a,o,c,f,m)=>{let{sid:v,clientId:w,cloudProxyServer:C}=o,R=[],x=L=>{L.flag===4096?$t.joinChooseServer(v,{lts:c,succ:!1,csAddr:a,opid:r.opid,serverList:null,ec:L.error.message,csIp:L.error.data&&L.error.data.csIp,unilbsServerIds:f.toString(),isHttp3:m}):L.flag!==1048576&&L.flag!==4194304&&L.flag!==4194310||$t.joinWebProxyAP(v,{lts:c,sucess:0,apServerAddr:a,turnServerAddrList:null,errorCode:L.error.code,eventType:C,unilbsServerIds:f.toString()})};if(r.response_body.forEach(L=>{let U=L.buffer.code;if(L.uri===23&&U===0&&!L.buffer.edges_services)if(L.buffer.flag===4194310)z.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers"),L.buffer.edges_services=[];else{let F={error:new De(ce.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:!0,csIp:r.detail[502]}),flag:L.buffer.flag};R.push(F),x(F)}if(U!==0){let F=KS(U),Z={error:new De(ce.CAN_NOT_GET_GATEWAY_SERVER,F.desc,{desc:F.desc,retry:F.retry,csIp:r.detail[502]}),flag:L.buffer.flag};L.buffer.flag===4194310?z.warning(Z.error.toString()):R.push(Z),x(Z)}}),R.length)throw z.warning("[".concat(w||"sid-".concat(v.slice(0,6)),"] multi unilbs ").concat(a," failed, ").concat(R.map(L=>"flag: ".concat(L.flag,", message: ").concat(L.error.message,", retry: ").concat(L.error.data.retry)).join(" | "))),new De(ce.CAN_NOT_GET_GATEWAY_SERVER,R.map(L=>"flag: ".concat(L.flag,", message: ").concat(L.error.message)).join(" | "),{retry:!!R.find(L=>L.error.data.retry),csIp:r.detail[502],desc:[...new Set(R.map(L=>{var U;return L==null||(U=L.error)===null||U===void 0||(U=U.data)===null||U===void 0?void 0:U.desc}).filter(L=>!!L))]})},mG=r=>{var a,o,c,f;if(r.addresses&&r.addresses.length===0&&r.code===0)throw new De(ce.CAN_NOT_GET_GATEWAY_SERVER,"void gateway address",{retry:!0,csIp:r.detail&&r.detail[502]});if(ve("AP_AREA")&&((c=r.detail)!==null&&c!==void 0&&c[23]&&typeof((f=r.detail)===null||f===void 0?void 0:f[23])=="string"?Mie(r.detail[23].toLowerCase()):Mie()),(a=r.detail)!==null&&a!==void 0&&a[19]&&typeof((o=r.detail)===null||o===void 0?void 0:o[19])=="string"){let v=r.detail[19],w=v==null?void 0:v.split(";");for(let C=0;C0){z.debug("assign gateway address to",ve("GATEWAY_ADDRESS"));let v=ve("GATEWAY_ADDRESS").map(w=>{var C,R;let x=(C=(R=r.addresses.find(L=>L.ip===w.ip&&L.port===w.port))===null||R===void 0?void 0:R.fingerprint)!==null&&C!==void 0?C:"";return{ip:w.ip,port:w.port,ticket:r.addresses[0]&&r.addresses[0].ticket,fingerprint:x}});r.addresses=v}},bAe=(r,a)=>{if(r.response_body&&r.response_body.length){let o=r.response_body[0];if(o.buffer.code!==0){let c=KS(o.buffer.code);throw new De(ce.UPDATE_TICKET_FAILED,"[".concat(o.buffer.code,"]: ").concat(c.desc),{retry:c.retry})}return o.buffer.ticket}throw z.debug("update ticket request received ap response without response body:",a),new De(ce.UPDATE_TICKET_FAILED,"cannot find response body from ap response",{retry:!1})},gG=(r,a,o)=>{let c=Math.floor(Math.random()*1e12),f={appid:r.appId,client_ts:Date.now(),opid:c,sid:r.sid,request_bodies:[{uri:22,buffer:{cname:r.cname,detail:hG({6:r.stringUid,11:a,12:ve("USE_NEW_TOKEN")?"1":void 0,22:a},r.apRTM?{26:"RTM2"}:{}),key:r.token,service_ids:o,uid:r.uid||0}}]};f.request_bodies.forEach(v=>{r.multiIP&&r.multiIP.gateway_ip&&(v.buffer.detail[5]=JSON.stringify({vocs_ip:[r.multiIP.uni_lbs_ip],vos_ip:[r.multiIP.gateway_ip]}))});let m=new FormData;return m.append("request",JSON.stringify(f)),[m,c]},CAe=(r,a)=>{let o=Math.floor(Math.random()*1e12),c={appid:r.appId,client_ts:Date.now(),opid:o,sid:r.sid,request_bodies:[{uri:28,buffer:{cname:r.cname,detail:{1:"",6:r.stringUid,12:"1"},token:r.token,service_ids:a,uid:r.uid||0,edges_services:r.apResponse.addresses.map(m=>({ip:m.ip,port:m.port}))}}]},f=new FormData;return f.append("request",JSON.stringify(c)),[f,o]},qS=0;function YS(r){return Ct.all(r.map(a=>a.then(o=>{throw o},o=>o))).then(a=>{throw a},a=>a)}let b3=async r=>{let{fragementLength:a,referenceList:o,asyncMapHandler:c,allFailedhandler:f,promisesCollector:m}=r,v=0,w=a,C,R=0,x=async()=>{let L=(()=>{let U=v*w,F=U+w;return o.slice(U,F).map(c)})();m&&m.push(...L);try{C=await YS(L)}catch(U){if(R+=w,v++,!(R>=o.length))return void await x();f(U)}L.forEach(U=>U.cancel())};return await x(),C},Vie=async r=>{let{referenceList:a,asyncMapHandler:o,closeFn:c}=r,f=a.length,m=0,v=async()=>{let w=o(a.shift());try{return await w}catch(C){if(m++,m>=f||c!=null&&c(C))throw C;return v()}};return v()};async function vG(r,a,o,c){return{gatewayInfo:await async function(f,m,v,w){let C=null,R=[],x=async()=>{let U=ve("WEBCS_DOMAIN").slice(0,ve("AJAX_REQUEST_CONCURRENT")).map(W=>({url:f.proxyServer?"https://".concat(f.proxyServer,"/ap/?url=").concat(W+"/api/v2/transpond/webrtc?v=2"):"https://".concat(W,"/api/v2/transpond/webrtc?v=2"),areaCode:S3()})),F=w.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:U.map(W=>W.url)}),Z=await b3({fragementLength:ve("FRAGEMENT_LENGTH"),referenceList:U,asyncMapHandler:W=>(z.debug("[".concat(f.clientId,"] Connect to choose_server:"),W.url),Uie(W,f,m,v)),allFailedhandler:W=>{throw w.recordJoinChannelService({endTs:Date.now(),status:"error",errors:W},F),W[0]},promisesCollector:R});return w.recordJoinChannelService({endTs:Date.now(),status:"success"},F),Z},L=async()=>{if(await vs(1e3),C!==null)return C;let U=ve("WEBCS_DOMAIN_BACKUP_LIST").map(W=>({url:f.proxyServer?"https://".concat(f.proxyServer,"/ap/?url=").concat(W+"/api/v2/transpond/webrtc?v=2"):"https://".concat(W,"/api/v2/transpond/webrtc?v=2"),areaCode:S3()})),F=w.recordJoinChannelService({endTs:void 0,startTs:Date.now(),status:"pending",service:"chooseServer",urls:U.map(W=>W.url)}),Z=await b3({fragementLength:ve("FRAGEMENT_LENGTH"),referenceList:U,asyncMapHandler:W=>(z.debug("[".concat(f.clientId,"] Connect to backup choose_server:"),W.url),Uie(W,f,m,v)),allFailedhandler:W=>{throw w.recordJoinChannelService({endTs:Date.now(),status:"error",errors:W},F),W[0]},promisesCollector:R});return w.recordJoinChannelService({endTs:Date.now(),status:"success"},F),Z};try{return C=await YS([x(),L()]),R.length&&R.forEach(U=>U.cancel&&typeof U.cancel=="function"&&U.cancel()),C}catch(U){throw U[0]}}(r,a,o,c)}}async function zie(r,a,o,c,f){let m=r.cloudProxyServer;if(m==="disabled"){if(r.useLocalAccessPoint)return await vG(r,a,o,f);if(ve("JOIN_WITH_FALLBACK_MEDIA_PROXY")){let{gatewayInfo:U,proxyInfo:F}=await Wie(r,a,o,f);if(r.turnServer&&r.turnServer.mode!=="auto")return{gatewayInfo:U};let Z=F.map(W=>({turnServerURL:W.address,tcpport:W.tcpport||Ks.tcpport,udpport:W.udpport||Ks.udpport,username:W.username||Ks.username,password:W.password||Ks.password,forceturn:!1,security:!0}));if(f.useP2P){var v;let W=(v=r.uid)!==null&&v!==void 0?v:U.uid,K="glb:".concat(W.toString()),oe=await BH(K),ue=F.map(xe=>({turnServerURL:xe.address,tcpport:xe.tcpport||Ks.tcpport,udpport:xe.udpport||Ks.udpport,username:K,password:oe,forceturn:!1,security:!0}));Z.push(...ue)}return r.turnServer={mode:"manual",servers:Z},{gatewayInfo:U}}return await vG(r,a,o,f)}let{proxyInfo:w,gatewayInfo:C}=await Wie(r,a,o,f),R={gatewayInfo:C},x=w.map(U=>({turnServerURL:U.address,tcpport:m==="proxy3"?void 0:U.tcpport?U.tcpport:Ks.tcpport,udpport:m==="proxy4"?void 0:U.udpport?U.udpport:Ks.udpport,username:U.username||Ks.username,password:U.password||Ks.password,forceturn:m!=="proxy4",security:m==="proxy5"}));if(f.useP2P){var L;let U=(L=r.uid)!==null&&L!==void 0?L:C.uid,F="glb:".concat(U.toString()),Z=await BH(F),W=w.map(K=>({turnServerURL:K.address,tcpport:m==="proxy3"?void 0:K.tcpport||Ks.tcpport,udpport:m==="proxy4"?void 0:K.udpport||Ks.udpport,username:F,password:Z,forceturn:m!=="proxy4",security:m==="proxy5"}));x.push(...W)}return r.turnServer={mode:"manual",servers:x},z.debug("[".concat(r.clientId,"] set proxy server: ").concat(r.proxyServer,", mode: ").concat(m)),R}async function Hie(r,a,o,c,f){let m=ve("ACCOUNT_REGISTER").slice(0,ve("AJAX_REQUEST_CONCURRENT")),v=[];v=a.proxyServer?m.map(C=>"https://".concat(a.proxyServer,"/ap/?url=").concat(C+"/api/v1")):m.map(C=>"https://".concat(C,"/api/v1"));let w=f==null?void 0:f.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"stringUID",urls:v});try{let C=await async function(R,x,L,U,F){let Z=Date.now(),W={sid:L.sid,opid:10,appid:L.appId,string_uid:x},K=R[0],oe=await wh(()=>Th(K+"".concat(K.indexOf("?")===-1?"?":"&","action=stringuid"),{data:W,cancelToken:U,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}}),(ue,xe)=>{if(ue.code===0){if(ue.uid<=0||ue.uid>=Math.pow(2,32))throw z.error("Invalid Uint Uid ".concat(x," => ").concat(ue.uid),ue),$t.reqUserAccount(W.sid,{lts:Z,success:!1,serverAddr:K,stringUid:W.string_uid,uid:ue.uid,errorCode:ce.INVALID_UINT_UID_FROM_STRING_UID,extend:W}),new De(ce.INVALID_UINT_UID_FROM_STRING_UID);return $t.reqUserAccount(W.sid,{lts:Z,success:!0,serverAddr:K,stringUid:W.string_uid,uid:ue.uid,errorCode:null,extend:W}),!1}let Oe=KS(ue.code);return Oe.retry&&(K=R[(xe+1)%R.length]),$t.reqUserAccount(W.sid,{lts:Z,success:!1,serverAddr:K,stringUid:W.string_uid,uid:ue.uid,errorCode:Oe.desc,extend:W}),Oe.retry},(ue,xe)=>ue.code!==ce.OPERATION_ABORTED&&($t.reqUserAccount(W.sid,{lts:Z,success:!1,serverAddr:K,stringUid:W.string_uid,uid:null,errorCode:ue.code,extend:W}),K=R[(xe+1)%R.length],!0),F);if(oe.code!==0){let ue=KS(oe.code);throw new De(ce.UNEXPECTED_RESPONSE,ue.desc)}return oe}(v,r,a,o,c);return f==null||f.recordJoinChannelService({status:"success",endTs:Date.now()},w),C.uid}catch(C){throw f==null||f.recordJoinChannelService({status:"error",endTs:Date.now(),errors:[C]},w),C}}async function TAe(r,a,o){let c=ve("ACCOUNT_REGISTER"),f=[];f=a.proxyServer?c.map(m=>"https://".concat(a.proxyServer,"/ap/?url=").concat(m+"/api/v1")):c.map(m=>"https://".concat(m,"/api/v1"));try{return await Vie({referenceList:f,asyncMapHandler:m=>async function(v,w,C,R){let x=Date.now(),L={sid:C.sid,opid:10,appid:C.appId,string_uid:w};try{let U=await Th(v+"".concat(v.indexOf("?")===-1?"?":"&","action=stringuid"),{data:L,cancelToken:R,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}});if(U.code!==0){let F=KS(U.code);throw new De(ce.UNEXPECTED_RESPONSE,"preload sua error:".concat(F.desc),F)}if(U.uid<=0||U.uid>=Math.pow(2,32))throw new De(ce.INVALID_UINT_UID_FROM_STRING_UID);return{requestTime:x,url:v,req:L,uid:U.uid,elapse:Date.now()-x}}catch(U){throw U}}(m,r,a,o),closeFn:m=>m.code===ce.OPERATION_ABORTED||m.code===ce.UNEXPECTED_RESPONSE&&!m.data.retry})}catch(m){throw m}}async function RAe(r,a,o){let c=ve("CDS_AP").slice(0,ve("AJAX_REQUEST_CONCURRENT")).map(C=>r.proxyServer?"https://".concat(r.proxyServer,"/ap/?url=").concat(C+"/api/v1"):"https://".concat(C,"/api/v1?action=config")),f=c.map(C=>function(R,x,L,U){let F=ni(),Z={flag:64,cipher_method:0,features:{device:F.name,system:F.os,system_general:navigator.userAgent,vendor:x.appId,version:dd,cname:x.cname,sid:x.sid,session_id:x.sid,detail:"",proxyServer:x.proxyServer}};return wh(()=>Th(R,{data:Z,timeout:1e3,cancelToken:L,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":54}}),void 0,W=>W.code!==ce.OPERATION_ABORTED,U)}(C,r,a,o)),m=null,v=null,w={};try{m=await YS(f)}catch(C){if(C.code===ce.OPERATION_ABORTED)throw C;v=C}if(f.forEach(C=>C.cancel()),$t.reportApiInvoke(r.sid,{name:$r.REQUEST_CONFIG_DISTRIBUTE,options:{error:v,res:m}}).onSuccess(),m&&m.test_tags)try{w=function(C){if(!C.test_tags)return{};let R=C.test_tags,x=Object.keys(R),L={};return x.forEach(U=>{var F;let Z=ks(F=U.slice(4)).call(F),W=JSON.parse(R[U])[1];L[Z]=W}),L}(m)}catch{}return w}async function Gie(r,a){let o=ve("WEBCS_DOMAIN").concat(ve("WEBCS_DOMAIN_BACKUP_LIST")).map(c=>({url:"https://".concat(c,"/api/v2/transpond/webrtc?v=2"),areaCode:S3(),serviceIds:[Mr.CHOOSE_SERVER,Mr.CLOUD_PROXY_FALLBACK]}));try{return await Vie({referenceList:o,asyncMapHandler:c=>async function(f,m,v){let w,{url:C,areaCode:R,serviceIds:x}=f,L=Date.now(),[U,F]=gG(m,R,x),Z=yr.networkState;try{Z&&yr.networkState===eo.OFFLINE&&yr.onlineWaiter&&await Ct.race([yr.onlineWaiter,vs(kr.maxRetryTimeout)]),Z=yr.networkState;let{data:W,headers:K}=await Th(C,{data:U,cancelToken:v,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);w=K.http3==="1"?1:-1,(xe=>{let Oe=[];if(xe.response_body.forEach(ke=>{let He=ke.buffer.code;if(ke.uri===23&&He===0&&!ke.buffer.edges_services)if(ke.buffer.flag===4194310)ke.buffer.edges_services=[];else{let lt={error:new De(ce.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:!0,csIp:xe.detail[502]}),flag:ke.buffer.flag};Oe.push(lt)}if(He!==0){let lt=KS(He),ut={error:new De(ce.CAN_NOT_GET_GATEWAY_SERVER,lt.desc,{desc:lt.desc,retry:lt.retry,csIp:xe.detail[502]}),flag:ke.buffer.flag};ke.buffer.flag===4194310?z.warning(ut.error.toString()):Oe.push(ut)}}),Oe.length)throw new De(ce.CAN_NOT_GET_GATEWAY_SERVER,Oe.map(ke=>"flag: ".concat(ke.flag,", message: ").concat(ke.error.message)).join(" | "),{retry:!!Oe.find(ke=>ke.error.data.retry),csIp:xe.detail[502],desc:[...new Set(Oe.map(ke=>{var He;return ke==null||(He=ke.error)===null||He===void 0||(He=He.data)===null||He===void 0?void 0:He.desc}).filter(ke=>!!ke))]})})(W);let oe=w3(W,Mr.CHOOSE_SERVER),ue=w3(W,Mr.CLOUD_PROXY_FALLBACK);return mG(oe),{gatewayInfo:aG(oe,C),proxyInfo:ue,opid:F,requestTime:L,url:C,isHttp3:w,elapse:Date.now()-L}}catch(W){throw W}}(c,r,a),closeFn:c=>c.code===ce.OPERATION_ABORTED||c.code===ce.CAN_NOT_GET_GATEWAY_SERVER&&!c.data.retry})}catch(c){throw c}}async function Wie(r,a,o,c){let f=ve("PROXY_SERVER_TYPE3"),m=(F,Z,W)=>{let K=W||f;return Array.isArray(K)&&(K=Z%2==0?f[1]:f[0]),"https://".concat(K,"/ap/?url=").concat(F)},v=null,w=[],C=async()=>{let F=ve("WEBCS_DOMAIN").slice(0,ve("AJAX_REQUEST_CONCURRENT")).map((K,oe)=>{let ue;return ue=r.cloudProxyServer==="disabled"&&r.proxyServer?m("".concat(K,"/api/v2/transpond/webrtc?v=2"),oe,r.proxyServer):r.cloudProxyServer==="disabled"||r.cloudProxyServer==="fallback"?"https://".concat(K,"/api/v2/transpond/webrtc?v=2"):m("".concat(K,"/api/v2/transpond/webrtc?v=2"),oe),{url:ue,areaCode:S3(),serviceIds:[Mr.CHOOSE_SERVER,r.cloudProxyServer==="proxy5"?Mr.CLOUD_PROXY_5:r.cloudProxyServer==="proxy3"||r.cloudProxyServer==="proxy4"?Mr.CLOUD_PROXY:Mr.CLOUD_PROXY_FALLBACK]}}),Z=c.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:F.map(K=>K.url)}),W=await b3({fragementLength:ve("FRAGEMENT_LENGTH"),referenceList:F,asyncMapHandler:K=>(z.debug("[".concat(r.clientId,"] Connect to choose_server:"),K.url),Fie(K,r,a,o)),allFailedhandler:K=>{throw c.recordJoinChannelService({endTs:Date.now(),status:"error",errors:K},Z),K[0]},promisesCollector:w});return c.recordJoinChannelService({endTs:Date.now(),status:"success"},Z),W},R=async()=>{if(await vs(1e3),v!==null)return v;let F=ve("WEBCS_DOMAIN_BACKUP_LIST").map((K,oe)=>{let ue;return ue=r.cloudProxyServer==="disabled"&&r.proxyServer?m("".concat(K,"/api/v2/transpond/webrtc?v=2"),oe,r.proxyServer):r.cloudProxyServer==="disabled"||r.cloudProxyServer==="fallback"?"https://".concat(K,"/api/v2/transpond/webrtc?v=2"):m("".concat(K,"/api/v2/transpond/webrtc?v=2"),oe),{url:ue,areaCode:S3(),serviceIds:[Mr.CHOOSE_SERVER,r.cloudProxyServer==="proxy5"?Mr.CLOUD_PROXY_5:r.cloudProxyServer==="proxy3"||r.cloudProxyServer==="proxy4"?Mr.CLOUD_PROXY:Mr.CLOUD_PROXY_FALLBACK]}}),Z=c.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:F.map(K=>K.url)}),W=await b3({fragementLength:ve("FRAGEMENT_LENGTH"),referenceList:F,asyncMapHandler:K=>(z.debug("[".concat(r.clientId,"] Connect to backup choose_server:"),K.url),Fie(K,r,a,o)),allFailedhandler:K=>{throw c.recordJoinChannelService({endTs:Date.now(),status:"error",errors:K},Z),K[0]},promisesCollector:w});return c.recordJoinChannelService({endTs:Date.now(),status:"success"},Z),W},x,L,U;try{({gatewayInfo:x,proxyInfo:L,url:U}=await YS([C(),R()]))}catch(F){throw F[0]}if(w.length&&w.forEach(F=>F.cancel&&typeof F.cancel=="function"&&F.cancel()),!x||!L)throw new De(ce.UNEXPECTED_ERROR,"missing gateway or proxy response").print();if(r.apUrl=U,r.cloudProxyServer!=="disabled"&&Array.isArray(f)&&U){let F=/^https?:\/\/(.+?)(\/.*)?$/.exec(U)[1];Tt(f).call(f,F)&&(r.proxyServer=F,z.setProxyServer(F),$t.setProxyServer(F))}return v={gatewayInfo:x,proxyInfo:await Nie(L,x.uid)},v}async function $ie(r,a,o,c){let f=ve("UAP_AP").slice(0,ve("AJAX_REQUEST_CONCURRENT")).map(m=>a.proxyServer?"https://".concat(a.proxyServer,"/ap/?url=").concat(m+"/api/v1?action=uap"):"https://".concat(m,"/api/v1?action=uap"));return await SAe(f,r,a,o,c)}async function xAe(r,a,o){let c=ve("UAP_AP").slice(0,ve("AJAX_REQUEST_CONCURRENT")).map(m=>r.proxyServer?"https://".concat(r.proxyServer,"/ap/?url=").concat(m+"/api/v1?action=uap"):"https://".concat(m,"/api/v1?action=uap")),f=c.map(m=>function(v,w,C,R){let x={command:"convergeAllocateEdge",sid:w.sid,appId:w.appId,token:w.token,ts:Date.now(),version:dd,cname:w.cname,uid:w.uid.toString(),requestId:pG,seq:pG};pG+=1;let L={service_name:"tele_channel",json_body:JSON.stringify(x)};return wh(async()=>{let U=await Th(v,{data:L,cancelToken:C,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":61}});if(U.code!==0){let Z=new De(ce.UNEXPECTED_RESPONSE,"cross channel ap error, code"+U.code,{retry:!0});throw z.error(Z.toString()),Z}let F=JSON.parse(U.json_body);if(F.code!==200){let Z=new De(ce.UNEXPECTED_RESPONSE,"cross channel app center error, code: ".concat(F.code,", reason: ").concat(F.reason));throw z.error(Z.toString()),Z}if(!F.servers||F.servers.length===0){let Z=new De(ce.UNEXPECTED_RESPONSE,"cross channel app center empty server");throw z.error(Z.toString()),Z}return{vid:F.vid,workerToken:F.workerToken,addressList:(ve("CHANNEL_MEDIA_RELAY_SERVERS")||F.servers).map(Z=>"wss://".concat(Z.address.replace(/\./g,"-"),".").concat(ve("WORKER_DOMAIN"),":").concat(Z.wss))}},void 0,U=>!!(U.code!==ce.OPERATION_ABORTED&&U.code!==ce.UNEXPECTED_RESPONSE||U.data&&U.data.retry),R)}(m,r,a,o));try{let m=await YS(f);return f.forEach(v=>v.cancel()),m}catch(m){throw m[0]}}async function AAe(r,a,o){let c=null,f=[],m=async v=>{let w=ve(v?"WEBCS_DOMAIN_BACKUP_LIST":"WEBCS_DOMAIN").map(C=>r.proxyServer?"https://".concat(r.proxyServer,"/ap/?url=").concat(C+"/api/v2/transpond/webrtc?v=2"):"https://".concat(C,"/api/v2/transpond/webrtc?v=2"));return v&&(await vs(1e3),c!==null)?c:await b3({fragementLength:ve("FRAGEMENT_LENGTH"),referenceList:w,asyncMapHandler:C=>(z.debug("[".concat(r.clientId,"] update ticket, Connect to ").concat(v?"backup":""," choose_server:"),C),function(R,x,L,U){let[F]=CAe(x,[Mr.CHOOSE_SERVER]),Z=yr.networkState;return wh(async()=>{Z&&yr.networkState===eo.OFFLINE&&yr.onlineWaiter&&await Ct.race([yr.onlineWaiter,vs(U&&U.maxRetryTimeout||kr.maxRetryTimeout)]),Z=yr.networkState;let W=await Th(R,{data:F,cancelToken:L,headers:{"Content-Type":"multipart/form-data;"}},!0);return bAe(W,R)},()=>!1,W=>W.code!==ce.OPERATION_ABORTED&&(W.code===ce.UPDATE_TICKET_FAILED?W.data.retry:(z.warning("[".concat(x.clientId,"] update ticket network error, retry"),W),!0)),U)}(C,r,a,o)),allFailedhandler:C=>{throw C[0]},promisesCollector:f})};try{return c=await YS([m(!1),m(!0)]),f.length&&f.forEach(v=>v.cancel&&typeof v.cancel=="function"&&v.cancel()),c}catch(v){throw v[0]}}function Kie(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function qie(r){for(var a=1;a{this.updateConfigDistribute()},ve("CONFIG_DISTRIBUTE_INTERVAL")))}stopGetConfigDistribute(){this.interval&&clearInterval(this.interval),this.interval=void 0,this.joinInfo=void 0,this.cancelToken=void 0}async awaitConfigDistributeComplete(){this.mutex.isLocked&&(await this.mutex.lock())()}async updateConfigDistribute(){if(this.mutableParamsRead||(this.mutableParamsRead=!0,$t.reportApiInvoke(null,{options:void 0,name:$r.LOAD_CONFIG_FROM_LOCALSTORAGE,tag:vr.TRACER}).onSuccess(JSON.stringify(x0))),!this.joinInfo||!this.cancelToken||!this.retryConfig)return void z.debug("[config-distribute] get config distribute interrupted have no joininfo");let a,o=await this.mutex.lock();try{a=await RAe(this.joinInfo,this.cancelToken,this.retryConfig),z.debug("[config-distribute] get config distribute",JSON.stringify(a)),a.limit_bitrate&&this.handleBitrateLimit(a.limit_bitrate),this.cacheGlobalParameterConfig(a),this.configs=a}catch(c){let f=new De(ce.NETWORK_RESPONSE_ERROR,c);z.warning("[config-distribute] ".concat(f.toString()))}finally{o()}}getBitrateLimit(){return this.configs?this.configs.limit_bitrate:void 0}handleBitrateLimit(a){var o;(o=a)&&o.uplink&&o.id&&o.uplink.max_bitrate!==void 0&&o.uplink.min_bitrate!==void 0&&(this.configs&&this.configs.limit_bitrate?this.configs&&this.configs.limit_bitrate&&this.configs.limit_bitrate.id!==a.id&&this.emit(rG.UPDATE_BITRATE_LIMIT,a):this.emit(rG.UPDATE_BITRATE_LIMIT,a))}getLowStreamConfigDistribute(){return this.configs&&this.configs.limit_bitrate&&qie({},this.configs.limit_bitrate.low_stream_uplink)}cacheGlobalParameterConfig(a){var o;let c=JA(o=Object.keys(a).filter(m=>/^webrtc_ng_global_parameter/.test(m))).call(o);for(let m=0;mm;v--){let w=c[v];if(typeof a[w].__priority=="number"){let C=a[w].__priority,R=c[v-1];if(typeof a[R].__priority=="number"){if(!(C>a[R].__priority))continue;{let x=w;c[v]=c[v-1],c[v-1]=x}}else{let x=w;c[v]=c[v-1],c[v-1]=x}}}let f={};c.forEach(m=>{let v=a[m],w=v.__expires;Object.keys(v).forEach(C=>{C==="__priority"||C==="__expires"||Object.prototype.hasOwnProperty.call(f,C)||(f[C]=qie({value:v[C]},w&&{expires:w}))})});try{(function(w){try{let C=Date.now();Object.keys(w).forEach(R=>{switch(R){case"ENABLE_EVENT_REPORT":case"UPLOAD_LOG":case"ENABLE_AG_ADAPTATION":case"FORCE_AG_HIGH_FRAMERATE":case"FORCE_SUPPORT_AG_ADAPTATION":case"ENCODER_CONFIG_LIMIT":case"CAMERA_CAPTURE_CONFIG":case"ENABLE_PRELOAD":if(Object.prototype.hasOwnProperty.call(es,R)){let{value:x,expires:L}=w[R];if(L&&L<=C)return;x0[R]=x,es[R]=x,z.debug("Update global parameters from config distribute",R,x)}}})}catch(C){z.error("Error update config immediately: ".concat(w),C.message)}})(f);let m=JSON.stringify(f),v=window.btoa(m);window.localStorage.setItem("websdk_ng_global_parameter",v),z.debug("Caching global parameters ".concat(m))}catch(m){z.error("Error caching global parameters:",m.message)}}}var yu,NAe=l(pie),Yie=he,OAe=E,PAe=me,LAe=d,yG=Ow,DAe=dy,kAe=Ne,MAe=Ro,jAe=Ze,XS=Object.assign,Xie=Object.defineProperty,UAe=OAe([].concat),FAe=!XS||LAe(function(){if(Yie&&XS({b:1},XS(Xie({},"a",{enumerable:!0,get:function(){Xie(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var r={},a={},o=Symbol(),c="abcdefghijklmnopqrst";return r[o]=7,c.split("").forEach(function(f){a[f]=f}),XS({},r)[o]!=7||yG(XS({},a)).join("")!=c})?function(r,a){for(var o=MAe(r),c=arguments.length,f=1,m=DAe.f,v=kAe.f;c>f;)for(var w,C=jAe(arguments[f++]),R=m?UAe(yG(C),m(C)):yG(C),x=R.length,L=0;x>L;)w=R[L++],Yie&&!PAe(v,C,w)||(o[w]=C[w]);return o}:XS,BAe=dr,VAe=a0,zAe=_f,HAe=me,GAe=Ro,WAe=function(r,a,o,c){try{return c?a(BAe(o)[0],o[1]):a(o)}catch(f){VAe(r,"throw",f)}},$Ae=Ix,KAe=Pl,qAe=lh,Jie=RS,YAe=em,XAe=_a,Qie=Array,Yy=E,_G=2147483647,JAe=/[^\0-\u007E]/,Zie=/[.\u3002\uFF0E\uFF61]/g,ere="Overflow: input needs wider integers to process",tre=RangeError,QAe=Yy(Zie.exec),JS=Math.floor,EG=String.fromCharCode,nre=Yy("".charCodeAt),ire=Yy([].join),L0=Yy([].push),ZAe=Yy("".replace),e3e=Yy("".split),t3e=Yy("".toLowerCase),rre=function(r){return r+22+75*(r<26)},n3e=function(r,a,o){var c=0;for(r=o?JS(r/700):r>>1,r+=JS(r/a);r>455;)r=JS(r/35),c+=36;return JS(c+36*r/(r+38))},i3e=function(r){var a=[];r=function(oe){for(var ue=[],xe=0,Oe=oe.length;xe=55296&&ke<=56319&&xe=m&&cJS((_G-v)/L))throw tre(ere);for(v+=(x-m)*L,m=x,o=0;o_G)throw tre(ere);if(c==m){for(var U=v,F=36;;){var Z=F<=w?1:F>=w+26?26:F-w;if(U1?arguments[1]:void 0,m=f!==void 0;m&&(f=zAe(f,c>2?arguments[2]:void 0));var v,w,C,R,x,L,U=XAe(a),F=0;if(!U||this===Qie&&$Ae(U))for(v=qAe(a),w=o?new this(v):Qie(v);v>F;F++)L=m?f(a[F],F):a[F],Jie(w,F,L);else for(x=(R=YAe(a,U)).next,w=o?new this:[];!(C=HAe(x,R)).done;F++)L=m?WAe(R,f,[C.value,F],!0):C.value,Jie(w,F,L);return w.length=F,w},Rh=YA,o3e=NA.codeAt,l3e=function(r){var a,o,c=[],f=e3e(ZAe(t3e(r),Zie,"."),".");for(a=0;a?@[\\\]^|]/,T3e=/[\0\t\n\r #/:<>?@[\\\]^|]/,R3e=/^[\u0000-\u0020]+/,x3e=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,A3e=/[\t\n\r]/g,A3=function(r){var a,o,c,f;if(typeof r=="number"){for(a=[],o=0;o<4;o++)_3e(a,r%256),r=p3e(r/256);return T3(a,".")}if(typeof r=="object"){for(a="",c=function(m){for(var v=null,w=1,C=null,R=0,x=0;x<8;x++)m[x]!==0?(R>w&&(v=C,w=R),C=null,R=0):(C===null&&(C=x),++R);return R>w&&(v=C,w=R),v}(r),o=0;o<8;o++)f&&r[o]===0||(f&&(f=!1),c===o?(a+=o?":":"::",f=!0):(a+=m3e(r[o],16),o<7&&(a+=":")));return"["+a+"]"}return r},tD={},hre=CG({},tD,{" ":1,'"':1,"<":1,">":1,"`":1}),fre=CG({},hre,{"#":1,"?":1,"{":1,"}":1}),IG=CG({},fre,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),D0=function(r,a){var o=o3e(r,0);return o>32&&o<127&&!bG(a,r)?r:encodeURIComponent(r)},nD={ftp:21,file:null,http:80,https:443,ws:80,wss:443},I3=function(r,a){var o;return r.length==2&&xh(dre,wu(r,0))&&((o=wu(r,1))==":"||!a&&o=="|")},pre=function(r){var a;return r.length>1&&I3(R3(r,0,2))&&(r.length==2||(a=wu(r,2))==="/"||a==="\\"||a==="?"||a==="#")},I3e=function(r){return r==="."||eD(r)==="%2e"},NG={},mre={},OG={},gre={},vre={},PG={},yre={},_re={},iD={},rD={},LG={},DG={},kG={},MG={},Ere={},jG={},eb={},jf={},wre={},Xy={},_m={},UG=function(r,a,o){var c,f,m,v=ym(r);if(a){if(f=this.parse(v))throw TG(f);this.searchParams=null}else{if(o!==void 0&&(c=new UG(o,!0)),f=this.parse(v,null,c))throw TG(f);(m=f3e(new h3e)).bindURL(this),this.searchParams=m}};UG.prototype={type:"URL",parse:function(r,a,o){var c,f,m,v,w,C=this,R=a||NG,x=0,L="",U=!1,F=!1,Z=!1;for(r=ym(r),a||(C.scheme="",C.username="",C.password="",C.host=null,C.port=null,C.path=[],C.query=null,C.fragment=null,C.cannotBeABaseURL=!1,r=RG(r,R3e,""),r=RG(r,x3e,"$1")),r=RG(r,A3e,""),c=QS(r);x<=c.length;){switch(f=c[x],R){case NG:if(!f||!xh(dre,f)){if(a)return xG;R=OG;continue}L+=eD(f),R=mre;break;case mre:if(f&&(xh(E3e,f)||f=="+"||f=="-"||f=="."))L+=eD(f);else{if(f!=":"){if(a)return xG;L="",R=OG,x=0;continue}if(a&&(C.isSpecial()!=bG(nD,L)||L=="file"&&(C.includesCredentials()||C.port!==null)||C.scheme=="file"&&!C.host))return;if(C.scheme=L,a)return void(C.isSpecial()&&nD[C.scheme]==C.port&&(C.port=null));L="",C.scheme=="file"?R=MG:C.isSpecial()&&o&&o.scheme==C.scheme?R=gre:C.isSpecial()?R=_re:c[x+1]=="/"?(R=vre,x++):(C.cannotBeABaseURL=!0,ZS(C.path,""),R=wre)}break;case OG:if(!o||o.cannotBeABaseURL&&f!="#")return xG;if(o.cannotBeABaseURL&&f=="#"){C.scheme=o.scheme,C.path=Rh(o.path),C.query=o.query,C.fragment="",C.cannotBeABaseURL=!0,R=_m;break}R=o.scheme=="file"?MG:PG;continue;case gre:if(f!="/"||c[x+1]!="/"){R=PG;continue}R=iD,x++;break;case vre:if(f=="/"){R=rD;break}R=jf;continue;case PG:if(C.scheme=o.scheme,f==yu)C.username=o.username,C.password=o.password,C.host=o.host,C.port=o.port,C.path=Rh(o.path),C.query=o.query;else if(f=="/"||f=="\\"&&C.isSpecial())R=yre;else if(f=="?")C.username=o.username,C.password=o.password,C.host=o.host,C.port=o.port,C.path=Rh(o.path),C.query="",R=Xy;else{if(f!="#"){C.username=o.username,C.password=o.password,C.host=o.host,C.port=o.port,C.path=Rh(o.path),C.path.length--,R=jf;continue}C.username=o.username,C.password=o.password,C.host=o.host,C.port=o.port,C.path=Rh(o.path),C.query=o.query,C.fragment="",R=_m}break;case yre:if(!C.isSpecial()||f!="/"&&f!="\\"){if(f!="/"){C.username=o.username,C.password=o.password,C.host=o.host,C.port=o.port,R=jf;continue}R=rD}else R=iD;break;case _re:if(R=iD,f!="/"||wu(L,x+1)!="/")continue;x++;break;case iD:if(f!="/"&&f!="\\"){R=rD;continue}break;case rD:if(f=="@"){U&&(L="%40"+L),U=!0,m=QS(L);for(var W=0;W65535)return cre;C.port=C.isSpecial()&&ue===nD[C.scheme]?null:ue,L=""}if(a)return;R=eb;continue}return cre}L+=f;break;case MG:if(C.scheme="file",f=="/"||f=="\\")R=Ere;else{if(!o||o.scheme!="file"){R=jf;continue}if(f==yu)C.host=o.host,C.path=Rh(o.path),C.query=o.query;else if(f=="?")C.host=o.host,C.path=Rh(o.path),C.query="",R=Xy;else{if(f!="#"){pre(T3(Rh(c,x),""))||(C.host=o.host,C.path=Rh(o.path),C.shortenPath()),R=jf;continue}C.host=o.host,C.path=Rh(o.path),C.query=o.query,C.fragment="",R=_m}}break;case Ere:if(f=="/"||f=="\\"){R=jG;break}o&&o.scheme=="file"&&!pre(T3(Rh(c,x),""))&&(I3(o.path[0],!0)?ZS(C.path,o.path[0]):C.host=o.host),R=jf;continue;case jG:if(f==yu||f=="/"||f=="\\"||f=="?"||f=="#"){if(!a&&I3(L))R=jf;else if(L==""){if(C.host="",a)return;R=eb}else{if(v=C.parseHost(L))return v;if(C.host=="localhost"&&(C.host=""),a)return;L="",R=eb}continue}L+=f;break;case eb:if(C.isSpecial()){if(R=jf,f!="/"&&f!="\\")continue}else if(a||f!="?")if(a||f!="#"){if(f!=yu&&(R=jf,f!="/"))continue}else C.fragment="",R=_m;else C.query="",R=Xy;break;case jf:if(f==yu||f=="/"||f=="\\"&&C.isSpecial()||!a&&(f=="?"||f=="#")){if((w=eD(w=L))===".."||w==="%2e."||w===".%2e"||w==="%2e%2e"?(C.shortenPath(),f=="/"||f=="\\"&&C.isSpecial()||ZS(C.path,"")):I3e(L)?f=="/"||f=="\\"&&C.isSpecial()||ZS(C.path,""):(C.scheme=="file"&&!C.path.length&&I3(L)&&(C.host&&(C.host=""),L=wu(L,0)+":"),ZS(C.path,L)),L="",C.scheme=="file"&&(f==yu||f=="?"||f=="#"))for(;C.path.length>1&&C.path[0]==="";)v3e(C.path);f=="?"?(C.query="",R=Xy):f=="#"&&(C.fragment="",R=_m)}else L+=D0(f,fre);break;case wre:f=="?"?(C.query="",R=Xy):f=="#"?(C.fragment="",R=_m):f!=yu&&(C.path[0]+=D0(f,tD));break;case Xy:a||f!="#"?f!=yu&&(f=="'"&&C.isSpecial()?C.query+="%27":C.query+=f=="#"?"%23":D0(f,tD)):(C.fragment="",R=_m);break;case _m:f!=yu&&(C.fragment+=D0(f,hre))}x++}},parseHost:function(r){var a,o,c;if(wu(r,0)=="["){if(wu(r,r.length-1)!="]"||(a=function(f){var m,v,w,C,R,x,L,U=[0,0,0,0,0,0,0,0],F=0,Z=null,W=0,K=function(){return wu(f,W)};if(K()==":"){if(wu(f,1)!=":")return;W+=2,Z=++F}for(;K();){if(F==8)return;if(K()!=":"){for(m=v=0;v<4&&xh(ure,K());)m=16*m+Z8(K(),16),W++,v++;if(K()=="."){if(v==0||(W-=v,F>6))return;for(w=0;K();){if(C=null,w>0){if(!(K()=="."&&w<4))return;W++}if(!xh(AG,K()))return;for(;xh(AG,K());){if(R=Z8(K(),10),C===null)C=R;else{if(C==0)return;C=10*C+R}if(C>255)return;W++}U[F]=256*U[F]+C,++w!=2&&w!=4||F++}if(w!=4)return;break}if(K()==":"){if(W++,!K())return}else if(K())return;U[F++]=m}else{if(Z!==null)return;W++,Z=++F}}if(Z!==null)for(x=F-Z,F=7;F!=0&&x>0;)L=U[F],U[F--]=U[Z+x-1],U[Z+--x]=L;else if(F!=8)return;return U}(R3(r,1,-1)),!a))return x3;this.host=a}else if(this.isSpecial()){if(r=l3e(r),xh(C3e,r)||(a=function(f){var m,v,w,C,R,x,L,U=y3e(f,".");if(U.length&&U[U.length-1]==""&&U.length--,(m=U.length)>4)return f;for(v=[],w=0;w1&&wu(C,0)=="0"&&(R=xh(w3e,C)?16:8,C=R3(C,R==8?1:2)),C==="")x=0;else{if(!xh(R==10?b3e:R==8?S3e:ure,C))return f;x=Z8(C,R)}ZS(v,x)}for(w=0;w=lre(256,5-m))return null}else if(x>255)return null;for(L=g3e(v),w=0;w1?arguments[1]:void 0,c=u3e(a,new UG(r,!1,o));wG||(a.href=c.serialize(),a.origin=c.getOrigin(),a.protocol=c.getProtocol(),a.username=c.getUsername(),a.password=c.getPassword(),a.host=c.getHost(),a.hostname=c.getHostname(),a.port=c.getPort(),a.pathname=c.getPathname(),a.search=c.getSearch(),a.searchParams=c.getSearchParams(),a.hash=c.getHash())},jl=tb.prototype,Su=function(r,a){return{get:function(){return Q8(this)[r]()},set:a&&function(o){return Q8(this)[a](o)},configurable:!0,enumerable:!0}};if(wG&&(Eu(jl,"href",Su("serialize","setHref")),Eu(jl,"origin",Su("getOrigin")),Eu(jl,"protocol",Su("getProtocol","setProtocol")),Eu(jl,"username",Su("getUsername","setUsername")),Eu(jl,"password",Su("getPassword","setPassword")),Eu(jl,"host",Su("getHost","setHost")),Eu(jl,"hostname",Su("getHostname","setHostname")),Eu(jl,"port",Su("getPort","setPort")),Eu(jl,"pathname",Su("getPathname","setPathname")),Eu(jl,"search",Su("getSearch","setSearch")),Eu(jl,"searchParams",Su("getSearchParams")),Eu(jl,"hash",Su("getHash","setHash"))),J8(jl,"toJSON",function(){return Q8(this).serialize()},{enumerable:!0}),J8(jl,"toString",function(){return Q8(this).serialize()},{enumerable:!0}),C3){var Sre=C3.createObjectURL,bre=C3.revokeObjectURL;Sre&&J8(tb,"createObjectURL",sre(Sre,C3)),bre&&J8(tb,"revokeObjectURL",sre(bre,C3))}c3e(tb,"URL"),r3e({global:!0,constructor:!0,forced:!s3e,sham:!wG},{URL:tb});var N3e=Ni,O3e=d,P3e=sS,Cre=xl,L3e=dH,Tre=tn("URL");N3e({target:"URL",stat:!0,forced:!(L3e&&O3e(function(){Tre.canParse()}))},{canParse:function(r){var a=P3e(arguments.length,1),o=Cre(r),c=a<2||arguments[1]===void 0?void 0:Cre(arguments[1]);try{return!!new Tre(o,c)}catch{return!1}}});var Rre=l(Me.URL),D3e=b,k3e=ene,xre=RegExp.prototype,M3e=function(r){return r===xre||D3e(xre,r)?k3e(r):r.flags},La=l(M3e);function nb(r){let a=r.length;for(;--a>=0;)r[a]=0}let FG=256,Are=286,N3=30,O3=15,BG=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),sD=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),j3e=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ire=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Em=new Array(576);nb(Em);let P3=new Array(60);nb(P3);let L3=new Array(512);nb(L3);let D3=new Array(256);nb(D3);let VG=new Array(29);nb(VG);let aD=new Array(N3);function zG(r,a,o,c,f){this.static_tree=r,this.extra_bits=a,this.extra_base=o,this.elems=c,this.max_length=f,this.has_stree=r&&r.length}let Nre,Ore,Pre;function HG(r,a){this.dyn_tree=r,this.max_code=0,this.stat_desc=a}nb(aD);let Lre=r=>r<256?L3[r]:L3[256+(r>>>7)],k3=(r,a)=>{r.pending_buf[r.pending++]=255&a,r.pending_buf[r.pending++]=a>>>8&255},Rc=(r,a,o)=>{r.bi_valid>16-o?(r.bi_buf|=a<>16-r.bi_valid,r.bi_valid+=o-16):(r.bi_buf|=a<{Rc(r,o[2*a],o[2*a+1])},Dre=(r,a)=>{let o=0;do o|=1&r,r>>>=1,o<<=1;while(--a>0);return o>>>1},kre=(r,a,o)=>{let c=new Array(16),f,m,v=0;for(f=1;f<=O3;f++)v=v+o[f-1]<<1,c[f]=v;for(m=0;m<=a;m++){let w=r[2*m+1];w!==0&&(r[2*m]=Dre(c[w]++,w))}},Mre=r=>{let a;for(a=0;a{r.bi_valid>8?k3(r,r.bi_buf):r.bi_valid>0&&(r.pending_buf[r.pending++]=r.bi_buf),r.bi_buf=0,r.bi_valid=0},Ure=(r,a,o,c)=>{let f=2*a,m=2*o;return r[f]{let c=r.heap[o],f=o<<1;for(;f<=r.heap_len&&(f{let c,f,m,v,w=0;if(r.sym_next!==0)do c=255&r.pending_buf[r.sym_buf+w++],c+=(255&r.pending_buf[r.sym_buf+w++])<<8,f=r.pending_buf[r.sym_buf+w++],c===0?Uf(r,f,a):(m=D3[f],Uf(r,m+FG+1,a),v=BG[m],v!==0&&(f-=VG[m],Rc(r,f,v)),c--,m=Lre(c),Uf(r,m,o),v=sD[m],v!==0&&(c-=aD[m],Rc(r,c,v)));while(w{let o=a.dyn_tree,c=a.stat_desc.static_tree,f=a.stat_desc.has_stree,m=a.stat_desc.elems,v,w,C,R=-1;for(r.heap_len=0,r.heap_max=573,v=0;v>1;v>=1;v--)GG(r,o,v);C=m;do v=r.heap[1],r.heap[1]=r.heap[r.heap_len--],GG(r,o,1),w=r.heap[1],r.heap[--r.heap_max]=v,r.heap[--r.heap_max]=w,o[2*C]=o[2*v]+o[2*w],r.depth[C]=(r.depth[v]>=r.depth[w]?r.depth[v]:r.depth[w])+1,o[2*v+1]=o[2*w+1]=C,r.heap[1]=C++,GG(r,o,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],((x,L)=>{let U=L.dyn_tree,F=L.max_code,Z=L.stat_desc.static_tree,W=L.stat_desc.has_stree,K=L.stat_desc.extra_bits,oe=L.stat_desc.extra_base,ue=L.stat_desc.max_length,xe,Oe,ke,He,lt,ut,ft=0;for(He=0;He<=O3;He++)x.bl_count[He]=0;for(U[2*x.heap[x.heap_max]+1]=0,xe=x.heap_max+1;xe<573;xe++)Oe=x.heap[xe],He=U[2*U[2*Oe+1]+1]+1,He>ue&&(He=ue,ft++),U[2*Oe+1]=He,Oe>F||(x.bl_count[He]++,lt=0,Oe>=oe&&(lt=K[Oe-oe]),ut=U[2*Oe],x.opt_len+=ut*(He+lt),W&&(x.static_len+=ut*(Z[2*Oe+1]+lt)));if(ft!==0){do{for(He=ue-1;x.bl_count[He]===0;)He--;x.bl_count[He]--,x.bl_count[He+1]+=2,x.bl_count[ue]--,ft-=2}while(ft>0);for(He=ue;He!==0;He--)for(Oe=x.bl_count[He];Oe!==0;)ke=x.heap[--xe],ke>F||(U[2*ke+1]!==He&&(x.opt_len+=(He-U[2*ke+1])*U[2*ke],U[2*ke+1]=He),Oe--)}})(r,a),kre(o,R,r.bl_count)},Bre=(r,a,o)=>{let c,f,m=-1,v=a[1],w=0,C=7,R=4;for(v===0&&(C=138,R=3),a[2*(o+1)+1]=65535,c=0;c<=o;c++)f=v,v=a[2*(c+1)+1],++w{let c,f,m=-1,v=a[1],w=0,C=7,R=4;for(v===0&&(C=138,R=3),c=0;c<=o;c++)if(f=v,v=a[2*(c+1)+1],!(++w{Rc(r,0+(c?1:0),3),jre(r),k3(r,o),k3(r,~o),o&&r.pending_buf.set(r.window.subarray(a,a+o),r.pending),r.pending+=o};var U3e=r=>{zre||((()=>{let a,o,c,f,m,v=new Array(16);for(c=0,f=0;f<28;f++)for(VG[f]=c,a=0;a<1<>=7;f{let f,m,v=0;r.level>0?(r.strm.data_type===2&&(r.strm.data_type=(w=>{let C,R=4093624447;for(C=0;C<=31;C++,R>>>=1)if(1&R&&w.dyn_ltree[2*C]!==0)return 0;if(w.dyn_ltree[18]!==0||w.dyn_ltree[20]!==0||w.dyn_ltree[26]!==0)return 1;for(C=32;C{let C;for(Bre(w,w.dyn_ltree,w.l_desc.max_code),Bre(w,w.dyn_dtree,w.d_desc.max_code),WG(w,w.bl_desc),C=18;C>=3&&w.bl_tree[2*Ire[C]+1]===0;C--);return w.opt_len+=3*(C+1)+5+5+4,C})(r),f=r.opt_len+3+7>>>3,m=r.static_len+3+7>>>3,m<=f&&(f=m)):f=m=o+5,o+4<=f&&a!==-1?Hre(r,a,o,c):r.strategy===4||m===f?(Rc(r,2+(c?1:0),3),Fre(r,Em,P3)):(Rc(r,4+(c?1:0),3),((w,C,R,x)=>{let L;for(Rc(w,C-257,5),Rc(w,R-1,5),Rc(w,x-4,4),L=0;L(r.pending_buf[r.sym_buf+r.sym_next++]=a,r.pending_buf[r.sym_buf+r.sym_next++]=a>>8,r.pending_buf[r.sym_buf+r.sym_next++]=o,a===0?r.dyn_ltree[2*o]++:(r.matches++,a--,r.dyn_ltree[2*(D3[o]+FG+1)]++,r.dyn_dtree[2*Lre(a)]++),r.sym_next===r.sym_end),V3e=r=>{Rc(r,2,3),Uf(r,256,Em),(a=>{a.bi_valid===16?(k3(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)})(r)},z3e={_tr_init:U3e,_tr_stored_block:Hre,_tr_flush_block:F3e,_tr_tally:B3e,_tr_align:V3e},M3=(r,a,o,c)=>{let f=65535&r|0,m=r>>>16&65535|0,v=0;for(;o!==0;){v=o>2e3?2e3:o,o-=v;do f=f+a[c++]|0,m=m+f|0;while(--v);f%=65521,m%=65521}return f|m<<16|0};let H3e=new Uint32Array((()=>{let r,a=[];for(var o=0;o<256;o++){r=o;for(var c=0;c<8;c++)r=1&r?3988292384^r>>>1:r>>>1;a[o]=r}return a})());var ro=(r,a,o,c)=>{let f=H3e,m=c+o;r^=-1;for(let v=c;v>>8^f[255&(r^a[v])];return-1^r},Jy={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ib={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};let{_tr_init:G3e,_tr_stored_block:$G,_tr_flush_block:W3e,_tr_tally:k0,_tr_align:$3e}=z3e,{Z_NO_FLUSH:M0,Z_PARTIAL_FLUSH:K3e,Z_FULL_FLUSH:q3e,Z_FINISH:bu,Z_BLOCK:Gre,Z_OK:No,Z_STREAM_END:Wre,Z_STREAM_ERROR:Ff,Z_DATA_ERROR:Y3e,Z_BUF_ERROR:KG,Z_DEFAULT_COMPRESSION:X3e,Z_FILTERED:J3e,Z_HUFFMAN_ONLY:oD,Z_RLE:Q3e,Z_FIXED:Z3e,Z_DEFAULT_STRATEGY:eIe,Z_UNKNOWN:tIe,Z_DEFLATED:lD}=ib,qG=286,nIe=30,iIe=19,rIe=2*qG+1,sIe=15,Qy=258,Bf=262,rb=42,Zy=113,j3=666,e_=(r,a)=>(r.msg=Jy[a],a),$re=r=>2*r-(r>4?9:0),j0=r=>{let a=r.length;for(;--a>=0;)r[a]=0},aIe=r=>{let a,o,c,f=r.w_size;a=r.hash_size,c=a;do o=r.head[--c],r.head[c]=o>=f?o-f:0;while(--a);a=f,c=a;do o=r.prev[--c],r.prev[c]=o>=f?o-f:0;while(--a)},U0=(r,a,o)=>(a<{let a=r.state,o=a.pending;o>r.avail_out&&(o=r.avail_out),o!==0&&(r.output.set(a.pending_buf.subarray(a.pending_out,a.pending_out+o),r.next_out),r.next_out+=o,a.pending_out+=o,r.total_out+=o,r.avail_out-=o,a.pending-=o,a.pending===0&&(a.pending_out=0))},pd=(r,a)=>{W3e(r,r.block_start>=0?r.block_start:-1,r.strstart-r.block_start,a),r.block_start=r.strstart,fd(r.strm)},Rr=(r,a)=>{r.pending_buf[r.pending++]=a},U3=(r,a)=>{r.pending_buf[r.pending++]=a>>>8&255,r.pending_buf[r.pending++]=255&a},YG=(r,a,o,c)=>{let f=r.avail_in;return f>c&&(f=c),f===0?0:(r.avail_in-=f,a.set(r.input.subarray(r.next_in,r.next_in+f),o),r.state.wrap===1?r.adler=M3(r.adler,a,f,o):r.state.wrap===2&&(r.adler=ro(r.adler,a,f,o)),r.next_in+=f,r.total_in+=f,f)},Kre=(r,a)=>{let o,c,f=r.max_chain_length,m=r.strstart,v=r.prev_length,w=r.nice_match,C=r.strstart>r.w_size-Bf?r.strstart-(r.w_size-Bf):0,R=r.window,x=r.w_mask,L=r.prev,U=r.strstart+Qy,F=R[m+v-1],Z=R[m+v];r.prev_length>=r.good_match&&(f>>=2),w>r.lookahead&&(w=r.lookahead);do if(o=a,R[o+v]===Z&&R[o+v-1]===F&&R[o]===R[m]&&R[++o]===R[m+1]){m+=2,o++;do;while(R[++m]===R[++o]&&R[++m]===R[++o]&&R[++m]===R[++o]&&R[++m]===R[++o]&&R[++m]===R[++o]&&R[++m]===R[++o]&&R[++m]===R[++o]&&R[++m]===R[++o]&&mv){if(r.match_start=a,v=c,c>=w)break;F=R[m+v-1],Z=R[m+v]}}while((a=L[a&x])>C&&--f!=0);return v<=r.lookahead?v:r.lookahead},sb=r=>{let a=r.w_size,o,c,f;do{if(c=r.window_size-r.lookahead-r.strstart,r.strstart>=a+(a-Bf)&&(r.window.set(r.window.subarray(a,a+a-c),0),r.match_start-=a,r.strstart-=a,r.block_start-=a,r.insert>r.strstart&&(r.insert=r.strstart),aIe(r),c+=a),r.strm.avail_in===0)break;if(o=YG(r.strm,r.window,r.strstart+r.lookahead,c),r.lookahead+=o,r.lookahead+r.insert>=3)for(f=r.strstart-r.insert,r.ins_h=r.window[f],r.ins_h=U0(r,r.ins_h,r.window[f+1]);r.insert&&(r.ins_h=U0(r,r.ins_h,r.window[f+3-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++,r.insert--,!(r.lookahead+r.insert<3)););}while(r.lookahead{let o,c,f,m=r.pending_buf_size-5>r.w_size?r.w_size:r.pending_buf_size-5,v=0,w=r.strm.avail_in;do{if(o=65535,f=r.bi_valid+42>>3,r.strm.avail_outc+r.strm.avail_in&&(o=c+r.strm.avail_in),o>f&&(o=f),o>8,r.pending_buf[r.pending-2]=~o,r.pending_buf[r.pending-1]=~o>>8,fd(r.strm),c&&(c>o&&(c=o),r.strm.output.set(r.window.subarray(r.block_start,r.block_start+c),r.strm.next_out),r.strm.next_out+=c,r.strm.avail_out-=c,r.strm.total_out+=c,r.block_start+=c,o-=c),o&&(YG(r.strm,r.strm.output,r.strm.next_out,o),r.strm.next_out+=o,r.strm.avail_out-=o,r.strm.total_out+=o)}while(v===0);return w-=r.strm.avail_in,w&&(w>=r.w_size?(r.matches=2,r.window.set(r.strm.input.subarray(r.strm.next_in-r.w_size,r.strm.next_in),0),r.strstart=r.w_size,r.insert=r.strstart):(r.window_size-r.strstart<=w&&(r.strstart-=r.w_size,r.window.set(r.window.subarray(r.w_size,r.w_size+r.strstart),0),r.matches<2&&r.matches++,r.insert>r.strstart&&(r.insert=r.strstart)),r.window.set(r.strm.input.subarray(r.strm.next_in-w,r.strm.next_in),r.strstart),r.strstart+=w,r.insert+=w>r.w_size-r.insert?r.w_size-r.insert:w),r.block_start=r.strstart),r.high_waterf&&r.block_start>=r.w_size&&(r.block_start-=r.w_size,r.strstart-=r.w_size,r.window.set(r.window.subarray(r.w_size,r.w_size+r.strstart),0),r.matches<2&&r.matches++,f+=r.w_size,r.insert>r.strstart&&(r.insert=r.strstart)),f>r.strm.avail_in&&(f=r.strm.avail_in),f&&(YG(r.strm,r.window,r.strstart,f),r.strstart+=f,r.insert+=f>r.w_size-r.insert?r.w_size-r.insert:f),r.high_water>3,f=r.pending_buf_size-f>65535?65535:r.pending_buf_size-f,m=f>r.w_size?r.w_size:f,c=r.strstart-r.block_start,(c>=m||(c||a===bu)&&a!==M0&&r.strm.avail_in===0&&c<=f)&&(o=c>f?f:c,v=a===bu&&r.strm.avail_in===0&&o===c?1:0,$G(r,r.block_start,o,v),r.block_start+=o,fd(r.strm)),v?3:1)},XG=(r,a)=>{let o,c;for(;;){if(r.lookahead=3&&(r.ins_h=U0(r,r.ins_h,r.window[r.strstart+3-1]),o=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),o!==0&&r.strstart-o<=r.w_size-Bf&&(r.match_length=Kre(r,o)),r.match_length>=3)if(c=k0(r,r.strstart-r.match_start,r.match_length-3),r.lookahead-=r.match_length,r.match_length<=r.max_lazy_match&&r.lookahead>=3){r.match_length--;do r.strstart++,r.ins_h=U0(r,r.ins_h,r.window[r.strstart+3-1]),o=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart;while(--r.match_length!=0);r.strstart++}else r.strstart+=r.match_length,r.match_length=0,r.ins_h=r.window[r.strstart],r.ins_h=U0(r,r.ins_h,r.window[r.strstart+1]);else c=k0(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++;if(c&&(pd(r,!1),r.strm.avail_out===0))return 1}return r.insert=r.strstart<2?r.strstart:2,a===bu?(pd(r,!0),r.strm.avail_out===0?3:4):r.sym_next&&(pd(r,!1),r.strm.avail_out===0)?1:2},ab=(r,a)=>{let o,c,f;for(;;){if(r.lookahead=3&&(r.ins_h=U0(r,r.ins_h,r.window[r.strstart+3-1]),o=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),r.prev_length=r.match_length,r.prev_match=r.match_start,r.match_length=2,o!==0&&r.prev_length4096)&&(r.match_length=2)),r.prev_length>=3&&r.match_length<=r.prev_length){f=r.strstart+r.lookahead-3,c=k0(r,r.strstart-1-r.prev_match,r.prev_length-3),r.lookahead-=r.prev_length-1,r.prev_length-=2;do++r.strstart<=f&&(r.ins_h=U0(r,r.ins_h,r.window[r.strstart+3-1]),o=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart);while(--r.prev_length!=0);if(r.match_available=0,r.match_length=2,r.strstart++,c&&(pd(r,!1),r.strm.avail_out===0))return 1}else if(r.match_available){if(c=k0(r,0,r.window[r.strstart-1]),c&&pd(r,!1),r.strstart++,r.lookahead--,r.strm.avail_out===0)return 1}else r.match_available=1,r.strstart++,r.lookahead--}return r.match_available&&(c=k0(r,0,r.window[r.strstart-1]),r.match_available=0),r.insert=r.strstart<2?r.strstart:2,a===bu?(pd(r,!0),r.strm.avail_out===0?3:4):r.sym_next&&(pd(r,!1),r.strm.avail_out===0)?1:2};function Vf(r,a,o,c,f){this.good_length=r,this.max_lazy=a,this.nice_length=o,this.max_chain=c,this.func=f}let F3=[new Vf(0,0,0,0,qre),new Vf(4,4,8,4,XG),new Vf(4,5,16,8,XG),new Vf(4,6,32,32,XG),new Vf(4,4,16,16,ab),new Vf(8,16,32,32,ab),new Vf(8,16,128,128,ab),new Vf(8,32,128,256,ab),new Vf(32,128,258,1024,ab),new Vf(32,258,258,4096,ab)];function oIe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=lD,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(2*rIe),this.dyn_dtree=new Uint16Array(2*(2*nIe+1)),this.bl_tree=new Uint16Array(2*(2*iIe+1)),j0(this.dyn_ltree),j0(this.dyn_dtree),j0(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(sIe+1),this.heap=new Uint16Array(2*qG+1),j0(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*qG+1),j0(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}let B3=r=>{if(!r)return 1;let a=r.state;return!a||a.strm!==r||a.status!==rb&&a.status!==57&&a.status!==69&&a.status!==73&&a.status!==91&&a.status!==103&&a.status!==Zy&&a.status!==j3?1:0},Yre=r=>{if(B3(r))return e_(r,Ff);r.total_in=r.total_out=0,r.data_type=tIe;let a=r.state;return a.pending=0,a.pending_out=0,a.wrap<0&&(a.wrap=-a.wrap),a.status=a.wrap===2?57:a.wrap?rb:Zy,r.adler=a.wrap===2?0:1,a.last_flush=-2,G3e(a),No},Xre=r=>{let a=Yre(r);return a===No&&(o=>{o.window_size=2*o.w_size,j0(o.head),o.max_lazy_match=F3[o.level].max_lazy,o.good_match=F3[o.level].good_length,o.nice_match=F3[o.level].nice_length,o.max_chain_length=F3[o.level].max_chain,o.strstart=0,o.block_start=0,o.lookahead=0,o.insert=0,o.match_length=o.prev_length=2,o.match_available=0,o.ins_h=0})(r.state),a},Jre=(r,a,o,c,f,m)=>{if(!r)return Ff;let v=1;if(a===X3e&&(a=6),c<0?(v=0,c=-c):c>15&&(v=2,c-=16),f<1||f>9||o!==lD||c<8||c>15||a<0||a>9||m<0||m>Z3e||c===8&&v!==1)return e_(r,Ff);c===8&&(c=9);let w=new oIe;return r.state=w,w.strm=r,w.status=rb,w.wrap=v,w.gzhead=null,w.w_bits=c,w.w_size=1<{if(B3(r)||a>Gre||a<0)return r?e_(r,Ff):Ff;let o=r.state;if(!r.output||r.avail_in!==0&&!r.input||o.status===j3&&a!==bu)return e_(r,r.avail_out===0?KG:Ff);let c=o.last_flush;if(o.last_flush=a,o.pending!==0){if(fd(r),r.avail_out===0)return o.last_flush=-1,No}else if(r.avail_in===0&&$re(a)<=$re(c)&&a!==bu)return e_(r,KG);if(o.status===j3&&r.avail_in!==0)return e_(r,KG);if(o.status===rb&&o.wrap===0&&(o.status=Zy),o.status===rb){let f=lD+(o.w_bits-8<<4)<<8,m=-1;if(m=o.strategy>=oD||o.level<2?0:o.level<6?1:o.level===6?2:3,f|=m<<6,o.strstart!==0&&(f|=32),f+=31-f%31,U3(o,f),o.strstart!==0&&(U3(o,r.adler>>>16),U3(o,65535&r.adler)),r.adler=1,o.status=Zy,fd(r),o.pending!==0)return o.last_flush=-1,No}if(o.status===57){if(r.adler=0,Rr(o,31),Rr(o,139),Rr(o,8),o.gzhead)Rr(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),Rr(o,255&o.gzhead.time),Rr(o,o.gzhead.time>>8&255),Rr(o,o.gzhead.time>>16&255),Rr(o,o.gzhead.time>>24&255),Rr(o,o.level===9?2:o.strategy>=oD||o.level<2?4:0),Rr(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(Rr(o,255&o.gzhead.extra.length),Rr(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(r.adler=ro(r.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=69;else if(Rr(o,0),Rr(o,0),Rr(o,0),Rr(o,0),Rr(o,0),Rr(o,o.level===9?2:o.strategy>=oD||o.level<2?4:0),Rr(o,3),o.status=Zy,fd(r),o.pending!==0)return o.last_flush=-1,No}if(o.status===69){if(o.gzhead.extra){let f=o.pending,m=(65535&o.gzhead.extra.length)-o.gzindex;for(;o.pending+m>o.pending_buf_size;){let w=o.pending_buf_size-o.pending;if(o.pending_buf.set(o.gzhead.extra.subarray(o.gzindex,o.gzindex+w),o.pending),o.pending=o.pending_buf_size,o.gzhead.hcrc&&o.pending>f&&(r.adler=ro(r.adler,o.pending_buf,o.pending-f,f)),o.gzindex+=w,fd(r),o.pending!==0)return o.last_flush=-1,No;f=0,m-=w}let v=new Uint8Array(o.gzhead.extra);o.pending_buf.set(v.subarray(o.gzindex,o.gzindex+m),o.pending),o.pending+=m,o.gzhead.hcrc&&o.pending>f&&(r.adler=ro(r.adler,o.pending_buf,o.pending-f,f)),o.gzindex=0}o.status=73}if(o.status===73){if(o.gzhead.name){let f,m=o.pending;do{if(o.pending===o.pending_buf_size){if(o.gzhead.hcrc&&o.pending>m&&(r.adler=ro(r.adler,o.pending_buf,o.pending-m,m)),fd(r),o.pending!==0)return o.last_flush=-1,No;m=0}f=o.gzindexm&&(r.adler=ro(r.adler,o.pending_buf,o.pending-m,m)),o.gzindex=0}o.status=91}if(o.status===91){if(o.gzhead.comment){let f,m=o.pending;do{if(o.pending===o.pending_buf_size){if(o.gzhead.hcrc&&o.pending>m&&(r.adler=ro(r.adler,o.pending_buf,o.pending-m,m)),fd(r),o.pending!==0)return o.last_flush=-1,No;m=0}f=o.gzindexm&&(r.adler=ro(r.adler,o.pending_buf,o.pending-m,m))}o.status=103}if(o.status===103){if(o.gzhead.hcrc){if(o.pending+2>o.pending_buf_size&&(fd(r),o.pending!==0))return o.last_flush=-1,No;Rr(o,255&r.adler),Rr(o,r.adler>>8&255),r.adler=0}if(o.status=Zy,fd(r),o.pending!==0)return o.last_flush=-1,No}if(r.avail_in!==0||o.lookahead!==0||a!==M0&&o.status!==j3){let f=o.level===0?qre(o,a):o.strategy===oD?((m,v)=>{let w;for(;;){if(m.lookahead===0&&(sb(m),m.lookahead===0)){if(v===M0)return 1;break}if(m.match_length=0,w=k0(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,w&&(pd(m,!1),m.strm.avail_out===0))return 1}return m.insert=0,v===bu?(pd(m,!0),m.strm.avail_out===0?3:4):m.sym_next&&(pd(m,!1),m.strm.avail_out===0)?1:2})(o,a):o.strategy===Q3e?((m,v)=>{let w,C,R,x,L=m.window;for(;;){if(m.lookahead<=Qy){if(sb(m),m.lookahead<=Qy&&v===M0)return 1;if(m.lookahead===0)break}if(m.match_length=0,m.lookahead>=3&&m.strstart>0&&(R=m.strstart-1,C=L[R],C===L[++R]&&C===L[++R]&&C===L[++R])){x=m.strstart+Qy;do;while(C===L[++R]&&C===L[++R]&&C===L[++R]&&C===L[++R]&&C===L[++R]&&C===L[++R]&&C===L[++R]&&C===L[++R]&&Rm.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=3?(w=k0(m,1,m.match_length-3),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(w=k0(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),w&&(pd(m,!1),m.strm.avail_out===0))return 1}return m.insert=0,v===bu?(pd(m,!0),m.strm.avail_out===0?3:4):m.sym_next&&(pd(m,!1),m.strm.avail_out===0)?1:2})(o,a):F3[o.level].func(o,a);if(f!==3&&f!==4||(o.status=j3),f===1||f===3)return r.avail_out===0&&(o.last_flush=-1),No;if(f===2&&(a===K3e?$3e(o):a!==Gre&&($G(o,0,0,!1),a===q3e&&(j0(o.head),o.lookahead===0&&(o.strstart=0,o.block_start=0,o.insert=0))),fd(r),r.avail_out===0))return o.last_flush=-1,No}return a!==bu?No:o.wrap<=0?Wre:(o.wrap===2?(Rr(o,255&r.adler),Rr(o,r.adler>>8&255),Rr(o,r.adler>>16&255),Rr(o,r.adler>>24&255),Rr(o,255&r.total_in),Rr(o,r.total_in>>8&255),Rr(o,r.total_in>>16&255),Rr(o,r.total_in>>24&255)):(U3(o,r.adler>>>16),U3(o,65535&r.adler)),fd(r),o.wrap>0&&(o.wrap=-o.wrap),o.pending!==0?No:Wre)},cIe=(r,a)=>{let o=a.length;if(B3(r))return Ff;let c=r.state,f=c.wrap;if(f===2||f===1&&c.status!==rb||c.lookahead)return Ff;if(f===1&&(r.adler=M3(r.adler,a,o,0)),c.wrap=0,o>=c.w_size){f===0&&(j0(c.head),c.strstart=0,c.block_start=0,c.insert=0);let C=new Uint8Array(c.w_size);C.set(a.subarray(o-c.w_size,o),0),a=C,o=c.w_size}let m=r.avail_in,v=r.next_in,w=r.input;for(r.avail_in=o,r.next_in=0,r.input=a,sb(c);c.lookahead>=3;){let C=c.strstart,R=c.lookahead-2;do c.ins_h=U0(c,c.ins_h,c.window[C+3-1]),c.prev[C&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=C,C++;while(--R);c.strstart=C,c.lookahead=2,sb(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=2,c.match_available=0,r.next_in=v,r.input=w,r.avail_in=m,c.wrap=f,No},V3={deflateInit:(r,a)=>Jre(r,a,lD,15,8,eIe),deflateInit2:Jre,deflateReset:Xre,deflateResetKeep:Yre,deflateSetHeader:(r,a)=>B3(r)||r.state.wrap!==2?Ff:(r.state.gzhead=a,No),deflate:lIe,deflateEnd:r=>{if(B3(r))return Ff;let a=r.state.status;return r.state=null,a===Zy?e_(r,Y3e):No},deflateSetDictionary:cIe,deflateInfo:"pako deflate (from Nodeca project)"};let dIe=(r,a)=>Object.prototype.hasOwnProperty.call(r,a);var cD={assign:function(r){let a=Array.prototype.slice.call(arguments,1);for(;a.length;){let o=a.shift();if(o){if(typeof o!="object")throw new TypeError(o+"must be non-object");for(let c in o)dIe(o,c)&&(r[c]=o[c])}}return r},flattenChunks:r=>{let a=0;for(let c=0,f=r.length;c=252?6:r>=248?5:r>=240?4:r>=224?3:r>=192?2:1;z3[254]=z3[254]=1;var H3={string2buf:r=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(r);let a,o,c,f,m,v=r.length,w=0;for(f=0;f>>6,a[m++]=128|63&o):o<65536?(a[m++]=224|o>>>12,a[m++]=128|o>>>6&63,a[m++]=128|63&o):(a[m++]=240|o>>>18,a[m++]=128|o>>>12&63,a[m++]=128|o>>>6&63,a[m++]=128|63&o);return a},buf2string:(r,a)=>{let o=a||r.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(r.subarray(0,a));let c,f,m=new Array(2*o);for(f=0,c=0;c4)m[f++]=65533,c+=w-1;else{for(v&=w===2?31:w===3?15:7;w>1&&c1?m[f++]=65533:v<65536?m[f++]=v:(v-=65536,m[f++]=55296|v>>10&1023,m[f++]=56320|1023&v)}}return((v,w)=>{if(w<65534&&v.subarray&&Qre)return String.fromCharCode.apply(null,v.length===w?v:v.subarray(0,w));let C="";for(let R=0;R{(a=a||r.length)>r.length&&(a=r.length);let o=a-1;for(;o>=0&&(192&r[o])==128;)o--;return o<0||o===0?a:o+z3[r[o]]>a?o:a}},Zre=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};let ese=Object.prototype.toString,{Z_NO_FLUSH:uIe,Z_SYNC_FLUSH:hIe,Z_FULL_FLUSH:fIe,Z_FINISH:pIe,Z_OK:dD,Z_STREAM_END:mIe,Z_DEFAULT_COMPRESSION:gIe,Z_DEFAULT_STRATEGY:vIe,Z_DEFLATED:yIe}=ib;function G3(r){this.options=cD.assign({level:gIe,method:yIe,chunkSize:16384,windowBits:15,memLevel:8,strategy:vIe},r||{});let a=this.options;a.raw&&a.windowBits>0?a.windowBits=-a.windowBits:a.gzip&&a.windowBits>0&&a.windowBits<16&&(a.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zre,this.strm.avail_out=0;let o=V3.deflateInit2(this.strm,a.level,a.method,a.windowBits,a.memLevel,a.strategy);if(o!==dD)throw new Error(Jy[o]);if(a.header&&V3.deflateSetHeader(this.strm,a.header),a.dictionary){let c;if(c=typeof a.dictionary=="string"?H3.string2buf(a.dictionary):ese.call(a.dictionary)==="[object ArrayBuffer]"?new Uint8Array(a.dictionary):a.dictionary,o=V3.deflateSetDictionary(this.strm,c),o!==dD)throw new Error(Jy[o]);this._dict_set=!0}}function JG(r,a){let o=new G3(a);if(o.push(r,!0),o.err)throw o.msg||Jy[o.err];return o.result}G3.prototype.push=function(r,a){let o=this.strm,c=this.options.chunkSize,f,m;if(this.ended)return!1;for(m=a===~~a?a:a===!0?pIe:uIe,typeof r=="string"?o.input=H3.string2buf(r):ese.call(r)==="[object ArrayBuffer]"?o.input=new Uint8Array(r):o.input=r,o.next_in=0,o.avail_in=o.input.length;;)if(o.avail_out===0&&(o.output=new Uint8Array(c),o.next_out=0,o.avail_out=c),(m===hIe||m===fIe)&&o.avail_out<=6)this.onData(o.output.subarray(0,o.next_out)),o.avail_out=0;else{if(f=V3.deflate(o,m),f===mIe)return o.next_out>0&&this.onData(o.output.subarray(0,o.next_out)),f=V3.deflateEnd(this.strm),this.onEnd(f),this.ended=!0,f===dD;if(o.avail_out!==0){if(m>0&&o.next_out>0)this.onData(o.output.subarray(0,o.next_out)),o.avail_out=0;else if(o.avail_in===0)break}else this.onData(o.output)}return!0},G3.prototype.onData=function(r){this.chunks.push(r)},G3.prototype.onEnd=function(r){r===dD&&(this.result=cD.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg};var _Ie={Deflate:G3,deflate:JG,deflateRaw:function(r,a){return(a=a||{}).raw=!0,JG(r,a)},gzip:function(r,a){return(a=a||{}).gzip=!0,JG(r,a)},constants:ib};let uD=16209;var EIe=function(r,a){let o,c,f,m,v,w,C,R,x,L,U,F,Z,W,K,oe,ue,xe,Oe,ke,He,lt,ut,ft,zt=r.state;o=r.next_in,ut=r.input,c=o+(r.avail_in-5),f=r.next_out,ft=r.output,m=f-(a-r.avail_out),v=f+(r.avail_out-257),w=zt.dmax,C=zt.wsize,R=zt.whave,x=zt.wnext,L=zt.window,U=zt.hold,F=zt.bits,Z=zt.lencode,W=zt.distcode,K=(1<>>24,U>>>=xe,F-=xe,xe=ue>>>16&255,xe===0)ft[f++]=65535&ue;else{if(!(16&xe)){if(!(64&xe)){ue=Z[(65535&ue)+(U&(1<>>=xe,F-=xe),F<15&&(U+=ut[o++]<>>24,U>>>=xe,F-=xe,xe=ue>>>16&255,!(16&xe)){if(!(64&xe)){ue=W[(65535&ue)+(U&(1<w){r.msg="invalid distance too far back",zt.mode=uD;break e}if(U>>>=xe,F-=xe,xe=f-m,ke>xe){if(xe=ke-xe,xe>R&&zt.sane){r.msg="invalid distance too far back",zt.mode=uD;break e}if(He=0,lt=L,x===0){if(He+=C-xe,xe2;)ft[f++]=lt[He++],ft[f++]=lt[He++],ft[f++]=lt[He++],Oe-=3;Oe&&(ft[f++]=lt[He++],Oe>1&&(ft[f++]=lt[He++]))}else{He=f-ke;do ft[f++]=ft[He++],ft[f++]=ft[He++],ft[f++]=ft[He++],Oe-=3;while(Oe>2);Oe&&(ft[f++]=ft[He++],Oe>1&&(ft[f++]=ft[He++]))}break}}break}}while(o>3,o-=Oe,F-=Oe<<3,U&=(1<{let C=w.bits,R,x,L,U,F,Z,W=0,K=0,oe=0,ue=0,xe=0,Oe=0,ke=0,He=0,lt=0,ut=0,ft=null,zt=new Uint16Array(16),$n=new Uint16Array(16),hi,Gi,Ur,mr=null;for(W=0;W<=hD;W++)zt[W]=0;for(K=0;K=1&&zt[ue]===0;ue--);if(xe>ue&&(xe=ue),ue===0)return f[m++]=20971520,f[m++]=20971520,w.bits=1,0;for(oe=1;oe0&&(r===0||ue!==1))return-1;for($n[1]=0,W=1;W852||r===2&<>592)return 1;for(;;){hi=W-ke,v[K]+1=Z?(Gi=mr[v[K]-Z],Ur=ft[v[K]-Z]):(Gi=96,Ur=0),R=1<>ke)+x]=hi<<24|Gi<<16|Ur|0;while(x!==0);for(R=1<>=1;if(R!==0?(ut&=R-1,ut+=R):ut=0,K++,--zt[W]==0){if(W===ue)break;W=a[o+v[K]]}if(W>xe&&(ut&U)!==L){for(ke===0&&(ke=xe),F+=oe,Oe=W-ke,He=1<852||r===2&<>592)return 1;L=ut&U,f[L]=xe<<24|Oe<<16|F-m|0}}return ut!==0&&(f[F+ut]=W-ke<<24|64<<16|0),w.bits=xe,0};let{Z_FINISH:tse,Z_BLOCK:TIe,Z_TREES:fD,Z_OK:t_,Z_STREAM_END:RIe,Z_NEED_DICT:xIe,Z_STREAM_ERROR:Cu,Z_DATA_ERROR:nse,Z_MEM_ERROR:ise,Z_BUF_ERROR:AIe,Z_DEFLATED:rse}=ib,pD=16180,mD=16190,wm=16191,QG=16192,ZG=16194,gD=16199,vD=16200,eW=16206,Is=16209,sse=r=>(r>>>24&255)+(r>>>8&65280)+((65280&r)<<8)+((255&r)<<24);function IIe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}let n_=r=>{if(!r)return 1;let a=r.state;return!a||a.strm!==r||a.mode16211?1:0},ase=r=>{if(n_(r))return Cu;let a=r.state;return r.total_in=r.total_out=a.total=0,r.msg="",a.wrap&&(r.adler=1&a.wrap),a.mode=pD,a.last=0,a.havedict=0,a.flags=-1,a.dmax=32768,a.head=null,a.hold=0,a.bits=0,a.lencode=a.lendyn=new Int32Array(852),a.distcode=a.distdyn=new Int32Array(592),a.sane=1,a.back=-1,t_},ose=r=>{if(n_(r))return Cu;let a=r.state;return a.wsize=0,a.whave=0,a.wnext=0,ase(r)},lse=(r,a)=>{let o;if(n_(r))return Cu;let c=r.state;return a<0?(o=0,a=-a):(o=5+(a>>4),a<48&&(a&=15)),a&&(a<8||a>15)?Cu:(c.window!==null&&c.wbits!==a&&(c.window=null),c.wrap=o,c.wbits=a,ose(r))},cse=(r,a)=>{if(!r)return Cu;let o=new IIe;r.state=o,o.strm=r,o.window=null,o.mode=pD;let c=lse(r,a);return c!==t_&&(r.state=null),c},tW,nW,dse=!0,NIe=r=>{if(dse){tW=new Int32Array(512),nW=new Int32Array(32);let a=0;for(;a<144;)r.lens[a++]=8;for(;a<256;)r.lens[a++]=9;for(;a<280;)r.lens[a++]=7;for(;a<288;)r.lens[a++]=8;for(W3(1,r.lens,0,288,tW,0,r.work,{bits:9}),a=0;a<32;)r.lens[a++]=5;W3(2,r.lens,0,32,nW,0,r.work,{bits:5}),dse=!1}r.lencode=tW,r.lenbits=9,r.distcode=nW,r.distbits=5},use=(r,a,o,c)=>{let f,m=r.state;return m.window===null&&(m.wsize=1<=m.wsize?(m.window.set(a.subarray(o-m.wsize,o),0),m.wnext=0,m.whave=m.wsize):(f=m.wsize-m.wnext,f>c&&(f=c),m.window.set(a.subarray(o-c,o-c+f),m.wnext),(c-=f)?(m.window.set(a.subarray(o-c,o),0),m.wnext=c,m.whave=m.wsize):(m.wnext+=f,m.wnext===m.wsize&&(m.wnext=0),m.whave{let o,c,f,m,v,w,C,R,x,L,U,F,Z,W,K,oe,ue,xe,Oe,ke,He,lt,ut=0,ft=new Uint8Array(4),zt,$n,hi=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(n_(r)||!r.output||!r.input&&r.avail_in!==0)return Cu;o=r.state,o.mode===wm&&(o.mode=QG),v=r.next_out,f=r.output,C=r.avail_out,m=r.next_in,c=r.input,w=r.avail_in,R=o.hold,x=o.bits,L=w,U=C,lt=t_;e:for(;;)switch(o.mode){case pD:if(o.wrap===0){o.mode=QG;break}for(;x<16;){if(w===0)break e;w--,R+=c[m++]<>>8&255,o.check=ro(o.check,ft,2,0),R=0,x=0,o.mode=16181;break}if(o.head&&(o.head.done=!1),!(1&o.wrap)||(((255&R)<<8)+(R>>8))%31){r.msg="incorrect header check",o.mode=Is;break}if((15&R)!==rse){r.msg="unknown compression method",o.mode=Is;break}if(R>>>=4,x-=4,He=8+(15&R),o.wbits===0&&(o.wbits=He),He>15||He>o.wbits){r.msg="invalid window size",o.mode=Is;break}o.dmax=1<>8&1),512&La(o)&&4&o.wrap&&(ft[0]=255&R,ft[1]=R>>>8&255,o.check=ro(o.check,ft,2,0)),R=0,x=0,o.mode=16182;case 16182:for(;x<32;){if(w===0)break e;w--,R+=c[m++]<>>8&255,ft[2]=R>>>16&255,ft[3]=R>>>24&255,o.check=ro(o.check,ft,4,0)),R=0,x=0,o.mode=16183;case 16183:for(;x<16;){if(w===0)break e;w--,R+=c[m++]<>8),512&La(o)&&4&o.wrap&&(ft[0]=255&R,ft[1]=R>>>8&255,o.check=ro(o.check,ft,2,0)),R=0,x=0,o.mode=16184;case 16184:if(1024&La(o)){for(;x<16;){if(w===0)break e;w--,R+=c[m++]<>>8&255,o.check=ro(o.check,ft,2,0)),R=0,x=0}else o.head&&(o.head.extra=null);o.mode=16185;case 16185:if(1024&La(o)&&(F=o.length,F>w&&(F=w),F&&(o.head&&(He=o.head.extra_len-o.length,o.head.extra||(o.head.extra=new Uint8Array(o.head.extra_len)),o.head.extra.set(c.subarray(m,m+F),He)),512&La(o)&&4&o.wrap&&(o.check=ro(o.check,c,F,m)),w-=F,m+=F,o.length-=F),o.length))break e;o.length=0,o.mode=16186;case 16186:if(2048&La(o)){if(w===0)break e;F=0;do He=c[m+F++],o.head&&He&&o.length<65536&&(o.head.name+=String.fromCharCode(He));while(He&&F>9&1,o.head.done=!0),r.adler=o.check=0,o.mode=wm;break;case 16189:for(;x<32;){if(w===0)break e;w--,R+=c[m++]<>>=7&x,x-=7&x,o.mode=eW;break}for(;x<3;){if(w===0)break e;w--,R+=c[m++]<>>=1,x-=1,3&R){case 0:o.mode=16193;break;case 1:if(NIe(o),o.mode=gD,a===fD){R>>>=2,x-=2;break e}break;case 2:o.mode=16196;break;case 3:r.msg="invalid block type",o.mode=Is}R>>>=2,x-=2;break;case 16193:for(R>>>=7&x,x-=7&x;x<32;){if(w===0)break e;w--,R+=c[m++]<>>16^65535)){r.msg="invalid stored block lengths",o.mode=Is;break}if(o.length=65535&R,R=0,x=0,o.mode=ZG,a===fD)break e;case ZG:o.mode=16195;case 16195:if(F=o.length,F){if(F>w&&(F=w),F>C&&(F=C),F===0)break e;f.set(c.subarray(m,m+F),v),w-=F,m+=F,C-=F,v+=F,o.length-=F;break}o.mode=wm;break;case 16196:for(;x<14;){if(w===0)break e;w--,R+=c[m++]<>>=5,x-=5,o.ndist=1+(31&R),R>>>=5,x-=5,o.ncode=4+(15&R),R>>>=4,x-=4,o.nlen>286||o.ndist>30){r.msg="too many length or distance symbols",o.mode=Is;break}o.have=0,o.mode=16197;case 16197:for(;o.have>>=3,x-=3}for(;o.have<19;)o.lens[hi[o.have++]]=0;if(o.lencode=o.lendyn,o.lenbits=7,zt={bits:o.lenbits},lt=W3(0,o.lens,0,19,o.lencode,0,o.work,zt),o.lenbits=zt.bits,lt){r.msg="invalid code lengths set",o.mode=Is;break}o.have=0,o.mode=16198;case 16198:for(;o.have>>24,oe=ut>>>16&255,ue=65535&ut,!(K<=x);){if(w===0)break e;w--,R+=c[m++]<>>=K,x-=K,o.lens[o.have++]=ue;else{if(ue===16){for($n=K+2;x<$n;){if(w===0)break e;w--,R+=c[m++]<>>=K,x-=K,o.have===0){r.msg="invalid bit length repeat",o.mode=Is;break}He=o.lens[o.have-1],F=3+(3&R),R>>>=2,x-=2}else if(ue===17){for($n=K+3;x<$n;){if(w===0)break e;w--,R+=c[m++]<>>=K,x-=K,He=0,F=3+(7&R),R>>>=3,x-=3}else{for($n=K+7;x<$n;){if(w===0)break e;w--,R+=c[m++]<>>=K,x-=K,He=0,F=11+(127&R),R>>>=7,x-=7}if(o.have+F>o.nlen+o.ndist){r.msg="invalid bit length repeat",o.mode=Is;break}for(;F--;)o.lens[o.have++]=He}}if(o.mode===Is)break;if(o.lens[256]===0){r.msg="invalid code -- missing end-of-block",o.mode=Is;break}if(o.lenbits=9,zt={bits:o.lenbits},lt=W3(1,o.lens,0,o.nlen,o.lencode,0,o.work,zt),o.lenbits=zt.bits,lt){r.msg="invalid literal/lengths set",o.mode=Is;break}if(o.distbits=6,o.distcode=o.distdyn,zt={bits:o.distbits},lt=W3(2,o.lens,o.nlen,o.ndist,o.distcode,0,o.work,zt),o.distbits=zt.bits,lt){r.msg="invalid distances set",o.mode=Is;break}if(o.mode=gD,a===fD)break e;case gD:o.mode=vD;case vD:if(w>=6&&C>=258){r.next_out=v,r.avail_out=C,r.next_in=m,r.avail_in=w,o.hold=R,o.bits=x,EIe(r,U),v=r.next_out,f=r.output,C=r.avail_out,m=r.next_in,c=r.input,w=r.avail_in,R=o.hold,x=o.bits,o.mode===wm&&(o.back=-1);break}for(o.back=0;ut=o.lencode[R&(1<>>24,oe=ut>>>16&255,ue=65535&ut,!(K<=x);){if(w===0)break e;w--,R+=c[m++]<>xe)],K=ut>>>24,oe=ut>>>16&255,ue=65535&ut,!(xe+K<=x);){if(w===0)break e;w--,R+=c[m++]<>>=xe,x-=xe,o.back+=xe}if(R>>>=K,x-=K,o.back+=K,o.length=ue,oe===0){o.mode=16205;break}if(32&oe){o.back=-1,o.mode=wm;break}if(64&oe){r.msg="invalid literal/length code",o.mode=Is;break}o.extra=15&oe,o.mode=16201;case 16201:if(o.extra){for($n=o.extra;x<$n;){if(w===0)break e;w--,R+=c[m++]<>>=o.extra,x-=o.extra,o.back+=o.extra}o.was=o.length,o.mode=16202;case 16202:for(;ut=o.distcode[R&(1<>>24,oe=ut>>>16&255,ue=65535&ut,!(K<=x);){if(w===0)break e;w--,R+=c[m++]<>xe)],K=ut>>>24,oe=ut>>>16&255,ue=65535&ut,!(xe+K<=x);){if(w===0)break e;w--,R+=c[m++]<>>=xe,x-=xe,o.back+=xe}if(R>>>=K,x-=K,o.back+=K,64&oe){r.msg="invalid distance code",o.mode=Is;break}o.offset=ue,o.extra=15&oe,o.mode=16203;case 16203:if(o.extra){for($n=o.extra;x<$n;){if(w===0)break e;w--,R+=c[m++]<>>=o.extra,x-=o.extra,o.back+=o.extra}if(o.offset>o.dmax){r.msg="invalid distance too far back",o.mode=Is;break}o.mode=16204;case 16204:if(C===0)break e;if(F=U-C,o.offset>F){if(F=o.offset-F,F>o.whave&&o.sane){r.msg="invalid distance too far back",o.mode=Is;break}F>o.wnext?(F-=o.wnext,Z=o.wsize-F):Z=o.wnext-F,F>o.length&&(F=o.length),W=o.window}else W=f,Z=v-o.offset,F=o.length;F>C&&(F=C),C-=F,o.length-=F;do f[v++]=W[Z++];while(--F);o.length===0&&(o.mode=vD);break;case 16205:if(C===0)break e;f[v++]=o.length,C--,o.mode=vD;break;case eW:if(o.wrap){for(;x<32;){if(w===0)break e;w--,R|=c[m++]<cse(r,15),inflateInit2:cse,inflate:OIe,inflateEnd:r=>{if(n_(r))return Cu;let a=r.state;return a.window&&(a.window=null),r.state=null,t_},inflateGetHeader:(r,a)=>{if(n_(r))return Cu;let o=r.state;return 2&o.wrap?(o.head=a,a.done=!1,t_):Cu},inflateSetDictionary:(r,a)=>{let o=a.length,c,f,m;return n_(r)?Cu:(c=r.state,c.wrap!==0&&c.mode!==mD?Cu:c.mode===mD&&(f=1,f=M3(f,a,o,0),f!==c.check)?nse:(m=use(r,a,o,o),m?(c.mode=16210,ise):(c.havedict=1,t_)))},inflateInfo:"pako inflate (from Nodeca project)"},PIe=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};let hse=Object.prototype.toString,{Z_NO_FLUSH:LIe,Z_FINISH:DIe,Z_OK:$3,Z_STREAM_END:iW,Z_NEED_DICT:rW,Z_STREAM_ERROR:kIe,Z_DATA_ERROR:fse,Z_MEM_ERROR:MIe}=ib;function K3(r){this.options=cD.assign({chunkSize:65536,windowBits:15,to:""},r||{});let a=this.options;a.raw&&a.windowBits>=0&&a.windowBits<16&&(a.windowBits=-a.windowBits,a.windowBits===0&&(a.windowBits=-15)),!(a.windowBits>=0&&a.windowBits<16)||r&&r.windowBits||(a.windowBits+=32),a.windowBits>15&&a.windowBits<48&&!(15&a.windowBits)&&(a.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zre,this.strm.avail_out=0;let o=Sm.inflateInit2(this.strm,a.windowBits);if(o!==$3)throw new Error(Jy[o]);if(this.header=new PIe,Sm.inflateGetHeader(this.strm,this.header),a.dictionary&&(typeof a.dictionary=="string"?a.dictionary=H3.string2buf(a.dictionary):hse.call(a.dictionary)==="[object ArrayBuffer]"&&(a.dictionary=new Uint8Array(a.dictionary)),a.raw&&(o=Sm.inflateSetDictionary(this.strm,a.dictionary),o!==$3)))throw new Error(Jy[o])}function sW(r,a){let o=new K3(a);if(o.push(r),o.err)throw o.msg||Jy[o.err];return o.result}K3.prototype.push=function(r,a){let o=this.strm,c=this.options.chunkSize,f=this.options.dictionary,m,v,w;if(this.ended)return!1;for(v=a===~~a?a:a===!0?DIe:LIe,hse.call(r)==="[object ArrayBuffer]"?o.input=new Uint8Array(r):o.input=r,o.next_in=0,o.avail_in=o.input.length;;){for(o.avail_out===0&&(o.output=new Uint8Array(c),o.next_out=0,o.avail_out=c),m=Sm.inflate(o,v),m===rW&&f&&(m=Sm.inflateSetDictionary(o,f),m===$3?m=Sm.inflate(o,v):m===fse&&(m=rW));o.avail_in>0&&m===iW&&o.state.wrap>0&&r[o.next_in]!==0;)Sm.inflateReset(o),m=Sm.inflate(o,v);switch(m){case kIe:case fse:case rW:case MIe:return this.onEnd(m),this.ended=!0,!1}if(w=o.avail_out,o.next_out&&(o.avail_out===0||m===iW))if(this.options.to==="string"){let C=H3.utf8border(o.output,o.next_out),R=o.next_out-C,x=H3.buf2string(o.output,C);o.next_out=R,o.avail_out=c-R,R&&o.output.set(o.output.subarray(C,C+R),0),this.onData(x)}else this.onData(o.output.length===o.next_out?o.output:o.output.subarray(0,o.next_out));if(m!==$3||w!==0){if(m===iW)return m=Sm.inflateEnd(this.strm),this.onEnd(m),this.ended=!0,!0;if(o.avail_in===0)break}}return!0},K3.prototype.onData=function(r){this.chunks.push(r)},K3.prototype.onEnd=function(r){r===$3&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=cD.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg};var jIe={Inflate:K3,inflate:sW,inflateRaw:function(r,a){return(a=a||{}).raw=!0,sW(r,a)},ungzip:sW,constants:ib};let{Deflate:iat,deflate:UIe,deflateRaw:rat,gzip:sat}=_Ie,{Inflate:aat,inflate:FIe,inflateRaw:oat,ungzip:lat}=jIe;var BIe=UIe,VIe=FIe;let qs={getDisplayMedia:!1,getStreamFromExtension:!1,supportUnifiedPlan:!1,supportMinBitrate:!1,supportSetRtpSenderParameters:!1,supportDualStream:!0,webAudioMediaStreamDest:!1,supportReplaceTrack:!1,supportWebGL:!1,webAudioWithAEC:!1,supportRequestFrame:!1,supportShareAudio:!1,supportDualStreamEncoding:!1,supportDataChannel:!1,supportPCSetConfiguration:!1,supportWebRTCEncodedTransform:!1,supportWebRTCInsertableStream:!1,supportRequestVideoFrameCallback:!1,supportWebCrypto:!1};function Jn(){return qs}function pse(){return"setSinkId"in HTMLAudioElement.prototype&&(!ve("RESTRICTION_SET_PLAYBACK_DEVICE")||(b0()||Rne())&&!MH())}let js=function(r){return r.IOS_15_16_INTERRUPTION_START="ios15_16-interruption-start",r.IOS_15_16_INTERRUPTION_END="ios15_16-interruption-end",r.IOS_INTERRUPTION_START="ios-interruption-start",r.IOS_INTERRUPTION_END="ios-interruption-end",r.STATE_CHANGE="state-change",r}({});function ob(r,a,o){return{sampleRate:r,stereo:a,bitrate:o}}function ti(r,a,o,c,f){return{width:r,height:a,frameRate:o,bitrateMin:c,bitrateMax:f}}function Tu(r,a,o,c,f){return{width:{max:r},height:{max:a},frameRate:o,bitrateMin:c,bitrateMax:f}}function aW(r,a){return{numSpatialLayers:r,numTemporalLayers:a}}let zIe={"90p":ti(160,90),"90p_1":ti(160,90),"120p":ti(160,120,15,30,65),"120p_1":ti(160,120,15,30,65),"120p_3":ti(120,120,15,30,50),"120p_4":ti(212,120),"180p":ti(320,180,15,30,140),"180p_1":ti(320,180,15,30,140),"180p_3":ti(180,180,15,30,100),"180p_4":ti(240,180,15,30,120),"240p":ti(320,240,15,40,200),"240p_1":ti(320,240,15,40,200),"240p_3":ti(240,240,15,40,140),"240p_4":ti(424,240,15,40,220),"360p":ti(640,360,15,80,400),"360p_1":ti(640,360,15,80,400),"360p_3":ti(360,360,15,80,260),"360p_4":ti(640,360,30,80,600),"360p_6":ti(360,360,30,80,400),"360p_7":ti(480,360,15,80,320),"360p_8":ti(480,360,30,80,490),"360p_9":ti(640,360,15,80,800),"360p_10":ti(640,360,24,80,800),"360p_11":ti(640,360,24,80,1e3),"480p":ti(640,480,15,100,500),"480p_1":ti(640,480,15,100,500),"480p_2":ti(640,480,30,100,1e3),"480p_3":ti(480,480,15,100,400),"480p_4":ti(640,480,30,100,750),"480p_6":ti(480,480,30,100,600),"480p_8":ti(848,480,15,100,610),"480p_9":ti(848,480,30,100,930),"480p_10":ti(640,480,10,100,400),"720p":ti(1280,720,15,120,1130),"720p_auto":ti(1280,720,30,900,3e3),"720p_1":ti(1280,720,15,120,1130),"720p_2":ti(1280,720,30,120,2e3),"720p_3":ti(1280,720,30,120,1710),"720p_5":ti(960,720,15,120,910),"720p_6":ti(960,720,30,120,1380),"1080p":ti(1920,1080,15,120,2080),"1080p_1":ti(1920,1080,15,120,2080),"1080p_2":ti(1920,1080,30,120,3e3),"1080p_3":ti(1920,1080,30,120,3150),"1080p_5":ti(1920,1080,60,120,4780),"1440p":ti(2560,1440,30,120,4850),"1440p_1":ti(2560,1440,30,120,4850),"1440p_2":ti(2560,1440,60,120,7350),"4k":ti(3840,2160,30,120,8910),"4k_1":ti(3840,2160,30,120,8910),"4k_3":ti(3840,2160,60,120,13500)},yD=[{scaleResolutionDownBy:2,width:1280,height:720,frameRate:30,bitrateMin:300,bitrateMax:900},{scaleResolutionDownBy:1.333333,width:1280,height:720,frameRate:30,bitrateMin:600,bitrateMax:2e3},{scaleResolutionDownBy:1,width:1280,height:720,frameRate:30,bitrateMin:900,bitrateMax:3e3}],HIe={"480p":Tu(640,480,5),"480p_1":Tu(640,480,5),"480p_2":Tu(640,480,30),"480p_3":Tu(640,480,15),"720p":Tu(1280,720,5),"720p_auto":ti(1280,720,30,900,3e3),"720p_1":Tu(1280,720,5),"720p_2":Tu(1280,720,30),"720p_3":Tu(1280,720,15),"1080p":Tu(1920,1080,5),"1080p_1":Tu(1920,1080,5),"1080p_2":Tu(1920,1080,30),"1080p_3":Tu(1920,1080,15)},GIe={"1SL1TL":aW(1,1),"3SL3TL":aW(3,3),"2SL3TL":aW(2,3)};function zf(r){return r||(r="480p_1"),typeof r=="string"?Object.assign({},zIe[r]):r}function oW(r){return typeof r=="string"?Object.assign({},HIe[r]):r}function _D(r){return typeof r=="string"?Object.assign({},GIe[r]):r}let WIe={speech_low_quality:ob(16e3,!1),speech_standard:ob(32e3,!1,18),music_standard:ob(48e3,!1),standard_stereo:ob(48e3,!0,56),high_quality:ob(48e3,!1,128),high_quality_stereo:ob(48e3,!0,192)};function ED(r){return typeof r=="string"?Object.assign({},WIe[r]):r}let lb=[];function mse(r){return as(r,"mediaSource",["screen","window","application"]),!0}let Mt=function(r){return r.NEED_RENEGOTIATE="@need_renegotiate",r.NEED_REPLACE_TRACK="@need_replace_track",r.NEED_REPLACE_MIXING_TRACK="@need_replace_mixing_track",r.NEED_CLOSE="@need_close",r.NEED_ENABLE_TRACK="@need_enable_track",r.NEED_DISABLE_TRACK="@need_disable_track",r.NEED_SESSION_ID="@need_sid",r.SET_OPTIMIZATION_MODE="@set_optimization_mode",r.GET_STATS="@get_stats",r.GET_RTC_STATS="@get_rtc_stats",r.GET_LOW_VIDEO_TRACK="@get_low_video_track",r.NEED_RESET_REMOTE_SDP="@need_reset_remote_sdp",r.NEED_UPDATE_VIDEO_ENCODER="@need_update_video_encoder",r.NEED_UPDATE_VIDEO_SEND_PARAMETERS="@need_update_video_send_parameters",r.NEED_MUTE_TRACK="@need_mute_track",r.NEED_UNMUTE_TRACK="@need_unmute_track",r}({}),Hi=function(r){return r.SCREEN_TRACK="screen_track",r.CUSTOM_TRACK="custome_track",r.LOW_STREAM="low_stream",r}({}),cb=function(r){return r[r.HIGH_STREAM=0]="HIGH_STREAM",r[r.LOW_STREAM=1]="LOW_STREAM",r}({}),$Ie=function(r){return r[r.HIGH_STREAM=0]="HIGH_STREAM",r[r.LOW_STREAM=1]="LOW_STREAM",r}({}),KIe=function(r){return r[r.DISABLE=0]="DISABLE",r[r.LOW_STREAM=1]="LOW_STREAM",r[r.AUDIO_ONLY=2]="AUDIO_ONLY",r}({}),i_=function(r){return r.TRANSCEIVER_UPDATED="transceiver-updated",r.SEI_TO_SEND="sei-to-send",r.SEI_RECEIVED="sei-received",r.TRACK_UPDATED="track-updated",r}({}),db=function(r){return r.SOURCE_STATE_CHANGE="source-state-change",r.TRACK_ENDED="track-ended",r.BEAUTY_EFFECT_OVERLOAD="beauty-effect-overload",r.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",r.CLOSED="closed",r}({}),ub=function(r){return r.FIRST_FRAME_DECODED="first-frame-decoded",r.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",r.VIDEO_STATE_CHANGED="video-state-changed",r}({}),xc=function(r){return r.AUDIO_SOURCE_STATE_CHANGE="audio_source_state_change",r.RECEIVE_TRACK_BUFFER="receive_track_buffer",r.ON_AUDIO_BUFFER="on_audio_buffer",r.UPDATE_SOURCE="update_source",r}({});(function(r){r.UPDATE_TRACK_SOURCE="update-track-source"})({});let lW={sendVolumeLevel:0,sendBitrate:0,sendBytes:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,currentPacketLossRate:0},cW={sendBytes:0,sendBitrate:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,sendResolutionHeight:0,sendResolutionWidth:0,captureResolutionHeight:0,captureResolutionWidth:0,targetSendBitrate:0,totalDuration:0,totalFreezeTime:0,currentPacketLossRate:0},gse={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveLevel:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},qIe={uplinkNetworkQuality:0,downlinkNetworkQuality:0},vse={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receiveResolutionHeight:0,receiveResolutionWidth:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},so=function(r){return r.ON_TRACK="on_track",r.ON_NODE="on_node",r}({}),Ac=function(r){return r.REQUEST_UPDATE_CONSTRAINTS="request_update_constraints",r.REQUEST_CONSTRAINTS="request_constraints",r}({}),q3=function(r){return r.IDLE="IDLE",r.INITING="INITING",r.INITEND="INITEND",r}({}),r_=function(r){return r.STATE_CHANGE="state_change",r.RECORDING_DEVICE_CHANGED="recordingDeviceChanged",r.PLAYOUT_DEVICE_CHANGED="playoutDeviceChanged",r.CAMERA_DEVICE_CHANGED="cameraDeviceChanged",r}({}),Da=function(r){return r.NONE="none",r.INIT="init",r.CANPLAY="canplay",r.PLAYING="playing",r.PAUSED="paused",r.SUSPEND="suspend",r.STALLED="stalled",r.WAITING="waiting",r.ERROR="error",r.DESTROYED="destroyed",r.ABORT="abort",r.ENDED="ended",r.EMPTIED="emptied",r.LOADEDDATA="loadeddata",r}({}),Hf=function(r){return r[r.VideoStateStopped=0]="VideoStateStopped",r[r.VideoStateStarting=1]="VideoStateStarting",r[r.VideoStateDecoding=2]="VideoStateDecoding",r[r.VideoStateFrozen=3]="VideoStateFrozen",r}({}),dW={uninit:100,none:110,init:120,loadeddata:130,canplay:200,playing:210,paused:220,suspend:300,stalled:310,waiting:320,error:330,destroyed:340,abort:350,ended:360,emptied:370},wD=function(r){return r.OPEN="open",r.MESSAGE="message",r.CLOSE="close",r.CLOSING="closing",r.ERROR="error",r}({});function yse(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function ir(r){for(var a=1;a{var o;$t.reportApiInvoke(null,{name:$r.GET_MEDIA_STREAM_TRACK,options:[],tag:vr.TRACER}).onSuccess(((o=this._mediaStreamTrack)===null||o===void 0?void 0:o.label)||"")},this.mediaStreamTrack.id||this.getTrackId()),this._mediaStreamTrack}getRTCRtpTransceiver(a){return a===cb.LOW_STREAM?this._lowRtpTransceiver:this._rtpTransceiver}getMediaStreamTrackSettings(){return this.getMediaStreamTrack(!0).getSettings()}close(){this._isClosed=!0,this._lowRtpTransceiver=void 0,this._rtpTransceiver=void 0,function(a){let o=lb.indexOf(a);o!==-1&&lb.splice(o,1)}(this),this.emit(db.CLOSED),this.removeAllListeners(i_.SEI_RECEIVED)}_updateRtpTransceiver(a,o){if(o===cb.LOW_STREAM){if(this._lowRtpTransceiver===a)return;this._lowRtpTransceiver=a}else{if(this._rtpTransceiver===a)return;this._rtpTransceiver=a}this.emit(i_.TRANSCEIVER_UPDATED,a,o)}}class hb extends _se{get isExternalTrack(){return this._isExternalTrack}get muted(){return this._muted}get enabled(){return this._enabled}get processorContext(){return this._processorContext}constructor(a,o){super(a,o),qe(this,"_enabled",!0),qe(this,"_muted",!1),qe(this,"_isExternalTrack",!1),qe(this,"_isClosed",!1),qe(this,"_enabledMutex",void 0),qe(this,"processor",void 0),qe(this,"_processorContext",void 0),qe(this,"_handleTrackEnded",()=>{this.onTrackEnded()}),this._enabledMutex=new Ts("".concat(this.getTrackId())),a.addEventListener("ended",this._handleTrackEnded)}getTrackLabel(){var a,o;return(a=(o=this._originMediaStreamTrack)===null||o===void 0?void 0:o.label)!==null&&a!==void 0?a:""}close(){this._isClosed||(this.stop(),this._originMediaStreamTrack.stop(),this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack.stop(),this._mediaStreamTrack=null),this._originMediaStreamTrack=null,this._enabledMutex=null,z.debug("[".concat(this.getTrackId(),"] close")),this.emit(Mt.NEED_CLOSE),super.close())}async _updateOriginMediaStreamTrack(a,o){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];this._isExternalTrack=c,a!==this._originMediaStreamTrack&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),o&&this._originMediaStreamTrack.stop()),a.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=a,this._muted&&(this._originMediaStreamTrack.enabled=!1),this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Li(this,Mt.NEED_REPLACE_TRACK,this),this.processor&&this._processorContext&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this._processorContext}))}_getDefaultPlayerConfig(){return{}}onTrackEnded(){z.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(db.TRACK_ENDED)}stateCheck(a,o){if(z.debug("check track state, [muted: ".concat(this._muted,", enabled: ").concat(this._enabled,"] to [").concat(a,": ").concat(o,"]")),fm(o,a),this._enabled&&this._muted&&a==="enabled"&&o===!1)throw new Ke(ce.TRACK_STATE_UNREACHABLE,"cannot set enabled while the track is muted").print("error",z);if(!this._enabled&&!this._muted&&a==="muted"&&o===!0)throw new Ke(ce.TRACK_STATE_UNREACHABLE,"cannot set muted while the track is disabled").print("error",z)}getProcessorStats(){return this._processorContext&&this._processorContext.gatherStats()||[]}getProcessorUsage(){return this._processorContext?this._processorContext.gatherUsage():Ct.resolve([])}}let Ese=window.AudioContext||window.webkitAudioContext,Ic=null,Si=new class extends nr{constructor(){super(...arguments),qe(this,"prevState",void 0),qe(this,"curState",void 0),qe(this,"currentTime",void 0),qe(this,"currentTimeStuckAt",void 0),qe(this,"interruptDetectorTrack",void 0),qe(this,"onLocalAudioTrackMute",()=>{z.info("ios15-interruption-start"),this.emit(js.IOS_15_16_INTERRUPTION_START)}),qe(this,"onLocalAudioTrackUnmute",async()=>{z.info("ios15-interruption-end"),this.curState!=="running"||this.duringInterruption?z.info("ios15-interruption-end-canceled"):(Ic&&await Ic.suspend(),this.emit(js.IOS_15_16_INTERRUPTION_END))})}get duringInterruption(){return this.prevState==="running"&&this.curState==="interrupted"}bindInterruptDetectorTrack(r){z.debug("webaudio bindInterruptDetectorTrack ".concat(r.getTrackId())),this.interruptDetectorTrack||(this.interruptDetectorTrack=r,this.interruptDetectorTrack._mediaStreamTrack.onmute=this.onLocalAudioTrackMute,this.interruptDetectorTrack._mediaStreamTrack.onunmute=this.onLocalAudioTrackUnmute)}unbindInterruptDetectorTrack(r){z.debug("webaudio unbindInterruptDetectorTrack ".concat(r.getTrackId())),this.interruptDetectorTrack&&this.interruptDetectorTrack===r&&(this.interruptDetectorTrack._mediaStreamTrack&&(this.interruptDetectorTrack._mediaStreamTrack.onmute=null,this.interruptDetectorTrack._mediaStreamTrack.onunmute=null),this.interruptDetectorTrack=void 0)}};function fb(){if(!Ic){if(function(){if(!Ese)return void z.error("your browser is not support web audio");z.info("create audio context");let r=ir({},ve("WEBAUDIO_INIT_OPTIONS"));z.debug("audio context init option:",JSON.stringify(r)),Ic=new Ese(r),Si.curState=Ic.state,Ic.onstatechange=()=>{Si.prevState=Si.curState,Si.curState=Ic?Ic.state:void 0;let{prevState:a,curState:o}=Si,c=o==="running",f=o==="interrupted",m=a==="running",v=a==="suspended",w=a==="interrupted",C=ni().osVersion;(ra()||fu())&&m&&f&&(z.info("ios".concat(C,"-interruption-start")),Si.emit(js.IOS_INTERRUPTION_START)),(ra()||fu())&&(v||w)&&c&&(z.info("ios".concat(C,"-interruption-end")),Si.emit(js.IOS_INTERRUPTION_END)),a!==o&&Si.emit(js.STATE_CHANGE,o,a)},setInterval(()=>{var a;let o=(a=Ic)===null||a===void 0?void 0:a.currentTime;Si.currentTime!==o?(Si.currentTimeStuckAt&&(z.debug("AudioContext current time resume at ".concat(o)),Si.currentTimeStuckAt=void 0),Si.currentTime=o):(o!==Si.currentTimeStuckAt&&($t.reportApiInvoke(null,{name:"WEB_AUDIO_CURRENT_TIME_STUCK",options:{currentTime:o},tag:vr.TRACER}).onSuccess(),z.warning("AudioContext current time stuck at ".concat(o))),Si.currentTimeStuckAt=o)},5e3),async function(a){let o=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","touchend","keydown","keyup"],c,f=!1,m=!1,v=!1;function w(W){a.state==="running"?C(!1):ra()||fu()?a.state==="suspended"&&(C(!0),W&&a.resume().then(R,R)):a.state!=="closed"&&(C(!0),W&&a.resume().then(R,R))}function C(W){if(f!==W){f=W;for(let K=0,oe=o;K",c=K.children.item(0),c.controls=!1,c.disableRemotePlayback=!0,c.preload="auto",c.srcObject=W.stream,L(!0)}Si.on(js.STATE_CHANGE,function(){w(!0)}),w(!1)}(Ic)}(),!Ic)throw new Ke(ce.NOT_SUPPORTED,"can not create audio context");return Ic}return Ic}function s_(r){if(function(){if(uW!==null)return uW;let c=fb(),f=c.createBufferSource(),m=c.createGain(),v=c.createGain();f.connect(m),f.connect(v),f.disconnect(m);let w=!1;try{f.disconnect(m)}catch{w=!0}return f.disconnect(),uW=w,w}())return;let a=r.connect,o=r.disconnect;r.connect=(c,f,m)=>{var v;return r._inputNodes||(r._inputNodes=[]),Tt(v=r._inputNodes).call(v,c)||(c instanceof AudioNode?(r._inputNodes.push(c),a.call(r,c,f,m)):a.call(r,c,f)),r},r.disconnect=(c,f,m)=>{o.call(r),c?L8(r._inputNodes,c):r._inputNodes=[];for(let v of r._inputNodes)a.call(r,v)}}let uW=null;function hW(r,a){let o=!1,c=1/a;if(ve("DISABLE_WEBAUDIO")){let f=window.setInterval(()=>{o?window.clearInterval(f):r(performance.now()/1e3)},1e3*c)}else{let f=fb(),m=f.createGain();m.gain.value=0,m.connect(f.destination);let v=()=>{if(o)return void(m=null);let w=f.createOscillator();w.onended=v,w.connect(m),w.start(0),w.stop(f.currentTime+c),r(f.currentTime)};v()}return()=>{o=!0}}class wse{constructor(){qe(this,"context",void 0),qe(this,"analyserNode",void 0),qe(this,"sourceNode",void 0),this.context=fb(),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4}updateSource(a){if(a!==this.sourceNode){if(this.sourceNode)try{this.sourceNode.disconnect(this.analyserNode)}catch{}this.sourceNode=a,a==null||a.connect(this.analyserNode)}}getVolumeLevel(){if(!this.sourceNode||(!this.context||ra()||fu()||this.context.state!=="running"&&this.context.resume(),!this.analyserNode))return 0;let a=new Float32Array(this.analyserNode.fftSize);if(this.analyserNode.getFloatTimeDomainData)this.analyserNode.getFloatTimeDomainData(a);else{let c=new Uint8Array(this.analyserNode.fftSize);this.analyserNode.getByteTimeDomainData(c);for(let f=0;fc+f*f,0)/a.length;return Math.max(10*Math.log10(o)+100,0)/100}getAnalyserNode(){return this.analyserNode}rebuildAnalyser(){try{var a,o;(a=this.sourceNode)===null||a===void 0||a.disconnect(this.analyserNode),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4,(o=this.sourceNode)===null||o===void 0||o.connect(this.analyserNode)}catch{z.warning("rebuild analyser node failed.")}}destroy(){this.updateSource(void 0)}}class Sse extends nr{get processSourceNode(){return this.sourceNode}set processedNode(a){var o;if(!this.isDestroyed&&this._processedNode!==a){try{var c;(c=this.sourceNode)===null||c===void 0||c.disconnect(this.outputNode)}catch{}(o=this._processedNode)===null||o===void 0||o.disconnect(),this._processedNode=a,this.connect()}}get processedNode(){return this._processedNode}constructor(){super(),qe(this,"outputNode",void 0),qe(this,"outputTrack",void 0),qe(this,"isPlayed",!1),qe(this,"sourceNode",void 0),qe(this,"context",void 0),qe(this,"audioBufferNode",void 0),qe(this,"destNode",void 0),qe(this,"audioOutputLevel",0),qe(this,"volumeLevelAnalyser",void 0),qe(this,"_processedNode",void 0),qe(this,"playNode",void 0),qe(this,"isDestroyed",!1),qe(this,"onNoAudioInput",void 0),qe(this,"isNoAudioInput",!1),qe(this,"_noAudioInputCount",0),this.context=fb(),this.playNode=this.context.destination,this.outputNode=this.context.createGain(),s_(this.outputNode),this.volumeLevelAnalyser=new wse}startGetAudioBuffer(a){this.audioBufferNode||(this.audioBufferNode=this.context.createScriptProcessor(a),this.outputNode.connect(this.audioBufferNode),this.audioBufferNode.connect(this.context.destination),this.audioBufferNode.onaudioprocess=o=>{this.emit(xc.ON_AUDIO_BUFFER,function(c){for(let f=0;f{Si.emit("autoplay-failed")}),this.isPlayed=!0,this.playNode=a||this.context.destination,this.outputNode.connect(this.playNode)}stop(){if(this.isPlayed)try{this.outputNode.disconnect(this.playNode)}catch{}this.isPlayed=!1}getAccurateVolumeLevel(){return this.volumeLevelAnalyser.getVolumeLevel()}async checkHasAudioInput(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(a>5)return this.isNoAudioInput=!0,this.onNoAudioInput&&this.onNoAudioInput(),!1;ra()||fu()?this.context.state==="suspended"&&this.context.resume():this.context.state!=="running"&&this.context.resume();let o=this.volumeLevelAnalyser.getAnalyserNode(),c;o.getFloatTimeDomainData?(c=new Float32Array(o.fftSize),o.getFloatTimeDomainData(c)):(c=new Uint8Array(o.fftSize),o.getByteTimeDomainData(c));let f=!1;for(let m=0;m{if(z.debug("ready to rebuild web audio, state:",this.context.state),this.isNoAudioInput&&await this.checkHasAudioInput(),!this.isNoAudioInput||this.isDestroyed)return document.body.removeEventListener("click",this.rebuildWebAudio,!0),void z.debug("rebuild web audio success, current volume status",this.getAccurateVolumeLevel());this.context.resume().then(()=>z.info("resume success")),z.debug("rebuild web audio because of ios 12 bugs"),this.disconnect();let w=this.track;this.track=this.track.clone(),this.isCurrentTrackCloned?w.stop():this.isCurrentTrackCloned=!0;let C=new MediaStream([this.track]);this.sourceNode=this.context.createMediaStreamSource(C),s_(this.sourceNode),this.volumeLevelAnalyser.rebuildAnalyser();let R=this.outputNode.gain.value;this.outputNode=this.context.createGain(),this.outputNode.gain.setValueAtTime(R,this.context.currentTime),s_(this.outputNode),this.emit(xc.UPDATE_SOURCE),this.connect(),this.audioElement.srcObject=C,this.isPlayed&&this.play(this.playNode),this.checkHasAudioInput()}),a.kind!=="audio")throw new Ke(ce.UNEXPECTED_ERROR);this.track=a;let m=new MediaStream([this.track]);if(this.isRemoteTrack=!!o,this.sourceNode=this.context.createMediaStreamSource(m),s_(this.sourceNode),c){let w=c.clone();w.enabled=!0,this.clonedTrack=w,z.debug("create an unmuted track ".concat(w.id," from the original track ").concat(c.id," to get the volume"));let C=this.context.createMediaStreamSource(new MediaStream([w]));s_(C),this.originVolumeLevelAnalyser=new wse,this.originVolumeLevelAnalyser.updateSource(C)}this.connect(),this.audioElement=document.createElement("audio"),this.audioElement.srcObject=m;let v=ni();o&&v.os===ms.IOS&&Number((f=v.osVersion)===null||f===void 0?void 0:f.split(".")[0])<15&&(Si.on(js.STATE_CHANGE,()=>{this.context.state==="suspended"?document.body.addEventListener("click",this.rebuildWebAudio,!0):this.context.state==="running"&&this.rebuildWebAudio()}),this.checkHasAudioInput().then(w=>{w||document.body.addEventListener("click",this.rebuildWebAudio,!0)}))}updateTrack(a){this.sourceNode.disconnect(),this.track=a,this.isCurrentTrackCloned=!1;let o=new MediaStream([a]);this.sourceNode=this.context.createMediaStreamSource(o),s_(this.sourceNode),this.processedNode||this.sourceNode.connect(this.outputNode),this.emit(xc.UPDATE_SOURCE),this.audioElement.srcObject=o}destroy(){var a;this.audioElement.srcObject=null,this.audioElement.remove(),Si.off("state-change",this.rebuildWebAudio),(a=this.originVolumeLevelAnalyser)===null||a===void 0||a.destroy(),this.clonedTrack=void 0,super.destroy()}createMediaStreamSourceNode(a){return this.context.createMediaStreamSource(new MediaStream([a]))}updateOriginTrack(a){let o=a.clone();o.enabled=!0,this.clonedTrack&&(this.clonedTrack.stop(),this.clonedTrack=o),z.debug("create an unmuted track ".concat(o.id," from the original track ").concat(a.id," to get the volume"));let c=this.context.createMediaStreamSource(new MediaStream([o]));s_(c),this.originVolumeLevelAnalyser&&this.originVolumeLevelAnalyser.updateSource(c)}getOriginVolumeLevel(){return this.originVolumeLevelAnalyser?this.originVolumeLevelAnalyser.getVolumeLevel():this.getAccurateVolumeLevel()}}async function Cse(r,a,o){let c=(m,v)=>m?typeof m!="number"?m.max||m.exact||m.ideal||m.min||v:m:v,f={audio:!!o&&{mandatory:{chromeMediaSource:"desktop"}},video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:r,maxHeight:c(a.height,1080),maxWidth:c(a.width,1920)}}};return a.frameRate&&typeof a.frameRate!="number"?(f.video.mandatory.maxFrameRate=a.frameRate.max,f.video.mandatory.minFrameRate=a.frameRate.min):typeof a.frameRate=="number"&&(f.video.mandatory.maxFrameRate=a.frameRate),await navigator.mediaDevices.getUserMedia(f)}async function YIe(r,a){let o=await Tse(r.mediaSource),{sourceId:c,audio:f}=await function(m){let v=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new Ct((w,C)=>{let R=document.createElement("div");R.innerText="share screen",R.setAttribute("style","text-align: center; height: 25px; line-height: 25px; border-radius: 4px 4px 0 0; background: #D4D2D4; border-bottom: solid 1px #B9B8B9;");let x=document.createElement("div");x.setAttribute("style","width: 100%; height: 500px; padding: 15px 25px ; box-sizing: border-box;");let L=document.createElement("div");L.innerText="Agora Web Screensharing wants to share the contents of your screen with webdemo.agorabeckon.com. Choose what you'd like to share.",L.setAttribute("style","height: 12%;");let U=document.createElement("div");U.setAttribute("style","width: 100%; height: 80%; background: #FFF; border: solid 1px #CBCBCB; display: flex; flex-wrap: wrap; justify-content: space-around; overflow-y: scroll; padding: 0 15px; box-sizing: border-box;");let F=document.createElement("div");F.setAttribute("style","display: flex; justify-content: space-between; padding: 16px 0;");let Z=document.createElement("button");Z.innerHTML="cancel",Z.setAttribute("style","width: 85px;"),Z.onclick=()=>{document.body.removeChild(oe);let ue=new Error("NotAllowedError");ue.name="NotAllowedError",C(ue)};let W=v,K=document.createElement("div");if(v){let ue=document.createElement("input");ue.setAttribute("type","checkbox");let xe=document.createElement("span");ue.setAttribute("style","margin-right: 6px;"),xe.innerText="Share audio",ue.checked=W,ue.onchange=()=>{W=ue.checked},K.appendChild(ue),K.appendChild(xe)}F.appendChild(K),F.appendChild(Z),x.appendChild(L),x.appendChild(U),x.appendChild(F);let oe=document.createElement("div");oe.setAttribute("style","position: fixed; z-index: 99999999; top: 50%; left: 50%; width: 620px; height: 525px; background: #ECECEC; border-radius: 4px; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);"),oe.appendChild(R),oe.appendChild(x),document.body.appendChild(oe),m.map(ue=>{if(ue.id){let xe=document.createElement("div");xe.setAttribute("style","width: 30%; height: 160px; padding: 20px 0; text-align: center;box-sizing: content-box;");let Oe=ue.thumbnail;try{let{width:ke}=Oe.getSize();ke>1920&&(Oe=Oe.resize({width:1920}))}catch(ke){throw ke&&ke.message.startsWith("Illegal invocation")&&console.error("Operate thumbnail error, please try to set contextIsolation: false. (https://github.com/electron/electron/issues/34953)"),ke}xe.innerHTML='

'+ue.name.replace(/[\u00A0-\u9999<>\&]/g,function(ke){return"&#"+ke.charCodeAt(0)+";"})+"",xe.onclick=()=>{document.body.removeChild(oe),w({sourceId:ue.id,audio:W})},U.appendChild(xe)}})})}(o,a);return await Cse(c,r,f)}async function Tse(r){let a=["window","screen"];r!=="application"&&r!=="window"||(a=["window"]),r==="screen"&&(a=["screen"]);let o=Hne();if(!o)throw console.error("failed to fetch electron, please mount it to window"),new Ke(ce.ELECTRON_IS_NULL);let c=null;try{var f;c=((f=o.desktopCapturer)===null||f===void 0?void 0:f.getSources({types:a}))||o.ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES",{types:a})}catch{c=null}c&&c.then||(c=new Ct((m,v)=>{o.desktopCapturer.getSources({types:a},(w,C)=>{w?v(w):m(C)})}));try{return await c}catch(m){throw new Ke(ce.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,m.toString())}}let fW=new Ts("safari"),Rse=!1,xse=!1;async function Nc(r,a){let o=0,c=null;for(;o<2;)try{c=await XIe(r,a,o>0);break}catch(f){if(f instanceof Ke)throw z.error("[".concat(a,"] ").concat(f.toString())),f;let m=SD(f.name||f.code||f,f.message);if(m.code===ce.MEDIA_OPTION_INVALID){z.debug("[".concat(a,"] detect media option invalid, retry")),o+=1,await vs(500);continue}throw z.error("[".concat(a,"] ").concat(m.toString())),m}if(!c)throw new Ke(ce.UNEXPECTED_ERROR,"can not find stream after getUserMedia");return c}async function XIe(r,a,o){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new Ke(ce.NOT_SUPPORTED,"can not find getUserMedia");o&&(r.video&&(delete r.video.width,delete r.video.height),r.screen&&(delete r.screen.width,delete r.screen.height));let c=Jn(),f=new MediaStream;if(r.audioSource&&f.addTrack(r.audioSource),r.videoSource&&f.addTrack(r.videoSource),!r.audio&&!r.video&&!r.screen)return z.debug("Using Video Source/ Audio Source"),f;if(r.screen)if(Hne())r.screen.sourceId?pb(f,await Cse(r.screen.sourceId,r.screen,r.screenAudio)):pb(f,await YIe(r.screen,r.screenAudio));else if(b0()&&r.screen.extensionId&&r.screen.mandatory){if(!c.getStreamFromExtension)throw new Ke(ce.NOT_SUPPORTED,"This browser does not support screen sharing");z.debug("[".concat(a,'] Screen access on chrome stable, looking for extension"'));let U=await(v=r.screen.extensionId,w=a,new Ct((F,Z)=>{try{chrome.runtime.sendMessage(v,{getStream:!0},W=>{if(!W||!W.streamId)return z.error("[".concat(w,"] No response from Chrome Plugin. Plugin not installed properly"),W),void Z(new Ke(ce.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));F(W.streamId)})}catch(W){z.error("[".concat(w,"] AgoraRTC screensharing plugin is not accessible(").concat(v,")"),W.toString()),Z(new Ke(ce.CHROME_PLUGIN_NOT_INSTALL))}}));r.screen.mandatory.chromeMediaSourceId=U,pb(f,await navigator.mediaDevices.getUserMedia({video:{mandatory:r.screen.mandatory}}))}else if(c.getDisplayMedia){var m;r.screen.mediaSource&&mse(r.screen.mediaSource);let U={width:r.screen.width,height:r.screen.height,frameRate:r.screen.frameRate,displaySurface:(m=r.screen.displaySurface)!==null&&m!==void 0?m:r.screen.mediaSource==="screen"?"monitor":r.screen.mediaSource},{selfBrowserSurface:F,surfaceSwitching:Z,systemAudio:W}=r.screen,K={selfBrowserSurface:F,surfaceSwitching:Z,systemAudio:W};!F&&delete K.selfBrowserSurface,!Z&&delete K.surfaceSwitching,!W&&delete K.systemAudio,z.debug("[".concat(a,"] getDisplayMedia:"),JSON.stringify({video:U,audio:!!r.screenAudio,controls:K})),pb(f,await navigator.mediaDevices.getDisplayMedia(ir({video:U,audio:!!r.screenAudio},K)))}else{if(!Pi())throw z.error("[".concat(a,"] This browser does not support screenSharing")),new Ke(ce.NOT_SUPPORTED,"This browser does not support screen sharing");{r.screen.mediaSource&&mse(r.screen.mediaSource);let U={video:{mediaSource:r.screen.mediaSource,width:r.screen.width,height:r.screen.height,frameRate:r.screen.frameRate}};z.debug("[".concat(a,"] getUserMedia: ").concat(JSON.stringify(U))),pb(f,await navigator.mediaDevices.getUserMedia(U))}}var v,w;if(!r.video&&!r.audio)return f;let C={video:r.video,audio:r.audio},R=ve("MEDIA_DEVICE_CONSTRAINTS");if(R)try{typeof R=="string"&&(R=JSON.parse(R)),C=VH(C,R)}catch{}z.debug("[".concat(a,"] GetUserMedia"),JSON.stringify(C)),ni();let x,L=null;(gs()||ra()||O8())&&(L=await fW.lock());try{x=await navigator.mediaDevices.getUserMedia(C)}catch(U){throw L&&L(),U}return C.audio&&(Rse=!0),C.video&&(xse=!0),pb(f,x),L&&L(),f}function SD(r,a){switch(r){case"Starting video failed":case"OverconstrainedError":case"TrackStartError":return new Ke(ce.MEDIA_OPTION_INVALID,"".concat(r,": ").concat(a));case"NotFoundError":case"DevicesNotFoundError":return new Ke(ce.DEVICE_NOT_FOUND,"".concat(r,": ").concat(a));case"NotSupportedError":return new Ke(ce.NOT_SUPPORTED,"".concat(r,": ").concat(a));case"NotReadableError":return new Ke(ce.NOT_READABLE,"".concat(r,": ").concat(a));case"InvalidStateError":case"NotAllowedError":case"PERMISSION_DENIED":case"PermissionDeniedError":return new Ke(ce.PERMISSION_DENIED,"".concat(r,": ").concat(a));case"ConstraintNotSatisfiedError":return new Ke(ce.CONSTRAINT_NOT_SATISFIED,"".concat(r,": ").concat(a));default:return z.error("getUserMedia unexpected error",r),new Ke(ce.UNEXPECTED_ERROR,"".concat(r,": ").concat(a))}}function pb(r,a){let o=r.getVideoTracks()[0],c=r.getAudioTracks()[0],f=a.getVideoTracks()[0],m=a.getAudioTracks()[0];m&&(c&&r.removeTrack(c),r.addTrack(m)),f&&(o&&r.removeTrack(o),r.addTrack(f))}let Oc=new class extends nr{get state(){return this._state}set state(r){r!==this._state&&(this.emit(r_.STATE_CHANGE,r),this._state=r)}constructor(){super(),qe(this,"_state",q3.IDLE),qe(this,"isAccessMicrophonePermission",!1),qe(this,"isAccessCameraPermission",!1),qe(this,"lastAccessMicrophonePermission",!1),qe(this,"lastAccessCameraPermission",!1),qe(this,"checkdeviceMatched",!1),qe(this,"deviceInfoMap",new Map),this.init().then(()=>{navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",this.updateDevicesInfo.bind(this)),window.setInterval(()=>{(ve("ENUMERATE_DEVICES_INTERVAL")||(P8()||N8()===ms.HARMONY_OS)&&C0())&&this.updateDevicesInfo()},ve("ENUMERATE_DEVICES_INTERVAL_TIME"))}).catch(r=>z.error(r.toString()))}async enumerateDevices(r,a){let o=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)return new Ke(ce.NOT_SUPPORTED,"enumerateDevices() not supported.").throw();let c=await navigator.mediaDevices.enumerateDevices(),f=this.checkMediaDeviceInfoIsOk(c),m=!this.isAccessMicrophonePermission&&r,v=!this.isAccessCameraPermission&&a;f.audio&&(m=!1),f.video&&(v=!1);let w=null,C=null,R=null;if(!o&&(m||v)){if(fW.isLocked&&(z.debug("[device manager] wait GUM lock"),(await fW.lock())(),z.debug("[device manager] GUM unlock")),Rse&&(m=!1,this.isAccessMicrophonePermission=!0),xse&&(v=!1,this.isAccessCameraPermission=!0),z.debug("[device manager] check media device permissions",r,a,m,v),m&&v){try{R=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch(x){let L=SD(x.name||x.code||x,x.message);if(L.code===ce.PERMISSION_DENIED)throw L;z.warning("getUserMedia failed in getDevices",L)}this.isAccessCameraPermission=!0,this.isAccessMicrophonePermission=!0}else if(m){try{w=await navigator.mediaDevices.getUserMedia({audio:r})}catch(x){let L=SD(x.name||x.code||x,x.message);if(L.code===ce.PERMISSION_DENIED)throw L;z.warning("getUserMedia failed in getDevices",L)}this.isAccessMicrophonePermission=!0}else if(v){try{C=await navigator.mediaDevices.getUserMedia({video:a})}catch(x){let L=SD(x.name||x.code||x,x.message);if(L.code===ce.PERMISSION_DENIED)throw L;z.warning("getUserMedia failed in getDevices",L)}this.isAccessCameraPermission=!0}z.debug("[device manager] mic permission",r,"cam permission",a)}try{let x=await navigator.mediaDevices.enumerateDevices();return w&&w.getTracks().forEach(L=>L.stop()),C&&C.getTracks().forEach(L=>L.stop()),R&&R.getTracks().forEach(L=>L.stop()),w=null,C=null,R=null,x}catch(x){return w&&w.getTracks().forEach(L=>L.stop()),C&&C.getTracks().forEach(L=>L.stop()),R&&R.getTracks().forEach(L=>L.stop()),w=null,C=null,R=null,new Ke(ce.ENUMERATE_DEVICES_FAILED,x.toString()).throw()}}async getRecordingDevices(){let r=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,r)).filter(a=>a.kind==="audioinput")}async getCamerasDevices(){let r=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!1,!0,r)).filter(a=>a.kind==="videoinput")}async getSpeakers(){let r=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,r)).filter(a=>a.kind==="audiooutput")}searchDeviceIdByName(r){let a=null;return this.deviceInfoMap.forEach(o=>{o.device.label===r&&(a=o.device.deviceId)}),a}async getDeviceById(r){let a=(await this.enumerateDevices(!0,!0,!0)).find(o=>o.deviceId===r);if(!a)throw new Ke(ce.DEVICE_NOT_FOUND,"deviceId: ".concat(r));return a}async init(){this.state=q3.INITING;try{await this.updateDevicesInfo(),this.state=q3.INITEND}catch(r){throw z.warning("Device Detection functionality cannot start properly.",r.toString()),this.state=q3.IDLE,(typeof isSecureContext=="boolean"?isSecureContext:location.protocol==="https:"||location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"||location.hostname==="::1")||new Ke(ce.WEB_SECURITY_RESTRICT,"Your context is limited by web security, please try using https protocol or localhost.").throw(),r}}async updateDevicesInfo(){let r=await this.enumerateDevices(!0,!0,!0),a=Date.now(),o=[];if(r[0]&&r[0].label&&this.checkdeviceMatched===!1){this.checkdeviceMatched=!0;let f=r.find(v=>v.kind==="audioinput"&&v.deviceId==="default"),m=r.find(v=>v.kind==="audiooutput"&&v.deviceId==="default");f&&m?m.groupId===f.groupId?z.debug("[device-check] default input ".concat(f.label," and output ").concat(m.label," is the same group")):z.warning("[device-check] default input ".concat(f.label," and output ").concat(m.label," is not the same group")):z.debug("[device-check] default input or output not found")}let c=this.checkMediaDeviceInfoIsOk(r);if(r.forEach(f=>{if(!f.deviceId)return;let m=this.deviceInfoMap.get("".concat(f.kind,"_").concat(f.deviceId));if((m?m.state:"INACTIVE")!=="ACTIVE"){let v={initAt:a,updateAt:a,device:f,state:"ACTIVE"};this.deviceInfoMap.set("".concat(f.kind,"_").concat(f.deviceId),v),o.push(v)}m&&(m.updateAt=a)}),this.deviceInfoMap.forEach((f,m)=>{f.state==="ACTIVE"&&f.updateAt!==a&&(f.state="INACTIVE",o.push(f))}),this.state!==q3.INITEND)return c.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),void(c.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0));o.forEach(f=>{switch(f.device.kind){case"audioinput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(r_.RECORDING_DEVICE_CHANGED,f);break;case"videoinput":this.lastAccessCameraPermission&&this.isAccessCameraPermission&&this.emit(r_.CAMERA_DEVICE_CHANGED,f);break;case"audiooutput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(r_.PLAYOUT_DEVICE_CHANGED,f)}}),c.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),c.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0)}checkMediaDeviceInfoIsOk(r){let a=r.filter(f=>f.kind==="audioinput"),o=r.filter(f=>f.kind==="videoinput"),c={audio:!1,video:!1};for(let f of a)if(f.label&&f.deviceId){c.audio=!0;break}for(let f of o)if(f.label&&f.deviceId){c.video=!0;break}return c}},pW=!1,Pc=new class extends nr{constructor(){super(...arguments),qe(this,"onAutoplayFailed",void 0),qe(this,"onAudioAutoplayFailed",void 0)}};function Ase(){if(ni(),!pW){let r=a=>{a.preventDefault(),pW=!1,h3()?document.body.removeEventListener("click",r,!0):(document.body.removeEventListener("touchstart",r,!0),document.body.removeEventListener("mousedown",r,!0))};pW=!0,h3()?document.body.addEventListener("click",r,!0):(document.body.addEventListener("touchstart",r,!0),document.body.addEventListener("mousedown",r,!0)),z.info("detect media autoplay failed, document: https://docs.agora.io/cn/Voice/autoplay_policy_web_ng?platform=Web"),Pc.onAutoplayFailed?Pc.onAutoplayFailed():Pc.onAudioAutoplayFailed?z.warning(`AgoraRTC.onAudioAutoplayFailed has been deprecated in favor of AgoraRTC.onAutoplayFailed. + + Please refer to the Agora document to migrate the newer API, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`):z.warning(`We have detected a media autoplay failed event, and found out that you haven't implemented AgoraRTC.onAutoplayFailed callback yet. + + It will cause audio/video element not playing automatically on some browsers without user interaction, possibly hurting user experiences. + + Please refer to the Agora document to properly handle autoplay failed event, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`),Pc.emit("autoplay-failed")}}function Ise(r,a,o,c){if(!r)return;let f=$t.getBaseInfoBySessionId(r);if(!f)return;let m=f.info,v=Date.now(),w=ir(ir({},m),{},{vid:m.vid===void 0?0:Number(m.vid),lts:v,elapse:v-f.startTime,cbRegistered:Pc.onAutoplayFailed||Pc.onAudioAutoplayFailed?1:-1,errorMsg:o,mediaType:a,trackId:c,extend:void 0});$t.send({type:fr.AUTOPLAY_FAILED,data:w},!0)}let JIe=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","error"],Oo=new class{constructor(){qe(this,"onAutoplayFailed",void 0),qe(this,"elementMap",new Map),qe(this,"elementStateMap",new Map),qe(this,"elementsNeedToResume",[]),qe(this,"sinkIdMap",new Map),qe(this,"autoResumeAfterInterruption",r=>{Array.from(this.elementMap.entries()).forEach(a=>{let[o,c]=a,f=this.elementStateMap.get(o),m=c.srcObject.getAudioTracks()[0],v=m&&m.readyState;if(z.debug("resume after interrupted, ele: ".concat(f," audio: ").concat(v," ").concat(r)),v==="live"){if(r)return c.pause(),void c.play();if(Si.curState==="running")return jS()?(c.pause(),void c.play()):void(f&&f==="paused"&&c.play())}})}),qe(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{Array.from(this.elementMap.entries()).forEach(r=>{let[a,o]=r,c=o.srcObject.getAudioTracks()[0];c&&c.readyState==="live"&&(z.debug("auto resume after interruption inside autoResumeAfterInterruptionOnIOS15"),o.pause(),o.play())})}),this.autoResumeAudioElement(),Si.on(js.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),Si.on(js.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),Si.on(js.STATE_CHANGE,()=>{ra()&&Si.prevState==="suspended"&&Si.curState==="running"&&this.autoResumeAfterInterruption()})}async setSinkID(r,a){let o=this.elementMap.get(r);if(this.sinkIdMap.set(r,a),o)try{await o.setSinkId(a)}catch(c){throw new Ke(ce.PERMISSION_DENIED,"can not set sink id: "+c.toString())}}play(r,a,o,c){if(this.elementMap.has(a))return;let f=document.createElement("audio");f.autoplay=!0,f.srcObject=new MediaStream([r]),this.bindAudioElementEvents(a,f),this.elementMap.set(a,f),this.elementStateMap.set(a,Da.INIT),this.setVolume(a,o);let m=this.sinkIdMap.get(a);if(m)try{f.setSinkId(m).catch(w=>{z.warning("[".concat(a,"] set sink id failed"),w.toString())})}catch(w){z.warning("[".concat(a,"] set sink id failed"),w.toString())}let v=f.play();v&&v.then&&v.catch(w=>{c&&Ise(c,"audio",w.message,a),z.warning("audio element play warning",w.toString()),this.elementMap.has(a)&&w.name==="NotAllowedError"&&(z.warning("detected audio element autoplay failed"),this.elementsNeedToResume.push(f),D8(()=>{this.onAutoplayFailed&&this.onAutoplayFailed(),Ase()}))})}updateTrack(r,a){let o=this.elementMap.get(r);o&&(o.srcObject=new MediaStream([a]))}isPlaying(r){return this.elementMap.has(r)&&this.elementStateMap.get(r)==="playing"}setVolume(r,a){let o=this.elementMap.get(r);o&&(a=Math.max(0,Math.min(100,a)),o.volume=a/100)}stop(r){let a=this.elementMap.get(r);if(this.sinkIdMap.delete(r),!a)return;let o=this.elementsNeedToResume.indexOf(a);this.elementsNeedToResume.splice(o,1),a.srcObject=null,a.remove(),this.elementMap.delete(r),this.elementStateMap.delete(r)}bindAudioElementEvents(r,a){JIe.forEach(o=>{a.addEventListener(o,c=>{let f=this.elementStateMap.get(r),m=c.type==="pause"?"paused":c.type;if(z.debug("[".concat(r,"] audio-element-status change ").concat(f," => ").concat(m)),c.type==="error"){let v=a==null?void 0:a.error;v&&z.error("[".concat(r,"] media error, code: ").concat(v.code,", message: ").concat(v.message))}this.elementStateMap.set(r,m)})})}getPlayerState(r){return this.elementStateMap.get(r)||"uninit"}autoResumeAudioElement(){let r=()=>{this.elementsNeedToResume.forEach(a=>{a.play().then(o=>{z.debug("Auto resume audio element success")}).catch(o=>{z.warning("Auto resume audio element failed!",o)})}),this.elementsNeedToResume=[]};new Ct(a=>{document.body?a():window.addEventListener("load",()=>a())}).then(()=>{h3()?document.body.addEventListener("click",r,!0):(document.body.addEventListener("touchstart",r,!0),document.body.addEventListener("mousedown",r,!0))})}};function Or(){return function(r,a,o){let c=o.value;return typeof c=="function"&&(o.value=function(){this._isClosed&&new Ke(ce.INVALID_OPERATION,"[".concat(this.getTrackId(),"] cannot operate a closed track")).print("warning",z);for(var f=arguments.length,m=new Array(f),v=0;v{w.then(C).catch(R)}):w}),o}}class Nse extends nr{constructor(a){super(),qe(this,"name","VideoProcessorDestination"),qe(this,"ID","0"),qe(this,"_source",void 0),qe(this,"videoContext",void 0),qe(this,"inputTrack",void 0),this.videoContext=a}get kind(){return"video"}get enabled(){return!0}pipe(){throw new Ke(ce.NOT_SUPPORTED,"VideoProcessor cannot pipe to any other Processor")}unpipe(){throw new Ke(ce.NOT_SUPPORTED,"VideoProcessor cannot unpipe to any other Processor")}enable(){}disable(){}updateInput(a){if(a.context!==this.videoContext)throw new Error(`ProcessorContext passed to VideoTrack.processorDestination doesn't match it's belonging VideoTrack's context. +Probably you are making pipeline like this: +videoTrack1.pipe(processor).pipe(videoTrack2.processorDestination).`);a.track&&a.track!==this.inputTrack&&(this.videoContext.chained=!0,this.inputTrack=a.track,this.emit(so.ON_TRACK,a.track))}reset(){this.inputTrack=void 0,this.videoContext.chained=!1,this.emit(so.ON_TRACK,void 0)}}class Ose extends nr{set chained(a){this._chained=a}get chained(){return this._chained}constructor(a,o){super(),qe(this,"constraintsMap",new Map),qe(this,"statsRegistry",[]),qe(this,"usageRegistry",[]),qe(this,"trackId",void 0),qe(this,"direction",void 0),qe(this,"_chained",!1),this.trackId=a,this.direction=o}async getConstraints(){return await Kr(this,Ac.REQUEST_CONSTRAINTS)}async requestApplyConstraints(a,o){var c;return z.info("processor ".concat(o.name," requestApplyConstraints for ").concat(this.trackId)),a&&this.constraintsMap.set(o,a),Li(this,Ac.REQUEST_UPDATE_CONSTRAINTS,Array.from(Sh(c=this.constraintsMap).call(c)))}async requestRevertConstraints(a){var o;if(this.constraintsMap.has(a))return z.info("processor ".concat(a.name," requestRevertConstraints for ").concat(this.trackId)),this.constraintsMap.delete(a),Li(this,Ac.REQUEST_UPDATE_CONSTRAINTS,Array.from(Sh(o=this.constraintsMap).call(o)))}registerStats(a,o,c){this.statsRegistry.find(f=>f.processorID===a.ID&&f.processorName===a.name&&f.type===o)||this.statsRegistry.push({processorName:a.name,processorID:a.ID,type:o,cb:c})}unregisterStats(a,o){let c=this.statsRegistry.findIndex(f=>f.processorID===a.ID&&f.processorName===a.name&&f.type===o);c!==-1&&this.statsRegistry.splice(c,1)}gatherStats(){let a=[];for(let{processorID:o,processorName:c,type:f,cb:m}of this.statsRegistry)try{let v=m();a.push({processorID:o,processorName:c,type:f,stats:v})}catch(v){z.error(new Ke(ce.UNEXPECTED_ERROR,v.message))}return a}registerUsage(a,o){this.usageRegistry.find(c=>c.processorID===a.ID&&c.processorName===a.name)||this.usageRegistry.push({processorID:a.ID,processorName:a.name,cb:o})}unregisterUsage(a){let o=this.usageRegistry.findIndex(c=>c.processorID===a.ID&&c.processorName===a.name);o!==-1&&this.usageRegistry.splice(o,1)}async gatherUsage(){let a=[];if(!this.chained)return[];for(let{cb:o}of this.usageRegistry)try{let c=o();c instanceof Ct&&(c=await c),a.push(ir(ir({},c),{},{direction:this.direction}))}catch(c){z.error("gather extension usage error",c)}return a}getDirection(){return this.direction}}class Pse extends nr{constructor(a){super(),qe(this,"name","AudioProcessorDestination"),qe(this,"ID","0"),qe(this,"inputTrack",void 0),qe(this,"inputNode",void 0),qe(this,"audioProcessorContext",void 0),qe(this,"_source",void 0),this.audioProcessorContext=a}get kind(){return"audio"}get enabled(){return!0}pipe(){throw new Ke(ce.NOT_SUPPORTED,"AudioProcessorDestination cannot pipe to any other Processor")}unpipe(){throw new Ke(ce.NOT_SUPPORTED,"AudioProcessor cannot unpipe to any other Processor")}enable(){}disable(){}reset(){this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext.chained=!1,this.emit(so.ON_TRACK,void 0),this.emit(so.ON_NODE,void 0)}updateInput(a){if(a.context!==this.audioProcessorContext)throw new Error(`ProcessorContext passed to AudioTrack.processorDestination doesn't match it's belonging AudioTrack's context. + Probably you are making pipeline like this: audioTrack1.pipe(processor).pipe(audioTrack2.processorDestination).`);a.track&&this.inputTrack!==a.track&&(this.audioProcessorContext.chained=!0,this.inputTrack=a.track,this.emit(so.ON_TRACK,this.inputTrack)),a.node&&this.inputNode!==a.node&&(this.audioProcessorContext.chained=!0,this.inputNode=a.node,this.emit(so.ON_NODE,this.inputNode))}}class Lse extends nr{set chained(a){this._chained=a}get chained(){return this._chained}constructor(a,o,c){super(),qe(this,"constraintsMap",new Map),qe(this,"statsRegistry",[]),qe(this,"audioContext",void 0),qe(this,"trackId",void 0),qe(this,"direction",void 0),qe(this,"usageRegistry",[]),qe(this,"_chained",!1),this.audioContext=a,this.trackId=o,this.direction=c}async getConstraints(){return Kr(this,Ac.REQUEST_CONSTRAINTS)}getAudioContext(){return this.audioContext}async requestApplyConstraints(a,o){var c;return z.info("processor ".concat(o.name," requestApplyConstraints for ").concat(this.trackId)),a&&this.constraintsMap.set(o,a),Li(this,Ac.REQUEST_UPDATE_CONSTRAINTS,Array.from(Sh(c=this.constraintsMap).call(c)))}async requestRevertConstraints(a){var o;if(this.constraintsMap.has(a))return this.constraintsMap.delete(a),Li(this,Ac.REQUEST_UPDATE_CONSTRAINTS,Array.from(Sh(o=this.constraintsMap).call(o)))}registerStats(a,o,c){this.statsRegistry.find(f=>f.processorID===a.ID&&f.processorName===a.name&&f.type===o)||this.statsRegistry.push({processorName:a.name,processorID:a.ID,type:o,cb:c})}unregisterStats(a,o){let c=this.statsRegistry.findIndex(f=>f.processorID===a.ID&&f.processorName===a.name&&f.type===o);c!==-1&&this.statsRegistry.splice(c,1)}gatherStats(){let a=[];for(let{processorID:o,processorName:c,type:f,cb:m}of this.statsRegistry)try{let v=m();a.push({processorID:o,processorName:c,type:f,stats:v})}catch(v){z.error(new Ke(ce.UNEXPECTED_ERROR,v.message))}return a}registerUsage(a,o){this.usageRegistry.find(c=>c.processorID===a.ID&&c.processorName===a.name)||this.usageRegistry.push({processorID:a.ID,processorName:a.name,cb:o})}unregisterUsage(a){let o=this.usageRegistry.findIndex(c=>c.processorID===a.ID&&c.processorName===a.name);o!==-1&&this.usageRegistry.splice(o,1)}async gatherUsage(){let a=[];if(!this.chained)return[];for(let{cb:o}of this.usageRegistry)try{let c=o();c instanceof Ct&&(c=await c),a.push(ir(ir({},c),{},{direction:this.direction}))}catch(c){z.error("gather extension usage error",c)}return a}getDirection(){return this.direction}}class mW extends nr{get isPlayed(){return!0}get isFreeze(){return!1}constructor(){super(),qe(this,"context",void 0),qe(this,"processSourceNode",void 0),qe(this,"outputTrack",void 0),qe(this,"processedNode",void 0),qe(this,"clonedTrack",void 0),qe(this,"outputNode",void 0),this.outputNode=new QIe}setVolume(){}createOutputTrack(){throw new Ke(ce.NOT_SUPPORTED,"can not create output MediaStreamTrack when WebAudio disabled")}getOriginVolumeLevel(){return 0}getAccurateVolumeLevel(){return 0}stopGetAudioBuffer(){}startGetAudioBuffer(){}play(){}stop(){}destroy(){}updateTrack(){}updateOriginTrack(){}createMediaStreamSourceNode(){}}class QIe{disconnect(){}connect(){}}function Dse(r){return new Ct((a,o)=>{let c=!1,f=document.createElement("video");f.setAttribute("autoplay",""),f.setAttribute("muted",""),f.muted=!0,f.autoplay=!0,f.setAttribute("playsinline",""),f.setAttribute("style","position: fixed; top: 0; left: 0; width: 1px; height: 1px"),document.body.appendChild(f);let m=ra()?"canplay":"playing";f.addEventListener(m,()=>{let v=f.videoWidth,w=f.videoHeight;!v&&Pi()||(c=!0,f.srcObject=null,f.remove(),a([v,w]))}),f.srcObject=new MediaStream([r]),f.play().catch(k8),setTimeout(()=>{c||(f.srcObject=null,f.remove(),a([f.videoWidth,f.videoHeight]))},4e3)})}function bD(r){let a={};r.facingMode&&(a.facingMode=r.facingMode),r.cameraId&&(a.deviceId={exact:r.cameraId});let o=zf(r.encoderConfig);return o.width!=null&&(a.width=o.width),o.height!=null&&(a.height=o.height),!Mne()&&o.frameRate&&(a.frameRate=o.frameRate),Rne()&&typeof a.frameRate=="object"&&(a.frameRate.max=60),Pi()&&(a.frameRate={ideal:30,max:30}),a}function kse(r){let a={};if(Mne()||(r.AGC!==void 0&&(a.autoGainControl=r.AGC),r.AEC!==void 0&&(a.echoCancellation=r.AEC),r.ANS!==void 0&&(a.noiseSuppression=r.ANS,b0()&&r.ANS&&(a.googHighpassFilter=r.ANS))),r.encoderConfig){let o=ED(r.encoderConfig);a.channelCount=o.stereo?2:1,a.sampleRate=o.sampleRate,a.sampleSize=o.sampleSize}return r.microphoneId&&(a.deviceId={exact:r.microphoneId}),P8()&&(a.sampleRate=void 0),a}let ZIe=r=>{let a=r._encoderConfig;if(!a)return;let{frameRate:o,width:c,height:f}=r.getMediaStreamTrackSettings(),{frameRate:m=o,width:v=c,height:w=f}=a;if(!m||!v||!w)return;v=zH(v),w=zH(w),m=zH(m);let{max:C,min:R}=function(F,Z,W){let K=200*Math.pow(W/15,.6)*Math.pow(F*Z/640/360,.75);return{min:Math.floor(K),max:Math.floor(4*K)}}(v,w,m),{bitrateMax:x,bitrateMin:L}=a||{};x||z.debug("calculate bitrate: [w: ".concat(v,", h: ").concat(w,", fps: ").concat(m,"] => [brMax: ").concat(x,", brMin: ").concat(L,"]"));let{maxFramerate:U}=ve("ENCODER_CONFIG_LIMIT");return U&&typeof U=="number"&&(m=Math.min(m,U)),{frameRate:m,bitrateMax:x||C,bitrateMin:L||R,scaleResolutionDownBy:1,scale:0}},Mse=async(r,a,o)=>await(async(c,f,m)=>{let v=function(R){let x=[];for(let L=0;L{let a=document.createElement("canvas");return a.width=2,a.height=2,new Ct((o,c)=>{a.toBlob(async f=>{if(a.remove(),f){let m=await jse(f);o({buffer:m,width:a.width,height:a.height})}else c(new Ke(ce.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},r,1)})},jse=async r=>{let a=await r.arrayBuffer();return new Uint8Array(a)};var Use,Fse,Bse,Vse,zse,Hse,Gse,Wse,$se,Kse,qse,Yse,Xse,Jse,Qse,Zse,eae,tae,pr,nae,iae,rae,sae,aae,oae,Gf,lae,cae,dae,uae,hae,fae,pae,mae,gae,vae,yae,_ae,Eae,Ys;let br=(Use=hn({argsMap:(r,a)=>[r.getTrackId(),a],throttleTime:300}),Fse=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),Bse=Or(),Vse=BS("LocalAudioTrack","_enabledMutex"),zse=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),Hse=Or(),Gse=BS("LocalAudioTrack","_enabledMutex"),Wse=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),$se=Or(),Kse=Or(),qse=Or(),Yse=hn({argsMap:r=>[r.getTrackId()]}),Xse=Or(),Jse=hn({argsMap:r=>[r.getTrackId()]}),Qse=Or(),Zse=hn({argsMap:r=>[r.getTrackId()]}),eae=hn({argsMap:(r,a)=>[r.getTrackId(),a.name]}),tae=hn({argsMap:r=>[r.getTrackId()]}),Qn((pr=class extends hb{get _source(){return this.initWebAudio()}set _source(r){this._trackSource=r}get processorContext(){return this._processorContext||(this._processorContext=this.initProcessor().processorContext),this._processorContext}get processorDestination(){return this._processorDestination||(this._processorDestination=this.initProcessor().processorDestination),this._processorDestination}get isPlaying(){return this._useAudioElement?Oo.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"LocalAudioTrack"}constructor(r,a,o,c){super(r,o),qe(this,"trackMediaType","audio"),qe(this,"_encoderConfig",void 0),qe(this,"_trackSource",void 0),qe(this,"_enabled",!0),qe(this,"_volume",100),qe(this,"_useAudioElement",!0),qe(this,"_bypassWebAudio",!1),qe(this,"processor",void 0),qe(this,"_processorContext",void 0),qe(this,"_processorDestination",void 0),qe(this,"_getOriginVolumeLevel",void 0),this._encoderConfig=a,this._getOriginVolumeLevel=!!c,this._trackSource=new mW,ve("DISABLE_WEBAUDIO")&&(this._bypassWebAudio=!0),ve("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1),gs()&&!Ic?setTimeout(()=>this.initWebAudio()):this.initWebAudio()}setVolume(r){Ti(r,"volume",0,1e3),this._volume=r,this._source.setVolume(r/100),this._useAudioElement&&Oo.setVolume(this.getTrackId(),r);try{if(this._bypassWebAudio)return void z.debug("[".concat(this.getTrackId(),"] setVolume returned because no pass through WebAudio."));let a=this._source.createOutputTrack();this._mediaStreamTrack!==a&&(this._mediaStreamTrack=a,Li(this,Mt.NEED_REPLACE_TRACK,this).then(()=>{z.debug("[".concat(this.getTrackId(),"] replace web audio track success"))}).catch(o=>{z.warning("[".concat(this.getTrackId(),"] replace web audio track failed"),o)}))}catch{}}getVolumeLevel(){return this._muted&&this.enabled&&this._getOriginVolumeLevel?this._source.getOriginVolumeLevel():this._source.getAccurateVolumeLevel()}async setPlaybackDevice(r){if(!this._useAudioElement||!pse())throw new Ke(ce.NOT_SUPPORTED,"your browser does not support setting the audio output device");await Oo.setSinkID(this.getTrackId(),r)}async setEnabled(r,a,o){return this._setEnabled(r,a,o)}async _setEnabled(r,a,o){if(!o){if(r===this._enabled)return;this.stateCheck("enabled",r)}if(z.info("[".concat(this.getTrackId(),"] start setEnabled"),r),r){this._originMediaStreamTrack.enabled=!0;try{o||(this._enabled=!0),await Li(this,Mt.NEED_ENABLE_TRACK,this),z.info("[".concat(this.getTrackId(),"] setEnabled to ").concat(r," success"))}catch(c){throw o||(this._enabled=!1),z.error("[".concat(this.getTrackId(),"] setEnabled to true error"),c.toString()),c}}else{this._originMediaStreamTrack.enabled=!1,o||(this._enabled=!1);try{await Li(this,Mt.NEED_DISABLE_TRACK,this)}catch(c){throw o||(this._enabled=!0),z.error("[".concat(this.getTrackId(),"] setEnabled to false error"),c.toString()),c}}}async setMuted(r){r!==this._muted&&(this.stateCheck("muted",r),this._muted=r,this._originMediaStreamTrack.enabled=!r,z.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(r)),r?await Li(this,Mt.NEED_MUTE_TRACK,this):await Li(this,Mt.NEED_UNMUTE_TRACK,this))}getStats(){return T0(()=>{z.warning("[deprecated] LocalAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalAudioStats instead")},"localAudioTrackGetStatsWarning"),Ml(this,Mt.GET_STATS)||ir({},lW)}setAudioFrameCallback(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!r)return this._source.removeAllListeners(xc.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(a),this._source.removeAllListeners(xc.ON_AUDIO_BUFFER),this._source.on(xc.ON_AUDIO_BUFFER,o=>r(o))}play(){z.debug("[".concat(this.getTrackId(),"] start audio playback")),this._useAudioElement?(z.debug("[".concat(this.getTrackId(),"] start audio playback in element")),Oo.play(this._mediaStreamTrack,this.getTrackId(),this._volume)):this._source.play()}stop(){z.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._useAudioElement?Oo.stop(this.getTrackId()):this._source.stop()}close(){super.close(),this._processorDestination&&this.unbindProcessorDestinationEvents(this._processorDestination),this._processorContext&&this.unbindProcessorContextEvents(this._processorContext),this.unpipe(),this._processorDestination&&this._processorDestination._source&&this._processorDestination._source.unpipe(),this._source.destroy()}_updatePlayerSource(){let r=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];z.debug("[".concat(this.getTrackId(),"] update player source track")),r&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&Oo.updateTrack(this.getTrackId(),this._mediaStreamTrack)}async _updateOriginMediaStreamTrack(r,a){this._originMediaStreamTrack!==r&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),a&&this._originMediaStreamTrack.stop()),r.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=r,this._muted&&(this._originMediaStreamTrack.enabled=!1),this.processor&&this._processorContext&&this.processor.updateInput({track:r,context:this._processorContext}),this._mediaStreamTrack!==this._source.outputTrack?(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Li(this,Mt.NEED_REPLACE_TRACK,this)):this._source.updateTrack(this._originMediaStreamTrack),this._getOriginVolumeLevel&&this._source.updateOriginTrack(r))}renewMediaStreamTrack(r){return Ct.resolve(void 0)}pipe(r){if(this._bypassWebAudio)throw new Ke(ce.INVALID_OPERATION,"Can not process AudioTrack when bypassWebAudio set to true.");if(this.processor===r)return r;if(r._source)throw new Ke(ce.INVALID_OPERATION,"Processor ".concat(r.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=r,this.processor._source=this,r.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),r}unpipe(){var r;if(!this.processor)return;let a=this.processor;(r=this._source.processSourceNode)===null||r===void 0||r.disconnect(),this.processor._source=!1,this.processor=void 0,a.reset()}bindProcessorDestinationEvents(r){r.on(so.ON_TRACK,async a=>{a?a!==this._mediaStreamTrack&&(this._mediaStreamTrack=a,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(a),await Li(this,Mt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Li(this,Mt.NEED_REPLACE_TRACK,this))}),r.on(so.ON_NODE,a=>{this._source.processedNode=a})}unbindProcessorDestinationEvents(r){r.removeAllListeners(so.ON_TRACK),r.removeAllListeners(so.ON_NODE)}bindProcessorContextEvents(r){r.on(Ac.REQUEST_CONSTRAINTS,async a=>{a(this._originMediaStreamTrack.getSettings())})}unbindProcessorContextEvents(r){r.removeAllListeners(Ac.REQUEST_CONSTRAINTS)}initWebAudio(){return this._trackSource instanceof mW&&(this._trackSource=new bse(this._mediaStreamTrack,!1,this._getOriginVolumeLevel?this._mediaStreamTrack:void 0)),this._trackSource}initProcessor(){let r=new Lse(this._source.context,this.getTrackId(),"local"),a=new Pse(r);return this._processorContext=r,this._processorDestination=a,this.bindProcessorContextEvents(r),this.bindProcessorDestinationEvents(a),this._source.on(xc.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:r})}),this._useAudioElement&&(this._useAudioElement=!1,this.isPlaying&&(Oo.stop(this.getTrackId()),this._source.play()),Li(this,Mt.NEED_REPLACE_MIXING_TRACK,this).then(()=>{z.debug("[".concat(this.getTrackId(),"] replace from origin track to web audio track success"))}).catch(o=>{z.warning("[".concat(this.getTrackId(),"] replace from origin track to web audio track failed"),o)})),{processorContext:r,processorDestination:a}}}).prototype,"setVolume",[Use],Object.getOwnPropertyDescriptor(pr.prototype,"setVolume"),pr.prototype),Qn(pr.prototype,"setPlaybackDevice",[Fse,Bse],Object.getOwnPropertyDescriptor(pr.prototype,"setPlaybackDevice"),pr.prototype),Qn(pr.prototype,"setEnabled",[Vse,zse,Hse],Object.getOwnPropertyDescriptor(pr.prototype,"setEnabled"),pr.prototype),Qn(pr.prototype,"setMuted",[Gse,Wse,$se],Object.getOwnPropertyDescriptor(pr.prototype,"setMuted"),pr.prototype),Qn(pr.prototype,"getStats",[Kse],Object.getOwnPropertyDescriptor(pr.prototype,"getStats"),pr.prototype),Qn(pr.prototype,"setAudioFrameCallback",[qse],Object.getOwnPropertyDescriptor(pr.prototype,"setAudioFrameCallback"),pr.prototype),Qn(pr.prototype,"play",[Yse,Xse],Object.getOwnPropertyDescriptor(pr.prototype,"play"),pr.prototype),Qn(pr.prototype,"stop",[Jse,Qse],Object.getOwnPropertyDescriptor(pr.prototype,"stop"),pr.prototype),Qn(pr.prototype,"close",[Zse],Object.getOwnPropertyDescriptor(pr.prototype,"close"),pr.prototype),Qn(pr.prototype,"pipe",[eae],Object.getOwnPropertyDescriptor(pr.prototype,"pipe"),pr.prototype),Qn(pr.prototype,"unpipe",[tae],Object.getOwnPropertyDescriptor(pr.prototype,"unpipe"),pr.prototype),pr),CD=(nae=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),iae=Or(),rae=BS("MicrophoneAudioTrack","_enabledMutex"),sae=hn({argsMap:(r,a,o)=>[r.getTrackId(),a,o]}),aae=Or(),oae=hn({argsMap:r=>[r.getTrackId()]}),Qn((Gf=class extends br{get __className__(){return"MicrophoneAudioTrack"}constructor(r,a,o,c){super(r,a.encoderConfig?ED(a.encoderConfig):{},c,ve("GET_VOLUME_OF_MUTED_AUDIO_TRACK")),qe(this,"_config",void 0),qe(this,"_deviceName","default"),qe(this,"_constraints",void 0),qe(this,"_originalConstraints",void 0),qe(this,"_enabled",!0),this._config=a,this._constraints=o,this._originalConstraints=o,this._deviceName=r.label,typeof a.bypassWebAudio=="boolean"&&(this._bypassWebAudio=a.bypassWebAudio),(jS()||kH())&&Si.bindInterruptDetectorTrack(this)}async setDevice(r){if(z.info("[".concat(this.getTrackId(),"] start set device to ").concat(r)),this._enabled)try{let a=await Oc.getDeviceById(r),o={};o.audio=ir({},this._constraints),o.audio.deviceId={exact:r},this._originMediaStreamTrack.stop();let c=null;try{c=await Nc(o,this.getTrackId())}catch(f){throw z.error("[".concat(this.getTrackId(),"] setDevice failed"),f.toString()),c=await Nc({audio:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(c.getAudioTracks()[0],!1),f}await this._updateOriginMediaStreamTrack(c.getAudioTracks()[0],!1),this._deviceName=a.label,this._config.microphoneId=r,this._constraints.deviceId={exact:r}}catch(a){throw z.error("[".concat(this.getTrackId(),"] setDevice error"),a.toString()),a}else try{let a=await Oc.getDeviceById(r);this._deviceName=a.label,this._config.microphoneId=r,this._constraints.deviceId={exact:r}}catch(a){throw z.error("[".concat(this.getTrackId(),"] setDevice error"),a.toString()),a}z.info("[".concat(this.getTrackId(),"] set device to ").concat(r," success"))}async setEnabled(r,a,o){if(a)return z.debug("[".concat(this.getTrackId(),"] setEnabled false (do not close microphone)")),await super._setEnabled(r);if(!o){if(r===this._enabled)return;this.stateCheck("enabled",r)}if(z.info("[".concat(this.getTrackId(),"] start setEnabled"),r),ve("AUTO_RESET_AUDIO_ROUTE")&&(ra()||fu())){let v=navigator.audioSession;v&&(r||(v.type="playback"),v.type="auto")}if(!r){var c;this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop(),(c=this._source.clonedTrack)===null||c===void 0||c.stop(),o||(this._enabled=!1);try{await Li(this,Mt.NEED_DISABLE_TRACK,this)}catch(v){throw z.error("[".concat(this.getTrackId(),"] setEnabled false failed"),v.toString()),v}return}let f=ir({},this._constraints),m=Oc.searchDeviceIdByName(this._deviceName);m&&!f.deviceId&&(f.deviceId=m);try{o||(this._enabled=!0);let v=await Nc({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(v.getAudioTracks()[0],!1),await Li(this,Mt.NEED_ENABLE_TRACK,this)}catch(v){throw o||(this._enabled=!1),z.error("[".concat(this.getTrackId(),"] setEnabled true failed"),v.toString()),v}z.info("[".concat(this.getTrackId(),"] setEnabled success"))}close(){super.close(),(jS()||kH())&&Si.unbindInterruptDetectorTrack(this)}onTrackEnded(){if((ra()||fu())&&this._enabled&&!this._isClosed&&Si.duringInterruption){let r=async()=>{Si.off(js.IOS_INTERRUPTION_END,r),this._enabled&&!this._isClosed&&(z.debug("[".concat(this.getTrackId(),"] try capture microphone media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};Si.on(js.IOS_INTERRUPTION_END,r)}else z.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(db.TRACK_ENDED)}async renewMediaStreamTrack(r){let a=r||this._constraints,o=Oc.searchDeviceIdByName(this._deviceName);if(o&&!a.deviceId&&(a.deviceId=o),this._constraints=a,this._enabled){this._originMediaStreamTrack.stop();let c=await Nc({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(c.getAudioTracks()[0],!0)}}bindProcessorContextEvents(r){super.bindProcessorContextEvents(r),r.on(Ac.REQUEST_UPDATE_CONSTRAINTS,async(a,o,c)=>{try{let f=Object.assign({},this._originalConstraints,...a);await this.renewMediaStreamTrack(f),o()}catch(f){c(f)}})}unbindProcessorContextEvents(r){super.unbindProcessorContextEvents(r),r.removeAllListeners(Ac.REQUEST_UPDATE_CONSTRAINTS)}}).prototype,"setDevice",[nae,iae],Object.getOwnPropertyDescriptor(Gf.prototype,"setDevice"),Gf.prototype),Qn(Gf.prototype,"setEnabled",[rae,sae,aae],Object.getOwnPropertyDescriptor(Gf.prototype,"setEnabled"),Gf.prototype),Qn(Gf.prototype,"close",[oae],Object.getOwnPropertyDescriptor(Gf.prototype,"close"),Gf.prototype),Gf),e4e=(lae=hn({argsMap:(r,a)=>[r.getTrackId(),a,r.duration]}),cae=Or(),dae=hn({argsMap:r=>[r.getTrackId()]}),uae=Or(),hae=hn({argsMap:r=>[r.getTrackId()]}),fae=Or(),pae=hn({argsMap:r=>[r.getTrackId()]}),mae=Or(),gae=hn({argsMap:r=>[r.getTrackId()]}),vae=Or(),yae=hn({argsMap:r=>[r.getTrackId()]}),_ae=hn({argsMap:r=>[r.getTrackId()]}),Eae=Or(),Qn((Ys=class extends br{get __className__(){return"BufferSourceAudioTrack"}constructor(r,a,o,c){super(a.createOutputTrack(),o,c),qe(this,"source",void 0),qe(this,"_bufferSource",void 0),this._useAudioElement=!1,this.source=r,this._bufferSource=a,this._bufferSource.on(xc.AUDIO_SOURCE_STATE_CHANGE,f=>{this.safeEmit(db.SOURCE_STATE_CHANGE,f)});try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}}get currentState(){return this._bufferSource.currentState}get duration(){return this._bufferSource.duration}get playbackSpeed(){return this._bufferSource.playbackSpeed}getCurrentTime(){return this._bufferSource.currentTime}startProcessAudioBuffer(r){r&&this._bufferSource.updateOptions(r),this._bufferSource.startProcessAudioBuffer()}pauseProcessAudioBuffer(){this._bufferSource.pauseProcessAudioBuffer()}seekAudioBuffer(r){this._bufferSource.seekAudioBuffer(r)}resumeProcessAudioBuffer(){this._bufferSource.resumeProcessAudioBuffer()}stopProcessAudioBuffer(){this._bufferSource.stopProcessAudioBuffer()}close(){this.source=null,this._bufferSource.destroy(),super.close()}setAudioBufferPlaybackSpeed(r){Ti(r,"speed",0),this._bufferSource.setAudioBufferPlaybackSpeed(r)}}).prototype,"startProcessAudioBuffer",[lae,cae],Object.getOwnPropertyDescriptor(Ys.prototype,"startProcessAudioBuffer"),Ys.prototype),Qn(Ys.prototype,"pauseProcessAudioBuffer",[dae,uae],Object.getOwnPropertyDescriptor(Ys.prototype,"pauseProcessAudioBuffer"),Ys.prototype),Qn(Ys.prototype,"seekAudioBuffer",[hae,fae],Object.getOwnPropertyDescriptor(Ys.prototype,"seekAudioBuffer"),Ys.prototype),Qn(Ys.prototype,"resumeProcessAudioBuffer",[pae,mae],Object.getOwnPropertyDescriptor(Ys.prototype,"resumeProcessAudioBuffer"),Ys.prototype),Qn(Ys.prototype,"stopProcessAudioBuffer",[gae,vae],Object.getOwnPropertyDescriptor(Ys.prototype,"stopProcessAudioBuffer"),Ys.prototype),Qn(Ys.prototype,"close",[yae],Object.getOwnPropertyDescriptor(Ys.prototype,"close"),Ys.prototype),Qn(Ys.prototype,"setAudioBufferPlaybackSpeed",[_ae,Eae],Object.getOwnPropertyDescriptor(Ys.prototype,"setAudioBufferPlaybackSpeed"),Ys.prototype),Ys);class ns extends br{get __className__(){return"MixingAudioTrack"}get isActive(){for(let a of this.trackList)if(a._enabled&&!a._isClosed&&!a.muted)return!0;return!1}constructor(){let a=fb().createMediaStreamDestination();super(a.stream.getAudioTracks()[0],void 0,Di(8,"track-mix-")),qe(this,"trackList",void 0),qe(this,"destNode",void 0),this._useAudioElement=!1;try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}this.destNode=a,this.trackList=[]}hasAudioTrack(a){return this.trackList.indexOf(a)!==-1}addAudioTrack(a){this.trackList.indexOf(a)===-1?(z.debug("add ".concat(a.getTrackId()," to mixing track")),a._source.outputNode.connect(this.destNode),this.trackList.push(a),this.updateEncoderConfig()):z.debug("track ".concat(a.getTrackId()," is already added"))}removeAudioTrack(a){if(this.trackList.indexOf(a)!==-1){z.debug("remove ".concat(a.getTrackId()," from mixing track"));try{a._source.outputNode.disconnect(this.destNode)}catch{}L8(this.trackList,a),this.updateEncoderConfig()}}updateEncoderConfig(){let a={};this.trackList.forEach(o=>{o._encoderConfig&&((o._encoderConfig.bitrate||0)>(a.bitrate||0)&&(a.bitrate=o._encoderConfig.bitrate),(o._encoderConfig.sampleRate||0)>(a.sampleRate||0)&&(a.sampleRate=o._encoderConfig.sampleRate),(o._encoderConfig.sampleSize||0)>(a.sampleSize||0)&&(a.sampleSize=o._encoderConfig.sampleSize),o._encoderConfig.stereo&&(a.stereo=!0))}),this._encoderConfig=a}_updateRtpTransceiver(a){this._rtpTransceiver!==a&&(this._rtpTransceiver=a,this.trackList.forEach(o=>{o instanceof ns?o.emit(i_.TRANSCEIVER_UPDATED,a):o._updateRtpTransceiver(a)}))}}class t4e extends Sse{set currentState(a){a!==this._currentState&&(this._currentState=a,this.safeEmit(xc.AUDIO_SOURCE_STATE_CHANGE,this._currentState))}get currentState(){return this._currentState}constructor(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),qe(this,"audioBuffer",void 0),qe(this,"sourceNode",void 0),qe(this,"startPlayTime",0),qe(this,"startPlayOffset",0),qe(this,"pausePlayTime",0),qe(this,"options",void 0),qe(this,"currentLoopCount",0),qe(this,"currentPlaybackSpeed",100),qe(this,"_currentState","stopped"),this.audioBuffer=a,this.options=o,this.startPlayOffset=this.options.startPlayTime||0}createWebAudioDiagram(){return this.context.createGain()}get duration(){return this.audioBuffer?this.audioBuffer.duration:0}get playbackSpeed(){return this.currentPlaybackSpeed}get currentTime(){return this.audioBuffer?this.currentState==="stopped"?0:this.currentState==="paused"?this.pausePlayTime:((this.context.currentTime-this.startPlayTime)*(this.playbackSpeed/100)+this.startPlayOffset)%this.audioBuffer.duration:0}updateOptions(a){this.currentState==="stopped"?(this.options=a,this.startPlayOffset=this.options.startPlayTime||0):z.warning("can not set audio source options")}startProcessAudioBuffer(){this.sourceNode&&this.stopProcessAudioBuffer(),this.sourceNode=this.createSourceNode(),this.startSourceNode(),this.currentState="playing"}pauseProcessAudioBuffer(){this.sourceNode&&this.currentState==="playing"&&(this.pausePlayTime=this.currentTime,this.sourceNode.onended=null,this.sourceNode.stop(),this.sourceNode.buffer=null,this.sourceNode=this.createSourceNode(),this.currentState="paused")}seekAudioBuffer(a){this.sourceNode&&(this.sourceNode.onended=null,this.currentState==="playing"&&this.sourceNode.stop(),this.sourceNode=this.createSourceNode(),this.currentState==="playing"?(this.startPlayOffset=a,this.startSourceNode()):this.currentState==="paused"&&(this.pausePlayTime=a))}resumeProcessAudioBuffer(){this.currentState==="paused"&&this.sourceNode&&(this.startPlayOffset=this.pausePlayTime,this.pausePlayTime=0,this.startSourceNode(),this.currentState="playing")}stopProcessAudioBuffer(){if(this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop()}catch{}this.reset()}}destroy(){this.audioBuffer=null,super.destroy()}setAudioBufferPlaybackSpeed(a){this.sourceNode&&(this.currentState==="playing"&&(this.startPlayOffset=this.currentTime,this.startPlayTime=this.context.currentTime),this.sourceNode.playbackRate.value=a/100),this.currentPlaybackSpeed=a}startSourceNode(){this.sourceNode&&this.sourceNode.buffer&&(this.sourceNode.start(0,this.startPlayOffset),this.startPlayTime=this.context.currentTime,this.sourceNode.onended=this.handleSourceNodeEnded.bind(this))}createSourceNode(){let a=this.context.createBufferSource();return a.buffer=this.audioBuffer,a.loop=!!this.options.loop,a.connect(this.outputNode),a.playbackRate.value=this.currentPlaybackSpeed/100,a}handleSourceNodeEnded(){if(this.currentLoopCount+=1,this.options.cycle&&this.options.cycle>this.currentLoopCount)return this.startPlayOffset=0,this.sourceNode=void 0,void this.startProcessAudioBuffer();this.reset()}reset(){this.startPlayOffset=this.options.startPlayTime||0,this.currentState="stopped",this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=void 0),this.currentLoopCount=0}}let wae=new Map;class vW{get rendFrameRate(){if(this.renderStats&&this.renderStats.curTs!==this.renderStats.lastTs){let a=this.renderStats.curTs-this.renderStats.lastTs,o=(this.renderStats.renderNum-this.renderStats.lastRenderNum)/a;return this.renderStats.lastRenderNum=this.renderStats.renderNum,this.renderStats.lastTs=this.renderStats.curTs,o}return 0}get videoElementStatus(){return this._videoElementStatus}set videoElementStatus(a){a!==this._videoElementStatus&&(z.debug("[".concat(this.trackId,"] video-element-status change ").concat(this._videoElementStatus," => ").concat(a)),this._videoElementStatus=a)}get videoState(){return this._videoState}set videoState(a){var o;a!==this._videoState&&(this._videoState=a,(o=this.onVideoStateChanged)===null||o===void 0||o.call(this,this.videoState))}constructor(a){qe(this,"trackId",void 0),qe(this,"config",void 0),qe(this,"onFirstVideoFrameDecoded",void 0),qe(this,"onVideoStateChanged",void 0),qe(this,"freezeTimeCounterList",[]),qe(this,"renderFreezeAccTime",0),qe(this,"isKeepLastFrame",!1),qe(this,"timeUpdatedCount",0),qe(this,"freezeTime",0),qe(this,"playbackTime",0),qe(this,"lastTimeUpdatedTime",0),qe(this,"autoplayFailed",!1),qe(this,"videoTrack",void 0),qe(this,"videoElement",void 0),qe(this,"cacheVideoElement",void 0),qe(this,"renderStats",void 0),qe(this,"_videoState",Hf.VideoStateStopped),qe(this,"videoElementCheckInterval",void 0),qe(this,"videoElementFreezeTimeout",void 0),qe(this,"_videoElementStatus",Da.NONE),qe(this,"isGettingVideoDimensions",!1),qe(this,"startGetVideoDimensions",()=>{let o=()=>{if(this.isGettingVideoDimensions=!0,this.videoElement.videoWidth*this.videoElement.videoHeight>4)return z.debug("[".concat(this.trackId,"] current video dimensions:"),this.videoElement.videoWidth,this.videoElement.videoHeight),void(this.isGettingVideoDimensions=!1);setTimeout(o,500)};!this.isGettingVideoDimensions&&o()}),qe(this,"autoResumeAfterInterruption",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&Si.curState==="running"&&(z.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(Tne())),Dne()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),qe(this,"handleVideoEvents",o=>{switch(o.type){case"play":case"playing":this.startGetVideoDimensions(),this.videoElementStatus=Da.PLAYING;break;case"loadeddata":if(this.videoState=Hf.VideoStateStarting,this.onFirstVideoFrameDecoded&&this.onFirstVideoFrameDecoded(),this.cacheVideoElement){try{this.cacheVideoElement.srcObject=null,this.cacheVideoElement.remove()}catch{}this.cacheVideoElement=void 0}break;case"canplay":this.videoElementStatus=Da.CANPLAY;break;case"stalled":this.videoElementStatus=Da.STALLED;break;case"suspend":this.videoElementStatus=Da.SUSPEND;break;case"pause":this.videoElementStatus=Da.PAUSED,ra()||fu()||gs()&&this.autoplayFailed||!this.videoTrack||this.videoTrack.readyState!=="live"||(z.debug("[track-".concat(this.trackId,"] video element paused, auto resume")),this.videoElement.play());break;case"waiting":this.videoElementStatus=Da.WAITING;break;case"abort":this.videoElementStatus=Da.ABORT;break;case"ended":this.videoElementStatus=Da.ENDED;break;case"emptied":this.videoElementStatus=Da.EMPTIED;break;case"error":{let c=this.videoElement.error;c?(this.videoElementStatus=Da.ERROR,z.error("[".concat(this.trackId,"] media error: ").concat(c.message," (").concat(c.code,")"))):z.debug("[".concat(this.trackId,"] media not been an error."));break}case"timeupdate":{let c=performance.now();if(this.timeUpdatedCount+=1,this.timeUpdatedCount<10)return void(this.lastTimeUpdatedTime=c);let f=c-this.lastTimeUpdatedTime,m=this.lastTimeUpdatedTime;if(this.lastTimeUpdatedTime=c,bm.lastVisibleTimeve("VIDEO_FREEZE_DURATION")&&(this.freezeTime+=f),this.playbackTime+=f;this.playbackTime>=6e3;){this.playbackTime-=6e3;let v=Math.min(6e3,this.freezeTime);this.freezeTimeCounterList.push(v),this.freezeTime=Math.max(0,this.freezeTime-6e3)}break}}}),qe(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&(z.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(Tne())),Dne()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),this.trackId=a.trackId,this.config=a,a.element instanceof HTMLVideoElement?this.videoElement=a.element:this.videoElement=document.createElement("video"),Si.on(js.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),Si.on(js.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16)}getVideoElement(){return this.videoElement}getContainerElement(){var a;return(a=this.videoElement.parentElement)!==null&&a!==void 0?a:void 0}updateConfig(a){this.config=a,this.trackId=a.trackId,a.element!==this.videoElement&&(this.destroy(),this.videoElement=a.element),this.videoTrack&&this.initVideoElement()}updateVideoTrack(a){this.videoTrack!==a&&(this.videoTrack=a,this.initVideoElement())}play(a){let o=this.videoElement.play();o&&o.catch&&o.catch(f=>{a&&Ise(a,"video",f.message,this.trackId),f.name==="NotAllowedError"?(z.warning("detected video element autoplay failed",f),this.autoplayFailed=!0,this.handleAutoPlayFailed()):z.warning("[".concat(this.trackId,"] play warning: "),f)});let c=ni();if((c.name==="Safari"&&Number(c.version)===15||jS())&&o&&o.then){let f=()=>{this.config.mirror&&(this.videoElement.style.transform="rotateY(180deg)")};o.then(f).catch(f)}}getCurrentFrame(){let a=document.createElement("canvas");a.width=this.videoElement.videoWidth,a.height=this.videoElement.videoHeight;let o=a.getContext("2d");if(!o)return z.error("create canvas context failed!"),new ImageData(2,2);o.drawImage(this.videoElement,0,0,a.width,a.height);let c=o.getImageData(0,0,a.width,a.height);return a.remove(),c}async getCurrentFrameToUint8Array(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,c=document.createElement("canvas");c.width=this.videoElement.videoWidth,c.height=this.videoElement.videoHeight;let f=c.getContext("2d");return f?(f.drawImage(this.videoElement,0,0,c.width,c.height),new Ct((m,v)=>{c.toBlob(async w=>{if(c.remove(),w){let C=await jse(w);m({buffer:C,width:c.width,height:c.height})}else v(new Ke(ce.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},a,o<0?.1:o>1?1:o)})):await gW(a)}destroy(){this.renderStats=void 0,Si.off(js.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),Si.off(js.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),this.videoElement.srcObject=null,this.resetVideoElement(),this.freezeTimeCounterList=[],this.videoState=Hf.VideoStateStopped}initVideoElement(){if(this.videoElementStatus=Da.INIT,!this.videoElementCheckInterval&&(Sae.forEach(m=>{this.videoElement.addEventListener(m,this.handleVideoEvents)}),this.videoElementCheckInterval=window.setInterval(()=>{(function(m){return m!==document.body&&document.body.contains(m)})(this.videoElement)||(this.videoElementStatus=Da.DESTROYED)},1e3),ve("ENABLE_VIDEO_FRAME_CALLBACK"))){var a,o;let m,v=()=>{document.visibilityState==="visible"&&(document.removeEventListener("visibilitychange",v),this.videoElementFreezeTimeout=window.setTimeout(w,ve("VIDEO_FREEZE_DURATION")))},w=()=>{this.videoElementFreezeTimeout=void 0,this.videoState===Hf.VideoStateDecoding&&(document.visibilityState==="visible"?this.videoState=Hf.VideoStateFrozen:document.addEventListener("visibilitychange",v))},C=(R,x)=>{if(this.videoElementStatus===Da.PLAYING){if(this.renderStats?(this.renderStats.renderNum++,this.renderStats.curTs=x.mediaTime):this.renderStats={lastTs:x.mediaTime,curTs:x.mediaTime,lastRenderNum:0,renderNum:0},m){let F=x.presentationTime-m.presentationTime;this.videoState===Hf.VideoStateStarting&&(this.videoState=Hf.VideoStateDecoding),this.videoState===Hf.VideoStateDecoding&&this.onVideoStateChanged&&(this.videoElementFreezeTimeout&&window.clearTimeout(this.videoElementFreezeTimeout),this.videoElementFreezeTimeout=window.setTimeout(w,ve("VIDEO_FREEZE_DURATION"))),Fve("VIDEO_FREEZE_DURATION")&&bm.lastVisibleTime>=bm.lastHiddenTime&&m.timestamp>bm.lastVisibleTime&&m.timestamp>bm.lastHiddenTime&&(this.renderFreezeAccTime+=F)}m=ir(ir({},x),{},{timestamp:R})}var L,U;ve("ENABLE_VIDEO_FRAME_CALLBACK")&&((L=(U=this.videoElement).requestVideoFrameCallback)===null||L===void 0||L.call(U,C))};(a=(o=this.videoElement).requestVideoFrameCallback)===null||a===void 0||a.call(o,C)}this.videoElement.controls=!1,this.videoElement.setAttribute("playsinline",""),P8()&&!ve("HIDE_NO_POSTER")&&(this.videoElement.poster="noposter");let c=ni();c.name==="Safari"&&Number(c.version)===15||jS()||!this.config.mirror||(this.videoElement.style.transform="rotateY(180deg)"),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover",this.videoElement.setAttribute("muted",""),this.videoElement.muted=!0,this.videoElement.srcObject&&this.videoElement.srcObject instanceof MediaStream?this.videoElement.srcObject.getVideoTracks()[0]!==this.videoTrack&&(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,Pi()&&this.videoElement.load()):(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,Pi()&&this.videoElement.load());let f=this.videoElement.play();f!==void 0&&f.catch(m=>{z.debug("[".concat(this.trackId,"] playback interrupted"),m.toString())})}resetVideoElement(){Sae.forEach(a=>{this.videoElement&&this.videoElement.removeEventListener(a,this.handleVideoEvents)}),this.videoElementCheckInterval&&(window.clearInterval(this.videoElementCheckInterval),this.videoElementCheckInterval=void 0),this.videoElementStatus=Da.NONE}handleAutoPlayFailed(){let a=o=>{o.preventDefault(),this.videoElement.play().then(()=>{z.debug("[".concat(this.trackId,"] Video element for trackId:").concat(this.trackId," autoplay resumed."))}).catch(c=>{z.error(c)}),this.autoplayFailed=!1,h3()?document.body.removeEventListener("click",a,!0):(document.body.removeEventListener("touchstart",a,!0),document.body.removeEventListener("mousedown",a,!0))};h3()?document.body.addEventListener("click",a,!0):(document.body.addEventListener("touchstart",a,!0),document.body.addEventListener("mousedown",a,!0)),Ase()}}let Sae=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","timeupdate","error"];class bae extends vW{constructor(a){super(a),qe(this,"container",void 0),qe(this,"slot",void 0),this.slot=a.element,this.updateConfig(a)}updateConfig(a){this.config=a,this.trackId=a.trackId;let o=a.element;o!==this.slot&&(this.destroy(),this.slot=o),this.createElements()}updateVideoTrack(a){this.videoTrack!==a&&(this.videoTrack=a,this.createElements())}play(a){var o;(o=this.container)!==null&&o!==void 0&&o.contains(this.videoElement)&&super.play(a)}getCurrentFrame(){var a;return(a=this.container)!==null&&a!==void 0&&a.contains(this.videoElement)?super.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameToUint8Array(a){var o;let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return(o=this.container)!==null&&o!==void 0&&o.contains(this.videoElement)?await super.getCurrentFrameToUint8Array(a,c):await gW(a)}destroy(){if(super.destroy(),this.videoElement.remove(),this.videoElement=document.createElement("video"),this.container){try{this.container.remove(),this.slot.removeChild(this.container)}catch{}this.container=void 0}}createElements(){this.container||(this.container=document.createElement("div")),this.container.id="agora-video-player-".concat(this.trackId),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.overflow="hidden",this.videoTrack?(this.container.style.backgroundColor="black",ve("KEEP_LAST_FRAME")&&this.isKeepLastFrame&&this.videoElement.paused&&this.resetVideoElement(),this.mountedVideoElement()):this.unmountedVideoElement(),this.slot.appendChild(this.container)}mountedVideoElement(){var a;!this.container||(a=this.container)!==null&&a!==void 0&&a.contains(this.videoElement)||this.container.appendChild(this.videoElement),super.initVideoElement(),this.videoElement.id="video_".concat(this.trackId),this.videoElement.className="agora_video_player",this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.left="0",this.videoElement.style.top="0"}unmountedVideoElement(){var a;if((a=this.container)!==null&&a!==void 0&&a.contains(this.videoElement)){super.resetVideoElement();try{this.container&&this.container.removeChild(this.videoElement)}catch{}this.videoElement=document.createElement("video")}}resetVideoElement(){var a;(a=this.container)!==null&&a!==void 0&&a.contains(this.videoElement)&&(super.resetVideoElement(),this.cacheVideoElement=this.videoElement,this.videoElement=document.createElement("video"))}getContainerElement(){return this.container}}var Cae,Tae,Rae,xae,Aae,Iae,Nae,Oae,Pae,Lae,Dae,kae,Mae,jae,Uae,Fae,Bae,Vae,zae,Hae,Gae,Wae,$ae,Kae,qae,Wn,Yae,Xae,Jae,Qae,Zae,eoe,toe,noe,Lc;let ki=(Cae=hn({argsMap:(r,a,o)=>[r.getTrackId(),typeof a=="string"?a:a instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",o]}),Tae=Or(),Rae=hn({argsMap:r=>[r.getTrackId()]}),xae=BS("LocalVideoTrack","_enabledMutex"),Aae=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),Iae=Or(),Nae=BS("LocalVideoTrack","_enabledMutex"),Oae=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),Pae=Or(),Lae=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),Dae=Or(),kae=Or(),Mae=hn({argsMap:(r,a,o)=>[r.getTrackId(),a,o]}),jae=Or(),Uae=Or(),Fae=Or(),Bae=Or(),Vae=Or(),zae=Or(),Hae=Or(),Gae=hn({argsMap:(r,a)=>[r.getTrackId(),a.name]}),Wae=hn({argsMap:r=>[r.getTrackId()]}),$ae=hn({argsMap:r=>[r.getTrackId()]}),Kae=hn({argsMap:(r,a,o)=>[r.getTrackId(),a.label,o]}),qae=hn(),Wn=class h0e extends hb{get videoHeight(){if(gs()){let{height:a}=this._mediaStreamTrack.getSettings();return this._videoHeight=a,this._videoHeight}return this._videoHeight}get videoWidth(){if(gs()){let{width:a}=this._mediaStreamTrack.getSettings();return this._videoWidth=a,this._videoWidth}return this._videoWidth}get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Da.PLAYING)}get processorDestination(){return this._processorDestination}get processorContext(){return this._processorContext}set processorContext(a){this._processorContext=a}get __className__(){return"LocalVideoTrack"}constructor(a,o,c,f,m,v){if(super(a,m),qe(this,"trackMediaType","video"),qe(this,"_player",void 0),qe(this,"isUseScaleResolutionDownBy",!1),qe(this,"_videoVisibleTimer",null),qe(this,"_statsTimer",null),qe(this,"_previousVideoVisibleStatus",void 0),qe(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),qe(this,"_encoderConfig",void 0),qe(this,"_scalabilityMode",{numSpatialLayers:1,numTemporalLayers:1}),qe(this,"_optimizationMode",void 0),qe(this,"_videoHeight",void 0),qe(this,"_videoWidth",void 0),qe(this,"_forceBitrateLimit",void 0),qe(this,"_enabled",!0),qe(this,"_processorDestination",void 0),qe(this,"_processorContext",void 0),gs()){let{width:w,height:C}=a.getSettings();this._videoWidth=w,this._videoHeight=C}else this.updateMediaStreamTrackResolution();if(this._encoderConfig=o,this._scalabilityMode=c,this._optimizationMode=f,this._hints=v||[],this._hints.indexOf(Hi.SCREEN_TRACK)===-1)this.updateBitrateFromProfile();else if(function(w,C,R){let x=ni();return!(x.name!==w||!x.osVersion)&&Number(x.version)===C}(fi.CHROME,115)&&N8().indexOf("Windows")!==-1){let w=function(C,R){if("VideoFrame"in window&&"TransformStream"in window&&Jn().supportWebRTCInsertableStream){let x=new MediaStreamTrackProcessor(C),L=new MediaStreamTrackGenerator({kind:"video"}),U,F,Z=Date.now(),W=()=>{K&&(clearInterval(K),K=void 0),U&&(U.close(),U=void 0),C.stop(),F=void 0,L.removeEventListener("ended",W)},K=window.setInterval(()=>{if(F&&U&&Date.now()-Z>1e3)try{L.readyState==="live"?F.enqueue(U.clone()):W()}catch{W()}},1e3),oe=new TransformStream({transform:(ue,xe)=>{L.readyState==="live"?(F=xe,Z=Date.now(),U===void 0?(U=ue,xe.enqueue(ue.clone())):(xe.enqueue(U),U=ue)):ue.close()}});return L.addEventListener("ended",W),x.readable.pipeThrough(oe).pipeTo(L.writable),L}}(a);w&&(z.info("local screen video track begin to inject frame"),this._mediaStreamTrack=w)}o&&this._hints.indexOf(Hi.CUSTOM_TRACK)!==-1&&this.setEncoderConfiguration(o),this._processorContext=new Ose(this.getTrackId(),"local"),this._processorDestination=new Nse(this.processorContext),this.bindProcessorDestinationEvents()}play(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof a=="string"){let f=document.getElementById(a);f?a=f:(z.warning("[".concat(this.getTrackId(),'] can not find "#').concat(a,'" element, use document.body')),a=document.body)}z.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(a instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(o));let c=ir(ir(ir({},this._getDefaultPlayerConfig()),o),{},{trackId:this.getTrackId(),element:a});this._player?this._player.updateConfig(c):(a instanceof HTMLVideoElement?this._player=new vW(c):this._player=new bae(c),this._player.updateVideoTrack(this._mediaStreamTrack)),this._player.play(),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{let f=this.getVideoElementVisibleStatus();this.safeEmit(db.VIDEO_ELEMENT_VISIBLE_STATUS,f)}catch{}},ve("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._statsTimer&&(this.isUseScaleResolutionDownBy=!1,window.clearInterval(this._statsTimer),this._statsTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,z.debug("[".concat(this.getTrackId(),"] stop video playback")))}async setEnabled(a,o){if(!o){if(a===this._enabled)return;this.stateCheck("enabled",a)}if(z.info("[".concat(this.getTrackId(),"] start setEnabled"),a),!a){this._originMediaStreamTrack.enabled=!1;try{await Li(this,Mt.NEED_DISABLE_TRACK,this)}catch(c){throw z.error("[".concat(this.getTrackId(),"] setEnabled to false error"),c.toString()),c}return o||(this._enabled=!1),void z.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}this._originMediaStreamTrack.enabled=!0;try{await Li(this,Mt.NEED_ENABLE_TRACK,this)}catch(c){throw z.error("[".concat(this.getTrackId(),"] setEnabled to true error"),c.toString()),c}z.info("[".concat(this.getTrackId(),"] setEnabled to true success")),o||(this._enabled=!0)}async setMuted(a){a!==this._muted&&(this.stateCheck("muted",a),this._muted=a,this._originMediaStreamTrack.enabled=!a,z.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(a)),a?await Li(this,Mt.NEED_MUTE_TRACK,this):await Li(this,Mt.NEED_UNMUTE_TRACK,this))}async setEncoderConfiguration(a,o){if(!this._enabled)throw new Ke(ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");if(a==="720p_auto"?this.startMonitorStats():this._statsTimer&&(window.clearInterval(this._statsTimer),this._statsTimer=null),a=zf(a),this._forceBitrateLimit&&(a.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:a.bitrateMax,a.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:a.bitrateMin),a.width||a.height||a.frameRate){let c=bD({encoderConfig:a});(gs()||ra()||fu())&&(c.deviceId=void 0),z.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(a),JSON.stringify(c));try{await this._originMediaStreamTrack.applyConstraints(c),this.updateMediaStreamTrackResolution()}catch(f){let m=new Ke(ce.UNEXPECTED_ERROR,f.toString());throw z.error("[".concat(this.getTrackId(),"] applyConstraints error"),m.toString()),m}}this._encoderConfig=a,this._hints.indexOf(Hi.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Li(this,Mt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(c){return c.throw(z)}}getStats(){return T0(()=>{z.warning("[deprecated] LocalVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalVideoStats instead")},"localVideoTrackGetStatsWarning"),Ml(this,Mt.GET_STATS)||ir({},cW)}async setBeautyEffect(a){z.error("LocalVideoTrack.setBeautyEffect was deprecated, please migrate to agora-extension-beauty-effect")}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameImage(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return this._player?this._player.getCurrentFrameToUint8Array(a,o):await gW(a)}async setBitrateLimit(a){if(z.debug("[".concat(this.getTrackId(),"] set bitrate limit, ").concat(JSON.stringify(a))),a){this._forceBitrateLimit=a,this._encoderConfig&&(this._encoderConfig.bitrateMax?this._encoderConfig.bitrateMax=this._encoderConfig.bitrateMax{let[o,c]=a;this._videoHeight=c,this._videoWidth=o}).catch(k8)}_updatePlayerSource(){this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}_getDefaultPlayerConfig(){return{fit:"contain"}}async setSenderConfiguration(a){if(!this._enabled)throw new Ke(ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");z.debug("[".concat(this.getTrackId(),"] setSenderConfiguration applyConstraints"),JSON.stringify(a)),a=zf(a),this._forceBitrateLimit&&(a.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:a.bitrateMax,a.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:a.bitrateMin),this._encoderConfig=a,this._hints.indexOf(Hi.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Li(this,Mt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(o){return o.throw(z)}}updateBitrateFromProfile(){if(!this._encoderConfig)return;let{width:a,height:o,frameRate:c}=this.getMediaStreamTrackSettings();if(!a||!o||!c)return;let{bitrateMax:f,bitrateMin:m}=this._encoderConfig;if(m==null||f==null){let{max:v,min:w}=function(C,R,x,L,U){let F=ve("BITRATE_ADAPTER_TYPE");if(F==="DEFAULT_BITRATE")return{min:L,max:U};if(U===void 0){var Z;let K=Math.floor(200*Math.pow(x/15,.6)*Math.pow(C*R/640/360,.75));U=F==="STANDARD_BITRATE"?4*K:2*K,L=(Z=L)!==null&&Z!==void 0?Z:K}else{var W;L=(W=L)!==null&&W!==void 0?W:Math.floor(U/10)}return{min:L,max:U}}(a,o,c,m,f);this._encoderConfig.bitrateMin=w,this._encoderConfig.bitrateMax=v,z.debug("[".concat(this.getTrackId(),"] update bitrate from profile, [w: ").concat(a,", h: ").concat(o,", fps: ").concat(c,"] => [brMax: ").concat(v,", brMin: ").concat(w,"]"))}}getVideoElementVisibleStatus(){try{var a,o;let c=this==null||(a=this._player)===null||a===void 0?void 0:a.getContainerElement(),f={track:this,element:this==null||(o=this._player)===null||o===void 0?void 0:o.getVideoElement(),slot:c==null?void 0:c.parentElement},{element:m,slot:v}=f;if(this.isPlaying&&m instanceof HTMLVideoElement&&v instanceof HTMLElement){let w=Vne.checkOneElementVisible(m),C=Object.assign({},w);if(C.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=C.visible;let R=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});C.visible?R.onSuccess("Video is visible"):R.onSuccess("Invisible because of ".concat(C.reason))}return C}return}catch(c){throw new Ke(ce.GET_VIDEO_ELEMENT_VISIBLE_ERROR,c.message)}}async renewMediaStreamTrack(a){}pipe(a){if(this.processor===a)return a;if(a._source)throw new Ke(ce.INVALID_OPERATION,"Processor ".concat(a.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=a,this.processor._source=this,a.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),a}unpipe(){if(!this.processor)return;let a=this.processor;this.processor._source=void 0,this.processor=void 0,a.reset()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe()}clone(a){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],c=this._encoderConfig;a&&(c=ir(ir({},c),zf(a))),c=zy(c);let f=Di(8,"track-video-cloned-"),m=new h0e(o?this._mediaStreamTrack.clone():this._mediaStreamTrack,c,zy(this._scalabilityMode),this._optimizationMode,f,zy(this._hints));return a&&c&&m.setEncoderConfiguration(c),z.debug("clone video track from ".concat(this.getTrackId()," to ").concat(f,", clone ").concat(o)),m}async replaceTrack(a,o){if(!(a instanceof MediaStreamTrack))throw new Ke(ce.INVALID_PARAMS,"track should be an instance of MediaStreamTrack");if(a.kind!=="video")throw new Ke(ce.INVALID_PARAMS,"track should be a video MediaStreamTrack");await this._updateOriginMediaStreamTrack(a,o,!0),this.updateMediaStreamTrackResolution()}startMonitorStats(){if(!gs()&&!ra())return;this._statsTimer&&window.clearInterval(this._statsTimer);let a=2,o=yD[a],c=-1,f=Date.now(),m=v=>{v>2||v<0||(f=Date.now(),o=yD[v],this.setSenderConfiguration(o))};this.isUseScaleResolutionDownBy=!0,this._statsTimer=window.setInterval(()=>{let v=this.getStats(),w=Ml(this,Mt.GET_RTC_STATS);if(v.sendPackets>0&&w){c===-1&&(c=Date.now());let C=Date.now();if(C-c<1e3||C-f0&&R0&&(a--,m(a),z.debug("[".concat(this.getTrackId(),"] step down for fps ").concat(R,", switchProfile to ").concat(a))):w.OutgoingAvailableBandwidth0&&(a--,m(a),z.debug("[".concat(this.getTrackId(),"] step down for OutgoingAvailableBandwidth ").concat(w.OutgoingAvailableBandwidth,", bitrateMin ").concat(o.bitrateMin,", switchProfile to ").concat(a))):typeof R=="number"&&R>L&&a1.2*yD[a+1].bitrateMin&&(a++,m(a),z.debug("[".concat(this.getTrackId(),"] step up for fps ").concat(R,", OutgoingAvailableBandwidth ").concat(w.OutgoingAvailableBandwidth,", switchProfile to ").concat(a)))}},ve("CHECK_LOCAL_STATS_INTERVAL"))}sendSeiData(a){if(T0(()=>{$t.reportApiInvoke(null,{name:$r.LOCAL_VIDEO_SEND_SEI_DATA,options:[],tag:vr.TRACER}).onSuccess("")},this._mediaStreamTrack.id||this.getTrackId()),!ve("ENABLE_VIDEO_SEI")||!ve("ENABLE_ENCODED_TRANSFORM"))return void z.warning('To send/receive SEI, please call AgoraRTC.setParameter("ENABLE_VIDEO_SEI", true) before instantiate IAgoraRtcClient');if(a instanceof Uint8Array==0)return new Ke(ce.INVALID_PARAMS,"Invalid argument type, ILocalVideoTrack.sendSeiData() only accept Uint8Array argument.").throw();let o=this.getRTCRtpTransceiver();if(!o)return void z.warning("Video track is not published, SEI can not be send");let c=o.sender.getParameters();if(c.codecs.length===0)return;let f=c.codecs[0].mimeType.toLocaleLowerCase();f==="video/h264"?this.safeEmit("sei-to-send",a):z.warning("SEI is not supported by ".concat(f))}bindProcessorDestinationEvents(){this.processorDestination.on(so.ON_TRACK,async a=>{a?a!==this._mediaStreamTrack&&(this._mediaStreamTrack=a,this._updatePlayerSource(),await Li(this,Mt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Li(this,Mt.NEED_REPLACE_TRACK,this))})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(so.ON_TRACK)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(Ac.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(Ac.REQUEST_CONSTRAINTS)}},Qn(Wn.prototype,"play",[Cae,Tae],Object.getOwnPropertyDescriptor(Wn.prototype,"play"),Wn.prototype),Qn(Wn.prototype,"stop",[Rae],Object.getOwnPropertyDescriptor(Wn.prototype,"stop"),Wn.prototype),Qn(Wn.prototype,"setEnabled",[xae,Aae,Iae],Object.getOwnPropertyDescriptor(Wn.prototype,"setEnabled"),Wn.prototype),Qn(Wn.prototype,"setMuted",[Nae,Oae,Pae],Object.getOwnPropertyDescriptor(Wn.prototype,"setMuted"),Wn.prototype),Qn(Wn.prototype,"setEncoderConfiguration",[Lae,Dae],Object.getOwnPropertyDescriptor(Wn.prototype,"setEncoderConfiguration"),Wn.prototype),Qn(Wn.prototype,"getStats",[kae],Object.getOwnPropertyDescriptor(Wn.prototype,"getStats"),Wn.prototype),Qn(Wn.prototype,"setBeautyEffect",[Mae,jae],Object.getOwnPropertyDescriptor(Wn.prototype,"setBeautyEffect"),Wn.prototype),Qn(Wn.prototype,"getCurrentFrameData",[Uae],Object.getOwnPropertyDescriptor(Wn.prototype,"getCurrentFrameData"),Wn.prototype),Qn(Wn.prototype,"getCurrentFrameImage",[Fae],Object.getOwnPropertyDescriptor(Wn.prototype,"getCurrentFrameImage"),Wn.prototype),Qn(Wn.prototype,"setBitrateLimit",[Bae],Object.getOwnPropertyDescriptor(Wn.prototype,"setBitrateLimit"),Wn.prototype),Qn(Wn.prototype,"setOptimizationMode",[Vae],Object.getOwnPropertyDescriptor(Wn.prototype,"setOptimizationMode"),Wn.prototype),Qn(Wn.prototype,"setScalabiltyMode",[zae],Object.getOwnPropertyDescriptor(Wn.prototype,"setScalabiltyMode"),Wn.prototype),Qn(Wn.prototype,"updateMediaStreamTrackResolution",[Hae],Object.getOwnPropertyDescriptor(Wn.prototype,"updateMediaStreamTrackResolution"),Wn.prototype),Qn(Wn.prototype,"pipe",[Gae],Object.getOwnPropertyDescriptor(Wn.prototype,"pipe"),Wn.prototype),Qn(Wn.prototype,"unpipe",[Wae],Object.getOwnPropertyDescriptor(Wn.prototype,"unpipe"),Wn.prototype),Qn(Wn.prototype,"close",[$ae],Object.getOwnPropertyDescriptor(Wn.prototype,"close"),Wn.prototype),Qn(Wn.prototype,"replaceTrack",[Kae],Object.getOwnPropertyDescriptor(Wn.prototype,"replaceTrack"),Wn.prototype),Qn(Wn.prototype,"startMonitorStats",[qae],Object.getOwnPropertyDescriptor(Wn.prototype,"startMonitorStats"),Wn.prototype),Wn),yW=(Yae=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),Xae=Or(),Jae=BS("CameraVideoTrack","_enabledMutex"),Qae=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),Zae=Or(),eoe=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),toe=Or(),noe=hn({argsMap:r=>[r.getTrackId()]}),Lc=class f0e extends ki{get __className__(){return"CameraVideoTrack"}constructor(a,o,c,f,m,v){super(a,zf(o.encoderConfig),f,m,v),qe(this,"_config",void 0),qe(this,"_originalConstraints",void 0),qe(this,"_constraints",void 0),qe(this,"_enabled",!0),qe(this,"_deviceName","default"),qe(this,"tryResumeVideoForIOS15_16WeChat",async()=>{(jS()||kH())&&!function(){let w=ni();if(w.os!==ms.IOS||!w.osVersion)return!1;let C=w.osVersion.split(".");return Number(C[0])===15&&Number(C[1])>=2}()&&kne()&&this._enabled&&!this._isClosed&&(z.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS 15 device on WeChat.")),await this.renewMediaStreamTrack())}),this._config=o,this._originalConstraints=c,this._constraints=c,this._deviceName=a.label,this._encoderConfig=zf(this._config.encoderConfig),Si.on(js.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),Si.on(js.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),this.bindProcessorContextEvents()}async setDevice(a){return typeof a=="string"?this._setDeviceById(a):a.deviceId?this._setDeviceById(a.deviceId):a.facingMode?this._setDeviceByFacingModel(a.facingMode):void 0}async _setDeviceById(a){if(z.info("[".concat(this.getTrackId(),"] set device to ").concat(a)),this._enabled)try{let o=await Oc.getDeviceById(a),c={};c.video=ir({},this._constraints),c.video.deviceId={exact:a},c.video.facingMode=void 0,this._originMediaStreamTrack.stop();let f=null;try{f=await Nc(c,this.getTrackId())}catch(m){throw z.error("[".concat(this.getTrackId(),"] setDevice failed"),m.toString()),f=await Nc({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(f.getVideoTracks()[0],!1),m}await this._updateOriginMediaStreamTrack(f.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution(),this._deviceName=o.label,this._config.cameraId=a,this._constraints.deviceId={exact:a}}catch(o){throw z.error("[".concat(this.getTrackId(),"] setDevice error"),o.toString()),o}else try{let o=await Oc.getDeviceById(a);this._deviceName=o.label,this._config.cameraId=a,this._constraints.deviceId={exact:a}}catch(o){throw z.error("[".concat(this.getTrackId(),"] setDevice error"),o.toString()),o}z.info("[".concat(this.getTrackId(),"] setDevice success"))}async _setDeviceByFacingModel(a){z.info("[".concat(this.getTrackId(),"] set facingMode ").concat(a));let o={video:ir(ir({},this._constraints),{},{deviceId:void 0,facingMode:{exact:a}})};if(this._enabled){this._originMediaStreamTrack.stop();let c=null;try{c=await Nc(o,this.getTrackId())}catch(f){throw z.error("[".concat(this.getTrackId(),"] setDeviceByFacingModel failed"),f.toString()),c=await Nc({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(c.getVideoTracks()[0],!1),f}await this._updateOriginMediaStreamTrack(c.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution()}this._deviceName="",this._config.facingMode=a,this._config.cameraId=void 0,this._constraints=ir({},o.video),z.info("[".concat(this.getTrackId(),"] setDeviceByFacingModel success"))}async setEnabled(a,o){if(!o){if(a===this._enabled)return;this.stateCheck("enabled",a)}if(z.info("[".concat(this.getTrackId(),"] start setEnabled"),a),a){try{if(this.isExternalTrack)this._originMediaStreamTrack.enabled=!0;else{let c=await Nc({video:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(c.getVideoTracks()[0],!1)}await Li(this,Mt.NEED_ENABLE_TRACK,this)}catch(c){throw z.error("[".concat(this.getTrackId(),"] setEnabled true error"),c.toString()),c}this.updateMediaStreamTrackResolution(),z.info("[".concat(this.getTrackId(),"] setEnabled to true success")),o||(this._enabled=!0)}else{this.isExternalTrack?this._originMediaStreamTrack.enabled=!1:(this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop()),o||(this._enabled=!1);try{await Li(this,Mt.NEED_DISABLE_TRACK,this)}catch(c){throw z.error("[".concat(this.getTrackId(),"] setEnabled to false error"),c.toString()),c}z.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}}async setEncoderConfiguration(a,o){if(!this._enabled)throw new Ke(ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");a==="720p_auto"?this.startMonitorStats():this._statsTimer&&(window.clearInterval(this._statsTimer),this._statsTimer=null),a=zf(a),this._forceBitrateLimit&&(a.bitrateMax=this._forceBitrateLimit.max_bitrate||a.bitrateMax,a.bitrateMin=this._forceBitrateLimit.min_bitrate||a.bitrateMin);let c=zi(this._config);c.encoderConfig=a;let f=bD(c);(gs()||ra()||fu())&&(f.deviceId=void 0),z.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(a),JSON.stringify(f));try{await this._originMediaStreamTrack.applyConstraints(f),this.updateMediaStreamTrackResolution()}catch(m){let v=new Ke(ce.UNEXPECTED_ERROR,m.toString());throw z.error("[".concat(this.getTrackId(),"] applyConstraints error"),v.toString()),v}this._config=c,this._constraints=f,this._originalConstraints=f,this._encoderConfig=a,this._hints.indexOf(Hi.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Li(this,Mt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(m){return m.throw(z)}}_getDefaultPlayerConfig(){return{mirror:!0,fit:"cover"}}onTrackEnded(){if((ra()||fu())&&this._enabled&&!this._isClosed&&Si.duringInterruption){let a=async()=>{Si.off(js.IOS_INTERRUPTION_END,a),this._enabled&&!this._isClosed&&(z.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};Si.on(js.IOS_INTERRUPTION_END,a)}else z.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(db.TRACK_ENDED)}async renewMediaStreamTrack(a){let o=a||this._constraints,c=Oc.searchDeviceIdByName(this._deviceName);if(c&&!o.deviceId&&(o.deviceId={exact:c}),this._enabled){let f=await Nc({video:o},this.getTrackId());this._constraints=o,await this._updateOriginMediaStreamTrack(f.getVideoTracks()[0],!0),this.updateMediaStreamTrackResolution()}}close(){super.close(),Si.off(js.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),Si.off(js.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat)}clone(a){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],c=this._encoderConfig;a&&(c=ir(ir({},c),zf(a))),c=zy(c);let f=Di(8,"track-cam-cloned-"),m=new f0e(o?this._mediaStreamTrack.clone():this._mediaStreamTrack,zy(ir(ir({},this._config),{},{encoderConfig:c})),zy(this._constraints),zy(this._scalabilityMode),this._optimizationMode,f);return a&&c&&m.setEncoderConfiguration(c),z.debug("clone track from ".concat(this.getTrackId()," to ").concat(f,", clone ").concat(o)),m}bindProcessorContextEvents(){this.processorContext.on(Ac.REQUEST_UPDATE_CONSTRAINTS,async(a,o,c)=>{try{let f=Object.assign({},this._originalConstraints,...a);await this.renewMediaStreamTrack(f),o()}catch(f){c(f)}}),this.processorContext.on(Ac.REQUEST_CONSTRAINTS,async a=>{a(this._originMediaStreamTrack.getSettings())})}},Qn(Lc.prototype,"setDevice",[Yae,Xae],Object.getOwnPropertyDescriptor(Lc.prototype,"setDevice"),Lc.prototype),Qn(Lc.prototype,"setEnabled",[Jae,Qae,Zae],Object.getOwnPropertyDescriptor(Lc.prototype,"setEnabled"),Lc.prototype),Qn(Lc.prototype,"setEncoderConfiguration",[eoe,toe],Object.getOwnPropertyDescriptor(Lc.prototype,"setEncoderConfiguration"),Lc.prototype),Qn(Lc.prototype,"close",[noe],Object.getOwnPropertyDescriptor(Lc.prototype,"close"),Lc.prototype),Lc);function _W(r,a,o,c){o.optimizationMode&&(c&&c.width&&c.height?(o.encoderConfig=ir(ir({},c),{},{bitrateMin:c.bitrateMin,bitrateMax:c.bitrateMax}),o.optimizationMode!=="motion"&&o.optimizationMode!=="detail"||(a.contentHint=o.optimizationMode,a.contentHint===o.optimizationMode?z.debug("[".concat(r,"] set content hint to"),o.optimizationMode):z.debug("[".concat(r,"] set content hint failed")))):z.warning("[".concat(r,"] can not apply optimization mode bitrate config, no encoderConfig")))}var ioe,roe,soe,aoe,md,ooe,loe,coe,doe,uoe,hoe,ka;class foe extends _se{getUserId(){return this._userId}constructor(a,o,c,f){super(a,"track-".concat(a.kind,"-").concat(o,"-").concat(f.clientId,"_").concat(Di(5,""))),qe(this,"_userId",void 0),qe(this,"_uintId",void 0),qe(this,"_isDestroyed",!1),qe(this,"store",void 0),qe(this,"processor",void 0),qe(this,"processorContext",void 0),this._userId=o,this._uintId=c,this.store=f}_updateOriginMediaStreamTrack(a){this._originMediaStreamTrack=a,this._mediaStreamTrack=a,this._updatePlayerSource(),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext})}_destroy(){this._isDestroyed=!0,z.info("[".concat(this.getTrackId(),"] is destroyed")),this.stop(),super.close()}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}}let mb=(ioe=hn({argsMap:(r,a,o)=>[r.getTrackId(),typeof a=="string"?a:a instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",o]}),roe=hn({argsMap:r=>[r.getTrackId()]}),soe=hn({argsMap:(r,a)=>[r.getTrackId(),a.name]}),aoe=hn({argsMap:r=>[r.getTrackId()]}),Qn((md=class extends foe{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Da.PLAYING)}get __className__(){return"RemoteVideoTrack"}constructor(r,a,o,c){super(r,a,o,c),qe(this,"_videoVisibleTimer",null),qe(this,"_previousVideoVisibleStatus",void 0),qe(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),qe(this,"trackMediaType","video"),qe(this,"_videoWidth",void 0),qe(this,"_videoHeight",void 0),qe(this,"_player",void 0),qe(this,"processorDestination",void 0),qe(this,"processorContext",void 0),this.updateMediaStreamTrackResolution(),this.processorContext=new Ose(this.getTrackId(),"remote"),this.processorDestination=new Nse(this.processorContext),this.bindProcessorDestinationEvents()}getStats(){return T0(()=>{z.warning("[deprecated] RemoteVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteVideoStats instead")},"remoteVideoTrackGetStatsWarning"),Ml(this,Mt.GET_STATS)||ir({},vse)}play(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof r=="string"){let c=document.getElementById(r);c?r=c:(z.warning("[".concat(this.getTrackId(),'] can not find "#').concat(r,'" element, use document.body')),r=document.body)}z.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(r instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(a));let o=ir(ir({fit:"cover"},a),{},{trackId:this.getTrackId(),element:r});this._player?this._player.updateConfig(o):(r instanceof HTMLVideoElement?this._player=new vW(o):this._player=new bae(o),this._player.updateVideoTrack(this._mediaStreamTrack),this._player.onFirstVideoFrameDecoded=()=>{this.store.subscribe(this.getUserId(),"video",void 0,void 0,Date.now()),this.safeEmit(ub.FIRST_FRAME_DECODED)},this._player.onVideoStateChanged=c=>{this.safeEmit(ub.VIDEO_STATE_CHANGED,c)}),this._player.play(this.store.sessionId||void 0),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{let c=this.getVideoElementVisibleStatus();this.safeEmit(ub.VIDEO_ELEMENT_VISIBLE_STATUS,c)}catch{}},ve("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,z.debug("[".concat(this.getTrackId(),"] stop video playback")))}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}updateMediaStreamTrackResolution(){Dse(this._originMediaStreamTrack).then(r=>{let[a,o]=r;this._videoHeight=o,this._videoWidth=a}).catch(k8)}_updatePlayerSource(){z.debug("[".concat(this.getTrackId(),"] update player source track")),this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}getVideoElementVisibleStatus(){try{var r,a;let o=this==null||(r=this._player)===null||r===void 0?void 0:r.getContainerElement(),c={track:this,element:this==null||(a=this._player)===null||a===void 0?void 0:a.getVideoElement(),slot:o==null?void 0:o.parentElement},{element:f,slot:m}=c;if(this.isPlaying&&f instanceof HTMLVideoElement&&m instanceof HTMLElement){let v=Vne.checkOneElementVisible(f),w=Object.assign({},v);if(w.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=w.visible;let C=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});w.visible?C.onSuccess("Video is visible"):C.onSuccess("Invisible because of ".concat(w.reason))}return w}return}catch(o){throw new Ke(ce.GET_VIDEO_ELEMENT_VISIBLE_ERROR,o.message)}}pipe(r){if(this.processor===r)return r;if(r._source)throw new Ke(ce.INVALID_OPERATION,"Processor ".concat(r.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=r,this.processor._source=this,r.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),r}unpipe(){if(!this.processor)return;let r=this.processor;this.processor._source=void 0,this.processor=void 0,r.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(so.ON_TRACK,async r=>{r?r!==this._mediaStreamTrack&&(this._mediaStreamTrack=r,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(so.ON_TRACK)}_destroy(){super._destroy(),this.unbindProcessorDestinationEvents()}_onSei(r){this.emit(i_.SEI_RECEIVED,r)}}).prototype,"play",[ioe],Object.getOwnPropertyDescriptor(md.prototype,"play"),md.prototype),Qn(md.prototype,"stop",[roe],Object.getOwnPropertyDescriptor(md.prototype,"stop"),md.prototype),Qn(md.prototype,"pipe",[soe],Object.getOwnPropertyDescriptor(md.prototype,"pipe"),md.prototype),Qn(md.prototype,"unpipe",[aoe],Object.getOwnPropertyDescriptor(md.prototype,"unpipe"),md.prototype),md),gb=(ooe=hn({argsMap:(r,a)=>[r.getTrackId(),a],throttleTime:300}),loe=hn({argsMap:(r,a)=>[r.getTrackId(),a]}),coe=hn({argsMap:r=>[r.getTrackId()]}),doe=hn({argsMap:r=>[r.getTrackId()]}),uoe=hn({argsMap:(r,a)=>[r.getTrackId(),a.name]}),hoe=hn({argsMap:r=>[r.getTrackId()]}),Qn((ka=class extends foe{get isPlaying(){return this._useAudioElement?Oo.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"RemoteAudioTrack"}constructor(r,a,o,c){super(r,a,o,c),qe(this,"trackMediaType","audio"),qe(this,"_source",void 0),qe(this,"_useAudioElement",!0),qe(this,"_volume",100),qe(this,"processorContext",void 0),qe(this,"processorDestination",void 0),qe(this,"_played",!1),qe(this,"_bypassWebAudio",!1),ve("DISABLE_WEBAUDIO")?(this._source=new mW,this._bypassWebAudio=!0,this._useAudioElement=!0):(this._source=new bse(r,!0),ve("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1)),this._source.once(xc.RECEIVE_TRACK_BUFFER,()=>{this.safeEmit(ub.FIRST_FRAME_DECODED)}),this.processorContext=new Lse(this._source.context,this.getTrackId(),"remote"),this.processorDestination=new Pse(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(xc.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})})}setAudioFrameCallback(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!r)return this._source.removeAllListeners(xc.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(a),this._source.removeAllListeners(xc.ON_AUDIO_BUFFER),this._source.on(xc.ON_AUDIO_BUFFER,o=>r(o))}setVolume(r){this._volume=r,this._useAudioElement?Oo.setVolume(this.getTrackId(),r):this._source.setVolume(r/100)}async setPlaybackDevice(r){if(!this._useAudioElement||!pse())throw new Ke(ce.NOT_SUPPORTED,"your browser does not support setting the audio output device");await Oo.setSinkID(this.getTrackId(),r)}getVolumeLevel(){return this._source.getAccurateVolumeLevel()}getStats(){return T0(()=>{z.warning("[deprecated] RemoteAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteAudioStats instead")},"remoteAudioTrackGetStatsWarning"),Ml(this,Mt.GET_STATS)||ir({},gse)}play(){z.debug("[".concat(this.getTrackId(),"] start audio playback")),this._played=!0,this._useAudioElement?(z.debug("[".concat(this.getTrackId(),"] use audio element to play")),Oo.play(this._mediaStreamTrack,this.getTrackId(),this._volume,this.store.sessionId||void 0)):this._source.play()}stop(){z.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._played=!1,this._useAudioElement?Oo.stop(this.getTrackId()):this._source.stop()}_destroy(){super._destroy(),this._played=!1,this.unbindProcessorDestinationEvents(),this._source.destroy()}_isFreeze(){return this._source.isFreeze}_updatePlayerSource(){let r=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];z.debug("[".concat(this.getTrackId(),"] update player source track")),r&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&Oo.updateTrack(this.getTrackId(),this._mediaStreamTrack)}pipe(r){if(this._bypassWebAudio)throw new Ke(ce.NOT_SUPPORTED,"can not pipe extension when WebAudio disabled");if(this.processor===r)return r;if(r._source)throw new Ke(ce.INVALID_OPERATION,"Processor ".concat(r.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=r,this.processor._source=this,r.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),r}unpipe(){var r;if(this._bypassWebAudio)throw new Ke(ce.NOT_SUPPORTED,"can not unpipe extension when WebAudio disabled");if(!this.processor)return;let a=this.processor;(r=this._source.processSourceNode)===null||r===void 0||r.disconnect(),this.processor._source=!1,this.processor=void 0,a.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(so.ON_TRACK,async r=>{r?r!==this._mediaStreamTrack&&(this._mediaStreamTrack=r,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(r)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}),this.processorDestination.on(so.ON_NODE,r=>{this._source.processedNode=r;let a=!r;this._useAudioElement!==a&&(this._played?(this.stop(),this._useAudioElement=a,this.play()):this._useAudioElement=a)})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(so.ON_TRACK),this.processorDestination.removeAllListeners(so.ON_NODE)}}).prototype,"setVolume",[ooe],Object.getOwnPropertyDescriptor(ka.prototype,"setVolume"),ka.prototype),Qn(ka.prototype,"setPlaybackDevice",[loe],Object.getOwnPropertyDescriptor(ka.prototype,"setPlaybackDevice"),ka.prototype),Qn(ka.prototype,"play",[coe],Object.getOwnPropertyDescriptor(ka.prototype,"play"),ka.prototype),Qn(ka.prototype,"stop",[doe],Object.getOwnPropertyDescriptor(ka.prototype,"stop"),ka.prototype),Qn(ka.prototype,"pipe",[uoe],Object.getOwnPropertyDescriptor(ka.prototype,"pipe"),ka.prototype),Qn(ka.prototype,"unpipe",[hoe],Object.getOwnPropertyDescriptor(ka.prototype,"unpipe"),ka.prototype),ka),bm=new class extends nr{get visibility(){return document.visibilityState}get lastHiddenTime(){return this._lastHiddenTime}get lastVisibleTime(){return this._lastVisibleTime}constructor(){super(),qe(this,"_lastHiddenTime",0),qe(this,"_lastVisibleTime",0),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this._lastHiddenTime=performance.now():this._lastVisibleTime=performance.now(),z.debug("document visibility went ".concat(document.visibilityState)),this.emit("VISIBILITY_CHANGE",document.visibilityState)})}};var poe=function(r){return r[r.ONE_BYTE=0]="ONE_BYTE",r[r.TWO_BYTE=1]="TWO_BYTE",r}(poe||{});class n4e{constructor(){qe(this,"_sequence",0),qe(this,"_startTime",Date.now()),qe(this,"isUseOneByte",!0)}get startTime(){let a=Date.now()-this._startTime;return a128){let w=new Uint8Array(4);w.set([1,0,0,0]);let C={id:0,length:4,data:w.buffer},R={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[C]};o.commonPacketHeader.extension=1,o.extension=R,o.payload=this.compress(a),o.commonPacketHeader.length=8+(o.extension.length+2)+o.payload.byteLength}else o.commonPacketHeader.length=8+o.payload.byteLength;ve("SHOW_DATASTREAM2_LOG")&&z.debug("send data header: ".concat(JSON.stringify(o.commonPacketHeader)));let c=new ArrayBuffer(o.commonPacketHeader.length),f=new Uint8Array(c),m=new DataView(c),v=0;if(m.setUint16(v,o.commonPacketHeader.extension<<15|o.commonPacketHeader.reserved<<14|o.commonPacketHeader.length,!0),v+=2,m.setUint32(v,o.commonPacketHeader.sequence,!0),v+=4,m.setUint16(v,o.commonStreamHeader,!0),v+=2,o.extension){let w=this.serializeExtension(o.extension);f.set(new Uint8Array(w),v),v+=w.byteLength}if(f.set(new Uint8Array(o.payload),v),v+=o.payload.byteLength,v!==o.commonPacketHeader.length)throw Error("serialize error!");return c}deserialize(a){if(a.byteLength<4)return new ArrayBuffer(0);let o=new DataView(a),c=0,f=o.getUint16(c,!0);c+=2;let m={length:16383&f,reserved:(16384&f)>>14,extension:(32768&f)>>15,sequence:o.getUint16(c+2,!0)<<16|o.getUint16(c,!0)},v,w;if(c+=4,ve("SHOW_DATASTREAM2_LOG")&&z.debug("receive data header: ".concat(JSON.stringify(m))),o.getUint16(c,!0),c+=2,m.extension){w=this.deserializeExtension(a.slice(c)),c+=2+w.length,v=a.slice(c);let C=!1;if(w.datas.length>0){let R=w.datas.find(x=>x.id===0);R&&(C=(1&new DataView(R.data).getUint32(0,!0))==1)}v=C?this.decompress(v):v}else v=a.slice(8);return v}serializeExtension(a){let{profile:o,length:c,datas:f}=a,m=new ArrayBuffer(c+2),v=new Uint8Array(m),w=new DataView(m),C=0;if(w.setUint8(C++,o),w.setUint8(C++,c),f.forEach(R=>{o?(w.setUint8(C++,R.id),w.setUint8(C++,R.length),v.set(new Uint8Array(R.data),C),C+=R.data.byteLength):(w.setUint8(C++,R.id|R.length<<4),v.set(new Uint8Array(R.data),C),C+=R.data.byteLength)}),C!==c+2)throw Error("serialize extension error, is ".concat(C,"!==").concat(c+2));return m}deserializeExtension(a){let o=new DataView(a),c=0,f=o.getUint8(c);c++;let m=o.getUint8(c);c++;let v=f===poe.TWO_BYTE,w=[],C=new DataView(a,2),R=0;for(;R>4,R++),L>0&&(U=C.buffer.slice(R+2,R+2+L),R+=U.byteLength),w.push({id:x,length:L,data:U})}if(R!==m)throw Error("parse error");return{profile:f,length:m,datas:w}}decompress(a){return VIe(new Uint8Array(a))}compress(a){return BIe(new Uint8Array(a))}}class moe extends nr{constructor(a,o){super(),qe(this,"_version",1),qe(this,"_type",3),qe(this,"_config",void 0),qe(this,"_originDataChannel",void 0),qe(this,"_dataStreamPacketHeader",new ArrayBuffer(4)),qe(this,"_dataStreamPacketHandler",void 0),qe(this,"_datachannelEventMap",new Map),this._config=a,o&&(this._originDataChannel=o,this._bandDataChannelEvents(o)),this._initPacketHeader(),this._dataStreamPacketHandler=new n4e}get id(){return this._config.id}get ordered(){return this._config.ordered}get maxRetransmits(){return ve("DATASTREAM_MAX_RETRANSMITS")}get metadata(){return this._config.metadata}get readyState(){var a,o;return(a=(o=this._originDataChannel)===null||o===void 0?void 0:o.readyState)!==null&&a!==void 0?a:"connecting"}get _originDataChannelId(){var a,o;return(a=(o=this._originDataChannel)===null||o===void 0?void 0:o.id)!==null&&a!==void 0?a:null}getChannelId(){return this.id}getConfig(){return this._config}_close(){this._originDataChannel&&(this._unbindDataChannelEvents(this._originDataChannel),this._originDataChannel=void 0)}async _waitTillOpen(){return new Ct((a,o)=>{if(this._originDataChannel){this._originDataChannel.readyState==="open"&&a();let c=setTimeout(()=>{var f;o(new Ke(ce.DATACHANNEL_CONNECTION_TIMEOUT,"Cannot create datachannel, id: ".concat((f=this._originDataChannel)===null||f===void 0?void 0:f.id)))},1e4);this._originDataChannel.onopen=()=>{clearTimeout(c),this._originDataChannel&&this._bandDataChannelEvents(this._originDataChannel),a()},this._originDataChannel.onerror=()=>{throw clearTimeout(c),new Ke(ce.DATACHANNEL_CONNECTION_TIMEOUT)}}else o(new Ke(ce.DATACHANNEL_CONNECTION_TIMEOUT,"cannot find dataChannel"))})}_updateOriginDataChannel(a){this._originDataChannel=a,this._bandDataChannelEvents(a)}_initPacketHeader(){let a=new DataView(this._dataStreamPacketHeader);a.setUint16(0,this._version),a.setUint8(2,this._type),a.setUint8(3,this._config.id)}_bandDataChannelEvents(a){this._unbindDataChannelEvents(a),[wD.OPEN,wD.CLOSE,wD.ERROR].forEach(o=>{let c=()=>{this.emit(o)};this._datachannelEventMap.set(o,c),a.addEventListener(o,c)})}_unbindDataChannelEvents(a){Array.from(this._datachannelEventMap.entries()).forEach(o=>{let[c,f]=o;a.removeEventListener(c,f)}),this._datachannelEventMap.clear()}}class i4e extends moe{constructor(a){super(a),qe(this,"_messageListener",void 0),this._messageListener=o=>{if(o.data.byteLengthRre.revokeObjectURL(r),0),new Worker(Rre.createObjectURL(r))}let RD=new Map,xD=new Map,AD=new Map;async function r4e(r,a){if(!Jn().supportWebRTCEncodedTransform)return void z.warning("browser not support video encoded transform");if(AD.has(r)||!r.track)return;let o={track:r.track};if(b0()){if(!r.createEncodedStreams)return void z.warning("browser not support createEncodedStreams() API");let f=null;try{f=r.createEncodedStreams()}catch(w){return void z.error("create video-encoded-streams error",w&&w.message)}let m=[];a.on("sei-to-send",w=>{m.push(w)});let v=new TransformStream({transform(w,C){o.controller||(o.controller=C),r.track&&r.track.id!==o.track.id&&(z.debug("video track changed: ".concat(o.track.id," => ").concat(r.track.id)),o.track.removeEventListener("ended",c),o.track=r.track,o.track.addEventListener("ended",c));let R=m.shift();R&&(w.data=function(x,L){let U=function(ue){let xe=ue.length,Oe=[],ke=0;for(;ke"u")return void z.warning("browser not support RTCRtpScriptTransform");let f=TD(),m=new MessageChannel;await new Ct(w=>f.onmessage=C=>{C.data==="registered"&&w(void 0)});let v=new RTCRtpScriptTransform(f,{name:"tx",port:m.port2},[m.port2]);r.transform=v,await new Ct(w=>f.onmessage=C=>{C.data==="started"&&w(void 0)}),a.on("sei-to-send",w=>{m.port1.postMessage({sei:w})}),m.port1.onmessage=w=>{var C;w.data.transformed&&r.track&&((C=r.track)===null||C===void 0?void 0:C.id)!==o.track.id&&(z.debug("video track changed: ".concat(o.track.id," => ").concat(r.track.id)),o.track.removeEventListener("ended",c),o.track=r.track,o.track.addEventListener("ended",c))},o.worker=f}}function c(){if(r.track){if(this.id!==r.track.id)return;r.track.removeEventListener("ended",c)}let f=AD.get(r);if(f){AD.delete(r);try{var m,v;(m=f.controller)===null||m===void 0||m.terminate(),(v=f.worker)===null||v===void 0||v.terminate()}catch(w){z.warning(w&&w.message)}}}AD.set(r,o),r.track.addEventListener("ended",c)}let Y3=new Map;async function s4e(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Jn().supportWebRTCEncodedTransform)return void z.warning("browser not support video encoded transform");if(!r.track)return;if(Y3.has(r)){let f=Y3.get(r);return void(f&&(f.onSei=a.onSei))}let o={track:r.track,onSei:a.onSei};if(b0()){if(!r.createEncodedStreams)return void z.warning("browser not support createEncodedStreams() API");let f=null;try{f=r.createEncodedStreams()}catch(v){return void z.error("create video-encoded-streams error",v&&v.message)}let m=new TransformStream({transform(v,w){o.controller||(o.controller=w),r.track&&r.track.id!==o.track.id&&(z.debug("video track changed: ".concat(o.track.id," => ").concat(r.track.id)),o.track.removeEventListener("ended",c),o.track=r.track,o.track.addEventListener("ended",c));let C=function(R){let x=new DataView(R.data);if(x.getUint8(0)===0&&x.getUint8(1)===0&&x.getUint8(2)===0&&x.getUint8(3)===1&&x.getUint8(4)===6){let L=6,U=0,F=0;for(;(F=x.getUint8(L++))===255;)U+=255;U+=F;let Z=function(W,K,oe){let ue=new Uint8Array(W,K,oe),xe=[],Oe=0;for(;Oe"u")return void z.warning("browser not support RTCRtpScriptTransform");let f=TD(),m=new MessageChannel;await new Ct(w=>f.onmessage=C=>{C.data==="registered"&&w(void 0)});let v=new RTCRtpScriptTransform(f,{name:"rx",port:m.port2},[m.port2]);r.transform=v,await new Ct(w=>f.onmessage=C=>{C.data==="started"&&w(void 0)}),m.port1.onmessage=w=>{var C;w.data.transformed&&r.track&&((C=r.track)===null||C===void 0?void 0:C.id)!==o.track.id?(z.debug("video track changed: ".concat(o.track.id," => ").concat(r.track.id)),o.track.removeEventListener("ended",c),o.track=r.track,o.track.addEventListener("ended",c)):w.data.sei&&o.onSei&&o.onSei(w.data.sei)},o.worker=f}function c(){if(r.track){if(this.id!==r.track.id)return;r.track.removeEventListener("ended",c)}(function(f){let m=Y3.get(f);if(m){Y3.delete(f);try{var v,w;(v=m.controller)===null||v===void 0||v.terminate(),(w=m.worker)===null||w===void 0||w.terminate()}catch(C){z.warning(C&&C.message)}}})(r)}Y3.set(r,o),r.track.addEventListener("ended",c)}(function(){let r=ni();qs.getDisplayMedia=!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia),qs.getStreamFromExtension=r.name===fi.CHROME&&Number(r.version)>34,qs.supportUnifiedPlan=function(){if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let a=new RTCPeerConnection,o=!1;try{a.addTransceiver("audio"),o=!0}catch{}return a.close(),o}(),qs.supportMinBitrate=r.name===fi.CHROME||r.name===fi.EDGE,qs.supportSetRtpSenderParameters=function(){let a=ni();return!!(window.RTCRtpSender&&window.RTCRtpSender.prototype.setParameters&&window.RTCRtpSender.prototype.getParameters)&&(!!C0()||!(!gs()&&!O8())||a.name===fi.FIREFOX&&Number(a.version)>=64)}(),r.name===fi.SAFARI&&(Number(r.version)>=14?qs.supportDualStream=!0:qs.supportDualStream=!1),qs.webAudioMediaStreamDest=function(){let a=ni();return!(a.name===fi.SAFARI&&Number(a.version)<12)}(),qs.supportReplaceTrack=!!window.RTCRtpSender&&typeof RTCRtpSender.prototype.replaceTrack=="function",qs.supportWebGL=typeof WebGLRenderingContext<"u",qs.supportRequestFrame=!!window.CanvasCaptureMediaStreamTrack,C0()||(qs.webAudioWithAEC=!0),qs.supportShareAudio=function(){let a=ni();return(a.os===ms.WIN_10||a.os===ms.WIN_81||a.os===ms.WIN_7||a.os===ms.LINUX||a.os===ms.MAC_OS||a.os===ms.CHROMIUM_OS)&&a.name===fi.CHROME&&Number(a.version)>=74}(),qs.supportDataChannel=!!(DH(76)||function(a){let o=ni();return!(o.name!==fi.FIREFOX||!o.osVersion)&&Number(o.version)>=a}(68)||Ane(14)),qs.supportPCSetConfiguration=function(){let a=window.RTCPeerConnection;return!Pi()&&!!a&&a.prototype.setConfiguration instanceof Function}(),qs.supportWebRTCEncodedTransform=function(){let a=ni();return a.name==="Chrome"&&Number(a.version)>=86||a.name==="Safari"&&Number(a.version)>=15}(),qs.supportWebRTCInsertableStream=function(){let a=ni();return(a.name===fi.CHROME||a.name===fi.EDGE)&&Number(a.version)>=94&&"MediaStreamTrackGenerator"in window&&"MediaStreamTrackProcessor"in window}(),qs.supportRequestVideoFrameCallback="requestVideoFrameCallback"in HTMLVideoElement.prototype,qs.supportWebCrypto=typeof window<"u"&&window.crypto!==void 0&&window.crypto.subtle!==void 0,D8(()=>{qs.supportDualStreamEncoding=function(){let a=ni();return!!ve("DISABLE_WEBAUDIO")||a.name==="Safari"&&Number(a.version)>=14||!!(a.name==="Chrome"&&/Windows/i.test(a.os||"")&&Number(a.version)>=100&&ve("CHROME_DUAL_STREAM_USE_ENCODING"))}(),z.info("browser compatibility",JSON.stringify(qs),JSON.stringify(r))})})();class a4e extends nr{constructor(){super(...arguments),X(this,"resultStorage",new Map)}setLocalAudioStats(a,o,c){this.record("AUDIO_INPUT_LEVEL_TOO_LOW",a,this.checkAudioInputLevel(c,o)),this.record("SEND_AUDIO_BITRATE_TOO_LOW",a,this.checkSendAudioBitrate(c,o))}setLocalVideoStats(a,o,c){this.record("SEND_VIDEO_BITRATE_TOO_LOW",a,this.checkSendVideoBitrate(c,o)),this.record("FRAMERATE_INPUT_TOO_LOW",a,this.checkFramerateInput(c,o)),this.record("FRAMERATE_SENT_TOO_LOW",a,this.checkFramerateSent(c))}setRemoteAudioStats(a,o){let c=a.getUserId();this.record("AUDIO_OUTPUT_LEVEL_TOO_LOW",c,this.checkAudioOutputLevel(o))}setRemoteVideoStats(a,o){let c=a.getUserId();this.record("RECV_VIDEO_DECODE_FAILED",c,this.checkVideoDecode(o))}record(a,o,c){if(ve("STATS_UPDATE_INTERVAL")>500)return;this.resultStorage.has(a)||this.resultStorage.set(a,{result:[],isPrevNormal:!0});let f=this.resultStorage.get(a);if(f&&(f.result.push(c),f.result.length>=5)){var m;let v=Tt(m=f.result).call(m,!0);f.isPrevNormal&&!v&&this.emit("exception",voe[a],a,o),!f.isPrevNormal&&v&&this.emit("exception",voe[a]+2e3,a+"_RECOVER",o),f.isPrevNormal=v,f.result=[]}}checkAudioOutputLevel(a){return!(a.receiveBitrate>0&&a.receiveLevel===0)}checkAudioInputLevel(a,o){return o instanceof ns&&!o.isActive||!!o.muted||a.sendVolumeLevel!==0}checkFramerateInput(a,o){let c=null;o._encoderConfig&&o._encoderConfig.frameRate&&(c=rl(o._encoderConfig.frameRate));let f=a.captureFrameRate;return!c||!f||!(c>10&&f<5||c<10&&c>=5&&f<=1)}checkFramerateSent(a){return!(a.captureFrameRate&&a.sendFrameRate&&a.captureFrameRate>5&&a.sendFrameRate<=1)}checkSendVideoBitrate(a,o){return!!o.muted||a.sendBitrate!==0}checkSendAudioBitrate(a,o){return o instanceof ns&&!o.isActive||!!o.muted||a.sendBitrate!==0}checkVideoDecode(a){return a.receiveBitrate===0||a.decodeFrameRate!==0}}let voe={FRAMERATE_INPUT_TOO_LOW:1001,FRAMERATE_SENT_TOO_LOW:1002,SEND_VIDEO_BITRATE_TOO_LOW:1003,RECV_VIDEO_DECODE_FAILED:1005,AUDIO_INPUT_LEVEL_TOO_LOW:2001,AUDIO_OUTPUT_LEVEL_TOO_LOW:2002,SEND_AUDIO_BITRATE_TOO_LOW:2003},aa=new class{markSubscribeStart(r,a){performance.mark("agora-web-sdk/".concat(r,"/subscribe-").concat(a))}markPublishStart(r,a){performance.mark("agora-web-sdk/".concat(r,"/publish-").concat(a))}measureFromSubscribeStart(r,a){let o=performance.getEntriesByName("agora-web-sdk/".concat(r,"/subscribe-").concat(a));if(o.length>0){let c=o[o.length-1];return Math.round(performance.now()-c.startTime)}return 0}measureFromPublishStart(r,a){let o=performance.getEntriesByName("agora-web-sdk/".concat(r,"/publish-").concat(a));if(o.length>0){let c=o[o.length-1];return Math.round(performance.now()-c.startTime)}return 0}};function EW(r,a){this.v=r,this.k=a}function Dn(r){return new EW(r,0)}var o4e=kA,l4e=du;Ni({target:"Promise",stat:!0,forced:!0},{withResolvers:function(){var r=l4e.f(this);return{promise:r.promise,resolve:r.resolve,reject:r.reject}}});var c4e=du,d4e=f0;Ni({target:"Promise",stat:!0,forced:!0},{try:function(r){var a=c4e.f(this),o=d4e(r);return(o.error?a.reject:a.resolve)(o.value),a.promise}});var wW=l(o4e),yoe=AS.f("asyncIterator"),u4e=l(yoe);function X3(r){var a,o;function c(m,v){try{var w=r[m](v),C=w.value,R=C instanceof EW;wW.resolve(R?C.v:C).then(function(x){if(R){var L=m==="return"?"return":"next";if(!C.k||x.done)return c(L,x);x=r[L](x).value}f(w.done?"return":"normal",x)},function(x){c("throw",x)})}catch(x){f("throw",x)}}function f(m,v){switch(m){case"return":a.resolve({value:v,done:!0});break;case"throw":a.reject(v);break;default:a.resolve({value:v,done:!1})}(a=a.next)?c(a.key,a.arg):o=null}this._invoke=function(m,v){return new wW(function(w,C){var R={key:m,arg:v,resolve:w,reject:C,next:null};o?o=o.next=R:(a=o=R,c(m,v))})},typeof r.return!="function"&&(this.return=void 0)}function Ul(r){return function(){return new X3(r.apply(this,arguments))}}X3.prototype[typeof OS=="function"&&u4e||"@@asyncIterator"]=function(){return this},X3.prototype.next=function(r){return this._invoke("next",r)},X3.prototype.throw=function(r){return this._invoke("throw",r)},X3.prototype.return=function(r){return this._invoke("return",r)};var _oe=l(Me.Object.getOwnPropertySymbols),h4e=Ni,f4e=gw.indexOf,p4e=Sw,SW=ae([].indexOf),Eoe=!!SW&&1/SW([1],1,-0)<0;h4e({target:"Array",proto:!0,forced:Eoe||!p4e("indexOf")},{indexOf:function(r){var a=arguments.length>1?arguments[1]:void 0;return Eoe?SW(this,r,a)||0:f4e(this,r,a)}});var m4e=vc("Array").indexOf,g4e=b,v4e=m4e,bW=Array.prototype,y4e=function(r){var a=r.indexOf;return r===bW||g4e(bW,r)&&a===bW.indexOf?v4e:a},woe=l(y4e);function _4e(r,a){if(r==null)return{};var o,c,f=function(v,w){if(v==null)return{};var C,R,x={},L=hie(v);for(R=0;R=0||(x[C]=v[C]);return x}(r,a);if(_oe){var m=_oe(r);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(r,o)&&(f[o]=r[o])}return f}var Soe={exports:{}};(function(r,a){r.exports=(()=>{var o={8:(m,v,w)=>{w.r(v),w.d(v,{Parser:()=>$n,Printer:()=>Ou,parse:()=>Rn,print:()=>oi});let C=` +`,R="".concat("\r").concat(C),x=" ",L;function U(Rt){return Rt>="0"&&Rt<="9"}function F(Rt){return Rt>="!"&&Rt<="~"}function Z(Rt){return F(Rt)||Rt>="€"&&Rt<="ÿ"}function W(Rt){return Rt==="!"||Rt>="#"&&Rt<="'"||Rt>="*"&&Rt<="+"||Rt>="-"&&Rt<="."||Rt>="0"&&Rt<="9"||Rt>="A"&&Rt<="Z"||Rt>="^"&&Rt<="~"}function K(Rt){return Rt>="1"&&Rt<="9"}function oe(Rt){return Rt>="A"&&Rt<="Z"||Rt>="a"&&Rt<="z"}function ue(Rt){return Rt==="d"||Rt==="h"||Rt==="m"||Rt==="s"}function xe(Rt){return Rt>""&&Rt<" "||Rt>"\v"&&Rt<"\f"||Rt>""&&Rt<"ÿ"}function Oe(Rt){return oe(Rt)||U(Rt)||Rt==="+"||Rt==="/"}function ke(Rt){return U(Rt)||oe(Rt)||Rt==="+"||Rt==="/"||Rt==="-"||Rt==="_"}function He(Rt){return oe(Rt)||U(Rt)||Rt==="+"||Rt==="/"}function lt(Rt,q){var Ee=Object.keys(Rt);if(Object.getOwnPropertySymbols){var Ae=Object.getOwnPropertySymbols(Rt);q&&(Ae=Ae.filter(function(gt){return Object.getOwnPropertyDescriptor(Rt,gt).enumerable})),Ee.push.apply(Ee,Ae)}return Ee}function ut(Rt){for(var q=1;q=0&><=255)return Ae;throw new Error("Invalid decimal uchar")}consumeIP6Address(q,Ee){let Ae=this.consumeHexpart(q,Ee);return q[Ae]===":"&&(Ae+=1,Ae=this.consumeIP4Address(q,Ae)),Ae}consumeHexpart(q,Ee){let Ae=Ee;if(q[Ae]===":"&&q[Ae+1]===":"){Ae+=2;try{Ae=this.consumeHexseq(q,Ae)}catch{}return Ae}if(Ae=this.consumeHexseq(q,Ae),q[Ae]===":"&&q[Ae+1]===":"){Ae+=2;try{Ae=this.consumeHexseq(q,Ae)}catch{}return Ae}return Ae}consumeHexseq(q,Ee){let Ae=Ee;for(;Ae=this.consumeHex4(q,Ae),q[Ae]===":"&&q[Ae+1]!==":";)Ae+=1;return Ae}consumeHex4(q,Ee){let Ae=0;for(;Ae<4;Ae++)if(!((gt=q[Ee+Ae])>="0"&><="9"||gt>="a"&><="f"||gt>="A"&><="F")){if(Ae===0)throw new Error("Invalid hex 4");break}var gt;return Ee+Ae}consumeFQDN(q,Ee){let Ae=Ee;for(;U(q[Ae])||oe(q[Ae])||q[Ae]==="-"||q[Ae]===".";)Ae+=1;if(Ae-Ee<4)throw new Error("Invalid FQDN");return Ae}consumeExtnAddr(q,Ee){return this.consumeOneOrMore(q,Ee,Z)}consumeMulticastAddress(q,Ee,Ae){switch(Ae){case"IP4":case"ip4":return this.consumeIP4MulticastAddress(q,Ee);case"IP6":case"ip6":return this.consumeIP6MulticastAddress(q,Ee);default:try{return this.consumeFQDN(q,Ee)}catch{return this.consumeExtnAddr(q,Ee)}}}consumeIP6MulticastAddress(q,Ee){let Ae=this.consumeHexpart(q,Ee);return q[Ae]==="/"?this.consumeInteger(q,Ae+1):Ae}consumeIP4MulticastAddress(q,Ee){let Ae=Ee+3,gt=q.slice(Ee,Ae),bn=parseInt(gt);if(bn<224||bn>239)throw new Error("Invalid IP4 multicast address, IPv4 multicast addresses may be in the range 224.0.0.0 to 239.255.255.255.");for(let ji=0;ji<3;ji++){if(q[Ae]!==".")throw new Error("Invalid IP4 multicast address.");Ae+=1,Ae=this.consumeDecimalUChar(q,Ae)}return q[Ae]==="/"&&(Ae+=1),Ae=this.consumeTTL(q,Ae),q[Ae]==="/"&&(Ae=this.consumeInteger(q,Ae)),Ae}consumeInteger(q,Ee){if(!K(q[Ee]))throw new Error("Invalid integer.");for(Ee+=1;U(q[Ee]);)Ee+=1;return Ee}consumeTTL(q,Ee){if(q[Ee]==="0")return Ee+1;if(!K(q[Ee]))throw new Error("Invalid TTL.");Ee+=1;for(let Ae=0;Ae<2&&U(q[Ee]);Ae++)Ee+=1;return Ee}consumeToken(q,Ee){return this.consumeOneOrMore(q,Ee,W)}consumeTime(q,Ee){let Ae=Ee;if(q[Ae]==="0")return Ae+1;for(K(q[Ae])&&(Ae+=1);U(q[Ae]);)Ae++;if(Ae-Ee<10)throw new Error("Invalid time");return Ae}consumeAddress(q,Ee){return this.consumeTill(q,Ee,x)}consumeTypedTime(q,Ee){let Ae=Ee;return Ae=this.consumeOneOrMore(q,Ae,U),ue(q[Ae])?Ae+1:Ae}consumeRepeatInterval(q,Ee){if(!K(q[Ee]))throw new Error("Invalid repeat interval");for(Ee+=1;U(q[Ee]);)Ee+=1;return ue(q[Ee])&&(Ee+=1),Ee}consumePort(q,Ee){return this.consumeOneOrMore(q,Ee,U)}consume(q,Ee,Ae){for(let gt=0;gt=q.length)throw new Error("consume exceeding value length");if(q[Ee+gt]!==Ae[gt])throw new Error("consume ".concat(Ae," failed at ").concat(gt))}return Ee+Ae.length}consumeTill(q,Ee,Ae){let gt=Ee;for(;gt!!ks(Xr).call(Xr)).map(this.parseLine),this.currentLine=0;let Ae=this.parseVersion(),gt=this.parseOrigin(),bn=this.parseSessionName(),ji=this.parseInformation(),os=this.parseUri(),ll=this.parseEmail(),Rm=this.parsePhone(),QD=this.parseConnection(),ZD=this.parseBandWidth(),_d=this.parseTimeFields(),Y0=this.parseKey(),Tb=this.parseSessionAttribute(),Pr=this.parseMediaDescription();if(this.currentLine!==this.records.length)throw new Error("parsing failed, non exhaustive sdp lines.");return{version:Ae,origin:gt,sessionName:bn,information:ji,uri:os,emails:ll,phones:Rm,connection:QD,bandwidths:ZD,timeFields:_d,key:Y0,attributes:Tb,mediaDescriptions:Pr}}getCurrentRecord(){let q=this.records[this.currentLine];if(!q)throw new Error("Record doesn't exit.");return q}probeEOL(q){for(let Ee=0;Ee=.");let Ae=q[0];if(q[1]!=="=")throw new Error('Invalid sdp line, should be a single character followed by an "=" sign.');return{type:Ae,value:q.slice(2),line:Ee,cur:0}}parseSessionAttribute(){let q=new Gi;for(;this.currentLineW(gt)&>!==":"),_cur:0};Ee.value[Ee.cur]===":"&&(Ee.cur+=1,Ae.attValue=this.extractOneOrMore(Ee,xe)),q.parse(Ae),this.currentLine++}return q.digest()}parseMediaAttributes(q){let Ee=new Ur(q);for(;this.currentLineW(bn)&&bn!==":"),_cur:0};Ae.value[Ae.cur]===":"&&(Ae.cur+=1,gt.attValue=this.extractOneOrMore(Ae,xe)),Ee.parse(gt),this.currentLine++}return Ee.digest()}parseKey(){let q=this.getCurrentRecord();if(q.type===L.KEY){if(q.value==="prompt"||q.value==="clear:"||q.value==="base64:"||q.value==="uri:")return q.value;throw this.currentLine++,new Error("Invalid key.")}}parseZone(){let q=this.getCurrentRecord();if(q.type===L.ZONE_ADJUSTMENTS){let Ee=[];for(;;)try{let Ae=this.extract(q,this.consumeTime);this.consumeSpaceForRecord(q);let gt=!1;q.value[q.cur]==="-"&&(gt=!0,q.cur+=1);let bn=this.extract(q,this.consumeTypedTime);Ee.push({time:Ae,typedTime:bn,back:gt})}catch{break}if(Ee.length===0)throw new Error("Invalid zone adjustments");return this.currentLine++,Ee}return[]}parseRepeat(){let q=[];for(;;){let Ee=this.getCurrentRecord();if(Ee.type!==L.REPEAT)break;{let Ae=this.extract(Ee,this.consumeRepeatInterval),gt=this.parseTypedTime(Ee);q.push({repeatInterval:Ae,typedTimes:gt}),this.currentLine++}}return q}parseTypedTime(q){let Ee=[];for(;;)try{this.consumeSpaceForRecord(q),Ee.push(this.extract(q,this.consumeTypedTime))}catch{break}if(Ee.length===0)throw new Error("Invalid typed time.");return Ee}parseTime(){let q=this.getCurrentRecord(),Ee=this.extract(q,this.consumeTime);this.consumeSpaceForRecord(q);let Ae=this.extract(q,this.consumeTime);return this.currentLine++,{startTime:Ee,stopTime:Ae}}parseBandWidth(){let q=[];for(;this.currentLine2?Ae-2:0),bn=2;bnos)throw new Error("error in length, should be less or equal than ".concat(os," characters."));return q._cur=gt,bn}consumeAttributeSpace(q){if(q.attValue[q._cur]!==x)throw new Error("Invalid space at ".concat(q._cur,"."));q._cur+=1}extract(q,Ee){if(!q.attValue)throw new Error("Nothing to extract from attValue.");for(var Ae=arguments.length,gt=new Array(Ae>2?Ae-2:0),bn=2;bn=q.attValue.length}peekChar(q){if(!q.attValue)throw new Error;return q.attValue[q._cur]}peek(q,Ee){if(!q.attValue)throw new Error;for(let Ae=0;Aeji!==x&&xe(ji));Ae.push({name:gt,value:bn})}this.attributes.identities.push({assertionValue:Ee,extensions:Ae})}parseMsidSemantic(q){this.peekChar(q)===x&&this.consumeAttributeSpace(q);let Ee={semantic:this.extract(q,this.consumeToken),identifierList:[]};for(;;){try{this.consumeAttributeSpace(q)}catch{break}if(this.peekChar(q)==="*"){this.extract(q,this.consume,"*"),Ee.applyForAll=!0;break}{let Ae=this.extract(q,this.consumeTill,x);Ee.identifierList.push(Ae)}}this.attributes.msidSemantic=Ee}}class Ur extends hi{constructor(q){super(),ft(this,"attributes",void 0),q.protos.indexOf("RTP")!==-1||q.protos.indexOf("rtp"),this.attributes={unrecognized:[],candidates:[],extmaps:[],fingerprints:[],imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[]}}parse(q){if(this.digested)throw new Error("already digested");try{switch(q.attField){case"extmap":this.parseExtmap(q);break;case"setup":this.parseSetup(q);break;case"ice-ufrag":this.parseIceUfrag(q);break;case"ice-pwd":this.parseIcePwd(q);break;case"ice-options":this.parseIceOptions(q);break;case"candidate":this.parseCandidate(q);break;case"remote-candidate":this.parseRemoteCandidate(q);break;case"end-of-candidates":this.parseEndOfCandidates();break;case"fingerprint":this.parseFingerprint(q);break;case"rtpmap":this.parseRtpmap(q);break;case"ptime":this.parsePtime(q);break;case"maxptime":this.parseMaxPtime(q);break;case"sendrecv":case"recvonly":case"sendonly":case"inactive":this.parseDirection(q);break;case"ssrc":this.parseSSRC(q);break;case"fmtp":this.parseFmtp(q);break;case"rtcp-fb":this.parseRtcpFb(q);break;case"rtcp-mux":this.parseRTCPMux();break;case"rtcp-mux-only":this.parseRTCPMuxOnly();break;case"rtcp-rsize":this.parseRTCPRsize();break;case"rtcp":this.parseRTCP(q);break;case"mid":this.parseMid(q);break;case"msid":this.parseMsid(q);break;case"imageattr":this.parseImageAttr(q);break;case"rid":this.parseRid(q);break;case"simulcast":this.parseSimulcast(q);break;case"sctp-port":this.parseSctpPort(q);break;case"max-message-size":this.parseMaxMessageSize(q);break;case"ssrc-group":this.parseSSRCGroup(q);break;default:q.ignored=!0,this.attributes.unrecognized.push(q)}}catch(Ee){throw console.error("parsing media attribute ".concat(q.attField,' error, "a=').concat(q.attField,":").concat(q.attValue,'"')),Ee}if(!q.ignored&&q.attValue&&!this.atEnd(q))throw new Error("attribute parsing error")}parseCandidate(q){let Ee=this.extractOneOrMore(q,Oe,[1,32]);this.consumeAttributeSpace(q);let Ae=this.extractOneOrMore(q,U,[1,5]);this.consumeAttributeSpace(q);let gt=this.extract(q,this.consumeToken);this.consumeAttributeSpace(q);let bn=this.extractOneOrMore(q,U,[1,10]);this.consumeAttributeSpace(q);let ji=this.extract(q,this.consumeAddress);this.consumeAttributeSpace(q);let os=this.extract(q,this.consumePort);this.consumeAttributeSpace(q),this.extract(q,this.consume,"typ"),this.consumeAttributeSpace(q);let ll={foundation:Ee,componentId:Ae,transport:gt,priority:bn,connectionAddress:ji,port:os,type:this.extract(q,this.consumeToken),extension:{}};for(this.peek(q," raddr")&&(this.extract(q,this.consume," raddr"),this.consumeAttributeSpace(q),ll.relAddr=this.extract(q,this.consumeAddress)),this.peek(q," rport")&&(this.extract(q,this.consume," rport"),this.consumeAttributeSpace(q),ll.relPort=this.extract(q,this.consumePort));this.peekChar(q)===x;){this.consumeAttributeSpace(q);let Rm=this.extract(q,this.consumeToken);this.consumeAttributeSpace(q),ll.extension[Rm]=this.extractOneOrMore(q,F)}this.attributes.candidates.push(ll)}parseRemoteCandidate(q){let Ee=[];for(;;){let Ae=this.extractOneOrMore(q,U,[1,5]);this.consumeAttributeSpace(q);let gt=this.extract(q,this.consumeAddress);this.consumeAttributeSpace(q);let bn=this.extract(q,this.consumePort);Ee.push({componentId:Ae,connectionAddress:gt,port:bn});try{this.consumeAttributeSpace(q)}catch{break}}this.attributes.remoteCandidatesList.push(Ee)}parseEndOfCandidates(){if(this.attributes.endOfCandidates)throw new Error("must be only one line of end-of-candidates");this.attributes.endOfCandidates=!0}parseRtpmap(q){let Ee=this.extract(q,this.consumeToken);this.consumeAttributeSpace(q);let Ae=this.extract(q,this.consumeTill,"/");this.extract(q,this.consume,"/");let gt={encodingName:Ae,clockRate:this.extractOneOrMore(q,U)};this.atEnd(q)||this.peekChar(q)!=="/"||(this.extract(q,this.consume,"/"),gt.encodingParameters=parseInt(this.extract(q,this.consumeTill),10));let bn=this.attributes.payloads.find(ji=>ji.payloadType===parseInt(Ee,10));bn?bn.rtpMap=gt:this.attributes.payloads.push({payloadType:parseInt(Ee,10),rtpMap:gt,rtcpFeedbacks:[]})}parsePtime(q){if(this.attributes.ptime)throw new Error("must be only one line of ptime");this.attributes.ptime=this.extract(q,this.consumeTill)}parseMaxPtime(q){if(this.attributes.maxPtime)throw new Error("must be only one line of ptime");this.attributes.maxPtime=this.extract(q,this.consumeTill)}parseDirection(q){if(this.attributes.direction)throw new Error("must be only one line of direction info");this.attributes.direction=q.attField}parseSSRC(q){let Ee=this.extractOneOrMore(q,U);this.consumeAttributeSpace(q);let Ae=this.extract(q,this.consumeTill,":"),gt;this.peekChar(q)===":"&&(this.extract(q,this.consume,":"),gt=this.extract(q,this.consumeTill));let bn=this.attributes.ssrcs.find(ji=>ji.ssrcId===parseInt(Ee,10));bn?bn.attributes[Ae]=gt:this.attributes.ssrcs.push({ssrcId:parseInt(Ee,10),attributes:{[Ae]:gt}})}parseFmtp(q){let Ee=this.extract(q,this.consumeTill,x);this.consumeAttributeSpace(q);let Ae=this.extract(q,this.consumeTill),gt={};Ae.split(";").forEach(ji=>{let[os,ll]=ji.split("=");os=ks(os).call(os);let Rm=typeof ll=="string"?ks(ll).call(ll):null;typeof os=="string"&&os.length>0&&(gt[os]=Rm)});let bn=this.attributes.payloads.find(ji=>ji.payloadType===parseInt(Ee,10));bn?bn.fmtp={parameters:gt}:this.attributes.payloads.push({payloadType:parseInt(Ee,10),rtcpFeedbacks:[],fmtp:{parameters:gt}})}parseFmtParameters(q){let Ee={},Ae=this.extract(q,this.consumeTill,"=");q._cur++;let gt=this.extract(q,this.consumeTill,";");for(Ee[Ae]=gt;q.attValue[q._cur]===";";){let bn=this.extract(q,this.consumeTill,"=");q._cur++;let ji=this.extract(q,this.consumeTill,";");Ee[bn]=ji}return Ee}parseRtcpFb(q){let Ee="";Ee=this.peekChar(q)==="*"?this.extract(q,this.consume,"*"):this.extract(q,this.consumeTill,x),this.consumeAttributeSpace(q);let Ae=this.extract(q,this.consumeTill,x),gt;if(Ae==="trr-int")gt={type:Ae,interval:this.extract(q,this.consumeTill)};else{let bn={type:Ae};this.peekChar(q)===x&&(this.consumeAttributeSpace(q),bn.parameter=this.extract(q,this.consumeToken),this.peekChar(q)===x&&(bn.additional=this.extract(q,this.consumeTill))),gt=bn}if(Ee==="*")this.attributes.rtcpFeedbackWildcards.push(gt);else{let bn=this.attributes.payloads.find(ji=>ji.payloadType===parseInt(Ee,10));bn?bn.rtcpFeedbacks.push(gt):this.attributes.payloads.push({payloadType:parseInt(Ee,10),rtcpFeedbacks:[gt]})}}parseRTCPMux(){if(this.attributes.rtcpMux)throw new Error("must be single line of rtcp-mux");this.attributes.rtcpMux=!0}parseRTCPMuxOnly(){if(this.attributes.rtcpMuxOnly)throw new Error("must be single line of rtcp-only");this.attributes.rtcpMuxOnly=!0}parseRTCPRsize(){if(this.attributes.rtcpRsize)throw new Error("must be single line of rtcp-rsize");this.attributes.rtcpRsize=!0}parseRTCP(q){if(this.attributes.rtcp)throw new Error("must be single line of rtcp");let Ee={port:this.extract(q,this.consumePort)};this.peekChar(q)===x&&(this.consumeAttributeSpace(q),Ee.netType=this.extractOneOrMore(q,W),this.consumeAttributeSpace(q),Ee.addressType=this.extractOneOrMore(q,W),this.consumeAttributeSpace(q),Ee.address=this.extract(q,this.consumeAddress)),this.attributes.rtcp=Ee}parseMsid(q){let Ee={id:this.extractOneOrMore(q,W,[1,64])};this.peekChar(q)===x&&(this.consumeAttributeSpace(q),Ee.appdata=this.extractOneOrMore(q,W,[1,64])),this.attributes.msids.push(Ee)}parseImageAttr(q){this.attributes.imageattr.push(q.attValue)}parseRid(q){let Ee=this.extractOneOrMore(q,gt=>oe(gt)||U(gt)||gt==="_"||gt==="-");this.consumeAttributeSpace(q);let Ae={id:Ee,direction:this.extract(q,this.consumeToken),params:[]};if(this.peekChar(q)===x){if(this.consumeAttributeSpace(q),this.peek(q,"pt=")){this.extract(q,this.consume,"pt=");let gt=[];for(;;){let bn=this.extract(q,this.consumeToken);gt.push(bn);try{this.extract(q,this.consume,",")}catch{break}}Ae.payloads=gt,this.peekChar(q)===x&&this.extract(q,this.consume,x)}for(;;){let gt=this.extract(q,this.consumeToken);switch(gt){case"depend":{let bn={type:gt,rids:this.extract(q,this.consume,"=").split(",")};Ae.params.push(bn);break}default:{let bn={type:gt};this.peekChar(q)==="="&&(this.extract(q,this.consume,"="),bn.val=this.extract(q,this.consumeTill,";")),Ae.params.push(bn)}}try{this.extract(q,this.consume,";")}catch{break}}}this.attributes.rids.push(Ae)}parseSimulcast(q){if(this.attributes.simulcast)throw new Error("must be single line of simulcast");this.attributes.simulcast=q.attValue,this.extract(q,this.consumeTill)}parseSctpPort(q){this.attributes.sctpPort=this.extractOneOrMore(q,U,[1,5])}parseMaxMessageSize(q){this.attributes.maxMessageSize=this.extractOneOrMore(q,U,[1,void 0])}digest(){return this.digested=!0,this.attributes}parseMid(q){this.attributes.mid=this.extract(q,this.consumeToken)}parseSSRCGroup(q){let Ee=this.extract(q,this.consumeToken),Ae=[];for(;;)try{this.consumeAttributeSpace(q);let gt=this.extract(q,this.consumeInteger);Ae.push(parseInt(gt,10))}catch{break}this.attributes.ssrcGroups.push({semantic:Ee,ssrcIds:Ae})}}function mr(Rt,q,Ee){return q in Rt?Object.defineProperty(Rt,q,{value:Ee,enumerable:!0,configurable:!0,writable:!0}):Rt[q]=Ee,Rt}class Ou{constructor(){mr(this,"eol",R)}print(q,Ee){let Ae="";return Ee&&(this.eol=Ee),Ae+=this.printVersion(q.version),Ae+=this.printOrigin(q.origin),Ae+=this.printSessionName(q.sessionName),Ae+=this.printInformation(q.information),Ae+=this.printUri(q.uri),Ae+=this.printEmail(q.emails),Ae+=this.printPhone(q.phones),Ae+=this.printConnection(q.connection),Ae+=this.printBandwidth(q.bandwidths),Ae+=this.printTimeFields(q.timeFields),Ae+=this.printKey(q.key),Ae+=this.printSessionAttributes(q.attributes),Ae+=this.printMediaDescription(q.mediaDescriptions),Ae}printVersion(q){return"v=".concat(q).concat(this.eol)}printOrigin(q){return"o=".concat(q.username," ").concat(q.sessId," ").concat(q.sessVersion," ").concat(q.nettype," ").concat(q.addrtype," ").concat(q.unicastAddress).concat(this.eol)}printSessionName(q){return q?"s=".concat(q).concat(this.eol):""}printInformation(q){return q?"i=".concat(q).concat(this.eol):""}printUri(q){return q?"u=".concat(q).concat(this.eol):""}printEmail(q){let Ee="";for(let Ae of q)Ee+="e=".concat(Ae).concat(this.eol);return Ee}printPhone(q){let Ee="";for(let Ae of q)Ee+="e=".concat(Ae).concat(this.eol);return Ee}printConnection(q){return q?"c=".concat(q.nettype," ").concat(q.addrtype," ").concat(q.address).concat(this.eol):""}printBandwidth(q){let Ee="";for(let Ae of q)Ee+="b=".concat(Ae.bwtype,":").concat(Ae.bandwidth).concat(this.eol);return Ee}printTimeFields(q){let Ee="";for(let Ae of q){Ee+="t=".concat(Ae.time.startTime," ").concat(Ae.time.startTime).concat(this.eol);for(let gt of Ae.repeats)Ee+="r=".concat(gt.repeatInterval," ").concat(gt.typedTimes.join(" ")).concat(this.eol);Ae.zoneAdjustments&&(Ee+="z=",Ee+="z=".concat(Ae.zoneAdjustments.map(gt=>"".concat(gt.time," ").concat(gt.back?"-":""," ").concat(gt.typedTime)).join(" ")).concat(this.eol),Ee+=this.eol)}return Ee}printKey(q){return q?"k=".concat(q).concat(this.eol):""}printAttributes(q){let Ee="";for(let Ae of q)Ee+="a=".concat(Ae.attField).concat(Ae.attValue?":".concat(Ae.attValue):"").concat(this.eol);return Ee}printMediaDescription(q){let Ee="";for(let Ae of q)Ee+=this.printMedia(Ae.media),Ee+=this.printInformation(Ae.information),Ee+=this.printConnections(Ae.connections),Ee+=this.printBandwidth(Ae.bandwidths),Ee+=this.printKey(Ae.key),Ee+=this.printMediaAttributes(Ae);return Ee}printConnections(q){let Ee="";for(let Ae of q)Ee+=this.printConnection(Ae);return Ee}printMedia(q){return"m=".concat(q.mediaType," ").concat(q.port," ").concat(q.protos.join("/")," ").concat(q.fmts.join(" ")).concat(this.eol)}printSessionAttributes(q){return new yt(this.eol).print(q)}printMediaAttributes(q){return new Vt(this.eol).print(q)}}class at{constructor(q){mr(this,"eol",void 0),this.eol=q}printIceUfrag(q){return q===void 0?"":"a=ice-ufrag:".concat(q).concat(this.eol)}printIcePwd(q){return q===void 0?"":"a=ice-pwd:".concat(q).concat(this.eol)}printIceOptions(q){return q===void 0?"":"a=ice-options:".concat(q.join(x)).concat(this.eol)}printFingerprints(q){return q.length>0?q.map(Ee=>"a=fingerprint:".concat(Ee.hashFunction).concat(x).concat(Ee.fingerprint)).join(this.eol)+this.eol:""}printExtmap(q){return q.map(Ee=>"a=extmap:".concat(Ee.entry).concat(Ee.direction?"/".concat(Ee.direction):"").concat(x).concat(Ee.extensionName).concat(Ee.extensionAttributes?"".concat(x).concat(Ee.extensionAttributes):"").concat(this.eol)).join("")}printSetup(q){return q===void 0?"":"a=setup:".concat(q).concat(this.eol)}printUnrecognized(q){return q.map(Ee=>"a=".concat(Ee.attField).concat(Ee.attValue?":".concat(Ee.attValue):"").concat(this.eol)).join("")}}class yt extends at{print(q){let Ee="";return Ee+=this.printGroups(q.groups),Ee+=this.printMsidSemantic(q.msidSemantic),Ee+=this.printIceLite(q.iceLite),Ee+=this.printIceUfrag(q.iceUfrag),Ee+=this.printIcePwd(q.icePwd),Ee+=this.printIceOptions(q.iceOptions),Ee+=this.printFingerprints(q.fingerprints),Ee+=this.printSetup(q.setup),Ee+=this.printTlsId(q.tlsId),Ee+=this.printIdentity(q.identities),Ee+=this.printExtmap(q.extmaps),Ee+=this.printUnrecognized(q.unrecognized),Ee}printGroups(q){let Ee="";return q.length>0&&(Ee+=q.map(Ae=>"a=group:".concat(Ae.semantic).concat(Ae.identificationTag.map(gt=>"".concat(x).concat(gt)).join("")).concat(this.eol)).join("")),Ee}printIceLite(q){return q===void 0?"":"a=ice-lite"+this.eol}printTlsId(q){return q?"a=tls-id:".concat(q).concat(this.eol):""}printIdentity(q){return q.length===0?"":q.map(Ee=>"a=identity:".concat(Ee.assertionValue).concat(Ee.extensions.map(Ae=>"".concat(x).concat(Ae.name).concat(Ae.value?"=".concat(Ae.value):"")))).join(this.eol)+this.eol}printMsidSemantic(q){if(!q)return"";let Ee="a=msid-semantic:".concat(q.semantic);return q.applyForAll?Ee+="".concat(x,"*"):q.identifierList.length>0&&(Ee+=q.identifierList.map(Ae=>"".concat(x).concat(Ae))),Ee+this.eol}}class Vt extends at{print(q){let Ee=q.attributes,Ae="";return Ae+=this.printRTCP(Ee.rtcp),Ae+=this.printIceUfrag(Ee.iceUfrag),Ae+=this.printIcePwd(Ee.icePwd),Ae+=this.printIceOptions(Ee.iceOptions),Ae+=this.printCandidates(Ee.candidates),Ae+=this.printRemoteCandidatesList(Ee.remoteCandidatesList),Ae+=this.printEndOfCandidates(Ee.endOfCandidates),Ae+=this.printFingerprints(Ee.fingerprints),Ae+=this.printSetup(Ee.setup),Ae+=this.printMid(Ee.mid),Ae+=this.printExtmap(Ee.extmaps),Ae+=this.printRTPRelated(Ee),Ae+=this.printPtime(Ee.ptime),Ae+=this.printMaxPtime(Ee.maxPtime),Ae+=this.printDirection(Ee.direction),Ae+=this.printSSRCGroups(Ee.ssrcGroups),Ae+=this.printSSRC(Ee.ssrcs),Ae+=this.printRTCPMux(Ee.rtcpMux),Ae+=this.printRTCPMuxOnly(Ee.rtcpMuxOnly),Ae+=this.printRTCPRsize(Ee.rtcpRsize),Ae+=this.printMSId(Ee.msids),Ae+=this.printImageattr(Ee.imageattr),Ae+=this.printRid(Ee.rids),Ae+=this.printSimulcast(Ee.simulcast),Ae+=this.printSCTPPort(Ee.sctpPort),Ae+=this.printMaxMessageSize(Ee.maxMessageSize),Ae+=this.printUnrecognized(Ee.unrecognized),Ae}printCandidates(q){return q.map(Ee=>"a=candidate:".concat(Ee.foundation).concat(x).concat(Ee.componentId).concat(x).concat(Ee.transport).concat(x).concat(Ee.priority).concat(x).concat(Ee.connectionAddress).concat(x).concat(Ee.port).concat(x,"typ").concat(x).concat(Ee.type).concat(Ee.relAddr?"".concat(x,"raddr").concat(x).concat(Ee.relAddr):"").concat(Ee.relPort?"".concat(x,"rport").concat(x).concat(Ee.relPort):"").concat(Object.keys(Ee.extension).map(Ae=>"".concat(x).concat(Ae).concat(x).concat(Ee.extension[Ae])).join("")).concat(this.eol)).join("")}printRemoteCandidatesList(q){return q.map(Ee=>"a=remote-candidates:".concat(Ee.join(x)).concat(this.eol)).join("")}printEndOfCandidates(q){return q===void 0?"":"a=end-of-candidates"+this.eol}printRTPRelated(q){if(!q.payloads)return"";let Ee=q.payloads,Ae="";Ae+=q.rtcpFeedbackWildcards.map(gt=>this.printRTCPFeedback("*",gt)).join("");for(let gt of Ee)Ae+=this.printRtpMap(gt.payloadType,gt.rtpMap),Ae+=this.printFmtp(gt.payloadType,gt.fmtp),Ae+=gt.rtcpFeedbacks.map(bn=>this.printRTCPFeedback(gt.payloadType,bn)).join("");return Ae}printFmtp(q,Ee){if(!Ee)return"";let Ae=Object.keys(Ee.parameters);return Ae.length===1&&Ee.parameters[Ae[0]]===null?"a=fmtp:".concat(q).concat(x).concat(Ae[0]).concat(this.eol):"a=fmtp:".concat(q).concat(x).concat(Object.keys(Ee.parameters).map(gt=>"".concat(gt,"=").concat(Ee.parameters[gt])).join(";")).concat(this.eol)}printRtpMap(q,Ee){return Ee?"a=rtpmap:".concat(q).concat(x).concat(Ee.encodingName,"/").concat(Ee.clockRate).concat(Ee.encodingParameters?"/".concat(Ee.encodingParameters):"").concat(this.eol):""}printRTCPFeedback(q,Ee){let Ae="a=rtcp-fb:".concat(q).concat(x),gt=Ee;return gt.type==="trr-int"?Ae+="ttr-int".concat(x).concat(gt.interval):(Ae+="".concat(gt.type),gt.parameter&&(Ae+="".concat(x).concat(gt.parameter),gt.additional&&(Ae+="".concat(x).concat(gt.additional)))),Ae+this.eol}printPtime(q){return q===void 0?"":"a=ptime:".concat(q).concat(this.eol)}printMaxPtime(q){return q===void 0?"":"a=maxptime:".concat(q).concat(this.eol)}printDirection(q){return q===void 0?"":"a=".concat(q).concat(this.eol)}printSSRC(q){return q.map(Ee=>Object.keys(Ee.attributes).map(Ae=>"a=ssrc:".concat(Ee.ssrcId.toString(10)).concat(x).concat(Ae).concat(Ee.attributes[Ae]?":".concat(Ee.attributes[Ae]):"").concat(this.eol)).join("")).join("")}printRTCPMux(q){return q===void 0?"":"a=rtcp-mux".concat(this.eol)}printRTCPMuxOnly(q){return q===void 0?"":"a=rtcp-mux-only".concat(this.eol)}printRTCPRsize(q){return q===void 0?"":"a=rtcp-rsize".concat(this.eol)}printRTCP(q){if(q===void 0)return"";let Ee="a=rtcp:".concat(q.port);return q.netType&&(Ee+="".concat(x).concat(q.netType)),q.addressType&&(Ee+="".concat(x).concat(q.addressType)),q.address&&(Ee+="".concat(x).concat(q.address)),Ee+this.eol}printMSId(q){return q.map(Ee=>"a=msid:".concat(Ee.id).concat(Ee.appdata?"".concat(x).concat(Ee.appdata):"").concat(this.eol)).join("")}printImageattr(q){return q.map(Ee=>"a=imageattr:".concat(Ee).concat(this.eol)).join("")}printRid(q){return q.map(Ee=>{let Ae="a=rid:".concat(Ee.id).concat(x).concat(Ee.direction);return Ee.payloads&&(Ae+="".concat(x,"pt=").concat(Ee.payloads.join(","))),Ee.params.length>0&&(Ae+="".concat(x).concat(Ee.params.map(gt=>gt.type==="depend"?"depend=".concat(gt.rids.join(",")):"".concat(gt.type,"=").concat(gt.val)).join(";"))),Ae+this.eol}).join("")}printSimulcast(q){return q===void 0?"":"a=simulcast:".concat(q).concat(this.eol)}printSCTPPort(q){return q===void 0?"":"a=sctp-port:".concat(q).concat(this.eol)}printMaxMessageSize(q){return q===void 0?"":"a=max-message-size:".concat(q).concat(this.eol)}printMid(q){return q===void 0?"":"a=mid:".concat(q).concat(this.eol)}printSSRCGroups(q){return q.map(Ee=>"a=ssrc-group:".concat(Ee.semantic).concat(Ee.ssrcIds.map(Ae=>"".concat(x).concat(Ae.toString(10))).join("")).concat(this.eol)).join("")}}function Rn(Rt){return new $n().parse(Rt)}function oi(Rt,q){return new Ou().print(Rt,q)}}},c={};function f(m){if(c[m])return c[m].exports;var v=c[m]={exports:{}};return o[m](v,v.exports,f),v.exports}return f.d=(m,v)=>{for(var w in v)f.o(v,w)&&!f.o(m,w)&&Object.defineProperty(m,w,{enumerable:!0,get:v[w]})},f.o=(m,v)=>Object.prototype.hasOwnProperty.call(m,v),f.r=m=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(m,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(m,"__esModule",{value:!0})},f(8)})()})(Soe);var rr=Soe.exports;function Ru(r){if(Array.isArray(r))return r.map(o=>o);if(!boe(r))return r;let a={};for(let o in r){let c=r[o];boe(c)||Array.isArray(c)?a[o]=Ru(c):a[o]=c}return a}function boe(r){return!(typeof r!="object"||Array.isArray(r)||!r)}class CW{constructor(a){X(this,"input",[]),X(this,"size",void 0),this.size=a}add(a){this.input.push(a),this.input.length>this.size&&this.input.splice(0,1)}diffMean(){return this.input.length===0?0:(this.input[this.input.length-1]-this.input[0])/this.input.length}}let Wf={address:"unknown",candidateType:"unknown",id:"unknown",port:0,priority:0,protocol:"unknown",type:"unknown"},J3={timestamp:0,bitrate:{actualEncoded:0,transmit:0},sendPacketLossRate:0,recvPacketLossRate:0,videoRecv:[],videoSend:[],audioRecv:[],audioSend:[],selectedCandidatePair:{id:"unknown",localCandidate:Wf,remoteCandidate:Wf}},Coe={firsCount:0,nacksCount:0,plisCount:0,framesDecodeCount:0,framesDecodeInterval:0,framesDecodeFreezeTime:0,decodeFrameRate:0,bytes:0,packetsLost:0,packetLostRate:0,packets:0,ssrc:0,qpSumPerFrame:0,framesDroppedCount:0,outputFrameRate:0},Toe={firsCount:0,nacksCount:0,plisCount:0,frameCount:0,bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0,qpSumPerFrame:0},Roe={bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0},xoe={jitterBufferMs:0,jitterMs:0,bytes:0,packetsLost:0,packetLostRate:0,packets:0,ssrc:0,receivedFrames:0,droppedFrames:0,concealedSamples:0};function Aoe(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Ioe(r){for(var a=1;a{this.updateStats()},this.options.updateInterval)}getStats(){return this.stats}getSelectedCandidatePair(){return new Ct(a=>{a({local:Ioe({},Wf),remote:Ioe({},Wf)})})}setVideoIsReady(a){this.videoIsReady=a}setVideoIsReady2(a,o){this.videoIsReady2[a]=o}getVideoIsReady(a){return this.videoIsReady2[a]||!1}setIsFirstAudioDecoded(a){}destroy(){window.clearInterval(this.intervalTimer),this.pc=void 0}calcLossRate(a){this.lossRateWindowStats.push(a),this.lossRateWindowStats.length>this.options.lossRateInterval&&this.lossRateWindowStats.splice(0,1);let o=this.lossRateWindowStats.length,c=["videoSend","audioSend","videoRecv","audioRecv"],f=0,m=0,v=0,w=0;for(let C of c)a[C].forEach((R,x)=>{if(!this.lossRateWindowStats[o-1][C][x]||!this.lossRateWindowStats[0][C][x])return;let L=this.lossRateWindowStats[o-1][C][x].packets-this.lossRateWindowStats[0][C][x].packets,U=this.lossRateWindowStats[o-1][C][x].packetsLost-this.lossRateWindowStats[0][C][x].packetsLost;C==="videoSend"||C==="audioSend"?(f+=L,v+=U):(m+=L,w+=U),Number.isNaN(L)||Number.isNaN(L)?R.packetLostRate=0:R.packetLostRate=L<=0||U<=0?0:U/(L+U)});a.sendPacketLossRate=f<=0||v<=0?0:v/(f+v),a.recvPacketLossRate=m<=0||w<=0?0:w/(m+w)}}function Noe(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function E4e(r){for(var a=1;am.type==="ssrc");this.processSSRCStats(c);let f=o.find(m=>m.type==="VideoBwe");f&&this.processBandwidthStats(f),this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}processBandwidthStats(a){this._stats.bitrate={actualEncoded:Number(a.googActualEncBitrate),targetEncoded:Number(a.googTargetEncBitrate),retransmit:Number(a.googRetransmitBitrate),transmit:Number(a.googTransmitBitrate)},this._stats.sendBandwidth=Number(a.googAvailableSendBandwidth)}processSSRCStats(a){a.forEach(o=>{var c;let f=Tt(c=o.id).call(c,"send");switch("".concat(o.mediaType,"_").concat(f?"send":"recv")){case"video_send":{let m=Ru(Toe);m.codec=o.googCodecName,m.adaptionChangeReason="none",o.googCpuLimitedResolution&&(m.adaptionChangeReason="cpu"),o.googBandwidthLimitedResolution&&(m.adaptionChangeReason="bandwidth"),m.avgEncodeMs=Number(o.googAvgEncodeMs),m.inputFrame={width:Number(o.googFrameWidthInput)||Number(o.googFrameWidthSent),height:Number(o.googFrameHeightInput)||Number(o.googFrameHeightSent),frameRate:Number(o.googFrameRateInput)},m.sentFrame={width:Number(o.googFrameWidthSent),height:Number(o.googFrameHeightSent),frameRate:Number(o.googFrameRateInput)},m.firsCount=Number(o.googFirReceived),m.nacksCount=Number(o.googNacksReceived),m.plisCount=Number(o.googPlisReceived),m.frameCount=Number(o.framesEncoded),m.bytes=Number(o.bytesSent),m.packets=Number(o.packetsSent),m.packetsLost=Number(o.packetsLost),m.ssrc=Number(o.ssrc),m.rttMs=Number(o.googRtt||0),this._stats.videoSend.push(m),this._stats.rtt=m.rttMs;break}case"video_recv":{let m=Ru(Coe),v=this.lastDecodeVideoReceiverStats.get(Number(o.ssrc));if(m.codec=o.googCodecName,m.targetDelayMs=Number(o.googTargetDelayMs),m.renderDelayMs=Number(o.googRenderDelayMs),m.currentDelayMs=Number(o.googCurrentDelayMs),m.minPlayoutDelayMs=Number(o.googMinPlayoutDelayMs),m.decodeMs=Number(o.googDecodeMs),m.maxDecodeMs=Number(o.googMaxDecodeMs),m.receivedFrame={width:Number(o.googFrameWidthReceived),height:Number(o.googFrameHeightReceived),frameRate:Number(o.googFrameRateReceived)},m.decodedFrame={width:Number(o.googFrameWidthReceived),height:Number(o.googFrameHeightReceived),frameRate:Number(o.googFrameRateDecoded)},m.decodeFrameRate=Number(o.googFrameRateDecoded),m.outputFrame={width:Number(o.googFrameWidthReceived),height:Number(o.googFrameHeightReceived),frameRate:Number(o.googFrameRateOutput)},m.jitterBufferMs=Number(o.googJitterBufferMs),m.firsCount=Number(o.googFirsSent),m.nacksCount=Number(o.googNacksSent),m.plisCount=Number(o.googPlisSent),m.framesDecodeCount=Number(o.framesDecoded),m.bytes=Number(o.bytesReceived),m.packets=Number(o.packetsReceived),m.packetsLost=Number(o.packetsLost),m.ssrc=Number(o.ssrc),m.packets>0&&!this.isFirstVideoReceived[m.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(m.ssrc),this.isFirstVideoReceived[m.ssrc]=!0),m.framesDecodeCount>0&&!this.isFirstVideoDecoded[m.ssrc]&&(this.onFirstVideoDecoded&&this.onFirstVideoDecoded(m.ssrc,m.decodedFrame.width,m.decodedFrame.height),this.isFirstVideoDecoded[m.ssrc]=!0),v){let w=v.stats,C=Date.now()-v.lts;m.framesDecodeFreezeTime=w.framesDecodeFreezeTime,m.framesDecodeInterval=w.framesDecodeInterval,m.framesDecodeCount>w.framesDecodeCount&&this.isFirstVideoDecoded[m.ssrc]?(v.lts=Date.now(),m.framesDecodeInterval=C,m.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(o.ssrc,10))?m.framesDecodeFreezeTime+=m.framesDecodeInterval:this.setVideoIsReady2(parseInt(o.ssrc,10),!0))):m.framesDecodeCount0&&!this.isFirstAudioReceived[m.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(m.ssrc),this.isFirstAudioReceived[m.ssrc]=!0),m.decodingNormal>0&&!this.isFirstAudioDecoded[m.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(m.ssrc),this.isFirstAudioDecoded[m.ssrc]=!0),this._stats.audioRecv.push(m);break}case"audio_send":{let m=Ru(Roe);m.codec=o.googCodecName,m.inputLevel=Math.abs(Number(o.audioInputLevel))/32767,m.aecReturnLoss=Number(o.googEchoCancellationReturnLoss||0),m.aecReturnLossEnhancement=Number(o.googEchoCancellationReturnLossEnhancement||0),m.residualEchoLikelihood=Number(o.googResidualEchoLikelihood||0),m.residualEchoLikelihoodRecentMax=Number(o.googResidualEchoLikelihoodRecentMax||0),m.bytes=Number(o.bytesSent),m.packets=Number(o.packetsSent),m.packetsLost=Number(o.packetsLost),m.ssrc=Number(o.ssrc),m.rttMs=Number(o.googRtt||0),this._stats.rtt=m.rttMs,this._stats.audioSend.push(m);break}}})}_getStats(){return new Ct((a,o)=>{this.pc.getStats(a,o)})}statsResponsesToObjects(a){let o=[];return a.result().forEach(c=>{let f={id:c.id,timestamp:c.timestamp.valueOf().toString(),type:c.type};c.names().forEach(m=>{f[m]=c.stat(m)}),o.push(f)}),o}}function Ooe(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function a_(r){for(var a=1;a{switch(a.type){case Tc.OUTBOUND:case Tc.INBOUND:{let o=a.mediaType||a.kind,c=!o&&"frameWidth"in a,f=!o&&!("frameWidth"in a);a.type===Tc.OUTBOUND?o==="audio"||f?this.processAudioOutboundStats(a):(o==="video"||c)&&this.processVideoOutboundStats(a):a.type===Tc.INBOUND&&(o==="audio"||f?this.processAudioInboundStats(a):(o==="video"||c)&&this.processVideoInboundStats(a));break}case Tc.TRANSPORT:{let o=this.report.get(a.selectedCandidatePairId);o&&this.processCandidatePairStats(o);break}case Tc.CANDIDATE_PAIR:a.selected&&this.processCandidatePairStats(a)}}),this.updateSendBitrate(),this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}async getSelectedCandidatePair(){let a=await this.pc.getStats(),o={local:a_({},Wf),remote:a_({},Wf)};return a.forEach(c=>{let f;if(c.type===Tc.TRANSPORT&&(f=a.get(c.selectedCandidatePairId)),c.type===Tc.CANDIDATE_PAIR&&c.selected&&(f=c),f){let m=(v,w)=>{v.type=w.type,v.id=w.id,w.address&&(v.address=w.address),w.candidateType&&(v.candidateType=w.candidateType),w.port&&(v.port=w.port),w.priority&&(v.priority=w.priority),w.protocol&&(v.protocol=w.protocol),w.relayProtocol&&(v.relayProtocol=w.relayProtocol)};if(f.localCandidateId){let v=a.get(f.localCandidateId);v&&m(o.local,v)}if(f.remoteCandidateId){let v=a.get(f.remoteCandidateId);v&&m(o.remote,v)}}}),o}processCandidatePairStats(a){if(this._stats.sendBandwidth=a.availableOutgoingBitrate||0,a.currentRoundTripTime&&(this._stats.rtt=1e3*a.currentRoundTripTime),this._stats.videoSend.forEach(o=>{a.currentRoundTripTime&&(o.rttMs=1e3*a.currentRoundTripTime)}),this._stats.audioSend.forEach(o=>{a.currentRoundTripTime&&(o.rttMs=1e3*a.currentRoundTripTime)}),this._stats.selectedCandidatePair.id=a.id,a.localCandidateId){let o=this.report.get(a.localCandidateId);o&&this.processCandidateStats(o)}if(a.remoteCandidateId){let o=this.report.get(a.remoteCandidateId);o&&this.processCandidateStats(o)}}processCandidateStats(a){let o;a.type===Tc.LOCAL_CANDIDATE&&(o=this._stats.selectedCandidatePair.localCandidate),a.type===Tc.REMOTE_CANDIDATE&&(o=this._stats.selectedCandidatePair.remoteCandidate),o&&(o.type=a.type,o.id=a.id,a.address&&(o.address=a.address),a.candidateType&&(o.candidateType=a.candidateType),a.port&&(o.port=a.port),a.priority&&(o.priority=a.priority),a.protocol&&(o.protocol=a.protocol),a.relayProtocol&&(o.relayProtocol=a.relayProtocol),a.type===Tc.LOCAL_CANDIDATE&&this.stats.selectedCandidatePair.localCandidate.id!==o.id&&this.onSelectedLocalCandidateChanged&&this.onSelectedLocalCandidateChanged(a_({},o),a_({},this.stats.selectedCandidatePair.localCandidate)),a.type===Tc.REMOTE_CANDIDATE&&this.stats.selectedCandidatePair.remoteCandidate.id!==o.id&&this.onSelectedRemoteCandidateChanged&&this.onSelectedRemoteCandidateChanged(a_({},o),a_({},this.stats.selectedCandidatePair.remoteCandidate)))}processAudioInboundStats(a){let o=this._stats.audioRecv.find(c=>c.ssrc===a.ssrc);o||(o=Ru(xoe),this._stats.audioRecv.push(o)),o.ssrc=a.ssrc,o.packets=a.packetsReceived,o.packetsLost=a.packetsLost,o.bytes=a.bytesReceived,o.jitterMs=1e3*a.jitter,this.processAudioTrackReceiverStats(a,a.trackId,o),a.codecId&&(o.codec=this.getCodecFromCodecStats(a.codecId)),o.receivedFrames||(o.receivedFrames=a.packetsReceived),o.droppedFrames||(o.droppedFrames=a.packetsLost),o.receivedFrames>0&&!this.isFirstAudioReceived[o.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(o.ssrc),this.isFirstAudioReceived[o.ssrc]=!0),o.outputLevel&&o.outputLevel>0&&!this.isFirstAudioDecoded[o.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(o.ssrc),this.isFirstAudioDecoded[o.ssrc]=!0),typeof a.concealedSamples=="number"&&(o.concealedSamples=a.concealedSamples)}processVideoInboundStats(a){let o=this._stats.videoRecv.find(w=>w.ssrc===a.ssrc);o||(o=Ru(Coe),this._stats.videoRecv.push(o)),o.ssrc=a.ssrc,o.packets=a.packetsReceived,o.packetsLost=a.packetsLost,o.bytes=a.bytesReceived,o.firsCount=a.firCount,o.nacksCount=a.nackCount,o.plisCount=a.pliCount,o.framesDecodeCount=a.framesDecoded,o.framesDroppedCount=a.framesDropped,o.totalInterFrameDelay=a.totalInterFrameDelay,o.totalSquaredInterFrameDelay=a.totalSquaredInterFrameDelay,o.totalFreezesDuration=a.totalFreezesDuration;let c=this.lastDecodeVideoReceiverStats.get(o.ssrc),f=this.lastVideoFramesDecode.get(o.ssrc),m=this.lastVideoFramesOutput.get(o.ssrc),v=Date.now();if(o.framesDecodeCount>0&&!this.isFirstVideoDecoded[o.ssrc]){let w=o.decodedFrame?o.decodedFrame.width:0,C=o.decodedFrame?o.decodedFrame.height:0;this.onFirstVideoDecoded&&this.onFirstVideoDecoded(o.ssrc,w,C),this.isFirstVideoDecoded[o.ssrc]=!0}if(c){let w=c.stats,C=v-c.lts;o.framesDecodeFreezeTime=w.framesDecodeFreezeTime,o.framesDecodeInterval=w.framesDecodeInterval,!this.isFirstVideoDecoded[o.ssrc]&&C>this.options.firstVideoDecodedTimeout&&!this.isFirstVideoDecodedTimeout[o.ssrc]&&(this.onFirstVideoDecodedTimeout&&this.onFirstVideoDecodedTimeout(o.ssrc),this.isFirstVideoDecodedTimeout[o.ssrc]=!0),o.framesDecodeCount>w.framesDecodeCount&&this.isFirstVideoDecoded[o.ssrc]?(c.lts=Date.now(),o.framesDecodeInterval=C,o.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(a.ssrc))?o.framesDecodeFreezeTime+=o.framesDecodeInterval:this.setVideoIsReady2(parseInt(a.ssrc,10),!0))):o.framesDecodeCounta.framesDecoded?o.qpSumPerFrame=a.qpSum/a.framesDecoded:o.qpSumPerFrame=(a.qpSum-c.qpSum)/(a.framesDecoded-c.stats.framesDecodeCount))}f&&v-f.lts>=800?(o.decodeFrameRate=Math.round((o.framesDecodeCount-f.count)/((v-f.lts)/1e3)),this.lastVideoFramesDecode.set(o.ssrc,{count:o.framesDecodeCount,lts:v,rate:o.decodeFrameRate})):f?o.decodeFrameRate=f.rate:this.lastVideoFramesDecode.set(o.ssrc,{count:o.framesDecodeCount,lts:v,rate:0}),o.framesDroppedCount&&a.framesReceived&&(m&&v-m.lts>=800?(o.outputFrameRate=Math.round((a.framesReceived-o.framesDroppedCount-m.count)/((v-m.lts)/1e3)),this.lastVideoFramesOutput.set(o.ssrc,{count:a.framesReceived-o.framesDroppedCount,lts:v,rate:Math.max(o.outputFrameRate,0)})):m?o.outputFrameRate=m.rate:this.lastVideoFramesOutput.set(o.ssrc,{count:a.framesReceived-o.framesDroppedCount,lts:v,rate:0})),a.totalDecodeTime&&(o.decodeMs=1e3*a.totalDecodeTime),this.processVideoTrackReceiverStats(a,a.trackId,o),a.codecId&&(o.codec=this.getCodecFromCodecStats(a.codecId)),a.framerateMean&&(o.framesRateFirefox=a.framerateMean),o.packets>0&&!this.isFirstVideoReceived[o.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(o.ssrc),this.isFirstVideoReceived[o.ssrc]=!0),this.lastDecodeVideoReceiverStats.set(o.ssrc,{stats:a_({},o),lts:c?c.lts:Date.now(),qpSum:a.qpSum})}processVideoOutboundStats(a){let o=this._stats.videoSend.find(f=>f.ssrc===a.ssrc);o||(o=Ru(Toe),this._stats.videoSend.push(o));let c=this.mediaBytesSent.get(a.ssrc);if(c)c.add(a.bytesSent);else{let f=new CW(10);f.add(a.bytesSent),this.mediaBytesSent.set(a.ssrc,f)}if(a.retransmittedBytesSent!==void 0){let f=this.mediaBytesRetransmit.get(a.ssrc);if(f)f.add(a.retransmittedBytesSent);else{let m=new CW(10);m.add(a.retransmittedBytesSent),this.mediaBytesRetransmit.set(a.ssrc,m)}}if(a.totalEncodedBytesTarget){let f=this.mediaBytesTargetEncode.get(a.ssrc);if(f)f.add(a.totalEncodedBytesTarget);else{let m=new CW(10);m.add(a.totalEncodedBytesTarget),this.mediaBytesTargetEncode.set(a.ssrc,m)}}if(o.ssrc=a.ssrc,o.bytes=a.bytesSent,o.packets=a.packetsSent,o.firsCount=a.firCount,o.nacksCount=a.nackCount,o.plisCount=a.pliCount,o.frameCount=a.framesEncoded,o.adaptionChangeReason=a.qualityLimitationReason,o.scalabilityMode=a.scalabilityMode,a.totalEncodeTime&&a.framesEncoded){let f=this.lastEncoderMs.get(a.ssrc);if(!f||f.lastFrameCount>a.framesEncoded)o.avgEncodeMs=1e3*a.totalEncodeTime/a.framesEncoded;else{let m=a.framesEncoded-f.lastFrameCount,v=a.totalEncodeTime-f.lastEncoderTime;o.avgEncodeMs=1e3*v/m}}if(a.framesEncoded&&a.qpSum){let f=this.lastEncoderMs.get(a.ssrc);!f||f.lastFrameCount>a.framesEncoded?o.qpSumPerFrame=a.qpSum/a.framesEncoded:o.qpSumPerFrame=(a.qpSum-f.lastQpSum)/(a.framesEncoded-f.lastFrameCount)}if(this.lastEncoderMs.set(a.ssrc,{lastFrameCount:a.framesEncoded,lastEncoderTime:a.totalEncodeTime,lastQpSum:a.qpSum,lts:Date.now()}),a.codecId&&(o.codec=this.getCodecFromCodecStats(a.codecId)),a.mediaSourceId&&this.processVideoMediaSource(a.mediaSourceId,o),this.processVideoTrackSenderStats(a,a.trackId,o),a.remoteId)this.processRemoteInboundStats(a.remoteId,o);else{let f=this.findRemoteStatsId(a.ssrc,Tc.REMOTE_INBOUND);f&&this.processRemoteInboundStats(f,o)}}processAudioOutboundStats(a){let o=this._stats.audioSend.find(c=>c.ssrc===a.ssrc);if(o||(o=Ru(Roe),this._stats.audioSend.push(o)),o.ssrc=a.ssrc,o.packets=a.packetsSent,o.bytes=a.bytesSent,a.mediaSourceId&&this.processAudioMediaSource(a.mediaSourceId,o),a.codecId&&(o.codec=this.getCodecFromCodecStats(a.codecId)),this.processAudioTrackSenderStats(a,a.trackId,o),a.remoteId)this.processRemoteInboundStats(a.remoteId,o);else{let c=this.findRemoteStatsId(a.ssrc,Tc.REMOTE_INBOUND);c&&this.processRemoteInboundStats(c,o)}}findRemoteStatsId(a,o){var c;let f=Array.from(Sh(c=this.report).call(c)).find(m=>m.type===o&&m.ssrc===a);return f?f.id:null}processVideoMediaSource(a,o){let c=this.report.get(a);c&&c.width&&c.height&&c.framesPerSecond&&(o.inputFrame={width:c.width,height:c.height,frameRate:c.framesPerSecond})}processAudioMediaSource(a,o){let c=this.report.get(a);c&&(o.inputLevel=c.audioLevel)}processVideoTrackSenderStats(a,o,c){var f,m,v,w;let C=o?this.report.get(o):void 0,R=(f=C==null?void 0:C.framesSent)!==null&&f!==void 0?f:a.framesSent;if(typeof R!="number")return;let x=(m=C==null?void 0:C.frameWidth)!==null&&m!==void 0?m:a.frameWidth,L=(v=C==null?void 0:C.frameHeight)!==null&&v!==void 0?v:a.frameHeight,U=(w=C==null?void 0:C.framesPerSecond)!==null&&w!==void 0?w:a.framesPerSecond;if(typeof x=="number"&&typeof L=="number"||(x=0,L=0),U==null){let F=Date.now(),Z=this.lastVideoFramesSent.get(c.ssrc);Z&&F-Z.lts>=800?(U=Math.round((R-Z.count)/((F-Z.lts)/1e3)),this.lastVideoFramesSent.set(c.ssrc,{count:R,lts:F,rate:U})):Z?U=Z.rate:this.lastVideoFramesSent.set(c.ssrc,{count:R,lts:F,rate:0})}c.sentFrame={width:x,height:L,frameRate:Math.max(0,U)}}processVideoTrackReceiverStats(a,o,c){var f,m,v,w,C;let R=o?this.report.get(o):void 0,x=(f=R==null?void 0:R.framesReceived)!==null&&f!==void 0?f:a.framesReceived,L=(m=R==null?void 0:R.frameWidth)!==null&&m!==void 0?m:a.frameWidth,U=(v=R==null?void 0:R.frameHeight)!==null&&v!==void 0?v:a.frameHeight,F=(w=R==null?void 0:R.jitterBufferDelay)!==null&&w!==void 0?w:a.jitterBufferDelay,Z=(C=R==null?void 0:R.jitterBufferEmittedCount)!==null&&C!==void 0?C:a.jitterBufferEmittedCount;if(typeof x=="number"){let W=this.lastVideoFramesRecv.get(c.ssrc),K=Date.now();c.framesReceivedCount=x;let oe=0;W&&K-W.lts>=800?(oe=Math.round((x-W.count)/((K-W.lts)/1e3)),this.lastVideoFramesRecv.set(c.ssrc,{count:x,lts:K,rate:oe})):W?oe=W.rate:this.lastVideoFramesRecv.set(c.ssrc,{count:x,lts:K,rate:0}),c.receivedFrame={width:L||0,height:U||0,frameRate:oe||0},c.decodedFrame={width:L||0,height:U||0,frameRate:c.decodeFrameRate||0},c.outputFrame={width:L||0,height:U||0,frameRate:c.outputFrameRate||c.decodeFrameRate||0}}if(F&&Z){let W=this.lastVideoJBDelay.get(c.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0},K=W.jitterBufferMs,oe=Z-W.jitterBufferEmittedCount;oe>0&&(K=1e3*(F-W.jitterBufferDelay)/oe),c.jitterBufferMs=K,c.currentDelayMs=Math.round(K),this.lastVideoJBDelay.set(c.ssrc,{jitterBufferDelay:F,jitterBufferEmittedCount:Z,jitterBufferMs:c.currentDelayMs})}}processAudioTrackSenderStats(a,o,c){var f,m,v,w;let C=o?this.report.get(o):void 0,R=(f=(m=C==null?void 0:C.echoReturnLoss)!==null&&m!==void 0?m:a.echoReturnLoss)!==null&&f!==void 0?f:0,x=(v=(w=C==null?void 0:C.echoReturnLossEnhancement)!==null&&w!==void 0?w:a.echoReturnLossEnhancement)!==null&&v!==void 0?v:0;c.aecReturnLoss=R,c.aecReturnLossEnhancement=x}processAudioTrackReceiverStats(a,o,c){var f,m,v,w,C,R,x;let L=o?this.report.get(o):void 0,U=(f=L==null?void 0:L.removedSamplesForAcceleration)!==null&&f!==void 0?f:a.removedSamplesForAcceleration,F=(m=L==null?void 0:L.totalSamplesReceived)!==null&&m!==void 0?m:a.totalSamplesReceived,Z=(v=L==null?void 0:L.jitterBufferDelay)!==null&&v!==void 0?v:a.jitterBufferDelay,W=(w=L==null?void 0:L.jitterBufferEmittedCount)!==null&&w!==void 0?w:a.jitterBufferEmittedCount,K=(C=L==null?void 0:L.audioLevel)!==null&&C!==void 0?C:a==null?void 0:a.audioLevel,oe=(R=L==null?void 0:L.totalSamplesDuration)!==null&&R!==void 0?R:a==null?void 0:a.totalSamplesDuration,ue=(x=L==null?void 0:L.concealedSamples)!==null&&x!==void 0?x:a.concealedSamples;if(U&&F&&(c.accelerateRate=U/F),Z&&W){let Oe=this.lastAudioJBDelay.get(c.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0},ke=Oe.jitterBufferMs,He=W-Oe.jitterBufferEmittedCount;He>0&&(ke=1e3*(Z-Oe.jitterBufferDelay)/He),c.jitterBufferMs=Math.round(ke),this.lastAudioJBDelay.set(c.ssrc,{jitterBufferDelay:Z,jitterBufferEmittedCount:W,jitterBufferMs:c.jitterBufferMs})}c.outputLevel=K;let xe=1920;oe&&F&&(xe=F/oe/50,c.receivedFrames=Math.round(F/xe)),ue&&(c.droppedFrames=Math.round(ue/xe))}processRemoteInboundStats(a,o){let c=this.report.get(a);c&&(o.packetsLost=c.packetsLost,c.roundTripTime&&(o.rttMs=1e3*c.roundTripTime),c.jitter&&(o.jitterMs=1e3*c.jitter),c.timestamp&&(o.timestamp=c.timestamp))}getCodecFromCodecStats(a){let o=this.report.get(a);if(!o)return"";let c=o.mimeType.match(/\/(.*)$/);return c&&c[1]?c[1]:""}updateSendBitrate(){let a=0,o=null,c=null;this.mediaBytesSent.forEach(m=>{a+=m.diffMean()}),this.mediaBytesRetransmit.forEach(m=>{o=o===null?m.diffMean():o+m.diffMean()}),this.mediaBytesTargetEncode.forEach(m=>{c=c===null?m.diffMean():c+m.diffMean()});let f=o!==null?a-o:a;this._stats.bitrate={actualEncoded:8*f/(this.options.updateInterval/1e3),transmit:8*a/(this.options.updateInterval/1e3)},o!==null&&(this._stats.bitrate.retransmit=8*o/(this.options.updateInterval/1e3)),c!==null&&(this._stats.bitrate.targetEncoded=8*c/(this.options.updateInterval/1e3))}}class S4e extends TW{updateStats(){return Ct.resolve()}}function ID(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:8,c=arguments.length>3&&arguments[3]!==void 0?arguments[3]:500,f=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1e4,m=function(){let v=navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]*/i);return v&&v[0]?Number(v[0].split("/")[1]):null}();return m?m<76?new w4e(r,{updateInterval:a,lossRateInterval:o,freezeRateLimit:c,firstVideoDecodedTimeout:f}):new Poe(r,{updateInterval:a,lossRateInterval:o,freezeRateLimit:c,firstVideoDecodedTimeout:f}):function(v){return!!window.RTCStatsReport&&v.getStats()instanceof Ct}(r)?new Poe(r,{updateInterval:a,lossRateInterval:o,freezeRateLimit:c,firstVideoDecodedTimeout:f}):new S4e(r,{updateInterval:a,lossRateInterval:o,freezeRateLimit:c,firstVideoDecodedTimeout:f})}function Loe(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Doe(r){for(var a=1;a1&&arguments[1]!==void 0?arguments[1]:{},o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},c=arguments.length>3?arguments[3]:void 0,{filterRTX:f,filterVideoFec:m,filterAudioFec:v,filterAudioCodec:w,filterVideoCodec:C}=a,{useXR:R}=o,x=[],L=[],U=[],F=[],Z=!1,W=!1;if(rr.parse(r).mediaDescriptions.forEach(oe=>{c&&c!==oe.attributes.direction||(oe.media.mediaType!=="video"||Z||(L=oe.attributes.payloads,F=oe.attributes.extmaps,Z=!0),oe.media.mediaType!=="audio"||W||(x=oe.attributes.payloads,U=oe.attributes.extmaps,W=!0))}),!F||L.length===0)throw new Error("Cannot get video capabilities from SDP.");if(!U||x.length===0)throw new Error("Cannot get audio capabilities from SDP.");if(L.forEach(oe=>{var ue;(ue=oe.rtpMap)!==null&&ue!==void 0&&ue.clockRate&&(oe.rtpMap.clockRate=parseInt(oe.rtpMap.clockRate)),R&&oe.rtcpFeedbacks.push({type:"rrtr"})}),x.forEach(oe=>{var ue;(ue=oe.rtpMap)!==null&&ue!==void 0&&ue.clockRate&&(oe.rtpMap.clockRate=parseInt(oe.rtpMap.clockRate)),R&&oe.rtcpFeedbacks.push({type:"rrtr"})}),f&&(x=x.filter(oe=>{var ue;return((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName.toLowerCase())!=="rtx"}),L=L.filter(oe=>{var ue;return((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName.toLowerCase())!=="rtx"})),m&&(L=L.filter(oe=>{var ue;return!/(red)|(ulpfec)|(flexfec)/i.test(((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName)||"")})),v&&(x=x.filter(oe=>{var ue;return!/(red)|(ulpfec)|(flexfec)/i.test(((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName)||"")})),w&&(w==null?void 0:w.length)>0&&(x=x.filter(oe=>{var ue;return Tt(w).call(w,((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName.toLowerCase())||"")})),C&&(C==null?void 0:C.length)>0){let oe=L.filter(ue=>{var xe;return Tt(C).call(C,((xe=ue.rtpMap)===null||xe===void 0?void 0:xe.encodingName.toLowerCase())||"")});L=oe.concat(f?[]:NW(oe,L))}let K=ve("UNSUPPORTED_VIDEO_CODEC");return K&&K.length>0&&(L=L.filter(oe=>!(oe.rtpMap&&Tt(K).call(K,oe.rtpMap.encodingName.toLowerCase())))),{audioCodecs:x,videoCodecs:L,audioExtensions:U,videoExtensions:F}}function Ah(r){let a=rr.parse(r),o,c;for(let f of a.mediaDescriptions){if(!o){let m=f.attributes.iceUfrag,v=f.attributes.icePwd;if(!m||!v)throw new Error("Cannot get iceUfrag or icePwd from SDP.");o={iceUfrag:m,icePwd:v}}if(!c){let m=f.attributes.fingerprints;m.length>0&&(c={fingerprints:m})}}if(!c&&a.attributes.fingerprints.length>0&&(c={fingerprints:a.attributes.fingerprints}),!c||!o)throw new Error("Cannot get iceParameters or dtlsParameters from SDP.");return{iceParameters:o,dtlsParameters:c}}function RW(r,a){let o=[],c=r.attributes.ssrcGroups.filter(v=>v.semantic==="FID"),f=r.attributes.ssrcGroups.find(v=>v.semantic==="SIM"),m=r.attributes.ssrcs;if(f)f.ssrcIds.forEach(v=>{var w;let C=(w=c.find(R=>R.ssrcIds[0]===v))===null||w===void 0?void 0:w.ssrcIds[1];o.push({ssrcId:v,rtx:a?C:void 0})});else if(c.length>0){let v=c[0].ssrcIds[0],w=c[0].ssrcIds[1];o.push({ssrcId:v,rtx:a?w:void 0})}else{if(m.length===0)throw new Error("No ssrcs found on local media description.");o.push({ssrcId:m[0].ssrcId})}return o}function koe(r,a){let{cname:o}=r,c;a&&a.ip&&typeof a.port=="number"?(c=[{foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:a.ip,port:a.port.toString(),type:"host",extension:{}}],z.debug("Using remote candidate from AP ".concat(a.ip,":").concat(a.port)),a.ip6&&(c.push({foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:a.ip6,port:a.port.toString(),type:"host",extension:{}}),z.debug("Using IPV6 remote candidate from AP ".concat(a.ip6,":").concat(a.port)))):c=r.iceParameters.candidates.map(w=>({foundation:w.foundation,componentId:"1",transport:w.protocol,priority:w.priority.toString(),connectionAddress:w.ip,port:w.port.toString(),type:w.type,extension:{}}));let f={fingerprints:r.dtlsParameters.fingerprints.map(w=>({hashFunction:w.algorithm,fingerprint:w.fingerprint}))},m={iceUfrag:r.iceParameters.iceUfrag,icePwd:r.iceParameters.icePwd},v;switch(r.dtlsParameters.role){case"server":v="passive";break;case"client":v="active";break;case"auto":v="actpass"}return{dtlsParameters:f,iceParameters:m,candidates:c,rtpCapabilities:yb(r.rtpCapabilities),setup:v,cname:o}}function Dc(r,a,o){let c=[],f=[];return r.forEach(m=>{let{ssrcId:v,rtx:w}=m,C=Di(8,"track-"),R={ssrcId:v,attributes:Doe({label:C,mslabel:o=o||Di(10,""),msid:"".concat(o," ").concat(C)},a&&{cname:a})};if(c.push(R),w!==void 0){let x={ssrcId:w,attributes:Doe({label:C,mslabel:o,msid:"".concat(o," ").concat(C)},a&&{cname:a})};c.push(x),f.push({semantic:"FID",ssrcIds:[v,w]})}}),r.length>1&&f.push({semantic:"SIM",ssrcIds:r.map(m=>{let{ssrcId:v}=m;return v})}),{ssrcs:c,ssrcGroups:f}}function F0(r,a){a instanceof br&&r.attributes.payloads.forEach(o=>{var c;let f=(c=o.rtpMap)===null||c===void 0?void 0:c.encodingName.toLowerCase();if(!f||["opus","pcmu","pcma","g722"].indexOf(f)===-1)return;o.fmtp||(o.fmtp={parameters:{}}),o.fmtp.parameters.minptime="10",o.fmtp.parameters.useinbandfec="1";let m=a._encoderConfig;m&&f!=="pcmu"&&f!=="pcma"&&f!=="g722"&&(m.bitrate&&!Pi()&&(o.fmtp.parameters.maxaveragebitrate="".concat(Math.floor(1e3*m.bitrate))),m.sampleRate&&(o.fmtp.parameters.maxplaybackrate="".concat(m.sampleRate),o.fmtp.parameters["sprop-maxcapturerate"]="".concat(m.sampleRate)),m.stereo&&(o.fmtp.parameters.stereo="1",o.fmtp.parameters["sprop-stereo"]="1"))})}function ND(r){let a=r.attributes.unrecognized.findIndex(o=>o.attField==="x-google-flag"&&o.attValue==="conference");a!==-1&&r.attributes.unrecognized.splice(a,1)}function OD(r,a){var o;if(!(a instanceof ki&&a._encoderConfig&&a._hints.indexOf(Hi.SCREEN_TRACK)===-1))return;let c=a._encoderConfig;Jn().supportMinBitrate&&c.bitrateMin&&r.attributes.payloads.forEach(f=>{var m,v;Tt(m=["h264","h265","vp8","vp9","av1"]).call(m,((v=f.rtpMap)===null||v===void 0?void 0:v.encodingName.toLowerCase())||"")&&(f.fmtp||(f.fmtp={parameters:{}}),f.fmtp.parameters["x-google-min-bitrate"]="".concat(c.bitrateMin))}),Jn().supportMinBitrate&&!Tt(o=a._hints).call(o,Hi.LOW_STREAM)&&c.bitrateMax&&r.attributes.payloads.forEach(f=>{var m,v;Tt(m=["h264","h265","vp8","vp9","av1"]).call(m,((v=f.rtpMap)===null||v===void 0?void 0:v.encodingName.toLowerCase())||"")&&(f.fmtp||(f.fmtp={parameters:{}}),f.fmtp.parameters["x-google-start-bitrate"]="".concat(ve("X_GOOGLE_START_BITRATE")||Math.floor(c.bitrateMax)))})}function xW(r){if(r.media.mediaType!=="video")return;let a=ni();if(a.name!==fi.SAFARI&&a.os!==ms.IOS)return;let o=r.attributes.extmaps.findIndex(c=>/video-orientation/g.test(c.extensionName));o!==-1&&r.attributes.extmaps.splice(o,1)}function vb(r,a,o){if(!a)return;let c,f;if(r.media.mediaType==="video"?(c=o.videoExtensions,f=o.videoCodecs):(c=o.audioExtensions,f=o.audioCodecs),a.twcc===!0){let m=c.find(v=>v.extensionName==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01");m&&(r.attributes.extmaps.find(v=>v.extensionName==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01")||r.attributes.extmaps.push({entry:m.entry,extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"}),function(v,w){return w.filter(C=>!!v.find(R=>R.payloadType===C.payloadType&&!!R.rtcpFeedbacks.find(x=>x.type==="transport-cc")))}(f,r.attributes.payloads).forEach(v=>{v.rtcpFeedbacks.find(w=>w.type==="transport-cc")||v.rtcpFeedbacks.push({type:"transport-cc"})}))}else if(a.twcc===!1){let m=r.attributes.extmaps.findIndex(v=>v.extensionName==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01");m!==-1&&r.attributes.extmaps.splice(m,1),r.attributes.payloads.forEach(v=>{let w=v.rtcpFeedbacks.findIndex(C=>C.type==="transport-cc");w!==-1&&v.rtcpFeedbacks.splice(w,1)})}if(a.remb===!0){let m=c.find(v=>v.extensionName==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time");m&&(r.attributes.extmaps.find(v=>v.extensionName==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time")||r.attributes.extmaps.push({entry:m.entry,extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"}),function(v,w){return w.filter(C=>!!v.find(R=>R.payloadType===C.payloadType&&!!R.rtcpFeedbacks.find(x=>x.type==="goog-remb")))}(f,r.attributes.payloads).forEach(v=>{v.rtcpFeedbacks.find(w=>w.type==="goog-remb")||v.rtcpFeedbacks.push({type:"goog-remb"})}))}else if(a.remb===!1){let m=r.attributes.extmaps.findIndex(v=>v.extensionName==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time");m!==-1&&r.attributes.extmaps.splice(m,1),r.attributes.payloads.forEach(v=>{let w=v.rtcpFeedbacks.findIndex(C=>C.type==="goog-remb");w!==-1&&v.rtcpFeedbacks.splice(w,1)})}}function AW(r,a,o){if(Pi()||r.media.mediaType!=="video"||!(a instanceof ki)||o!=="vp9"&&o!=="vp8"||o==="vp8"&&!ve("SIMULCAST")||a._scalabilityMode===void 0||a._scalabilityMode.numSpatialLayers<=1)return;let c=o==="vp8"?2:a._scalabilityMode.numSpatialLayers,f=r.attributes.ssrcs[0],m=r.attributes.ssrcGroups.find(w=>w.semantic==="FID"&&w.ssrcIds[0]===f.ssrcId),v={semantic:"SIM",ssrcIds:[f.ssrcId]};for(let w=1;w0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=new RTCPeerConnection;o.addTransceiver("video",{direction:"sendonly"}),o.addTransceiver("audio",{direction:"sendonly"}),o.addTransceiver("video",{direction:"recvonly"}),o.addTransceiver("audio",{direction:"recvonly"});let c=(await o.createOffer()).sdp,{send:f,recv:m,sendrecv:v}=function(){let w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},R=arguments.length>2?arguments[2]:void 0,x=Q3(R,w,C,"sendonly"),L=Q3(R,w,C,"recvonly"),U={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},F={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},Z={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(xu(x,L,"videoExtensions",U,F,Z),xu(x,L,"videoCodecs",U,F,Z),xu(x,L,"audioExtensions",U,F,Z),xu(x,L,"audioCodecs",U,F,Z),ve("RAISE_H264_BASELINE_PRIORITY")){let W=Z.videoCodecs.findIndex(K=>{var oe,ue;return((oe=K.rtpMap)===null||oe===void 0?void 0:oe.encodingName.toLocaleLowerCase())==="h264"&&((ue=K.fmtp)===null||ue===void 0?void 0:ue.parameters["profile-level-id"])==="42001f"});if(W!==-1){let K=Z.videoCodecs.findIndex(oe=>{var ue;return((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName.toLocaleLowerCase())==="h264"});if(K{var ue,xe;return!(((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName.toLocaleLowerCase())==="h264"&&((xe=oe.fmtp)===null||xe===void 0?void 0:xe.parameters["profile-level-id"])!=="42001f")})),K!==-1&&ve("FILTER_SEND_H264_BASELINE")&&(U.videoCodecs=U.videoCodecs.filter(oe=>{var ue,xe;return!(((ue=oe.rtpMap)===null||ue===void 0?void 0:ue.encodingName.toLocaleLowerCase())==="h264"&&((xe=oe.fmtp)===null||xe===void 0?void 0:xe.parameters["profile-level-id"])!=="42001f")}))}}return{send:U,recv:F,sendrecv:Z}}(r,a,c);try{o.close()}catch{}return{send:f,recv:m,sendrecv:v}}function Moe(){let r={audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},a=Q3(arguments.length>2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"recvonly"),o={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},c={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},f={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(xu(r,a,"videoExtensions",o,c,f),xu(r,a,"videoCodecs",o,c,f),xu(r,a,"audioExtensions",o,c,f),xu(r,a,"audioCodecs",o,c,f),ve("RAISE_H264_BASELINE_PRIORITY")){let m=f.videoCodecs.findIndex(v=>v.rtpMap&&v.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&v.fmtp&&v.fmtp.parameters["profile-level-id"]==="42001f");if(m!==-1){let v=f.videoCodecs.findIndex(w=>w.rtpMap&&w.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(v!(w.rtpMap&&w.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&w.fmtp&&w.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:o,recv:c,sendrecv:f}}function xu(r,a,o,c,f,m){if(o==="videoExtensions"||o==="audioExtensions"){let v=[];return r[o].forEach(w=>{a[o].some((C,R)=>{if(w.entry===C.entry&&w.extensionName===C.extensionName)return v.push(R),!0})?m[o].push(w):c[o].push(w)}),void a[o].forEach((w,C)=>{v.indexOf(C)===-1&&f[o].push(w)})}if(o==="videoCodecs"||o==="audioCodecs"){let v=[];return r[o].forEach(w=>{a[o].some((C,R)=>{if(w.payloadType===C.payloadType&&JSON.stringify(w)===JSON.stringify(C))return v.push(R),!0})?m[o].push(w):c[o].push(w)}),void a[o].forEach((w,C)=>{v.indexOf(C)===-1&&f[o].push(w)})}}function yb(r){let{send:a,recv:o,sendrecv:c}=r;if(!c){if(!a||!o)throw new Error("cannot merge rtp capabilities because one of send or recv is empty!");return{send:a,recv:o}}let f,m;return a?(f={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},f.audioCodecs=[...a.audioCodecs,...c.audioCodecs],f.videoCodecs=[...a.videoCodecs,...c.videoCodecs],f.audioExtensions=[...a.audioExtensions,...c.audioExtensions],f.videoExtensions=[...a.videoExtensions,...c.videoExtensions]):f=c,o?(m={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},m.audioCodecs=[...o.audioCodecs,...c.audioCodecs],m.videoCodecs=[...o.videoCodecs,...c.videoCodecs],m.audioExtensions=[...o.audioExtensions,...c.audioExtensions],m.videoExtensions=[...o.videoExtensions,...c.videoExtensions]):m=c,{send:f,recv:m}}function Ih(r){r.media.mediaType==="audio"&&r.attributes.payloads.filter(a=>{var o;return((o=a.rtpMap)===null||o===void 0?void 0:o.encodingName.toLowerCase())==="opus"}).forEach(a=>{a.fmtp||(a.fmtp={parameters:{}}),a.fmtp.parameters.stereo="1",a.fmtp.parameters["sprop-stereo"]="1"})}function PD(r){r.mediaDescriptions.forEach(a=>{a.media.mediaType!=="video"&&a.media.mediaType!=="audio"||a.attributes.payloads.forEach(o=>{o.rtcpFeedbacks.findIndex(c=>c.type==="rrtr")===-1&&o.rtcpFeedbacks.push({type:"rrtr"})})})}function o_(r,a,o,c){let f=[];if(r===Wt.VIDEO){if(ve("H264_PROFILE_LEVEL_ID")&&c==="h264"&&(f=a.videoCodecs.filter(m=>{var v;return Tt(v=m.rtpMap&&m.rtpMap.encodingName.toLowerCase()||"").call(v,c)&&m&&m.fmtp&&m.fmtp.parameters["profile-level-id"]===ve("H264_PROFILE_LEVEL_ID")})),!Array.isArray(f)||f.length===0){let m=[],v=[],w=[],C=[];if(o.videoCodecs.forEach(R=>{let x=R.rtpMap&&R.rtpMap.encodingName.toLowerCase()||"";Tt(x).call(x,c)?m.push(R):Tt(x).call(x,"vp9")?v.push(R):Tt(x).call(x,"vp8")?w.push(R):Tt(x).call(x,"h264")&&C.push(R)}),m.length===0){let R="";v.length!==0?(m=v,R="vp9"):w.length!==0?(m=w,R="vp8"):C.length!==0&&(m=C,R="h264"),z.warning("codec ".concat(c," not included in rtpCapabilities, fallback to default payloads: ").concat(R))}m.length!==0&&(f=a.videoCodecs.filter(R=>m.some(x=>x.payloadType===R.payloadType)))}if(f.length===0&&(z.warning("codec ".concat(c," not included in rtpCapabilities, fallback to default payloads: ").concat(a.videoCodecs[0].rtpMap&&a.videoCodecs[0].rtpMap.encodingName)),f=a.videoCodecs),ve("USE_PUB_RTX")||ve("USE_SUB_RTX")){let m=NW(f,a.videoCodecs);f=[...f,...m]}}else f=a.audioCodecs.filter(m=>{var v;return Tt(v=m.rtpMap&&m.rtpMap.encodingName.toLowerCase()||"").call(v,c)}),f.length===0&&(z.warning("codec ".concat(c," not included in rtpCapabilities, fallback to opus")),f=a.audioCodecs.filter(m=>{var v;return Tt(v=m.rtpMap&&m.rtpMap.encodingName.toLowerCase()||"").call(v,"opus")}));return f}function NW(r,a){let o=r.map(c=>c.payloadType.toString());return a.filter(c=>c.rtpMap&&c.rtpMap.encodingName==="rtx"&&c.fmtp&&c.fmtp.parameters.apt&&Tt(o).call(o,c.fmtp&&c.fmtp.parameters.apt))}let joe=class{get localCapabilities(){return zi(this._localCapabilities)}get rtpCapabilities(){return zi(this._rtpCapabilities)}get candidates(){return zi(this._candidates)}get iceParameters(){return zi(this._iceParameters)}get dtlsParameters(){return zi(this._dtlsParameters)}constructor(r){X(this,"sessionDesc",void 0),X(this,"_localCapabilities",void 0),X(this,"_rtpCapabilities",void 0),X(this,"_candidates",void 0),X(this,"_iceParameters",void 0),X(this,"_dtlsParameters",void 0),X(this,"setup",void 0),X(this,"currentMidIndex",void 0),X(this,"cname","o/i14u9pJrxRKAsu"),X(this,"firefoxSsrcMidMap",new Map),r=zi(r);let{remoteIceParameters:a,remoteDtlsParameters:o,candidates:c,remoteRTPCapabilities:f,localCapabilities:m,direction:v,setup:w,videoCodec:C,audioCodec:R}=r,x;this.setup=w,x=v===no.RECEIVE_ONLY?rr.parse(`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 +a=msid-semantic: WMS +a=extmap-allow-mixed +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +`):rr.parse(`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 +a=msid-semantic: WMS +a=extmap-allow-mixed +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=recvonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=recvonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +`),this._rtpCapabilities=f,this._candidates=c,this._iceParameters=a,this._dtlsParameters=o,this._localCapabilities=m;let L=v===no.RECEIVE_ONLY?this.rtpCapabilities.send:this.rtpCapabilities.recv,U=v===no.RECEIVE_ONLY?this._localCapabilities.recv:this._localCapabilities.send,F=v===no.RECEIVE_ONLY?f.send.videoCodecs:o_(Wt.VIDEO,L,U,C),Z=v===no.RECEIVE_ONLY?f.send.audioCodecs:o_(Wt.AUDIO,L,U,R);for(let W of x.mediaDescriptions)W.attributes.iceUfrag=a.iceUfrag,W.attributes.icePwd=a.icePwd,W.attributes.fingerprints=o.fingerprints,W.attributes.candidates=c,W.attributes.setup=this.setup,W.media.mediaType==="application"&&(W.attributes.sctpPort="5000"),W.media.mediaType==="video"&&(W.media.fmts=F.map(K=>K.payloadType.toString(10)),W.attributes.payloads=F,W.attributes.extmaps=L.videoExtensions),W.media.mediaType==="audio"&&(W.media.fmts=Z.map(K=>K.payloadType.toString(10)),W.attributes.payloads=Z,W.attributes.extmaps=L.audioExtensions,Ih(W));this.sessionDesc=x,this.currentMidIndex=x.mediaDescriptions.length-1}toString(){return rr.print(this.sessionDesc)}hasMid(r){return Array.isArray(r)?r.every(a=>this.hasMid(a)):this.sessionDesc.mediaDescriptions.some(a=>a.attributes.mid===r)}send(r,a,o,c,f){o=o.replace(/ /g,"-");let{ssrcs:m,ssrcGroups:v}=Dc(a,this.cname,ve("SYNC_GROUP")?o:void 0),w=this.findPreloadMediaDesc(m);if(w){if(Pi()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,w.attributes.mid),f&&(f.twcc||f.remb)){let C=this.sessionDesc.mediaDescriptions.indexOf(w);return this.sessionDesc.mediaDescriptions[C]=this.mungSendMediaDesc(w,f),{mid:w.attributes.mid,needExchangeSDP:!0}}return{mid:w.attributes.mid,needExchangeSDP:!1}}{let C=this.findAvailableMediaIndex(r,m,c),R;return C===-1?(R=this.createOrRecycleSendMedia(r,m,v,"sendonly",c,f),this.updateBundleMids()):(R=zi(this.sessionDesc.mediaDescriptions[C]),R.attributes.direction="sendonly",R.attributes.ssrcs=m,R.attributes.ssrcGroups=v,this.sessionDesc.mediaDescriptions[C]=this.mungSendMediaDesc(R,f)),Pi()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,R.attributes.mid),{needExchangeSDP:!0,mid:R.attributes.mid}}}stopSending(r){let a=this.sessionDesc.mediaDescriptions.filter(o=>o.attributes.mid&&r.indexOf(o.attributes.mid)!==-1);if(a.length!==r.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");a.forEach(o=>{o.attributes.ssrcs=[]}),this.updateBundleMids()}receive(r,a,o){let c=[];return r.forEach(f=>{let m=f._mediaStreamTrack.kind,v=this.findAvailableRecvMediaIndex(m),w,C=!1;v===-1?(C=!0,w=this.createOrRecycleRecvMedia(f,[],"recvonly",a,o),this.updateBundleMids()):(w=zi(this.sessionDesc.mediaDescriptions[v]),w.attributes.direction="recvonly"),c.push({mid:w.attributes.mid,needCreateTransceiver:C})}),c}stopReceiving(r){let a=this.sessionDesc.mediaDescriptions.filter(o=>r.indexOf(o.attributes.mid)!==-1);if(a.length!==r.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");a.forEach(o=>{o.media.port="0",o.attributes.direction="inactive"}),this.updateBundleMids()}addRemoteCandidate(r){let{foundation:a,protocol:o,address:c,port:f,type:m,relatedAddress:v,relatedPort:w,priority:C}=new RTCIceCandidate(r),R={foundation:a??"",componentId:"1",transport:o??"",priority:C?C+"":"",connectionAddress:c??"",port:f?f+"":"",type:m?m+"":"",relAddr:v??"",relPort:w?w+"":"",extension:{}};this.candidates.some(x=>x.priority===R.priority&&x.connectionAddress===R.connectionAddress&&x.port===R.port)||(this._candidates.push(R),this.sessionDesc.mediaDescriptions.forEach(x=>{x.attributes.candidates=this.candidates}))}clearRemoteCandidate(){this._candidates=[],this.sessionDesc.mediaDescriptions[0].attributes.candidates=this._candidates}createOrRecycleRecvMedia(r,a,o,c,f){let m=r._mediaStreamTrack.kind,v=this.rtpCapabilities.recv,w=o_(m,v,this.localCapabilities.send,m===Wt.AUDIO?f:c),C=m===Wt.VIDEO?v.videoExtensions:v.audioExtensions,R="".concat(++this.currentMidIndex),x={media:{mediaType:m,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(U=>U.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:C,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:a,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:o,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(R)}};x=this.mungRecvMediaDsec(x,r);let L=this.findFirstClosedMedia(m);if(L){let U=this.sessionDesc.mediaDescriptions.indexOf(L);this.sessionDesc.mediaDescriptions[U]=x}else this.sessionDesc.mediaDescriptions.push(x);return x}muteRemote(r){let a=this.sessionDesc.mediaDescriptions.filter(o=>Tt(r).call(r,o.attributes.mid||""));if(a.length!==r.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");a.forEach(o=>{o.attributes.direction="inactive"})}unmuteRemote(r){let a=this.sessionDesc.mediaDescriptions.filter(o=>Tt(r).call(r,o.attributes.mid||""));if(a.length!==r.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");a.forEach(o=>{o.attributes.direction="recvonly"})}findAvailableMediaIndex(r,a,o){return this.sessionDesc.mediaDescriptions.findIndex(c=>{let f=c.media.mediaType===r&&c.media.port!=="0"&&(c.attributes.direction==="sendonly"||c.attributes.direction==="sendrecv")&&c.attributes.ssrcs.length===0;if(Pi()){if(f){let m=this.firefoxSsrcMidMap.get(a[0].ssrcId);return!(m||c.attributes.mid!=="0"&&c.attributes.mid!=="1")||!(!m||m!==c.attributes.mid)}return!1}return f&&c.attributes.mid===o})}findAvailableRecvMediaIndex(r){return this.sessionDesc.mediaDescriptions.findIndex(a=>{let o=a.media.mediaType===r&&a.media.port!=="0"&&(a.attributes.direction==="recvonly"||a.attributes.direction==="sendrecv");return a.attributes.mid!=="0"&&a.attributes.mid!=="1"&&o})}predictReceivingMids(r){let a=[];for(let o=0;o{a.attributes.iceUfrag=r.iceUfrag,a.attributes.icePwd=r.icePwd})}createOrRecycleSendMedia(r,a,o,c,f,m){let v=this.rtpCapabilities.send,w=r===Wt.VIDEO?v.videoCodecs:v.audioCodecs,C=r===Wt.VIDEO?v.videoExtensions:v.audioExtensions;Pi()&&(f="".concat(++this.currentMidIndex));let R={media:{mediaType:r,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(L=>L.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:C,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:a,ssrcGroups:o,rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:c,rtcpMux:!0,rtcpRsize:!0,mid:f}};R=this.mungSendMediaDesc(R,m);let x=this.findFirstClosedMedia(r);if(x){let L=this.sessionDesc.mediaDescriptions.indexOf(x);this.sessionDesc.mediaDescriptions[L]=R}else this.sessionDesc.mediaDescriptions.push(R);return R}mungRecvMediaDsec(r,a,o){let c=zi(r);return ND(c),F0(c,a),OD(c,a),xW(c),vb(c,o,this.localCapabilities.send),c}mungSendMediaDesc(r,a){let o=zi(r);return vb(o,a,this.localCapabilities.recv),Ih(o),o}updateRecvMedia(r,a){let o=this.sessionDesc.mediaDescriptions.findIndex(c=>c.attributes.mid===r);if(o!==-1){let c=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[o],a);this.sessionDesc.mediaDescriptions[o]=c}}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(r=>r.media.port!=="0").map(r=>r.attributes.mid)}findPreloadMediaDesc(r){return this.sessionDesc.mediaDescriptions.find(a=>{var o;return((o=a.attributes)===null||o===void 0||(o=o.ssrcs[0])===null||o===void 0?void 0:o.ssrcId)===r[0].ssrcId})}findFirstClosedMedia(r){return this.sessionDesc.mediaDescriptions.find(a=>Pi()?a.media.port==="0"&&a.media.mediaType===r:a.media.port==="0")}},b4e=["sdp"];var Wi;function Uoe(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function B0(r){for(var a=1;a2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"sendonly"),U={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},F={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},Z={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(xu(L,x,"videoExtensions",U,F,Z),xu(L,x,"videoCodecs",U,F,Z),xu(L,x,"audioExtensions",U,F,Z),xu(L,x,"audioCodecs",U,F,Z),ve("RAISE_H264_BASELINE_PRIORITY")){let W=Z.videoCodecs.findIndex(K=>K.rtpMap&&K.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&K.fmtp&&K.fmtp.parameters["profile-level-id"]==="42001f");if(W!==-1){let K=Z.videoCodecs.findIndex(oe=>oe.rtpMap&&oe.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(K!(oe.rtpMap&&oe.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&oe.fmtp&&oe.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:U,recv:F,sendrecv:Z}}({},{},c);this.remoteSDP=new joe({remoteIceParameters:f.iceParameters,remoteDtlsParameters:f.dtlsParameters,candidates:[],remoteRTPCapabilities:m,localCapabilities:this.localCapabilities,direction:this.direction,setup:"actpass",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()}),this.isReady=!0;let v=await this.peerConnection.createAnswer();if(!v.sdp)throw new Error("Cannot get answer sdp when trying to establish PeerConnection.");let w=Ah(v.sdp);await this.peerConnection.setLocalDescription(v);let C=await Moe({},{},v.sdp);this.localCapabilities=yb(C);let R=this.peerConnection.getTransceivers()[0];return R!=null&&R.receiver&&R.receiver.transport&&this.tryBindTransportEvents(R.receiver.transport),B0(B0({},w),{},{sdp:v.sdp})}{this.peerConnection.addTransceiver("video",{direction:"sendonly"}),this.peerConnection.addTransceiver("audio",{direction:"sendonly"});let c=await this.peerConnection.createOffer();if(!c.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let f=Ah(c.sdp);return this.initialOffer=c,B0(B0({},f),{},{sdp:c.sdp})}}catch(o){throw new Ke(ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,o.toString())}}async connect(a){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");await this.peerConnection.setLocalDescription(this.initialOffer);let{sdp:o,iceParameters:c,dtlsParameters:f}=a,m=await Moe({},{},o);this.remoteSDP=new joe({remoteIceParameters:c,remoteDtlsParameters:f,candidates:[],remoteRTPCapabilities:m,localCapabilities:this.localCapabilities,direction:this.direction,setup:"active",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()});let v=this.peerConnection.getTransceivers()[0];v!=null&&v.sender&&v.sender.transport&&this.tryBindTransportEvents(v.sender.transport)}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(o.toString()))}}async addRemoteCandidate(a){try{a&&this.pendingCandidates.push(a),this.peerConnection.remoteDescription&&this.isReady&&(this.pendingCandidates.forEach(o=>{this.peerConnection.addIceCandidate(o)}),this.pendingCandidates=[])}catch(o){throw new Ke(ce.ADD_CANDIDATE_FAILED,"P2PConnection.addRemoteCandidate failed; ".concat(o.toString()))}}send(a,o,c){var f=this;return Ul(function*(){let m=yield Dn(f.mutex.lock("From P2PConnection.send"));try{if(!f.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let v=[],w=f.remoteSDP.receive(a,o,c);a.forEach((K,oe)=>{if(w[oe].needCreateTransceiver){let ue=f.peerConnection.addTransceiver(K._mediaStreamTrack,{direction:"sendonly"});v.push(ue),K._updateRtpTransceiver(ue)}else{let ue=f.peerConnection.getTransceivers().find(xe=>xe.mid===w[oe].mid);if(!ue)throw new Error("cannot find transceiver when sendPeerconnection send, mid is ".concat(w[oe].mid));v.push(ue),K._updateRtpTransceiver(ue)}}),Pi()&&ve("SIMULCAST")===!0&&(yield Dn(f.applySimulcastForFirefox(v,a)));let C=w.map(K=>K.mid),R=yield Dn(f.peerConnection.createOffer()),x=f.mungSendOfferSDP(R.sdp,a,C),L=rr.parse(x),U=C.map(K=>{let oe=L.mediaDescriptions.find(ue=>ue.attributes.mid===K);if(!oe)throw new Error("Cannot extract ssrc from mediaDescription.");return RW(oe,ve("USE_PUB_RTX"))}),F=v.map((K,oe)=>{let ue=C[oe];return{localSSRC:U[oe],id:ue}});yield Dn(f.peerConnection.setLocalDescription({type:"offer",sdp:x}));try{yield F}catch(K){let oe=f.remoteSDP.toString();throw yield Dn(f.peerConnection.setLocalDescription({type:"offer",sdp:x})),yield Dn(f.peerConnection.setRemoteDescription({type:"answer",sdp:oe})),yield Dn(f.stopSending(C,!0)),K}yield Dn(f.applySimulcastEncodings(v,a)),yield Dn(f.applySendEncodings(v,a));let Z=f.remoteSDP.toString(),W=f.logSDPExchange(x,"offer","local","send");return W==null||W(Z),yield Dn(f.setRemoteDescription({type:"answer",sdp:Z})),v.map((K,oe)=>{let ue=C[oe];return{localSSRC:U[oe],id:ue}})}catch(v){throw v instanceof Ke?v:new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(v.toString()))}finally{m()}})()}async stopSending(a,o){let c=o?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let f=this.peerConnection.getTransceivers().filter(C=>a.indexOf(C.mid)!==-1);if(f.length!==a.length)throw new Error("Transceivers' length (".concat(f.length,") doesn't match mids' length (").concat(a.length,") when trying to call P2PConnection.stopSending."));f.map(C=>{var R;C.direction="inactive",(R=C.stop)===null||R===void 0||R.call(C)});let m=await this.peerConnection.createOffer(),v=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(a);let w=this.remoteSDP.toString();v==null||v(w),await this.setRemoteDescription({type:"answer",sdp:w})}catch(f){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(f.toString()))}finally{c&&c()}}async receive(a,o,c,f){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(a," before remoteSDP created."));let{mid:m,needExchangeSDP:v}=this.remoteSDP.send(a,o,c,f);if(v){let C=this.remoteSDP.toString(),R=this.logSDPExchange(C,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:C});let x=await this.peerConnection.createAnswer(),L=this.mungReceiveAnswerSDP(x.sdp,m,a);R==null||R(L||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:L}),z.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(a," by exchanging SDP."))}else z.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(a," no need to exchange SDP."));let w=this.peerConnection.getTransceivers().find(C=>C.mid===m);if(!w||w.mid===null)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,mid:w.mid,transceiver:w}}catch(m){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async mockReceive(a,o,c,f){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(a," before remoteSDP created."));let{mid:m,needExchangeSDP:v}=this.remoteSDP.send(a,o,c,f);if(v){let w=this.remoteSDP.toString(),C=this.logSDPExchange(w,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:w});let R=await this.peerConnection.createAnswer(),x=this.mungReceiveAnswerSDP(R.sdp,m,a);C==null||C(x||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:x}),z.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(a," by exchanging SDP."))}else z.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(a," no need to exchange SDP."))}catch(m){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async stopReceiving(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(a);let o=this.remoteSDP.toString(),c=this.logSDPExchange(o,"offer","remote","stopReceiving");await this.setRemoteDescription({type:"offer",sdp:o});let f=await this.peerConnection.createAnswer();c==null||c(f.sdp||""),await this.peerConnection.setLocalDescription(f)}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(o.toString()))}}async restartICE(a){try{if(this.store.p2pTransport===Gy.Auto&&(this.store.p2pTransport=Gy.SdRtn,Jn().supportPCSetConfiguration&&this.peerConnection.setConfiguration(Vb.resolvePCConfiguration(this.spec,this.store.p2pTransport))),this.restartCnt>3&&(this.restartCnt=0,Jn().supportPCSetConfiguration&&this.peerConnection.setConfiguration(Vb.resolvePCConfiguration(this.spec,this.store.p2pTransport,++this.curTurnServerIndex))),!a){this.restartCnt++,this.isReady=!1;let o=await this.peerConnection.createOffer({iceRestart:!0});if(!o.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let{iceParameters:c}=Ah(o.sdp);return this.store.descriptionStart(),this.direction===no.SEND_ONLY&&await this.peerConnection.setLocalDescription(o),c}if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");if(this.remoteSDP.restartICE(a),this.store.descriptionStart(),this.direction===no.RECEIVE_ONLY){this.restartCnt++,await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()});let o=await this.peerConnection.createAnswer();if(!o.sdp)throw new Error("Cannot get answer sdp when trying to iceRestart.");let{iceParameters:c}=Ah(o.sdp);return await this.peerConnection.setLocalDescription(o),c}await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()}),this.isReady=!0}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(o.toString()))}}close(){var a;this.peerConnection.close(),this.peerConnection.onicecandidate=null,(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.transport=void 0,this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(a){return this.statsFilter.getVideoIsReady(a)}async updateEncoderConfig(a,o){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let c=await this.peerConnection.createOffer(),f=this.mungSendOfferSDP(c.sdp,[o],[a]);this.remoteSDP.updateRecvMedia(a,o);let m=this.remoteSDP.toString(),v=this.logSDPExchange(f,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:f}),v==null||v(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(c){throw new Ke(ce.EXCHANGE_SDP_FAILED,c.toString())}}async updateSendParameters(a,o){let c=this.peerConnection.getTransceivers().filter(f=>f.mid===a);c.length===1&&(this.isVP8Simulcast(o)?Pi()||await this.applySimulcastEncodings(c,[o]):await this.applySendEncodings(c,[o]))}setStatsRemoteVideoIsReady(a,o){this.statsFilter.setVideoIsReady2(a,o)}async replaceTrack(a,o){let c=this.peerConnection.getTransceivers().find(f=>f.mid===o);c&&await c.sender.replaceTrack(a._mediaStreamTrack)}async getSelectedCandidatePair(){let a=this.peerConnection.getReceivers();if(a.length>0&&a[0].transport&&a[0].transport.iceTransport&&a[0].transport.iceTransport.getSelectedCandidatePair&&a[0].transport.iceTransport.getSelectedCandidatePair()){let o=a[0].transport.iceTransport,{local:c,remote:f}=o.getSelectedCandidatePair();return{local:B0(B0({},Wf),{},{candidateType:c.type,protocol:c.protocol,address:c.address,port:c.port}),remote:B0(B0({},Wf),{},{candidateType:f.type,protocol:f.protocol,address:f.address,port:f.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var a,o;Tt(a=["connected","completed"]).call(a,this.peerConnection.iceConnectionState)&&(this.isReady=!1),(o=this.onICEConnectionStateChange)===null||o===void 0||o.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var a;this.peerConnection.connectionState==="connected"&&(this.restartCnt=0),(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,this.peerConnection.connectionState)},this.startICECandidate()}startICECandidate(){this.peerConnection.onicecandidate||(this.localCandidateCount=0,this.peerConnection.onicecandidate=a=>{if(a.candidate){var o;a.candidate.candidate&&((o=this.onLocalCandidate)===null||o===void 0||o.call(this,a.candidate.toJSON())),this.localCandidateCount+=1}else z.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount)})}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(a,o){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,f={iceServers:[]};var m;return a.iceServers?f.iceServers=a.iceServers:a.turnServer&&a.turnServer.mode!=="off"&&(US(a.turnServer.servers)?f.iceServers=a.turnServer.servers:(f.iceServers&&f.iceServers.push(...Vb.turnServerConfigToIceServers(a.turnServer.servers,o,c)),ve("USE_TURN_SERVER_OF_GATEWAY")&&f.iceServers&&a.turnServer.serversFromGateway&&f.iceServers.push(...Vb.turnServerConfigToIceServers(a.turnServer.serversFromGateway,o,c)),Tt(m=[Gy.Relay,Gy.SdRtn]).call(m,o)&&(f.iceTransportPolicy="relay"),ve("FORCE_TURN_TCP")?f.iceTransportPolicy="relay":a.turnServer.servers.concat(a.turnServer.serversFromGateway||[]).forEach(v=>{v.forceturn&&(f.iceTransportPolicy="relay")}))),ve("ENABLE_ENCODED_TRANSFORM")&&Jn().supportWebRTCEncodedTransform&&(f.encodedInsertableStreams=!0),z.debug("P2PConnection p2pTransport is ".concat(o)),f}static turnServerConfigToIceServers(a,o){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,f=[],m=a.filter(w=>w.tcpport);z.debug("P2PConnection turnServers is ".concat(m,", current index is ").concat(c));let v=m.length>c?m[c]:m[0];switch(o){case Gy.SdRtn:let w=a.filter(R=>{var x;return Tt(x=R.username).call(x,"glb:")&&R.turnServerURL==R.turnServerURL}),C=w.length>c?w[c]:w[0];C&&(f.push({username:C.username,credential:C.password,credentialType:"password",urls:"turn:".concat(O0(C.turnServerURL),":").concat(C.tcpport,"?transport=udp")}),f.push({username:C.username,credential:C.password,credentialType:"password",urls:"turns:".concat(O0(C.turnServerURL),":").concat(C.tcpport,"?transport=tcp")}));break;case Gy.Relay:v&&(f.push({username:v.username,credential:v.password,credentialType:"password",urls:"turn:".concat(v.turnServerURL,":").concat(v.tcpport,"?transport=udp")}),f.push({username:v.username,credential:v.password,credentialType:"password",urls:"turns:".concat(O0(v.turnServerURL),":").concat(v.tcpport,"?transport=tcp")}));break;default:v&&(f.push({username:v.username,credential:v.password,credentialType:"password",urls:"turn:".concat(v.turnServerURL,":").concat(v.tcpport,"?transport=udp")}),f.push({username:v.username,credential:v.password,credentialType:"password",urls:"turns:".concat(O0(v.turnServerURL),":").concat(v.tcpport,"?transport=tcp")}),f.push({username:v.username,credential:v.password,credentialType:"password",urls:"stun:".concat(v.turnServerURL,":").concat(v.tcpport)}))}return f}tryBindTransportEvents(a){if(a){this.transport=a,a.onstatechange=()=>{var c;a!=null&&a.state&&((c=this.onDTLSTransportStateChange)===null||c===void 0||c.call(this,a.state))},a.onerror=c=>{var f;(f=this.onDTLSTransportError)===null||f===void 0||f.call(this,"error"in c?c.error:c)};let o=a.iceTransport;o&&(o.onstatechange=()=>{let c=a==null?void 0:a.iceTransport.state;var f;c&&((f=this.onICETransportStateChange)===null||f===void 0||f.call(this,c))},o.getSelectedCandidatePair&&(o.onselectedcandidatepairchange=()=>{if(o.getSelectedCandidatePair()){let{local:c,remote:f}=o.getSelectedCandidatePair();z.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify({candidateType:c.type,protocol:c.protocol}),", remote ").concat(JSON.stringify({candidateType:f.type,protocol:f.protocol,address:f.address,port:f.port})," )"))}}))}}tryUnbindTransportEvents(){this.transport&&(this.transport.onstatechange=null,this.transport.onerror=null,this.transport.iceTransport&&(this.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(a,o){var c;if(o||(o=this.peerConnection.getSenders().find(x=>x.track===a._mediaStreamTrack)),!o)return z.warn("[".concat(a.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(a))return z.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Jn().supportSetRtpSenderParameters)return z.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let f={},m={};switch(a._optimizationMode){case"motion":f.degradationPreference="maintain-framerate";break;case"detail":f.degradationPreference="maintain-resolution";break;default:f.degradationPreference="balanced"}if(a._encoderConfig){var v;let{bitrateMax:x,frameRate:L,scaleResolutionDownBy:U}=a._encoderConfig;x&&(m.maxBitrate=1e3*x),Tt(v=a._hints).call(v,Hi.LOW_STREAM)&&(L&&(m.maxFramerate=rl(L)),U&&U>=1&&(m.scaleResolutionDownBy=U))}if(ve("DSCP_TYPE")&&C0()){var w;let x=ve("DSCP_TYPE");Tt(w=["very-low","low","medium","high"]).call(w,x)&&(m.networkPriority=x)}let C=o.getParameters(),R=(c=C.encodings)===null||c===void 0?void 0:c[0];Pi()&&!R&&(f.encodings=[m]),R&&Object.assign(R,m),Object.assign(C,f),z.debug("[".concat(a.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(C.encodings))),await o.setParameters(C)}async applySendEncodings(a,o){try{if(!Jn().supportSetRtpSenderParameters||a.length!==o.length)return;for(let c=0;c{let w=c[v],C=f.mediaDescriptions.find(R=>R.attributes.mid===w);C&&(F0(C,m),AW(C,m,this.store.codec))}),rr.print(f)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=a=>{var o;(o=this.onFirstAudioReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoReceived=a=>{var o;(o=this.onFirstVideoReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstAudioDecoded=a=>{var o;(o=this.onFirstAudioDecoded)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoDecoded=(a,o,c)=>{var f;(f=this.onFirstVideoDecoded)===null||f===void 0||f.call(this,a,o,c)},this.statsFilter.onSelectedLocalCandidateChanged=(a,o)=>{var c;(c=this.onSelectedLocalCandidateChanged)===null||c===void 0||c.call(this,a,o)},this.statsFilter.onSelectedRemoteCandidateChanged=(a,o)=>{var c;(c=this.onSelectedRemoteCandidateChanged)===null||c===void 0||c.call(this,a,o)},this.statsFilter.onFirstVideoDecodedTimeout=a=>{var o;(o=this.onFirstVideoDecodedTimeout)===null||o===void 0||o.call(this,a)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(a,o){if(a.length===o.length)for(let C=0;C200&&(v=x._scalabilityMode)!==null&&v!==void 0&&v.numSpatialLayers&&((w=x._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let L={},U={high:1e3*(x._encoderConfig.bitrateMax-50),medium:5e4};L.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];let F=R.sender.getParameters();await R.sender.setParameters(Object.assign(F,L))}}}async applySimulcastEncodings(a,o){if(!Pi()&&a.length===o.length)for(let c=0;c200&&(m=a._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((v=a._scalabilityMode)===null||v===void 0?void 0:v.numSpatialLayers)>1)}logSDPExchange(a,o,c,f){if(ve("SDP_LOGGING"))return z.upload("[".concat(this.store.clientId,"] exchanging ").concat(c," ").concat(o," SDP during P2PConnection.").concat(f,` +`),a),o==="offer"?m=>{this.logSDPExchange(m,"answer",c==="local"?"remote":"local",f)}:void 0}async muteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let o=this.peerConnection.getTransceivers().filter(v=>v.mid&&a.indexOf(v.mid)!==-1);if(o.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length.");o.map(v=>{v.direction="inactive"});let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(c),this.remoteSDP.muteRemote(a);let m=this.remoteSDP.toString();f==null||f(m),await this.setRemoteDescription({type:"answer",sdp:m})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(o.toString()))}}async unmuteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let o=this.peerConnection.getTransceivers().filter(v=>v.mid&&a.indexOf(v.mid)!==-1);if(o.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length.");o.map(async v=>{v.direction="sendonly"});let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(c),this.remoteSDP.unmuteRemote(a);let m=this.remoteSDP.toString();f==null||f(m),await this.setRemoteDescription({type:"answer",sdp:m})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(o.toString()))}}async getRemoteSSRC(a,o){var c,f;if(o=(c=o)!==null&&c!==void 0?c:(f=this.currentRemoteDescription)===null||f===void 0?void 0:f.sdp){var m;let v=(m=rr.parse(o).mediaDescriptions.find(w=>w.attributes.mid===a))===null||m===void 0?void 0:m.attributes.ssrcs;return v==null?void 0:v[0].ssrcId}}async setRemoteDescription(a){var o;await this.peerConnection.setRemoteDescription(a),Tt(o=["connected","completed"]).call(o,this.peerConnection.iceConnectionState)||(this.isReady=!0,this.addRemoteCandidate())}mungReceiveAnswerSDP(a,o,c){let f=rr.parse(a),m=f.mediaDescriptions.find(v=>v.attributes.mid===o);return m&&c===Wt.AUDIO&&m.media.mediaType==="audio"&&Ih(m),rr.print(f)}},vt(Wi.prototype,"establish",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"establish"),Wi.prototype),vt(Wi.prototype,"connect",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"connect"),Wi.prototype),vt(Wi.prototype,"receive",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"receive"),Wi.prototype),vt(Wi.prototype,"mockReceive",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"mockReceive"),Wi.prototype),vt(Wi.prototype,"stopReceiving",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"stopReceiving"),Wi.prototype),vt(Wi.prototype,"restartICE",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"restartICE"),Wi.prototype),vt(Wi.prototype,"close",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"close"),Wi.prototype),vt(Wi.prototype,"updateEncoderConfig",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"updateEncoderConfig"),Wi.prototype),vt(Wi.prototype,"updateSendParameters",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"updateSendParameters"),Wi.prototype),vt(Wi.prototype,"replaceTrack",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"replaceTrack"),Wi.prototype),vt(Wi.prototype,"muteLocal",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"muteLocal"),Wi.prototype),vt(Wi.prototype,"unmuteLocal",[Au],Object.getOwnPropertyDescriptor(Wi.prototype,"unmuteLocal"),Wi.prototype),Wi);function Au(r,a,o){let c=r[a];if(typeof c!="function")throw new Error("Cannot use mutex on object property.");return o.value=async function(){let f=this.mutex,m=await f.lock("From P2PConnection.".concat(a));try{for(var v=arguments.length,w=new Array(v),C=0;C{if(!o)return c.stopCapture&&c.stopCapture();if(o.paused&&o.play(),o.videoHeight>2&&o.videoWidth>2){let x=o.videoWidth,L=o.videoHeight/x,U=c.width*L;Math.abs(U-c.height)>=2&&(z.debug("adjust low stream resolution","".concat(c.width,"x").concat(c.height," -> ").concat(c.width,"x").concat(U)),c.height=U)}v.drawImage(o,0,0,c.width,c.height),C.requestFrame&&C.requestFrame(),m!==r._mediaStreamTrack&&(m=r._mediaStreamTrack,o.srcObject=new MediaStream([m]))},c.stopCapture=hW(()=>c.startCapture&&c.startCapture(),f);let R=C.stop;return C.stop=()=>{R.call(C),o&&(o.remove(),o.srcObject=null,o=null),c&&(c.width=0,c.remove(),c.stopCapture&&c.stopCapture(),c.startCapture=void 0,c.stopCapture=void 0,c=null),z.debug("clean low stream renderer")},C}var LD=function(r){return r[r.HEIGHT=2033]="HEIGHT",r[r.FRAME_RATE=2034]="FRAME_RATE",r[r.WIDTH=2035]="WIDTH",r}(LD||{}),_s=function(r){return r[r.FRAME_RATE=2002]="FRAME_RATE",r[r.WIDTH=2003]="WIDTH",r[r.HEIGHT=2004]="HEIGHT",r[r.PACKAGE_LOST=2005]="PACKAGE_LOST",r[r.AVG_ENCODE=2007]="AVG_ENCODE",r[r.NACKS=2009]="NACKS",r[r.PLIS=2010]="PLIS",r[r.FIRS=2011]="FIRS",r[r.BITRATE=2012]="BITRATE",r[r.PACKAGE_RATE=2031]="PACKAGE_RATE",r[r.ADAPTATION=2032]="ADAPTATION",r[r.ACTUAL_ENCODED=2060]="ACTUAL_ENCODED",r[r.BANDWIDTH=2061]="BANDWIDTH",r[r.RETRANSMIT=2062]="RETRANSMIT",r[r.TARGET_ENCODED=2064]="TARGET_ENCODED",r[r.TRANSMIT=2066]="TRANSMIT",r[r.FREEZE=2082]="FREEZE",r[r.DISABLED=2095]="DISABLED",r[r.PLAYER_STATUS=2128]="PLAYER_STATUS",r[r.QP_SUM=2143]="QP_SUM",r}(_s||{}),l_=function(r){return r[r.BITRATE=2069]="BITRATE",r[r.PACKAGE_LOST=2070]="PACKAGE_LOST",r[r.PACKAGE_RATE=2071]="PACKAGE_RATE",r[r.HEIGHT=2073]="HEIGHT",r[r.FRAME_RATE=2075]="FRAME_RATE",r[r.WIDTH=2077]="WIDTH",r}(l_||{}),Sa=function(r){return r[r.JITTER=-1]="JITTER",r[r.PACKAGE_LOST=2014]="PACKAGE_LOST",r[r.WIDTH=2018]="WIDTH",r[r.HEIGHT=2019]="HEIGHT",r[r.FRAME_RATE=2020]="FRAME_RATE",r[r.JITTER_BUFFER=2023]="JITTER_BUFFER",r[r.CURRENT_DELAY=2024]="CURRENT_DELAY",r[r.NACKS=2026]="NACKS",r[r.PLIS=2027]="PLIS",r[r.FIRS=2028]="FIRS",r[r.BITRATE=2029]="BITRATE",r[r.PACKAGE_RATE=2078]="PACKAGE_RATE",r[r.FREEZE=2084]="FREEZE",r[r.DISABLED=2101]="DISABLED",r[r.PLAYER_STATUS=2129]="PLAYER_STATUS",r[r.QP_SUM=2144]="QP_SUM",r[r.I_FRAME_DELAY=2149]="I_FRAME_DELAY",r}(Sa||{}),c_=function(r){return r[r.FRAME_RATE_DECODE=2021]="FRAME_RATE_DECODE",r[r.FRAME_RATE_RENDER=2022]="FRAME_RATE_RENDER",r[r.FRAME_RATE_OUTPUT=2155]="FRAME_RATE_OUTPUT",r[r.FREEZE_TIME=2109]="FREEZE_TIME",r[r.FREEZE_TIME_RENDER=2147]="FREEZE_TIME_RENDER",r[r.FREEZE_DURATION=2156]="FREEZE_DURATION",r}(c_||{}),Boe=function(r){return r[r.PCM_LEVEL=2104]="PCM_LEVEL",r}(Boe||{}),V0=function(r){return r[r.PACKAGE_LOST=-1]="PACKAGE_LOST",r[r.LEVEL=2038]="LEVEL",r[r.BITRATE=2039]="BITRATE",r[r.PACKAGE_RATE=2040]="PACKAGE_RATE",r[r.AEC_RETURN_LOSS=2041]="AEC_RETURN_LOSS",r[r.AEC_RETURN_LOSS_ENH=2042]="AEC_RETURN_LOSS_ENH",r[r.FREEZE=2081]="FREEZE",r[r.DISABLED=2096]="DISABLED",r}(V0||{}),Iu=function(r){return r[r.BITRATE=2044]="BITRATE",r[r.PACKAGE_LOST=2045]="PACKAGE_LOST",r[r.PACKAGE_RATE=2046]="PACKAGE_RATE",r[r.CURRENT_DELAY=2047]="CURRENT_DELAY",r[r.JITTER_BUFFER=2054]="JITTER_BUFFER",r[r.JITTER=2055]="JITTER",r[r.FREEZE=2083]="FREEZE",r[r.DISABLED=2102]="DISABLED",r[r.PCM_LEVEL=2105]="PCM_LEVEL",r[r.PLAYER_STATUS=2130]="PLAYER_STATUS",r[r.CONCEALED_SAMPLES=2148]="CONCEALED_SAMPLES",r}(Iu||{}),Voe=function(r){return r[r.FREEZE_TIME=-1]="FREEZE_TIME",r[r.LEVEL=2043]="LEVEL",r}(Voe||{}),gd=function(r){return r[r.RTT=2006]="RTT",r[r.CONN_TYPE=801]="CONN_TYPE",r}(gd||{});let Cm=1e3,d_=3;function Mn(r,a,o){o!=null&&Number.isFinite(o)&&(r[a]=Math.round(Math.max(0,o)))}function zoe(r){let a={[gd.CONN_TYPE]:0,[gd.RTT]:r.rtt};switch(r.selectedCandidatePair.localCandidate.candidateType){case"relay":{let o=r.selectedCandidatePair.localCandidate.relayProtocol;o==="udp"&&(a[gd.CONN_TYPE]=1),o==="tcp"&&(a[gd.CONN_TYPE]=3),o==="tls"&&(a[gd.CONN_TYPE]=4);break}case"srflx":a[gd.CONN_TYPE]=2}return a}function Hoe(r){let a=0;switch(r){case"none":a=0;break;case"cpu":a=1;break;case"bandwidth":a=2;break;case"other":a=3}return a}class Goe extends nr{constructor(a){super(),X(this,"store",void 0),X(this,"uploadWRTCStatsTimer",void 0),X(this,"uploadOutboundDenoiserStatsTimer",void 0),X(this,"uploadExtStatsTimer",void 0),X(this,"uploadExtUsageStatsTimer",void 0),X(this,"uploadInboundExtStatsTimer",void 0),X(this,"requestStats",void 0),X(this,"requestTransportStats",void 0),X(this,"requestLocalMedia",void 0),X(this,"requestRemoteMedia",void 0),X(this,"requestAllTracks",void 0),X(this,"requestVideoIsReady",void 0),X(this,"requestUploadStats",void 0),X(this,"requestUpload",void 0),X(this,"uploadOutboundStarted",!1),X(this,"uploadInboundStarted",!1),X(this,"uploadTransportStarted",!1),X(this,"uploadExtensionUsageStarted",!1),X(this,"lastRecvStats",void 0),X(this,"lastSendStats",void 0),X(this,"lastFullRecvStats",void 0),X(this,"lastFullSendStats",void 0),X(this,"needUploadRenderFreezeTime",!0),this.store=a}uploadWRTCStats(a){if(!this.requestStats||!this.requestUploadStats)return;let o,c;if(this.uploadTransportStarted&&(o=this.requestStats(),this.store.useP2P&&(c=this.requestStats(!0))),!o&&this.uploadOutboundStarted&&(o=this.requestStats()),!c&&this.uploadInboundStarted&&(c=this.requestStats(!0)),o||c){let f={};if(this.uploadTransportStarted&&o){let m=this.getTransportStats(o,c,a);m&&(f.misc=[m])}if(this.uploadOutboundStarted&&o){let m=this.getOutboundStats(o,a?this.lastSendStats:this.lastFullSendStats,a);m&&(f.outbound=[m])}if(this.uploadInboundStarted&&c){let m=this.getInboundStats(c,a?this.lastRecvStats:this.lastFullRecvStats,a);m&&(f.inbound=m)}this.requestUploadStats(f)}this.lastRecvStats=c,this.lastSendStats=o,a||(this.lastFullRecvStats=c,this.lastFullSendStats=o)}startUploadWRTCStats(){if(this.uploadWRTCStatsTimer)return;let a=1;this.uploadWRTCStatsTimer=window.setInterval(()=>{if(!this.uploadTransportStarted&&!this.uploadInboundStarted&&!this.uploadOutboundStarted)return this.stopUploadWRTCStats();this.uploadWRTCStats(a!==d_),++a===d_+1&&(a=1)},Cm)}stopUploadWRTCStats(){window.clearInterval(this.uploadWRTCStatsTimer),this.uploadWRTCStatsTimer=void 0,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0)}getTransportStats(a,o,c){if(!this.requestStats)return;if(c)return a.rtt==null?void 0:{addition:{[gd.RTT]:a.rtt,[gd.CONN_TYPE]:void 0}};let f=zoe(a);if(this.store.useP2P){if(o){let m=zoe(o);f[gd.CONN_TYPE]+=m[gd.CONN_TYPE]<<3}f[gd.CONN_TYPE]+=110}else f[gd.CONN_TYPE]+=100;return{addition:f}}getOutboundStats(a,o,c){if(!this.requestUploadStats||!this.requestLocalMedia)return;let f=this.requestLocalMedia();if(!f||f.length===0)return;let m,v,w;return f.forEach(C=>{let[R,{track:x,ssrcs:L}]=C;switch(R){case ht.LocalVideoLowTrack:case ht.LocalVideoTrack:if(R===ht.LocalVideoTrack){let U=function(W,K,oe,ue,xe){let Oe=K.videoSend.find(zt=>zt.ssrc===W);if(!Oe)return;let ke={},{sentFrame:He,inputFrame:lt}=Oe;if(lt&&He){let zt=lt.frameRate,$n=He.frameRate;ke[_s.FREEZE]=function(hi,Gi){let Ur=!0;return Ur=!(hi<=5)&&(hi<=10?Gi<3:hi<=20?Gi<4:Gi<5),Ur}(zt,$n)?1:0}if(Mn(ke,_s.QP_SUM,Oe.qpSumPerFrame),xe)return ke;switch(He&&(Mn(ke,_s.HEIGHT,He.height),Mn(ke,_s.WIDTH,He.width),Mn(ke,_s.FRAME_RATE,He.frameRate)),ke[_s.DISABLED]=ue._originMediaStreamTrack&&!ue._originMediaStreamTrack.enabled||ue._mediaStreamTrack&&!ue._mediaStreamTrack.enabled?1:0,Oe.adaptionChangeReason){case"none":ke[_s.ADAPTATION]=0;break;case"cpu":ke[_s.ADAPTATION]=1;break;case"bandwidth":ke[_s.ADAPTATION]=2;break;case"other":ke[_s.ADAPTATION]=3}let ut=0;Oe.adaptionChangeReason&&(ut+=Hoe(Oe.adaptionChangeReason)),K.qualityLimitationReason&&(ut+=Hoe(K.qualityLimitationReason)<<3),ke[_s.ADAPTATION]=ut,ke[_s.PLAYER_STATUS]=dW[ue._player?ue._player.videoElementStatus:"uninit"],Mn(ke,_s.NACKS,Oe.nacksCount),Mn(ke,_s.PLIS,Oe.plisCount),Mn(ke,_s.FIRS,Oe.firsCount),Mn(ke,_s.AVG_ENCODE,Oe.avgEncodeMs);let ft=oe&&oe.videoSend.find(zt=>zt.ssrc===W);if(ft){let zt=xe?Cm:Cm*d_;ft.timestamp&&Oe.timestamp&&(zt=Oe.timestamp-ft.timestamp),ft.packets!=null&&Oe.packets!=null&&Mn(ke,_s.PACKAGE_RATE,1e3*(Oe.packets-ft.packets)/zt),Oe.packetsLost!=null&&ft.packetsLost!=null&&Mn(ke,_s.PACKAGE_LOST,Oe.packetsLost-ft.packetsLost),ft.bytes!=null&&Oe.bytes!=null&&Mn(ke,_s.BITRATE,8*(Oe.bytes-ft.bytes)/zt)}return ke}(L[0].ssrcId,a,o,x,c),F=c?null:function(W,K,oe){let ue=K.videoSend.find(ut=>ut.ssrc===W);if(!ue)return null;let xe={},Oe=ue.inputFrame,ke=Oe&&Oe.height||oe&&oe.videoHeight||0,He=Oe&&Oe.width||oe&&oe.videoWidth||0,lt=Oe&&Oe.frameRate||0;return Mn(xe,LD.HEIGHT,ke),Mn(xe,LD.WIDTH,He),Mn(xe,LD.FRAME_RATE,lt),xe}(L[0].ssrcId,a,x),Z=c?null:function(W){let K={};return Mn(K,_s.RETRANSMIT,W.bitrate.retransmit),Mn(K,_s.TARGET_ENCODED,W.bitrate.targetEncoded),Mn(K,_s.ACTUAL_ENCODED,W.bitrate.actualEncoded),Mn(K,_s.TRANSMIT,W.bitrate.transmit),Mn(K,_s.BANDWIDTH,W.sendBandwidth),K}(a);v=Object.assign({},U,F,Z)}else w=c?void 0:function(U,F,Z){let W=F.videoSend.find(ue=>ue.ssrc===U);if(!W)return;let K={},oe=W.sentFrame;if(oe&&(Mn(K,l_.HEIGHT,oe.height),Mn(K,l_.WIDTH,oe.width),Mn(K,l_.FRAME_RATE,oe.frameRate)),Z){let ue=Z.videoSend.find(xe=>xe.ssrc===U);if(ue){let xe=Cm*d_;ue.timestamp&&W.timestamp&&(xe=W.timestamp-ue.timestamp),ue.packets!=null&&W.packets!=null&&Mn(K,l_.PACKAGE_RATE,1e3*(W.packets-ue.packets)/xe),W.packetsLost!=null&&ue.packetsLost!=null&&Mn(K,l_.PACKAGE_LOST,W.packetsLost-ue.packetsLost),ue.bytes!=null&&W.bytes!=null&&Mn(K,l_.BITRATE,8*(W.bytes-ue.bytes)/xe)}}return K}(L[0].ssrcId,a,o);break;case ht.LocalAudioTrack:m=c?void 0:function(U,F,Z,W){let K=F.audioSend.find(ke=>ke.ssrc===U);if(!K)return;let oe={};oe[V0.DISABLED]=W._originMediaStreamTrack&&!W._originMediaStreamTrack.enabled||W._mediaStreamTrack&&!W._mediaStreamTrack.enabled?1:0;let ue=100*W._source.getAccurateVolumeLevel(),xe=K.inputLevel;if(xe!=null){let ke=Math.ceil(50*Math.log10(100*xe+1));Mn(oe,V0.LEVEL,ke)}Mn(oe,Boe.PCM_LEVEL,ue),Mn(oe,V0.AEC_RETURN_LOSS,K.aecReturnLoss),Mn(oe,V0.AEC_RETURN_LOSS_ENH,K.aecReturnLossEnhancement),oe[V0.FREEZE]=0;let Oe=Z&&Z.audioSend.find(ke=>ke.ssrc===U);if(Oe){let ke=Cm*d_;Oe.timestamp&&K.timestamp&&(ke=K.timestamp-Oe.timestamp),Oe.bytes!=null&&K.bytes!=null&&Mn(oe,V0.BITRATE,8*(K.bytes-Oe.bytes)/ke),Oe.packets!=null&&K.packets!=null&&Mn(oe,V0.PACKAGE_RATE,1e3*(K.packets-Oe.packets)/ke)}return oe}(L[0].ssrcId,a,o,x)}}),{high:v,low:w,audio:m}}getInboundStats(a,o,c){if(!this.requestRemoteMedia)return;let f=this.requestRemoteMedia()||[],m=[];return f.forEach(v=>{let[w,C]=v,R={peer:w.uid};if(C.has(Wt.VIDEO)&&w.videoTrack){let x=w._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(w._videoSSRC)||!1,L=w.videoTrack?function(U,F,Z,W,K,oe,ue){var xe;let Oe=F.videoRecv.find($n=>$n.ssrc===U);if(!Oe)return;let ke={},{receivedFrame:He,outputFrame:lt,decodeFrameRate:ut}=Oe,ft=Z&&Z.videoRecv.find($n=>$n.ssrc===U);if(ke[Sa.FREEZE]=K&&Z3.isRemoteVideoFreeze(W,Oe,ft)?1:0,Mn(ke,c_.FRAME_RATE_DECODE,ut),Mn(ke,Sa.QP_SUM,Oe.qpSumPerFrame),Oe.framesRateFirefox&&Mn(ke,Sa.FRAME_RATE,Oe.framesRateFirefox),He&&Mn(ke,Sa.FRAME_RATE,He.frameRate),ft){let $n=F.timestamp-Z.timestamp||(ue?Cm:d_*Cm);Oe.packetsLost!=null&&ft.packetsLost!=null&&Mn(ke,Sa.PACKAGE_LOST,Oe.packetsLost-ft.packetsLost),ft.bytes!=null&&Oe.bytes!=null&&Mn(ke,Sa.BITRATE,8*(Oe.bytes-ft.bytes)/$n),ft.packets!=null&&Oe.packets!=null&&Mn(ke,Sa.PACKAGE_RATE,1e3*(Oe.packets-ft.packets)/$n)}if(ue)return ke;He?(Mn(ke,Sa.HEIGHT,He.height),Mn(ke,Sa.WIDTH,He.width)):W&&(Mn(ke,Sa.HEIGHT,W._videoHeight||0),Mn(ke,Sa.WIDTH,W._videoWidth||0)),lt&&Mn(ke,c_.FRAME_RATE_OUTPUT,lt.frameRate);let zt=(xe=W._player)===null||xe===void 0?void 0:xe.rendFrameRate.toFixed(0);if(zt&&Mn(ke,c_.FRAME_RATE_RENDER,+zt),Mn(ke,Sa.JITTER_BUFFER,Oe.jitterBufferMs),Mn(ke,Sa.CURRENT_DELAY,Oe.currentDelayMs),Mn(ke,Sa.FIRS,Oe.firsCount),Mn(ke,Sa.NACKS,Oe.nacksCount),Mn(ke,Sa.PLIS,Oe.plisCount),W){ke[Sa.DISABLED]=W._originMediaStreamTrack.enabled&&W._mediaStreamTrack.enabled?0:1;let $n=W._player;if($n){let{freezeTimeCounterList:hi,renderFreezeAccTime:Gi,videoElementStatus:Ur}=$n;if(hi&&hi.length>0&&Mn(ke,c_.FREEZE_TIME,hi.splice(0,1)[0]),oe&&bm.visibility==="visible"&&Ur===Da.PLAYING&&Jn().supportRequestVideoFrameCallback){let mr=Math.min(6e3,Gi);$n.renderFreezeAccTime=Math.max(0,Gi-mr),Mn(ke,c_.FREEZE_TIME_RENDER,mr)}if(typeof Oe.totalFreezesDuration=="number"){let mr=ft&&ft.totalFreezesDuration?Oe.totalFreezesDuration-ft.totalFreezesDuration:Oe.totalFreezesDuration;Mn(ke,c_.FREEZE_DURATION,1e3*mr)}}}if(ke[Sa.PLAYER_STATUS]=dW[W._player?W._player.videoElementStatus:"uninit"],ft&&Oe.totalInterFrameDelay!==void 0&&Oe.totalSquaredInterFrameDelay!==void 0&&ft.totalInterFrameDelay!==void 0&&ft.totalSquaredInterFrameDelay!==void 0){let $n=Oe.totalInterFrameDelay-ft.totalInterFrameDelay,hi=Oe.totalSquaredInterFrameDelay-ft.totalSquaredInterFrameDelay,Gi=Oe.framesDecodeCount-ft.framesDecodeCount,Ur=$n/Gi*1e3,mr=Math.round(1e3*Math.sqrt((hi-Math.pow($n,2)/Gi)/Gi));!isNaN(mr)&&Ur+mr>Math.max(3*Ur,Ur+150)&&(ke[Sa.I_FRAME_DELAY]=mr)}return ke}(w._videoSSRC,a,o,w.videoTrack,x===!0,this.needUploadRenderFreezeTime,c):void 0;L&&(R.video=L)}if(C.has(Wt.AUDIO)&&w.audioTrack){let x=w.audioTrack?function(L,U,F,Z,W){let K=U.audioRecv.find(ft=>ft.ssrc===L);if(!K)return;let oe={},ue=F&&F.audioRecv.find(ft=>ft.ssrc===L),{receivedFrames:xe,droppedFrames:Oe}=K;var ke,He;if(Mn(oe,Iu.JITTER,K.jitterMs),xe!=null&&Oe!=null&&(oe[Iu.FREEZE]=(He=Oe,(ke=xe)===0||100*He/ke>20?1:0)),ue){let ft=U.timestamp-F.timestamp||(W?Cm:Cm*d_);K.packets!=null&&ue.packets!=null&&Mn(oe,Iu.PACKAGE_RATE,1e3*(K.packets-ue.packets)/ft),ue.bytes!=null&&K.bytes!=null&&Mn(oe,Iu.BITRATE,8*(K.bytes-ue.bytes)/ft),K.packetsLost!=null&&ue.packetsLost!=null&&Mn(oe,Iu.PACKAGE_LOST,K.packetsLost-ue.packetsLost)}if(W)return oe;let lt=100*Z._source.getAccurateVolumeLevel(),ut=K.outputLevel;if(ut!=null){let ft=Math.ceil(50*Math.log10(100*ut+1));Mn(oe,Voe.LEVEL,ft)}if(Mn(oe,Iu.PCM_LEVEL,lt),Z&&(oe[Iu.DISABLED]=Z._originMediaStreamTrack.enabled&&Z._mediaStreamTrack.enabled?0:1),Mn(oe,Iu.JITTER_BUFFER,K.jitterBufferMs),Mn(oe,Iu.CURRENT_DELAY,K.jitterBufferMs),oe[Iu.PLAYER_STATUS]=dW[Oo.getPlayerState(Z.getTrackId())],ue){let ft=K.concealedSamples-ue.concealedSamples;ft>0&&Mn(oe,Iu.CONCEALED_SAMPLES,ft)}return oe}(w._audioSSRC,a,o,w.audioTrack,c):void 0;x&&(R.audio=x)}(R.video||R.audio)&&m.push(R)}),this.needUploadRenderFreezeTime=!this.needUploadRenderFreezeTime,m}startUploadTransportStats(){this.uploadTransportStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats()}stopUploadTransportStats(){this.uploadTransportStarted=!1}startUploadOutboundStats(){this.uploadOutboundStarted||(this.uploadOutboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=window.setInterval(()=>{if(!this.requestAllTracks||!this.requestUpload)return;let a=(this.requestAllTracks()||[]).find(o=>o instanceof CD);if(a&&a._external.getDenoiserStats){let o=a._external.getDenoiserStats();o&&this.requestUpload($y.DENOISER_STATS,o)}},2e3),this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=window.setInterval(()=>{!this.requestAllTracks||!this.requestUpload||this.requestAllTracks().forEach(a=>{a.getProcessorStats().forEach(o=>{this.requestUpload&&this.requestUpload(o.type,o.stats)})})},2e3))}stopUploadOutboundStats(){this.uploadOutboundStarted&&(this.uploadOutboundStarted=!1,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=void 0)}startUploadInboundStats(){this.uploadInboundStarted||(this.uploadInboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=window.setInterval(()=>{!this.requestUpload||!this.requestRemoteMedia||(this.requestRemoteMedia()||[]).forEach(a=>{let[o,c]=a;c.has(Wt.VIDEO)&&o.videoTrack&&o.videoTrack.getProcessorStats().forEach(f=>{this.requestUpload&&this.requestUpload(f.type,f.stats)}),c.has(Wt.AUDIO)&&o.audioTrack&&o.audioTrack.getProcessorStats().forEach(f=>{this.requestUpload&&this.requestUpload(f.type,f.stats)})})},2e3))}stopUploadInboundStats(){this.uploadInboundStarted&&(this.uploadInboundStarted=!1,this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0))}startUploadExtensionUsageStats(){if(this.uploadExtensionUsageStarted)return;this.uploadExtensionUsageStarted=!0,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer);let a=new Map;this.uploadExtUsageStatsTimer=window.setInterval(async()=>{let o=Date.now(),c={connectionInterval:ve("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3,details:[],lts:o},f=[],m=this.requestAllTracks&&this.requestAllTracks()||[];for(let R of m)!R.muted&&R.enabled&&(f=f.concat(await R.getProcessorUsage()));let v=this.requestRemoteMedia&&this.requestRemoteMedia()||[];for(let[R,x]of v)x.has(Wt.VIDEO)&&R.videoTrack&&(f=f.concat(await R.videoTrack.getProcessorUsage())),x.has(Wt.AUDIO)&&R.audioTrack&&(f=f.concat(await R.audioTrack.getProcessorUsage()));if(f.length===0)return;c.details=function(R,x){let L={};for(let{id:W,value:K,level:oe,direction:ue}of R){var U;let xe=(U=x.get(W))!==null&&U!==void 0?U:0,Oe=K===2?xe+ve("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3:xe;var F,Z;x.set(W,Oe),L[W]?(K===2&&(L[W].value=K),oe>L[W].level&&(L[W].level=oe),ue==="remote"&&(L[W].remoteUidCount+=1),L[W].totalTs=(F=x.get(W))!==null&&F!==void 0?F:0):L[W]={value:K,level:oe,remoteUidCount:ue==="local"?0:1,totalTs:(Z=x.get(W))!==null&&Z!==void 0?Z:0}}return Object.keys(L).map(W=>{let{level:K,value:oe,totalTs:ue}=L[W];return{id:W,level:K,value:oe,totalTs:ue}})}(f,a);let w=Date.now(),C=w>o?w:o+1;this.requestUpload&&this.requestUpload($y.EXTENSION_USAGE_STATS,{usageStats:c,sendTs:C})},ve("EXTENSION_USAGE_UPLOAD_INTERVAL"))}stopUploadExtensionUsageStats(){this.uploadExtensionUsageStarted&&(this.uploadExtensionUsageStarted=!1,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer),this.uploadExtUsageStatsTimer=void 0)}}class z0{get hasVideo(){return this._video_enabled_&&!this._video_muted_&&this._video_added_}get hasAudio(){return this._audio_enabled_&&!this._audio_muted_&&this._audio_added_}get audioTrack(){if(this.hasAudio||this._audio_pre_subscribed)return this._audioTrack}get videoTrack(){if(this.hasVideo||this._video_pre_subscribed)return this._videoTrack}get dataChannels(){return this._dataChannels}constructor(a,o){X(this,"uid",void 0),X(this,"_uintid",void 0),X(this,"_trust_in_room_",!0),X(this,"_trust_audio_enabled_state_",!0),X(this,"_trust_video_enabled_state_",!0),X(this,"_trust_audio_mute_state_",!0),X(this,"_trust_video_mute_state_",!0),X(this,"_audio_muted_",!1),X(this,"_video_muted_",!1),X(this,"_audio_enabled_",!0),X(this,"_video_enabled_",!0),X(this,"_audio_added_",!1),X(this,"_video_added_",!1),X(this,"_is_pre_created",!1),X(this,"_video_pre_subscribed",!1),X(this,"_audio_pre_subscribed",!1),X(this,"_trust_video_stream_added_state_",!0),X(this,"_trust_audio_stream_added_state_",!0),X(this,"_audioTrack",void 0),X(this,"_videoTrack",void 0),X(this,"_dataChannels",[]),X(this,"_audioSSRC",void 0),X(this,"_videoSSRC",void 0),X(this,"_audioOrtc",void 0),X(this,"_videoOrtc",void 0),X(this,"_cname",void 0),X(this,"_rtxSsrcId",void 0),X(this,"_videoMid",void 0),X(this,"_audioMid",void 0),this.uid=a,this._uintid=o}}let Nh=function(r){return r.SEND_ONLY="SEND_ONLY",r.RECEIVE_ONLY="RECEIVE_ONLY",r}({});function C4e(r,a){var o;let c;switch(a){case ht.LocalAudioTrack:c=pi.Audio;break;case ht.LocalVideoTrack:c=Tt(o=r._hints).call(o,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalVideoLowTrack:c=pi.Low}return c}function PW(r){let a=Jn();if(r.some(o=>o._bypassWebAudio))throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");if(!a.webAudioMediaStreamDest)throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks because your browser does not support audio mixing")}function LW(r,a){PW(r);let o=new ns;return r.forEach(c=>o.addAudioTrack(c)),o}var Woe,$oe,Koe,qoe,Yoe,Xoe,Joe,Qoe,Zoe,ele,tle,sr;function nle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function DD(r){for(var a=1;a{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleMuteLocalTrack");try{if(!this.sendConnection||this.state!==gi.Connected)return void f(new Ke(ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established."));let C=this.filterTobeMutedTracks(o);if(C.length===0)return void c();let R=C.find(F=>F[0]==="videoLowTrack");R&&R[1].track._originMediaStreamTrack.stop(),await this.sendConnection.muteLocal(C.map(F=>{let[,{id:Z}]=F;return Z}));let x=!1;var v,w;o.trackMediaType==="video"?x=!((v=this.localTrackMap.get(ht.LocalAudioTrack))===null||v===void 0||!v.track._muted):x=((w=this.localTrackMap.get(ht.LocalVideoTrack))===null||w===void 0?void 0:w.id)===void 0;let L=this.createMuteMessage(C);await Li(this,pn.RequestMuteLocal,L);let U=o.trackMediaType==="video"?N0.MUTE_LOCAL_VIDEO:N0.MUTE_LOCAL_AUDIO;await Li(this,pn.RequestP2PMuteLocal,{action:U,message:L,isMuteAll:x}),c()}catch(C){f(C)}finally{m()}}),X(this,"handleUnmuteLocalTrack",async(o,c,f)=>{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleUnmuteLocalTrack");try{if(!this.sendConnection||this.state!==gi.Connected)return void f(new Ke(ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleUnmuteLocalTrack before sendConnection established."));let v=this.filterTobeUnmutedTracks(o);if(v.length===0)return void c();await this.sendConnection.unmuteLocal(v.map(R=>{let[,{id:x}]=R;return x}));let w=this.createUnmuteMessage(v),C=o.trackMediaType==="video"?N0.UNMUTE_LOCAL_VIDEO:N0.UNMUTE_LOCAL_AUDIO;await Li(this,pn.RequestP2PMuteLocal,{action:C,message:w}),c()}catch(v){f(v)}finally{m()}}),X(this,"handleUpdateVideoEncoder",async(o,c,f)=>{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleSetVideoEncoder");try{let v=this.localTrackMap.get(ht.LocalVideoTrack);if(!this.sendConnection||!v||v.track!==o||this.state!==gi.Connected)return void c();let{id:w,track:C}=v;w&&(await this.sendConnection.updateSendParameters(w,C),await this.sendConnection.updateEncoderConfig(w,C),this.emit(pn.UpdateVideoEncoder,C)),c()}catch(v){f(v)}finally{m()}}),X(this,"handleUpdateVideoSendParameters",async(o,c,f)=>{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoSendParameters");try{let v=this.localTrackMap.get(ht.LocalVideoTrack);if(!this.sendConnection||!v||v.track!==o||this.state!==gi.Connected)return void c();let{id:w,track:C}=v;w&&await this.sendConnection.updateSendParameters(w,C),c()}catch(v){f(v)}finally{m()}}),X(this,"handleReplaceTrack",async(o,c,f,m)=>{let v;z.debug("[".concat(this.store.clientId,"] P2PChannel2 handleReplaceTrack for [track-id-").concat(o.getTrackId(),"]")),typeof m=="boolean"&&m||(v=await this.sendMutex.lock("From P2PChannel2.handleReplaceTrack"));try{var w;let R=Array.from(this.localTrackMap.entries()).find(x=>{let[,{track:L}]=x;return o===L});if(!this.sendConnection||!R||R[1].id===void 0||this.state!==gi.Connected)return void c();if(await((w=this.sendConnection)===null||w===void 0?void 0:w.replaceTrack(o,R[1].id)),R[0]===ht.LocalVideoTrack&&Jn().supportDualStreamEncoding){let x=this.localTrackMap.get(ht.LocalVideoLowTrack);if(x){let L=o._mediaStreamTrack.clone();x.track._originMediaStreamTrack.stop(),x.track._mediaStreamTrack=L,x.track._originMediaStreamTrack=L,await new Ct((U,F)=>{this.handleReplaceTrack(x.track,U,F,!0)})}}c()}catch(R){f(R)}finally{var C;(C=v)===null||C===void 0||C()}}),X(this,"handleGetLocalVideoStats",o=>{o(this.statsCollector.getLocalVideoTrackStats())}),X(this,"handleGetLocalAudioStats",o=>{o(this.statsCollector.getLocalAudioTrackStats())}),X(this,"handleGetRemoteVideoStats",o=>this.statsCollector.getRemoteVideoTrackStats(o.uid)[o.uid]),X(this,"handleGetRemoteAudioStats",o=>this.statsCollector.getRemoteAudioTrackStats(o.uid)[o.uid]),this.store=r,this.statsCollector=a,this.statsCollector.addP2PChannel(this),this.statsUploader=new Goe(r),this.bindStatsUploaderEvents(),this.reconnectInterval=window.setInterval(()=>{[this.sendConnection,this.recvConnection].forEach(o=>{o&&(o.iceConnectionState!=="disconnected"&&o.iceConnectionState!=="failed"||this.handleDisconnect(o.direction))})},ve("ICE_RESTART_INTERVAL"))}async startP2PConnection(r,a){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support startP2PConnection.")}async connect(r,a,o,c,f,m){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support connect.")}async startP2P(r,a){let o;try{if(a){this.recvConnection&&(z.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset recvConnection.")),this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection)),o=await this.recvMutex.lock("From P2PChannel.startP2P"),this.recvConnection=new Foe(r,this.store,no.RECEIVE_ONLY),this.bindConnectionEvents(this.recvConnection);let c=await this.recvConnection.establish(a);return{iceParameters:c.iceParameters,dtlsParameters:c.dtlsParameters,sdp:c.sdp}}{this.state=gi.New,this.sendConnection&&(z.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset sendConnection.")),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection)),o=await this.sendMutex.lock("From P2PChannel.startP2P"),this.sendConnection=new Foe(r,this.store),this.store.peerConnectionStart(),this.bindConnectionEvents(this.sendConnection);let c=await this.sendConnection.establish();return{iceParameters:c.iceParameters,dtlsParameters:c.dtlsParameters,sdp:c.sdp}}}finally{o&&o()}}async p2pConnect(r){if(!this.sendConnection)throw new Ke(ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.p2pConnect before P2PChannel2.startP2PConnection .");this.store.peerConnectionStart(),await this.sendConnection.connect(r),this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=gi.Connected}async addRemoteCandidate(r,a){if(a===no.RECEIVE_ONLY){if(!this.sendConnection)throw new Ke(ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.sendConnection.addRemoteCandidate(r)}else{if(!this.recvConnection)throw new Ke(ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.recvConnection.addRemoteCandidate(r)}}publish(r,a,o){var c=this;return Ul(function*(){let f=yield Dn(c.sendMutex.lock("From P2PChannel.publish"));try{if(!c.sendConnection||c.state!==gi.Connected){c.throwIfTrackTypeNotMatch(r);let R=r.filter(x=>c.pendingLocalTracks.indexOf(x)===-1);return void(c.pendingLocalTracks=c.pendingLocalTracks.concat(R))}c.store.pubId=c.store.pubId+1,aa.markPublishStart(c.store.clientId,c.store.pubId);let m=c.filterTobePublishedTracks(r,a,o);if(m.length===0)return void(yield Dn(c.tryToUnmuteAudio(r)));m.forEach(R=>{let{track:x,type:L}=R,U=Date.now();c.store.publish(x.getTrackId(),L===ht.LocalAudioTrack?"audio":"video",U)}),c.bindLocalTrackEvents(m);let v=yield Dn(c.sendConnection.send(m.map(R=>{let{track:x}=R;return x}),c.store.codec,c.store.audioCodec)),w=(yield Dn(v.next())).value,C=c.createGatewayPublishMessage(m,w);try{yield C}catch(R){throw v.throw(R),(R==null?void 0:R.code)===ce.WS_ABORT&&m.forEach(x=>{let{track:L}=x;c.pendingLocalTracks.indexOf(L)===-1&&c.pendingLocalTracks.push(L)}),c.unbindLocalTrackEvents(m),R}yield Dn(v.next()),m.forEach(R=>{let{type:x}=R;c.statsCollector.addLocalStats(x)}),c.statsUploader.startUploadOutboundStats(),c.assignLocalTracks(m,w),m.forEach(R=>{let{track:x,type:L}=R,U=Date.now();c.store.publish(x.getTrackId(),L===ht.LocalAudioTrack?"audio":"video",void 0,U)}),c.startUploadUplinkState()}finally{f()}})()}async unpublish(r){if(!this.sendConnection||this.state!==gi.Connected)return void(r.length===0?this.pendingLocalTracks.length=0:this.pendingLocalTracks=this.pendingLocalTracks.filter(f=>!Tt(r).call(r,f)));let a=this.filterTobeUnpublishedTracks(r);if(a.length===0)return;let o=a.find(f=>f[0]==="videoLowTrack");o&&o[1].track.close();let c=this.createGatewayUnpublishMessage(a);if(await this.sendConnection.stopSending(a.map(f=>{let[,{id:m}]=f;return m})),this.withdrawLocalTracks(a),this.unbindLocalTrackEvents(a.map(f=>{let[m,{track:v}]=f;return{type:m,track:v}})),a.forEach(f=>{let[m]=f;this.statsCollector.removeLocalStats(m)}),this.localTrackMap.size===0&&(this.statsUploader.stopUploadOutboundStats(),this.stopUploadUplinkState()),this.sendConnection&&this.state===gi.Connected)return o&&o[1].track.close(),c;r.forEach(f=>{let m=this.pendingLocalTracks.indexOf(f);m!==-1&&this.pendingLocalTracks.splice(m,1)})}startUploadUplinkState(){if(this.uploadUnplinkStarted)return;this.uploadUnplinkStarted=!0,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval);let r=()=>{let a=[],o=[];Array.from(this.localTrackMap.entries()).forEach(c=>{let[f,{track:m,ssrcs:v}]=c,w={stream_type:C4e(m,f),ssrcs:v};m._muted||!m._enabled?a.push(w):o.push(w)}),a.length>0&&a.forEach(c=>{Li(this,pn.RequestMuteLocal,[c])}),o.length>0&&o.forEach(c=>{Li(this,pn.RequestUnmuteLocal,[c])})};r(),this.uplinkStateUploadInterval=window.setInterval(()=>{r()},3e3)}stopUploadUplinkState(){this.uploadUnplinkStarted&&(this.uploadUnplinkStarted=!1,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval))}publishLowStream(r){return Ul(function*(){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support publishLowStream.")})()}async republish(){this.pendingLocalTracks.length>0&&(z.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await Kr(this,pn.RequestRePublish,this.pendingLocalTracks),this.emit(pn.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[])}async unpublishLowStream(){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support unpublishLowStream.")}async subscribe(r,a,o,c){var f;if(!this.recvConnection)throw new Ke(ce.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");if((f=this.remoteUserMap.get(r))!==null&&f!==void 0&&f.has(a))return;let{track:m,mid:v,transceiver:w}=await this.recvConnection.receive(a,[{ssrcId:o}],String(r.uid),c);a===Wt.AUDIO?(r._audioTrack?r._audioTrack._updateOriginMediaStreamTrack(m):(r._audioTrack=new gb(m,r.uid,r._uintid,this.store),z.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(r._audioTrack.getTrackId()))),w&&r._audioTrack._updateRtpTransceiver(w),this.bindRemoteTrackEvents(r,r._audioTrack)):(r._videoSSRC=o,r._videoTrack?r._videoTrack._updateOriginMediaStreamTrack(m):(r._videoTrack=new mb(m,r.uid,r._uintid,this.store),z.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(r._videoTrack.getTrackId()))),w&&r._videoTrack._updateRtpTransceiver(w),this.bindRemoteTrackEvents(r,r._videoTrack));let C=this.remoteUserMap.get(r);C?C.set(a,v):this.remoteUserMap.set(r,new Map([[a,v]])),this.statsCollector.addRemoteStats(r.uid),this.statsUploader.startUploadInboundStats(),this.startUploadDownlinkState();let R=this.pendingRemoteTracks.findIndex(x=>{let{user:L,kind:U}=x;return L.uid===r.uid&&a===U});R!==-1&&(this.pendingRemoteTracks.splice(R,1),this.emit(pn.MediaReconnectEnd,r.uid))}async mockSubscribe(r,a,o,c){if(!this.recvConnection)throw new Ke(ce.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");await this.recvConnection.mockReceive(a,[{ssrcId:o}],String(r.uid),c)}async unsubscribe(r,a,o){let c=this.pendingRemoteTracks.filter(m=>{let{user:v,kind:w}=m;return a!==void 0?v.uid===r.uid&&a===w:v.uid===r.uid});if(c.forEach(m=>{let v=this.pendingRemoteTracks.indexOf(m);this.pendingRemoteTracks.splice(v,1)}),this.recvConnection||o||c.forEach(m=>{let{kind:v}=m;var w;if(v===Wt.AUDIO)(w=r._audioTrack)===null||w===void 0||w._destroy(),r._audioTrack=void 0;else if(v===Wt.VIDEO){var C;(C=r._videoTrack)===null||C===void 0||C._destroy(),r._videoTrack=void 0}}),!this.recvConnection)return;let f=this.filterTobeUnSubscribedTracks(r,a);f.length!==0&&(await this.recvConnection.stopReceiving(f.map(m=>{let[,{id:v}]=m;return v})),this.withdrawRemoteTracks(f),this.remoteUserMap.size===0&&(this.statsUploader.stopUploadInboundStats(),this.stopUploadDownlinkState()),f.forEach(m=>{let[v,{kind:w}]=m;var C,R;if(w===Wt.VIDEO&&v._videoSSRC&&((C=this.recvConnection)===null||C===void 0||C.setStatsRemoteVideoIsReady(v._videoSSRC,!1)),w===Wt.VIDEO)this.unbindRemoteTrackEvents(v._videoTrack),o||((R=v._videoTrack)===null||R===void 0||R._destroy(),v._videoTrack=void 0);else if(w===Wt.AUDIO){var x;this.unbindRemoteTrackEvents(v._audioTrack),!o&&((x=v._audioTrack)===null||x===void 0||x._destroy(),v._audioTrack=void 0)}}),f.forEach(m=>{let[,{kind:v}]=m;Li(this,pn.RequestP2PMuteRemote,v)}))}startUploadDownlinkState(){if(this.uploadDownlinkStarted)return;this.uploadDownlinkStarted=!0,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval);let r=()=>Array.from(this.remoteUserMap.entries()).forEach(a=>{let[,o]=a;[Wt.VIDEO,Wt.AUDIO].forEach(c=>{o.has(c)?Li(this,pn.RequestP2PUnmuteRemote,c):Li(this,pn.RequestP2PMuteRemote,c)})});r(),this.downlinkStatsUploadInterval=window.setInterval(()=>{r()},3e3)}stopUploadDownlinkState(){this.uploadDownlinkStarted&&(this.uploadDownlinkStarted=!1,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval))}getAllDataChannels(){return this.localDataChannels}async massSubscribe(r){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support massSubscribe.")}async massSubscribeNoLock(r){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support massSubscribeNoLock.")}async massUnsubscribe(r){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support massUnsubscribe.")}async massUnsubscribeNoLock(r){throw new Ke(ce.NOT_SUPPORTED,"p2p mode does not support massUnsubscribeNoLock.")}async muteRemote(r,a){if(!this.recvConnection)return;let o=this.remoteUserMap.get(r);if(!o)return void z.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(r.uid,"."));if(!o.get(a))return void z.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(r.uid," media type ").concat(a,"."));let c=a===Wt.VIDEO?r._videoSSRC:r._audioSSRC;c!==void 0&&this.recvConnection.setStatsRemoteVideoIsReady(c,!1)}async unmuteRemote(r,a){return this.unmuteRemoteNoLock(r,a)}async unmuteRemoteNoLock(r,a){if(!this.recvConnection)return;let o=this.remoteUserMap.get(r);if(!o)return void z.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(r.uid,"."));o.get(a)||z.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(r.uid," media type ").concat(a,"."))}getAllTracks(r){let a=this.localTrackMap.get(ht.LocalAudioTrack);if((a==null?void 0:a.track)instanceof ns){let o=a.track;return Array.from(this.localTrackMap.entries()).filter(c=>{let[f]=c;return f!==ht.LocalAudioTrack}).filter(c=>{let[f]=c;return!(r&&f===ht.LocalVideoLowTrack)}).map(c=>{let[,{track:f}]=c;return f}).concat(o.trackList)}return Array.from(this.localTrackMap.entries()).filter(o=>{let[c]=o;return!(r&&c===ht.LocalVideoLowTrack)}).map(o=>{let[,{track:c}]=o;return c})}reportPublishEvent(r,a,o,c,f){if(r){let v=this.localTrackMap.get(ht.LocalAudioTrack),w=c?this.localTrackMap.get(ht.LocalVideoLowTrack):this.localTrackMap.get(ht.LocalVideoTrack);$t.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:r,ec:a,audioName:v==null?void 0:v.track.getTrackLabel(),videoName:w==null?void 0:w.track.getTrackLabel(),screenshare:(w==null?void 0:w.track._hints.indexOf(Hi.SCREEN_TRACK))!==-1,audio:!!v,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:f})}else{var m;o||(o=[]);let v=o.find(C=>C instanceof br),w=c?(m=this.localTrackMap.get(ht.LocalVideoTrack))===null||m===void 0?void 0:m.track:o.find(C=>C instanceof ki);$t.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:r,ec:a,audioName:v==null?void 0:v.getTrackLabel(),videoName:w==null?void 0:w.getTrackLabel(),screenshare:(w==null?void 0:w._hints.indexOf(Hi.SCREEN_TRACK))!==-1,audio:!!v,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:f})}}reportSubscribeEvent(r,a,o,c){let f=c===Wt.VIDEO?o._videoSSRC:o._audioSSRC;f&&$t.subscribe(this.store.sessionId,{succ:r,ec:a,video:c===Wt.VIDEO,audio:c===Wt.AUDIO,peerid:o.uid,subscribeRequestid:c===Wt.VIDEO?o._videoSSRC:o._audioSSRC,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,f)})}reset(){z.debug("[".concat(this.store.clientId,"] P2PChannel2.reset")),this.sendMutex=new Ts("P2PChannel2-send-mutex"),this.sendMutex=new Ts("P2PChannel2-recv-mutex"),this.sendConnection&&(this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0),this.recvConnection&&(this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();let r=this.localTrackMap.get(ht.LocalAudioTrack);if((r==null?void 0:r.track)instanceof ns){if(r.track.trackList.length>0){let a=r.track;r.track.trackList.forEach(o=>{a.removeAudioTrack(o)})}r.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.reconnectInterval&&(window.clearInterval(this.reconnectInterval),this.reconnectInterval=void 0),this.state=gi.Disconnected}getStats(r){var a,o;return r?(o=this.recvConnection)===null||o===void 0?void 0:o.getStats():(a=this.sendConnection)===null||a===void 0?void 0:a.getStats()}getRemoteVideoIsReady(r){var a;return((a=this.recvConnection)===null||a===void 0?void 0:a.getRemoteVideoIsReady(r))||!1}getLocalAudioVolume(){let r=this.localTrackMap.get(ht.LocalAudioTrack);if(r)return r.track.getVolumeLevel()}getLocalVideoSize(){let r=this.localTrackMap.get(ht.LocalVideoTrack);if(r)return{width:r.track.videoWidth||0,height:r.track.videoHeight||0}}getEncoderConfig(r){let a=this.localTrackMap.get(r);return a&&a.track instanceof ki||a&&a.track instanceof br?a.track._encoderConfig:void 0}getLocalMedia(r){return this.localTrackMap.get(r)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(r,a){if(!r)return this.remoteUserMap.size>0;let o=this.remoteUserMap.get(r);return!!o&&(!a||o.has(a))}async hasRemoteMediaWithLock(r,a){if(!r)return this.remoteUserMap.size>0;let o=this.remoteUserMap.get(r);return!!o&&(!a||o.has(a))}getRemoteMedia(r){var a;let o=Array.from(tl(a=this.remoteUserMap).call(a)).find(c=>c.uid===r);return o?{audioTrack:o.audioTrack,audioSSRC:o._audioSSRC,videoTrack:o.videoTrack,videoSSRC:o._videoSSRC}:{}}getAudioLevels(){let r=Array.from(this.remoteUserMap.entries()).map(o=>{let[c]=o;return{uid:c.uid,level:c.audioTrack?100*c.audioTrack._source.getAccurateVolumeLevel():0}}),a=this.localTrackMap.get(ht.LocalAudioTrack);return a&&r.push({level:100*a.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),r=JA(r).call(r,(o,c)=>o.level-c.level),r}async disconnectForReconnect(){this.sendConnection&&this.recvConnection&&(z.debug("[".concat(this.store.clientId,"] P2PChannel2.disconnectForReconnect closing P2PConnection")),this.state=gi.Reconnecting,ve("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(r=>{let[a]=r;var o;a._videoTrack&&a._videoTrack._player&&((o=a._videoTrack._player.getVideoElement())===null||o===void 0||o.pause(),a._videoTrack._player.isKeepLastFrame=!0,a._videoTrack._originMediaStreamTrack.stop())}),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0,this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0,this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(r=>{var a;let[o,{track:c}]=r;switch(o){case ht.LocalVideoTrack:Tt(a=c._hints).call(a,Hi.LOW_STREAM)?c.close():this.pendingLocalTracks.push(c);break;case ht.LocalAudioTrack:c instanceof ns?this.pendingLocalTracks=this.pendingLocalTracks.concat(c.trackList):this.pendingLocalTracks.push(c);case ht.LocalVideoLowTrack:}}),this.emit(pn.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(r=>{let[a,o]=r;Array.from(tl(o).call(o)).forEach(c=>{this.setPendingRemoteMedia(a,c)}),this.emit(pn.MediaReconnectStart,a.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),z.debug("[".concat(this.store.clientId,"] P2PChannel2 disconnected, waiting to reconnect.")))}hasPendingRemoteMedia(r,a){for(let o of this.pendingRemoteTracks){let{user:c,kind:f}=o;if((r instanceof z0?r.uid:r)===c.uid&&a===f)return!0}return!1}setPendingRemoteMedia(r,a){this.hasPendingRemoteMedia(r,a)||this.pendingRemoteTracks.push({user:r,kind:a})}async restartICE(r,a){let o,c;if(r===no.SEND_ONLY){if(!this.sendConnection)throw new Ke(ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established.");o=await this.sendMutex.lock("From P2PChannel.restartICE"),c=this.sendConnection}else{if(!this.recvConnection)throw new Ke(ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before recvConnection established.");o=await this.recvMutex.lock("From P2PChannel.restartICE"),c=this.recvConnection}try{if(a){let f=await c.restartICE(a);return c.isInRestartIce=!1,f}{let f=await c.restartICE();if(f){let m=await Kr(this,pn.RequestP2PRestartICE,{direction:no.RECEIVE_ONLY,iceParameter:f});await c.restartICE(m),c.isInRestartIce=!1}}}finally{o()}}getUplinkNetworkQuality(){if(!this.sendConnection)return 0;let r=this.sendConnection.getStats(),a=this.localTrackMap.get(ht.LocalVideoTrack),o=this.localTrackMap.get(ht.LocalAudioTrack),c=r.videoSend.find(F=>{var Z;return F.ssrc===(a==null||(Z=a.ssrcs)===null||Z===void 0?void 0:Z[0].ssrcId)}),f=r.audioSend.find(F=>{var Z;return F.ssrc===(o==null||(Z=o.ssrcs)===null||Z===void 0?void 0:Z[0].ssrcId)});if(!c||!f)return 1;let m=Ml(this,pn.NeedSignalRTT),v=c?c.rttMs:void 0,w=f?f.rttMs:void 0,C=v&&w?(v+w)/2:v||w,R=(C&&m?(C+m)/2:C||m)||0,x=100*r.sendPacketLossRate*.7/50+.3*R/1500,L=x<.17?1:x<.36?2:x<.59?3:x<.1?4:5,U=a==null?void 0:a.track;if(U&&U._encoderConfig&&U._hints.indexOf(Hi.SCREEN_TRACK)===-1){let F=U._encoderConfig.bitrateMax,Z=r.bitrate.actualEncoded;if(F&&Z){let W=(1e3*F-Z)/(1e3*F);return cie[W<.15?0:W<.3?1:W<.45?2:W<.6?3:4][L]}}return L}getDownlinkNetworkQuality(){if(!this.recvConnection)return 0;let r=this.recvConnection.getStats(),a=0;return Array.from(this.remoteUserMap.entries()).forEach(o=>{let[c]=o,f=c._audioSSRC,m=c._videoSSRC,v=r.audioRecv.find(Z=>Z.ssrc===f),w=r.videoRecv.find(Z=>Z.ssrc===m);if(!v&&!w)return void(a+=1);let C=Ml(this,pn.NeedSignalRTT),R=r.rtt,x=(R&&C?(R+C)/2:R||C)||0,L=v?v.jitterMs:void 0,U=r.recvPacketLossRate,F=.7*U*100/50+.3*x/1500;L&&(F=.6*U*100/50+.2*x/1500+.2*L/400),a+=F<.1?1:F<.17?2:F<.36?3:F<.59?4:5}),this.remoteUserMap.size>0?Math.round(a/this.remoteUserMap.size):a}async muteLocalTrack(r){return new Ct((a,o)=>{this.handleMuteLocalTrack(r,a,o)})}filterTobePublishedTracks(r,a,o){let c=[],f=Jn(),m=this.getAllTracks();r=FS(r=r.filter(C=>m.indexOf(C)===-1));let v=!1,w=!1;for(let C of r){if(C instanceof ki&&(this.localTrackMap.has(ht.LocalVideoTrack)||v?new Ke(ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(c.push({track:C,type:ht.LocalVideoTrack}),v=!0),a)){let R=this.getLowVideoTrack(C,o);c.push({track:R,type:ht.LocalVideoLowTrack})}if(C instanceof br){let R=this.localTrackMap.get(ht.LocalAudioTrack);if(R){if(!(R.track instanceof ns))throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(C._bypassWebAudio)throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");R.track.addAudioTrack(C),this.bindLocalAudioTrackEvents(C,!0)}else if(w){let x=c.find(L=>{let{type:U}=L;return U===ht.LocalAudioTrack});if(!(x.track instanceof ns))throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(C._bypassWebAudio)throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");x.track.addAudioTrack(C)}else{if(!f.webAudioMediaStreamDest||C instanceof ns||C._bypassWebAudio)c.push({track:C,type:ht.LocalAudioTrack});else{let x=new ns;x.addAudioTrack(C),c.push({track:x,type:ht.LocalAudioTrack})}w=!0}}}return c}filterTobeUnpublishedTracks(r){let a=[],o=this.getAllTracks();r=FS(r=r.filter(c=>o.indexOf(c)!==-1));for(let c of r){if(c instanceof br){let f=this.localTrackMap.get(ht.LocalAudioTrack);if(!f)continue;f.track instanceof ns?(f.track.removeAudioTrack(c),this.unbindLocalAudioTrackEvents(c),f.track.trackList.length===0&&(a.push([ht.LocalAudioTrack,f]),f.track.close())):a.push([ht.LocalAudioTrack,f])}if(c instanceof ki){let f=this.localTrackMap.get(ht.LocalVideoTrack);if(!f)continue;a.push([ht.LocalVideoTrack,f]);let m=this.localTrackMap.get(ht.LocalVideoLowTrack);m&&a.push([ht.LocalVideoLowTrack,m])}}return a}bindLocalTrackEvents(r){r.forEach(a=>{let{track:o,type:c}=a;switch(c){case ht.LocalVideoTrack:o.addListener(Mt.GET_STATS,this.handleGetLocalVideoStats),o.addListener(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),o.addListener(Mt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),o.addListener(Mt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),o.addListener(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack),o.addListener(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case ht.LocalAudioTrack:this.bindLocalAudioTrackEvents(o);case ht.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(r,a){r instanceof ns?r.trackList.forEach(o=>{o.addListener(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),o.addListener(Mt.GET_STATS,this.handleGetLocalAudioStats),o.addListener(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(r.addListener(Mt.GET_STATS,this.handleGetLocalAudioStats),r.addListener(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),r.addListener(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),r.addListener(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),r.addListener(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),a||r.addListener(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack))}unbindLocalTrackEvents(r){r||(r=Array.from(this.localTrackMap.entries()).map(a=>{let[o,{track:c}]=a;return{track:c,type:o}})),r.forEach(a=>{let{track:o,type:c}=a;switch(c){case ht.LocalVideoTrack:o.off(Mt.GET_STATS,this.handleGetLocalVideoStats),o.off(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),o.off(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),o.off(Mt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),o.off(Mt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),o.off(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack),o.off(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),o.off(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case ht.LocalAudioTrack:this.unbindLocalAudioTrackEvents(o);case ht.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(r){r instanceof ns?r.trackList.forEach(a=>{a.off(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.off(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.off(Mt.GET_STATS,this.handleGetLocalAudioStats),a.off(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.off(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(r.off(Mt.GET_STATS,this.handleGetLocalAudioStats),r.off(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),r.off(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),r.off(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack),r.off(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),r.off(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(r,a){a instanceof mb&&a.addListener(Mt.GET_STATS,o=>{o(this.handleGetRemoteVideoStats(r))}),a instanceof gb&&a.addListener(Mt.GET_STATS,o=>{o(this.handleGetRemoteAudioStats(r))})}unbindRemoteTrackEvents(r){r&&r.removeAllListeners(Mt.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(r=>{let[a,o]=r;o.has(Wt.AUDIO)&&this.unbindRemoteTrackEvents(a._audioTrack),o.has(Wt.VIDEO)&&this.unbindRemoteTrackEvents(a._videoTrack)})}createGatewayPublishMessage(r,a){return r.map((o,c)=>{var f;let m,{track:v,type:w}=o;switch(w){case ht.LocalAudioTrack:m=pi.Audio;break;case ht.LocalVideoTrack:m=Tt(f=v._hints).call(f,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalVideoLowTrack:m=pi.Low}return{kind:w===ht.LocalAudioTrack?Wt.AUDIO:Wt.VIDEO,stream_type:m,mid:a[c].id,ssrcs:a[c].localSSRC,isMuted:v.muted||!v.enabled}})}createGatewayUnpublishMessage(r){return r.map(a=>{var o;let c,[f,{track:m,ssrcs:v,id:w}]=a;switch(f){case ht.LocalVideoTrack:c=Tt(o=m._hints).call(o,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalAudioTrack:c=pi.Audio;break;case ht.LocalVideoLowTrack:c=pi.Low}return{stream_type:c,ssrcs:v,mid:w}})}assignLocalTracks(r,a){r.forEach((o,c)=>{let{track:f,type:m}=o;this.localTrackMap.set(m,{track:f,id:a[c].id,ssrcs:a[c].localSSRC})})}withdrawLocalTracks(r){r.forEach(a=>{let[o]=a;this.localTrackMap.delete(o)})}bindConnectionEvents(r){r.onConnectionStateChange=async a=>{var o;z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: ").concat(r.name,".onConnectionStateChange(").concat(a,")")),this.emit(pn.PeerConnectionStateChange,a),a!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),a==="connected"&&(r.isInRestartIce=!1),Tt(o=this._restartStates).call(o,a)&&!r.isInRestartIce&&(a==="disconnected"&&await vs(800),r.iceConnectionState!=="disconnected"&&r.iceConnectionState!=="failed"||this.handleDisconnect(r.direction))},r.onICEConnectionStateChange=a=>{a!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(a,")")),$t.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:a,tag:vr.TRACER}).onSuccess(),this.emit(pn.IceConnectionStateChange,a)},r.onICETransportStateChange=a=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(a,")"))},r.onDTLSTransportStateChange=a=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(a,")"))},r.onDTLSTransportError=a=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(a,")"))},r.onFirstAudioDecoded=a=>{var o;let c=Array.from(tl(o=this.remoteUserMap).call(o)).find(m=>m._audioSSRC===a);var f;c&&(this.store.subscribe(c.uid,"audio",void 0,void 0,void 0,Date.now()),(f=c.audioTrack)===null||f===void 0||f.emit(ub.FIRST_FRAME_DECODED),$t.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_DECODE,fr.FIRST_AUDIO_DECODE,{peer:c._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId}))},r.onFirstAudioReceived=a=>{var o;let c=Array.from(tl(o=this.remoteUserMap).call(o)).find(f=>f._audioSSRC===a);c&&$t.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_RECEIVED,fr.FIRST_AUDIO_RECEIVED,{peer:c._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId})},r.onFirstVideoDecoded=(a,o,c)=>{this.reportVideoFirstFrameDecoded(a,o,c)},r.onFirstVideoReceived=a=>{var o;let c=Array.from(tl(o=this.remoteUserMap).call(o)).find(f=>f._videoSSRC===a);c&&$t.firstRemoteFrame(this.store.sessionId,Rs.FIRST_VIDEO_RECEIVED,fr.FIRST_VIDEO_RECEIVED,{peer:c._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId})},r.onSelectedLocalCandidateChanged=(a,o)=>{let c=a.candidateType==="relay",f=o.candidateType==="relay";o.candidateType!=="unknown"&&c===f||this.emit(pn.ConnectionTypeChange,c),z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(P0(o))," -> ").concat(JSON.stringify(P0(a)),")"))},r.onSelectedRemoteCandidateChanged=(a,o)=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(P0(o))," -> ").concat(JSON.stringify(P0(a)),")"))},r.onFirstVideoDecodedTimeout=a=>{this.reportVideoFirstFrameDecoded(a,void 0,void 0,!0)},r.onLocalCandidate=a=>{this.emit(pn.LocalCandidate,{candidate:a,direction:r.direction})}}unbindConnectionEvents(r){r.onConnectionStateChange=void 0,r.onICEConnectionStateChange=void 0,r.onICETransportStateChange=void 0,r.onDTLSTransportStateChange=void 0,r.onDTLSTransportError=void 0,r.onFirstAudioDecoded=void 0,r.onFirstAudioReceived=void 0,r.onFirstVideoDecoded=void 0,r.onFirstVideoReceived=void 0,r.onSelectedLocalCandidateChanged=void 0,r.onSelectedRemoteCandidateChanged=void 0,r.onFirstVideoDecodedTimeout=void 0,r.onLocalCandidate=void 0}async handleDisconnect(r){let a=r===no.SEND_ONLY?this.sendConnection:this.recvConnection;a&&!a.isInRestartIce&&(a.isInRestartIce=!0,z.debug("[".concat(this.store.clientId,"] [P2PChannel-").concat(a.name,"] start use restartICE")),r===no.SEND_ONLY?this.restartICE(r):Kr(this,pn.RequestP2PRestartICE,{direction:no.SEND_ONLY}))}filterTobeMutedTracks(r){let a=[];if(this.getAllTracks().indexOf(r)===-1)return a;let o=this.localTrackMap.get(ht.LocalAudioTrack);if(r instanceof br&&(o==null?void 0:o.track)instanceof ns)return o.track.isActive||a.push([ht.LocalAudioTrack,o]),a;let c=Array.from(this.localTrackMap.entries()).find(f=>{let[,{track:m}]=f;return r===m});if(c&&(a.push(c),c[0]===ht.LocalVideoTrack)){let f=this.localTrackMap.get(ht.LocalVideoLowTrack);f&&a.push([ht.LocalVideoLowTrack,f])}return a}filterTobeUnmutedTracks(r){let a=[],o=this.localTrackMap.get(ht.LocalAudioTrack);if(r instanceof br&&(o==null?void 0:o.track)instanceof ns)return o.track.isActive&&a.push([ht.LocalAudioTrack,o]),a;let c=Array.from(this.localTrackMap.entries()).find(f=>{let[,{track:m}]=f;return r===m});if(c)if(c[0]===ht.LocalVideoTrack){a.push(c);let f=this.localTrackMap.get(ht.LocalVideoLowTrack);f&&a.push([ht.LocalVideoLowTrack,f])}else a.push(c);return a}createMuteMessage(r){return r.map(a=>{var o;let c,[f,{track:m,ssrcs:v,id:w}]=a;switch(f){case ht.LocalAudioTrack:c=pi.Audio;break;case ht.LocalVideoTrack:c=Tt(o=m._hints).call(o,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalVideoLowTrack:c=pi.Low}return{stream_type:c,ssrcs:v,mid:w}})}createUnmuteMessage(r){return r.map(a=>{var o;let c,[f,{track:m,ssrcs:v,id:w}]=a;switch(f){case ht.LocalAudioTrack:c=pi.Audio;break;case ht.LocalVideoTrack:c=Tt(o=m._hints).call(o,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalVideoLowTrack:c=pi.Low}return{stream_type:c,ssrcs:v,mid:w}})}filterTobeUnSubscribedTracks(r,a){let o=[],c=this.remoteUserMap.get(r);if(!c)return o;if(a){let f=c.get(a);if(!f)return o;o.push([r,{kind:a,id:f}])}else Array.from(c.entries()).forEach(f=>{let[m,v]=f;o.push([r,{kind:m,id:v}])});return o}createUnsubscribeMessage(r){let a=[];return r.forEach(o=>{let[c,{kind:f,id:m}]=o;switch(f){case Wt.VIDEO:return void(c._videoSSRC&&a.push({stream_type:Wt.VIDEO,ssrcId:c._videoSSRC}));case Wt.AUDIO:return void(c._audioSSRC&&a.push({stream_type:Wt.AUDIO,ssrcId:c._audioSSRC}))}}),a}withdrawRemoteTracks(r){r.forEach(a=>{let[o,{kind:c}]=a,f=this.remoteUserMap.get(o);f&&(f.delete(c),Array.from(f.entries()).length===0&&this.remoteUserMap.delete(o))})}async updateBitrateLimit(r){let a=this.localTrackMap.get(ht.LocalVideoTrack),o=this.localTrackMap.get(ht.LocalVideoLowTrack);a&&await a.track.setBitrateLimit(r.uplink),o&&r.low_stream_uplink&&await o.track.setBitrateLimit({max_bitrate:r.low_stream_uplink.bitrate,min_bitrate:r.low_stream_uplink.bitrate||0})}isP2PDisconnected(){if(this.sendConnection&&this.recvConnection){let r=this.sendConnection.peerConnectionState,a=this.recvConnection.peerConnectionState;return r!=="connected"&&a!=="connected"}return!0}async tryToUnmuteAudio(r){for(let a=0;athis.getStats(r),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()).filter(r=>{let[,{ssrcs:a}]=r;return!!a}),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=r=>{var a;return!((a=this.recvConnection)===null||a===void 0||!a.getRemoteVideoIsReady(r))},this.statsUploader.requestUpload=(r,a)=>this.emit(pn.RequestUpload,r,a),this.statsUploader.requestUploadStats=r=>this.emit(pn.RequestUploadStats,r),this.statsUploader.requestAllTracks=()=>this.getAllTracks()}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await vs(j8(this.dtlsFailedCount,kr)),this.emit(pn.RequestReconnect)}async reconnectP2P(){}canPublishLowStream(){return this.localTrackMap.has(ht.LocalVideoTrack)||this.pendingLocalTracks.some(r=>r instanceof ki)}throwIfTrackTypeNotMatch(r){if(r.filter(a=>a instanceof ki).length>1)throw new Ke(ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(r.filter(a=>a instanceof br).length>1&&(r.some(a=>a instanceof br&&a._bypassWebAudio)||!Jn().webAudioMediaStreamDest))throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(let a of r){if(a instanceof ki&&this.pendingLocalTracks.some(o=>o instanceof ki))throw new Ke(ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(a instanceof br&&this.pendingLocalTracks.some(o=>o instanceof br)&&(!Jn().webAudioMediaStreamDest||a._bypassWebAudio||this.pendingLocalTracks.some(o=>o instanceof br&&o._bypassWebAudio)))throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(r,a){let o=!ve("DISABLE_DUAL_STREAM_USE_ENCODING")&&Jn().supportDualStreamEncoding,c=DD(DD({},{width:160,height:120,framerate:15,bitrate:50}),a),f;f=o?r._mediaStreamTrack.clone():OW(r,c);let m=Di(8,"track-low-"),v=new ki(f,DD(DD({},o&&{scaleResolutionDownBy:oG(c,r)}),{},{frameRate:c.framerate,bitrateMax:c.bitrate,bitrateMin:c.bitrate}),void 0,void 0,m);return v.on(i_.TRANSCEIVER_UPDATED,w=>{r._updateRtpTransceiver(w,cb.LOW_STREAM)}),v._hints.push(Hi.LOW_STREAM),r.addListener(Mt.NEED_CLOSE,()=>{v.close()}),v}async globalLock(){return this.recvMutex.lock("From P2PChannel2.globalLock")}reportVideoFirstFrameDecoded(r,a,o,c){var f;let m=Array.from(tl(f=this.remoteUserMap).call(f)).find(v=>v._videoSSRC===r);if(m){c||this.store.subscribe(m.uid,"video",void 0,void 0,void 0,void 0,Date.now());let v=this.store.keyMetrics,w=v.subscribe.find(C=>C.userId===m.uid&&C.type==="video");$t.firstRemoteVideoDecode(this.store.sessionId,Rs.FIRST_VIDEO_DECODE,fr.FIRST_VIDEO_DECODE,{peer:m._uintid,videowidth:a,videoheight:o,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,r),subscribeRequestid:r,p2pid:this.store.p2pId,apEnd:v.requestAPEnd||0,apStart:v.requestAPStart||0,joinGwEnd:v.joinGatewayEnd||0,joinGwStart:v.joinGatewayStart||0,pcEnd:v.peerConnectionEnd||0,pcStart:v.peerConnectionStart||0,subscriberEnd:(w==null?void 0:w.subscribeEnd)||0,subscriberStart:(w==null?void 0:w.subscribeStart)||0,videoAddNotify:(w==null?void 0:w.streamAdded)||0,state:c?1:0})}}async remoteMediaSsrcChanged(r,a,o){if(!this.recvConnection)return!1;let c=this.remoteUserMap.get(r);if(!c)return!1;let f=c.get(a);if(!f)return!1;let m=await this.recvConnection.getRemoteSSRC(f);return m!==void 0&&m!==o}resetConnection(r){z.debug("[".concat(this.store.clientId,"] [P2PChannel2] reset connection to ").concat(r)),this.state===gi.Connected?(z.debug("[".concat(this.store.clientId,"] [P2PChannel2] fallback to websocket but P2PChannel2 state still connected, disconnect first")),this.disconnectForReconnect()):(this.sendConnection&&(this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0),this.recvConnection&&(this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0))}async publishDataChannel(r){throw new Ke(ce.NOT_SUPPORTED)}async unpublishDataChannel(r){throw new Ke(ce.NOT_SUPPORTED)}async subscribeDataChannel(r,a){throw new Ke(ce.NOT_SUPPORTED)}async unsubscribeDataChannel(r,a){throw new Ke(ce.NOT_SUPPORTED)}hasPendingRemoteDataChannel(r,a){throw new Ke(ce.NOT_SUPPORTED)}setPendingRemoteDataChannel(r,a){throw new Ke(ce.NOT_SUPPORTED)}async preConnect(r,a,o,c,f,m){throw new Ke(ce.NOT_SUPPORTED)}getEstablishParams(){throw new Ke(ce.NOT_SUPPORTED)}async reSubscribe(r){throw new Ke(ce.NOT_SUPPORTED)}async updateVideoStreamParameter(r,a){throw new Ke(ce.NOT_SUPPORTED)}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(r=>{let[a,{track:o}]=r;a===ht.LocalVideoLowTrack?o._updateRtpTransceiver(void 0,cb.LOW_STREAM):o._updateRtpTransceiver(void 0)})}},vt(sr.prototype,"p2pConnect",[Woe],Object.getOwnPropertyDescriptor(sr.prototype,"p2pConnect"),sr.prototype),vt(sr.prototype,"unpublish",[$oe],Object.getOwnPropertyDescriptor(sr.prototype,"unpublish"),sr.prototype),vt(sr.prototype,"unpublishLowStream",[Koe],Object.getOwnPropertyDescriptor(sr.prototype,"unpublishLowStream"),sr.prototype),vt(sr.prototype,"subscribe",[qoe],Object.getOwnPropertyDescriptor(sr.prototype,"subscribe"),sr.prototype),vt(sr.prototype,"mockSubscribe",[Yoe],Object.getOwnPropertyDescriptor(sr.prototype,"mockSubscribe"),sr.prototype),vt(sr.prototype,"unsubscribe",[Xoe],Object.getOwnPropertyDescriptor(sr.prototype,"unsubscribe"),sr.prototype),vt(sr.prototype,"muteRemote",[Joe],Object.getOwnPropertyDescriptor(sr.prototype,"muteRemote"),sr.prototype),vt(sr.prototype,"unmuteRemote",[Qoe],Object.getOwnPropertyDescriptor(sr.prototype,"unmuteRemote"),sr.prototype),vt(sr.prototype,"hasRemoteMediaWithLock",[Zoe],Object.getOwnPropertyDescriptor(sr.prototype,"hasRemoteMediaWithLock"),sr.prototype),vt(sr.prototype,"disconnectForReconnect",[ele],Object.getOwnPropertyDescriptor(sr.prototype,"disconnectForReconnect"),sr.prototype),vt(sr.prototype,"remoteMediaSsrcChanged",[tle],Object.getOwnPropertyDescriptor(sr.prototype,"remoteMediaSsrcChanged"),sr.prototype),sr);function Oh(r){return function(a,o,c){let f=a[o];if(typeof f!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){for(var m=arguments.length,v=new Array(m),w=0;w{this.p2pChannel&&(this.updateRemoteStats(this.p2pChannel),this.updateLocalStats(this.p2pChannel))}),this.store=a,this.exceptionMonitor=new a4e,this.exceptionMonitor.on("exception",(o,c,f)=>{this.onStatsException&&this.onStatsException(o,c,f)})}startUpdateStats(){this.updateStatsInterval||(this.updateStatsInterval=window.setInterval(this.updateStats,1e3))}stopUpdateStats(){this.updateStatsInterval&&(window.clearInterval(this.updateStatsInterval),this.updateStatsInterval=void 0)}reset(){this.localStats=new Map,this.remoteStats=new Map,this.trafficStats=void 0,this.trafficStatsPeerList=[],this.uplinkStats=void 0}getLocalAudioTrackStats(){return this.localStats.get(ht.LocalAudioTrack)||u_({},lW)}getLocalVideoTrackStats(){return this.localStats.get(ht.LocalVideoTrack)||u_({},cW)}getRemoteAudioTrackStats(a){let o=(m,v)=>{if(!this.trafficStats)return v;let w=this.trafficStats.peer_delay.find(C=>C.peer_uid===m);return w&&(v.publishDuration=w.B_ppad+(Date.now()-this.trafficStats.timestamp)),v},c={};if(a){var f;let m=(f=this.remoteStats.get(a))===null||f===void 0?void 0:f.audioStats;m&&(c[a]=o(a,m))}else Array.from(this.remoteStats.entries()).forEach(m=>{let[v,{audioStats:w}]=m;w&&(c[v]=o(v,w))});return c}getRemoteNetworkQualityStats(a){let o={};if(a){var c;let f=(c=this.remoteStats.get(a))===null||c===void 0?void 0:c.networkStats;f&&(o[a]=f)}else Array.from(this.remoteStats.entries()).forEach(f=>{let[m,{networkStats:v}]=f;v&&(o[m]=v)});return o}getRemoteVideoTrackStats(a){let o=(m,v)=>{if(!this.trafficStats)return v;let w=this.trafficStats.peer_delay.find(C=>C.peer_uid===m);return w&&(v.publishDuration=w.B_ppvd+(Date.now()-this.trafficStats.timestamp)),v},c={};if(a){var f;let m=(f=this.remoteStats.get(a))===null||f===void 0?void 0:f.videoStats;m&&(c[a]=o(a,m))}else Array.from(this.remoteStats.entries()).forEach(m=>{let[v,{videoStats:w}]=m;w&&(c[v]=o(v,w))});return c}getRTCStats(){let a=0,o=0,c=0,f=0,m=this.localStats.get(ht.LocalAudioTrack);m&&(a+=m.sendBytes,o+=m.sendBitrate);let v=this.localStats.get(ht.LocalVideoTrack);v&&(a+=v.sendBytes,o+=v.sendBitrate);let w=this.localStats.get(ht.LocalVideoLowTrack);w&&(a+=w.sendBytes,o+=w.sendBitrate),this.remoteStats.forEach(R=>{let{audioStats:x,videoStats:L}=R;x&&(c+=x.receiveBytes,f+=x.receiveBitrate),L&&(c+=L.receiveBytes,f+=L.receiveBitrate)});let C=1;return this.trafficStats&&(C+=this.trafficStats.peer_delay.length),{Duration:0,UserCount:C,SendBitrate:o,SendBytes:a,RecvBytes:c,RecvBitrate:f,OutgoingAvailableBandwidth:this.uplinkStats?this.uplinkStats.B_uab/1e3:0,RTT:this.trafficStats?2*this.trafficStats.B_acd:0}}addLocalStats(a){this.localStats.set(a,void 0)}removeLocalStats(a){a?this.localStats.delete(a):this.localStats.clear()}addRemoteStats(a){this.remoteStats.set(a,{})}removeRemoteStats(a){a?this.remoteStats.delete(a):this.remoteStats.clear()}addP2PChannel(a){this.p2pChannel=a}updateTrafficStats(a){a.peer_delay=a.peer_delay.filter(o=>o.B_ppad!==void 0||o.B_ppvd!==void 0),a.peer_delay.filter(o=>this.trafficStatsPeerList.indexOf(o.peer_uid)===-1).forEach(o=>{var c;let f=(c=this.p2pChannel)===null||c===void 0?void 0:c.getRemoteMedia(o.peer_uid),m=f!=null&&f.videoSSRC?aa.measureFromSubscribeStart(this.store.clientId,f.videoSSRC):0,v=f!=null&&f.audioSSRC?aa.measureFromSubscribeStart(this.store.clientId,f.audioSSRC):0;o.B_ppad!==void 0&&o.B_ppvd!==void 0&&(this.onUploadPublishDuration&&this.onUploadPublishDuration(o.peer_uid,o.B_ppad,o.B_ppvd,m>v?m:v),this.trafficStatsPeerList.push(o.peer_uid))}),this.trafficStats=a}updateUplinkStats(a){this.uplinkStats&&this.uplinkStats.B_fir!==a.B_fir&&z.debug("[".concat(this.store.clientId,"]: Period fir changes to ").concat(a.B_fir)),this.uplinkStats=a}static isRemoteVideoFreeze(a,o,c){if(!a)return!1;let f=!!c&&o.framesDecodeFreezeTime>c.framesDecodeFreezeTime,m=!c||o.framesDecodeCount>c.framesDecodeCount;return f||!m}static isRemoteAudioFreeze(a){return!!a&&a._isFreeze()}isLocalVideoFreeze(a){return!(!a.inputFrame||!a.sentFrame)&&a.inputFrame.frameRate>5&&a.sentFrame.frameRate<3}updateLocalStats(a){Array.from(this.localStats.entries()).forEach(o=>{let[c,f]=o;switch(c){case ht.LocalVideoTrack:case ht.LocalVideoLowTrack:{let v=f,w=u_({},cW),C=a.getStats(),R=a.getLocalMedia(c);if(C){let x=C.videoSend.find(L=>L.ssrc===(R==null?void 0:R.ssrcs[0].ssrcId));if(x){let L=a.getLocalVideoSize(),U=a.getEncoderConfig(ht.LocalVideoTrack);x.codec!=="H264"&&x.codec!=="H265"&&x.codec!=="VP8"&&x.codec!=="VP9"&&x.codec!=="AV1X"&&x.codec!=="AV1"||(w.codecType=x.codec),w.sendBytes=x.bytes,w.sendBitrate=v?8*Math.max(0,w.sendBytes-v.sendBytes):0,x.inputFrame?(w.captureFrameRate=x.inputFrame.frameRate,w.captureResolutionHeight=x.inputFrame.height,w.captureResolutionWidth=x.inputFrame.width):L&&(w.captureResolutionWidth=L.width,w.captureResolutionHeight=L.height),x.sentFrame?(w.sendFrameRate=x.sentFrame.frameRate,w.sendResolutionHeight=x.sentFrame.height,w.sendResolutionWidth=x.sentFrame.width):L&&(w.sendResolutionWidth=L.width,w.sendResolutionHeight=L.height),x.avgEncodeMs&&(w.encodeDelay=x.avgEncodeMs),U&&U.bitrateMax&&(w.targetSendBitrate=1e3*U.bitrateMax),w.sendPackets=x.packets,w.sendPacketsLost=x.packetsLost,w.sendJitterMs=x.jitterMs,w.sendRttMs=x.rttMs,w.totalDuration=v?v.totalDuration+1:1,w.totalFreezeTime=v?v.totalFreezeTime:0,this.isLocalVideoFreeze(x)&&(w.totalFreezeTime+=1),x.scalabilityMode&&this.scalabilityMode!==x.scalabilityMode&&(z.debug("[".concat(this.store.clientId,"]: The scalabilityMode of the video sending stream is ").concat(x.scalabilityMode)),this.scalabilityMode=x.scalabilityMode)}this.trafficStats&&(w.currentPacketLossRate=(this.trafficStats.B_pvlr4||0)/100)}var m;this.localStats.set(c,w),((v==null?void 0:v.sendResolutionWidth)!==w.sendResolutionWidth||(v==null?void 0:v.sendResolutionHeight)!==w.sendResolutionHeight)&&((m=this.onStatsChanged)===null||m===void 0||m.call(this,"resolution",{width:w.sendResolutionWidth,height:w.sendResolutionHeight})),w&&R&&this.exceptionMonitor.setLocalVideoStats(this.store.uid,R.track,w);break}case ht.LocalAudioTrack:{let v=f,w=u_({},lW),C=a.getStats(),R=a.getLocalMedia(c);if(C){let x=C.audioSend.find(L=>L.ssrc===(R==null?void 0:R.ssrcs[0].ssrcId));if(x){if(x.codec!=="opus"&&x.codec!=="aac"&&x.codec!=="PCMU"&&x.codec!=="PCMA"&&x.codec!=="G722"||(w.codecType=x.codec),x.inputLevel)w.sendVolumeLevel=Math.round(32767*x.inputLevel);else{let L=a.getLocalAudioVolume();L&&(w.sendVolumeLevel=Math.round(32767*L))}w.sendBytes=x.bytes,w.sendPackets=x.packets,w.sendPacketsLost=x.packetsLost,w.sendJitterMs=x.jitterMs,w.sendRttMs=x.rttMs,w.sendBitrate=v?8*Math.max(0,w.sendBytes-v.sendBytes):0}}this.trafficStats&&(w.currentPacketLossRate=(this.trafficStats.B_palr4||0)/100),this.localStats.set(ht.LocalAudioTrack,w),w&&R&&this.exceptionMonitor.setLocalAudioStats(this.store.uid,R.track,w);break}}})}updateRemoteStats(a){Array.from(this.remoteStats.entries()).forEach(o=>{var c,f;let[m,{videoStats:v,audioStats:w,videoPcStats:C}]=o,R=w,x=v,L=C,U=u_({},gse),F=u_({},vse),Z=u_({},qIe),{audioTrack:W,videoTrack:K,audioSSRC:oe,videoSSRC:ue}=a.getRemoteMedia(m),xe;xe=a instanceof Fl?a.getStats(!0):a.getStats();let Oe=(c=xe)===null||c===void 0?void 0:c.audioRecv.find(lt=>lt.ssrc===oe),ke=(f=xe)===null||f===void 0?void 0:f.videoRecv.find(lt=>lt.ssrc===ue),He=this.trafficStats&&this.trafficStats.peer_delay.find(lt=>lt.peer_uid===m);if(Oe&&(Oe.codec!=="opus"&&Oe.codec!=="aac"&&Oe.codec!=="PCMU"&&Oe.codec!=="PCMA"&&Oe.codec!=="G722"||(U.codecType=Oe.codec),Oe.outputLevel?U.receiveLevel=Math.round(32767*Oe.outputLevel):W&&(U.receiveLevel=Math.round(32767*W.getVolumeLevel())),U.receiveBytes=Oe.bytes,U.receivePackets=Oe.packets,U.receivePacketsLost=Oe.packetsLost,U.packetLossRate=U.receivePacketsLost/(U.receivePackets+U.receivePacketsLost),U.receiveBitrate=R?8*Math.max(0,U.receiveBytes-R.receiveBytes):0,U.totalDuration=R?R.totalDuration+1:1,U.totalFreezeTime=R?R.totalFreezeTime:0,U.freezeRate=U.totalFreezeTime/U.totalDuration,U.receiveDelay=Oe.jitterBufferMs,U.totalDuration>10&&Z3.isRemoteAudioFreeze(W)&&(U.totalFreezeTime+=1)),ke){ke.codec!=="H264"&&ke.codec!=="H265"&&ke.codec!=="VP8"&&ke.codec!=="VP9"&&ke.codec!=="AV1X"&&ke.codec!=="AV1"||(F.codecType=ke.codec),F.receiveBytes=ke.bytes,F.receiveBitrate=x?8*Math.max(0,F.receiveBytes-x.receiveBytes):0,F.decodeFrameRate=ke.decodeFrameRate<0?0:ke.decodeFrameRate,F.renderFrameRate=ke.decodeFrameRate<0?0:ke.decodeFrameRate,ke.outputFrame&&(F.renderFrameRate=ke.outputFrame.frameRate),ke.receivedFrame?(F.receiveFrameRate=ke.receivedFrame.frameRate,F.receiveResolutionHeight=ke.receivedFrame.height,F.receiveResolutionWidth=ke.receivedFrame.width):K&&(F.receiveResolutionHeight=K._videoHeight||0,F.receiveResolutionWidth=K._videoWidth||0),ke.framesRateFirefox!==void 0&&(F.receiveFrameRate=Math.round(ke.framesRateFirefox)),F.receivePackets=ke.packets,F.receivePacketsLost=ke.packetsLost,F.packetLossRate=F.receivePacketsLost/(F.receivePackets+F.receivePacketsLost),F.totalDuration=x?x.totalDuration+1:1,F.totalFreezeTime=x?x.totalFreezeTime:0,F.receiveDelay=ke.jitterBufferMs||0;let lt=!!ue&&a.getRemoteVideoIsReady(ue);K&<&&Z3.isRemoteVideoFreeze(K,ke,L)&&(F.totalFreezeTime+=1),F.freezeRate=F.totalFreezeTime/F.totalDuration}He&&(U.end2EndDelay=He.B_ad,F.end2EndDelay=He.B_vd,U.transportDelay=He.B_ed,F.transportDelay=He.B_ed,U.currentPacketLossRate=He.B_ealr4/100,F.currentPacketLossRate=He.B_evlr4/100,Z.uplinkNetworkQuality=He.B_punq?He.B_punq:0,Z.downlinkNetworkQuality=He.B_pdnq?He.B_pdnq:0),this.remoteStats.set(m,{audioStats:U,videoStats:F,videoPcStats:ke,networkStats:Z}),W&&this.exceptionMonitor.setRemoteAudioStats(W,U),K&&this.exceptionMonitor.setRemoteVideoStats(K,F)})}}function rle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function eI(r){for(var a=1;a{this.reconnectMode="retry",this.startPingPong()}),X(this,"handleWebSocketMessage",m=>{if(!m.data)return;let v=JSON.parse(m.data);v.requestId?this.emit("@".concat(v.requestId,"-").concat(v.sid),v):this.serviceMode===xs.INJECT?this.emit(kf.INJECT_STREAM_STATUS,v):($t.workerEvent(this.spec.sid,{actionType:"status",serverCode:v.code,workerType:this.serviceMode===xs.TRANSCODE?1:2}),this.emit(kf.PUBLISH_STREAM_STATUS,v))}),this.spec=o,this.token=a,this.serviceMode=f,this.websocket=new E3("live-streaming",c),this.websocket.on(En.CONNECTED,this.handleWebSocketOpen),this.websocket.on(En.ON_MESSAGE,this.handleWebSocketMessage),this.websocket.on(En.REQUEST_NEW_URLS,(m,v)=>{Kr(this,kf.REQUEST_NEW_ADDRESS).then(m).catch(v)}),this.websocket.on(En.RECONNECTING,()=>{this.websocket.reconnectMode=this.reconnectMode})}init(a){return this.websocket.init(a)}async request(a,o,c,f){this.reqId+=1,a==="request"&&(this.commandReqId+=1);let m=this.commandReqId,v=this.reqId;if(!v||!this.websocket)throw new De(ce.UNEXPECTED_ERROR);let w=eI({command:a,sdkVersion:dd==="4.21.0"?"0.0.1":dd,seq:v,requestId:v,allocate:c,cname:this.spec.cname,appId:this.spec.appId,sid:this.spec.sid,uid:this.spec.uid.toString(),ts:Math.floor(Date.now()/1e3)},o);if(this.websocket.state==="closed")throw new De(ce.WS_DISCONNECT);let C=()=>new Ct((U,F)=>{this.websocket.once(En.CLOSED,()=>F(new De(ce.WS_ABORT))),this.websocket.once(En.CONNECTED,U)});this.websocket.state!=="connected"&&await C(),w.clientRequest&&(w.clientRequest.workerToken=this.token);let R=new Ct((U,F)=>{let Z=()=>{F(new De(ce.WS_ABORT))};this.websocket.once(En.RECONNECTING,Z),this.websocket.once(En.CLOSED,Z),this.once("@".concat(v,"-").concat(this.spec.sid),W=>{U(W)})});f&&$t.workerEvent(this.spec.sid,eI(eI({},f),{},{requestId:m,actionType:"request",payload:JSON.stringify(o.clientRequest),serverCode:0,code:0}));let x=Date.now();this.websocket.sendMessage(w);let L=null;try{L=await R}catch(U){if(this.websocket.state==="closed")throw U;return await C(),await this.request(a,o,c)}return f&&$t.workerEvent(this.spec.sid,eI(eI({},f),{},{requestId:m,actionType:"response",payload:JSON.stringify(L.serverResponse),serverCode:L.code,success:L.code===200,responseTime:Date.now()-x})),L.code!==200&&this.handleResponseError(L),L}tryNextAddress(){this.reconnectMode="tryNext",this.websocket.reconnect("tryNext")}close(){let a=dd==="4.21.0"?"0.0.1":dd;this.reqId+=1,this.websocket.state==="connected"?(this.websocket.sendMessage({command:"request",appId:this.spec.appId,cname:this.spec.cname,uid:this.spec.uid.toString(),sdkVersion:a,sid:this.spec.sid,seq:this.reqId,ts:Math.floor(Date.now()/1e3),requestId:this.reqId,clientRequest:{command:"DestroyWorker"}}),this.websocket.close(!1,!0)):this.websocket.close(!1),this.pingpongTimer&&(window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0)}handleResponseError(a){switch(a.code){case ts.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM:return void z.warning("live stream response already exists stream");case ts.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR:case ts.LIVE_STREAM_RESPONSE_BAD_STREAM:case ts.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR:return new De(ce.LIVE_STREAMING_INVALID_ARGUMENT,"",{code:a.code}).throw();case ts.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST:if(a.serverResponse.command==="UnpublishStream"||a.serverResponse.command==="UninjectStream")return;throw new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case ts.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED:return new De(ce.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED,"",{code:a.code}).throw();case ts.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{let o=new De(ce.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE);return this.emit(kf.WARNING,o,a.serverResponse.url)}case ts.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN:{let o=new De(ce.LIVE_STREAMING_WARN_FREQUENT_REQUEST);return this.emit(kf.WARNING,o,a.serverResponse.url)}case ts.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH:throw new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case ts.LIVE_STREAM_RESPONSE_NOT_SUPPORTED:return new De(ce.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED,"",{code:a.code}).throw();case ts.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM:{let o=new De(ce.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT);return this.emit(kf.WARNING,o,a.serverResponse.url)}case ts.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR:return new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:a.code}).throw();case ts.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT:throw new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream resource limit",{retry:!0,changeAddress:!0});case ts.LIVE_STREAM_RESPONSE_WORKER_LOST:case ts.LIVE_STREAM_RESPONSE_WORKER_QUIT:if(a.serverResponse.command==="UnpublishStream"||a.serverResponse.command==="UninjectStream")return;throw new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case ts.ERROR_FAIL_SEND_MESSAGE:if(a.serverResponse.command==="UnpublishStream"||a.serverResponse.command==="UninjectStream")return;if(a.serverResponse.command==="UpdateTranscoding"||a.serverResponse.command==="ControlStream")return new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{code:a.code}).throw();throw new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case ts.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case ts.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case ts.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case ts.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:return new De(ce.LIVE_STREAMING_CDN_ERROR,"",{code:a.code}).throw()}}startPingPong(){this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(()=>{this.websocket.state==="connected"&&this.request("ping",{}).catch(k8)},6e3)}}function sle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Po(r){for(var a=1;a1&&arguments[1]!==void 0?arguments[1]:kr,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:kr;super(),X(this,"onLiveStreamWarning",void 0),X(this,"onLiveStreamError",void 0),X(this,"onInjectStatusChange",void 0),X(this,"spec",void 0),X(this,"retryTimeout",1e4),X(this,"connection",void 0),X(this,"httpRetryConfig",void 0),X(this,"wsRetryConfig",void 0),X(this,"streamingTasks",new Map),X(this,"isStartingStreamingTask",!1),X(this,"taskMutex",new Ts("live-streaming")),X(this,"cancelToken",Io.CancelToken.source()),X(this,"transcodingConfig",void 0),X(this,"injectConfig",Po({},oAe)),X(this,"injectLoopTimes",0),X(this,"uapResponse",void 0),X(this,"lastTaskId",1),X(this,"statusError",new Map),this.spec=a,this.httpRetryConfig=c,this.wsRetryConfig=o}async setTranscodingConfig(a){let o=Po(Po({},aAe),a);o.videoCodecProfile!==66&&o.videoCodecProfile!==77&&o.videoCodecProfile!==100&&(z.debug("[".concat(this.spec.clientId,"] set transcoding config, fix video codec profile: ").concat(o.videoCodecProfile," -> 100")),o.videoCodecProfile=100),o.transcodingUsers||(o.transcodingUsers=o.userConfigs),o.transcodingUsers&&(o.transcodingUsers=o.transcodingUsers.map(v=>Po(Po(Po({},sAe),v),{},{zOrder:v.zOrder?v.zOrder+1:1}))),function(v){gr(v.width)||Ti(v.width,"config.width",0,1e4),gr(v.height)||Ti(v.height,"config.height",0,1e4),gr(v.videoBitrate)||Ti(v.videoBitrate,"config.videoBitrate",1,1e6),gr(v.videoFrameRate)||Ti(v.videoFrameRate,"config.videoFrameRate"),gr(v.lowLatency)||fm(v.lowLatency,"config.lowLatency"),gr(v.audioSampleRate)||as(v.audioSampleRate,"config.audioSampleRate",[32e3,44100,48e3]),gr(v.audioBitrate)||Ti(v.audioBitrate,"config.audioBitrate",1,128),gr(v.audioChannels)||as(v.audioChannels,"config.audioChannels",[1,2,3,4,5]),gr(v.videoGop)||Ti(v.videoGop,"config.videoGop"),gr(v.videoCodecProfile)||as(v.videoCodecProfile,"config.videoCodecProfile",[66,77,100]),gr(v.userCount)||Ti(v.userCount,"config.userCount",0,17),gr(v.backgroundColor)||Ti(v.backgroundColor,"config.backgroundColor",0,16777215),gr(v.userConfigExtraInfo)||Ms(v.userConfigExtraInfo,"config.userConfigExtraInfo",0,4096,!1),v.transcodingUsers&&!gr(v.transcodingUsers)&&(pm(v.transcodingUsers,"config.transcodingUsers"),v.transcodingUsers.forEach((w,C)=>{H8(w.uid),gr(w.x)||Ti(w.x,"transcodingUser[".concat(C,"].x"),0,1e4),gr(w.y)||Ti(w.y,"transcodingUser[".concat(C,"].y"),0,1e4),gr(w.width)||Ti(w.width,"transcodingUser[".concat(C,"].width"),0,1e4),gr(w.height)||Ti(w.height,"transcodingUser[".concat(C,"].height"),0,1e4),gr(w.zOrder)||Ti(w.zOrder-1,"transcodingUser[".concat(C,"].zOrder"),0,100),gr(w.alpha)||Ti(w.alpha,"transcodingUser[".concat(C,"].alpha"),0,1,!1)})),gr(v.watermark)||iG(v.watermark,"watermark"),gr(v.backgroundImage)||iG(v.backgroundImage,"backgroundImage"),v.images&&!gr(v.images)&&(pm(v.images,"config.images"),v.images.forEach((w,C)=>{iG(w,"images[".concat(C,"]"))}))}(o);let c=[];o.images&&c.push(...o.images.map(v=>Po(Po(Po({},nG),v),{},{zOrder:255}))),o.backgroundImage&&(c.push(Po(Po(Po({},nG),o.backgroundImage),{},{zOrder:0})),delete o.backgroundImage),o.watermark&&(c.push(Po(Po(Po({},nG),o.watermark),{},{zOrder:255})),delete o.watermark),o.images=c,o.transcodingUsers&&(o.userConfigs=o.transcodingUsers.map(v=>Po({},v)),o.userCount=o.transcodingUsers.length,delete o.transcodingUsers);let f=(o.userConfigs||[]).map(v=>typeof v.uid=="number"?Ct.resolve(v.uid):Hie(v.uid,this.spec,this.cancelToken.token,this.httpRetryConfig));if((await Ct.all(f)).forEach((v,w)=>{o.userConfigs&&o.userConfigs[w]&&(o.userConfigs[w].uid=v)}),this.transcodingConfig=o,this.connection)try{var m;let v=await this.connection.request("request",{clientRequest:{command:"UpdateTranscoding",transcodingConfig:this.transcodingConfig}},!1,{command:"UpdateTranscoding",workerType:1,requestByUser:!0,tid:Array.from(Sh(m=this.streamingTasks).call(m)).map(w=>w.taskId).join("#")});z.debug("[".concat(this.spec.clientId,"] update live transcoding config success, code: ").concat(v.code,", config:"),JSON.stringify(this.transcodingConfig))}catch(v){if(!v.data||!v.data.retry)throw v;v.data.changeAddress&&this.connection.tryNextAddress(),this.streamingTasks.forEach(w=>{z.warning("[".concat(this.spec.clientId,"] live streaming receive error"),v.toString(),"try to republish",w.url),this.startLiveStreamingTask(w.url,w.mode,v).then(()=>{z.debug("[".concat(this.spec.clientId,"] live streaming republish ").concat(w.url," success"))}).catch(C=>{z.error("[".concat(this.spec.clientId,"] live streaming republish failed"),w.url,C.toString()),this.onLiveStreamError&&this.onLiveStreamError(w.url,C)})})}}setInjectStreamConfig(a,o){this.injectConfig=Object.assign({},this.injectConfig,a),this.injectLoopTimes=o}async startLiveStreamingTask(a,o,c){var f;if(Array.from(Sh(f=this.streamingTasks).call(f)).find(C=>C.mode===xs.INJECT)&&o===xs.INJECT)return new De(ce.LIVE_STREAMING_TASK_CONFLICT,"inject stream over limit").throw();if(!this.transcodingConfig&&o===xs.TRANSCODE)throw new De(ce.INVALID_OPERATION,"[LiveStreaming] no transcoding config found, can not start transcoding streaming task");let m={command:"PublishStream",ts:Date.now(),url:a,uid:this.spec.uid.toString(),autoDestroyTime:100,acceptImageTimeout:!0};z.debug("[".concat(this.spec.clientId,"] start live streaming ").concat(a,", mode: ").concat(o));let v=await this.taskMutex.lock();if(!this.connection&&c)return void v();if(this.streamingTasks.get(a)&&!c)return v(),new De(ce.LIVE_STREAMING_TASK_CONFLICT).throw();try{this.connection||(this.connection=await this.connect(o))}catch(C){throw v(),C}switch(o){case xs.TRANSCODE:m.transcodingConfig=Po({},this.transcodingConfig);break;case xs.RAW:break;case xs.INJECT:m={cname:this.spec.cname,command:"InjectStream",sid:this.spec.sid,transcodingConfig:this.injectConfig,ts:Date.now(),url:a,loopTimes:this.injectLoopTimes}}this.uapResponse&&this.uapResponse.vid&&(m.vid=this.uapResponse.vid),this.isStartingStreamingTask=!0;let w=this.lastTaskId++;try{let C=new Ct((x,L)=>{vs(this.retryTimeout).then(()=>{if(c)return L(c);let U=this.statusError.get(a);return U?(this.statusError.delete(a),L(U)):void 0})}),R=await Ct.race([this.connection.request("request",{clientRequest:m},!0,{url:a,command:"PublishStream",workerType:o===xs.TRANSCODE?1:2,requestByUser:!c,tid:w.toString()}),C]);this.isStartingStreamingTask=!1,z.debug("[".concat(this.spec.clientId,"] live streaming started, code: ").concat(R.code)),this.streamingTasks.set(a,{clientRequest:m,mode:o,url:a,taskId:w}),v()}catch(C){if(v(),this.isStartingStreamingTask=!1,!C.data||!C.data.retry||c)throw C;return C.data.changeAddress?(this.connection.tryNextAddress(),await this.startLiveStreamingTask(a,o,C)):await this.startLiveStreamingTask(a,o,C)}}stopLiveStreamingTask(a){return new Ct((o,c)=>{let f=this.streamingTasks.get(a);if(!f||!this.connection)return new De(ce.UNEXPECTED_ERROR,"can not find streaming task to stop").throw();let m=f.mode;f.abortTask=()=>{z.debug("[".concat(this.spec.clientId,"] stop live streaming success(worker exception)")),this.streamingTasks.delete(a),o()},this.connection.request("request",{clientRequest:{command:m===xs.INJECT?"UninjectStream":"UnpublishStream",url:f.url}},!1,{url:a,command:"UnPublishStream",workerType:m===xs.TRANSCODE?1:2,requestByUser:!0,tid:(this.lastTaskId++).toString()}).then(v=>{z.debug("[".concat(this.spec.clientId,"] stop live streaming success, code: ").concat(v.code)),this.streamingTasks.delete(a),this.streamingTasks.size===0&&m!==xs.INJECT&&(this.connection&&this.connection.close(),this.connection=void 0),o(),m===xs.INJECT&&this.onInjectStatusChange&&this.onInjectStatusChange(HS.INJECT_STREAM_STATUS_STOP_SUCCESS,this.spec.uid,a)}).catch(c)})}async controlInjectStream(a,o,c,f){let m=this.streamingTasks.get(a);if(!m||!this.connection||m.mode!==xs.INJECT)throw new De(ce.INVALID_OPERATION,"can not find inject stream task to control");return(await this.connection.request("request",{clientRequest:{command:"ControlStream",url:a,control:o,audioVolume:c,position:f}})).serverResponse}resetAllTask(){var a;let o=Array.from(Sh(a=this.streamingTasks).call(a));this.terminate();for(let c of o)this.startLiveStreamingTask(c.url,c.mode).catch(f=>{this.onLiveStreamError&&this.onLiveStreamError(c.url,f)})}terminate(){this.cancelToken&&this.cancelToken.cancel(),this.streamingTasks=new Map,this.isStartingStreamingTask=!1,this.statusError=new Map,this.cancelToken=Io.CancelToken.source(),this.uapResponse=void 0,this.connection&&this.connection.close(),this.connection=void 0}async connect(a){if(this.connection)throw new De(ce.UNEXPECTED_ERROR,"live streaming connection has already connected");let o=await Kr(this,G8.REQUEST_WORKER_MANAGER_LIST,a);return this.uapResponse=o,this.connection=new T4e(o.workerToken,this.spec,this.wsRetryConfig,a),this.connection.on(kf.WARNING,(c,f)=>this.onLiveStreamWarning&&this.onLiveStreamWarning(f,c)),this.connection.on(kf.PUBLISH_STREAM_STATUS,c=>this.handlePublishStreamServer(c)),this.connection.on(kf.INJECT_STREAM_STATUS,c=>this.handleInjectStreamServerStatus(c)),this.connection.on(kf.REQUEST_NEW_ADDRESS,(c,f)=>{if(!this.connection)return f(new De(ce.UNEXPECTED_ERROR,"can not get new live streaming address list"));Kr(this,G8.REQUEST_WORKER_MANAGER_LIST,a).then(m=>{this.uapResponse=m,c(m.addressList)}).catch(f)}),await this.connection.init(o.addressList),this.connection}handlePublishStreamServer(a){let o=a.serverStatus&&a.serverStatus.url||"empty_url",c=this.streamingTasks.get(o),f=a.reason;switch(a.code){case ts.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case ts.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case ts.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case ts.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:{let v=new De(ce.LIVE_STREAMING_CDN_ERROR,"",{code:a.code});if(c)return z.error(v.toString()),this.onLiveStreamError&&this.onLiveStreamError(o,v);if(!this.isStartingStreamingTask)return;this.statusError.set(o,v)}case ts.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{let v=new De(ce.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE,f);return this.onLiveStreamWarning&&this.onLiveStreamWarning(o,v)}case ts.LIVE_STREAM_RESPONSE_WORKER_LOST:case ts.LIVE_STREAM_RESPONSE_WORKER_QUIT:{var m;if(!this.connection)return;this.connection.tryNextAddress();let v=Array.from(Sh(m=this.streamingTasks).call(m));for(let w of v)w.abortTask?w.abortTask():(z.warning("[".concat(this.spec.clientId,"] publish stream status code"),a.code,"try to republish",w.url),this.startLiveStreamingTask(w.url,w.mode,new De(ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:a.code})).then(()=>{z.debug("[".concat(this.spec.clientId,"] republish live stream success"),w.url)}).catch(C=>{z.error(C.toString()),this.onLiveStreamError&&this.onLiveStreamError(w.url,C)}));return}}}handleInjectStreamServerStatus(a){let o=Number(a.uid),c=a.serverStatus&&a.serverStatus.url;switch(a.code){case 200:return void(this.onInjectStatusChange&&this.onInjectStatusChange(HS.INJECT_STREAM_STATUS_START_SUCCESS,o,c));case 451:return this.onInjectStatusChange&&this.onInjectStatusChange(HS.INJECT_STREAM_STATUS_START_ALREADY_EXISTS,o,c),void this.streamingTasks.delete(c);case 453:return this.onInjectStatusChange&&this.onInjectStatusChange(HS.INJECT_STREAM_STATUS_START_UNAUTHORIZED,o,c),void this.streamingTasks.delete(c);case 470:return this.onInjectStatusChange&&this.onInjectStatusChange(HS.INJECT_STREAM_STATUS_BROKEN,o,c),void this.streamingTasks.delete(c);case 499:return this.onInjectStatusChange&&this.onInjectStatusChange(HS.INJECT_STREAM_STATUS_START_TIMEOUT,o,c),void this.streamingTasks.delete(c);default:return void z.debug("inject stream server status",a)}}hasUrl(a){return this.streamingTasks.has(a)}}class ale{constructor(){X(this,"destChannelMediaInfos",new Map),X(this,"srcChannelMediaInfo",void 0)}setSrcChannelInfo(a){vie(a),this.srcChannelMediaInfo=a}addDestChannelInfo(a){vie(a),this.destChannelMediaInfos.set(a.channelName,a)}removeDestChannelInfo(a){z8(a),this.destChannelMediaInfos.delete(a)}getSrcChannelMediaInfo(){return this.srcChannelMediaInfo}getDestChannelMediaInfo(){return this.destChannelMediaInfos}}function ole(r){if(!(r instanceof ale))return new De(ce.INVALID_PARAMS,"Config should be instance of [ChannelMediaRelayConfiguration]").throw();let a=r.getSrcChannelMediaInfo(),o=r.getDestChannelMediaInfo();if(!a)return new De(ce.INVALID_PARAMS,"srcChannelMediaInfo should not be empty").throw();if(o.size===0)return new De(ce.INVALID_PARAMS,"destChannelMediaInfo should not be empty").throw()}class x4e extends nr{constructor(a,o,c){super(),X(this,"ws",void 0),X(this,"requestId",1),X(this,"heartBeatTimer",void 0),X(this,"joinInfo",void 0),X(this,"clientId",void 0),X(this,"onOpen",()=>{this.emit("open"),this.startHeartBeatCheck()}),X(this,"onClose",f=>{this.emit("close"),this.dispose()}),X(this,"onMessage",f=>{let m=JSON.parse(f.data);if(!m||m.command!=="serverResponse"||!m.requestId)return m&&m.command==="serverStatus"&&m.serverStatus&&m.serverStatus.command?(this.emit("status",m.serverStatus),void this.emit(m.serverStatus.command,m.serverStatus)):void 0;this.emit("req_".concat(m.requestId),m)}),this.joinInfo=a,this.clientId=o,this.ws=new E3("cross-channel-".concat(this.clientId),c),this.ws.on(En.RECONNECTING,()=>{this.ws.reconnectMode="retry",this.emit("reconnecting")}),this.ws.on(En.CONNECTED,this.onOpen),this.ws.on(En.ON_MESSAGE,this.onMessage),this.ws.on(En.CLOSED,this.onClose)}isConnect(){return this.ws.state==="connected"}sendMessage(a){let o=this.requestId++;return a.requestId=o,a.seq=o,this.ws.sendMessage(a),o}waitStatus(a){return new Ct((o,c)=>{let f=window.setTimeout(()=>{c(new De(ce.TIMEOUT,"wait status timeout, status: ".concat(a)))},5e3);this.once(a,m=>{window.clearTimeout(f),m.state&&m.state!==0?c(new De(ce.CROSS_CHANNEL_WAIT_STATUS_ERROR,"wait status error, status: ".concat(a))):o(void 0)}),this.once("dispose",()=>{window.clearTimeout(f),c(new De(ce.WS_ABORT))})})}async request(a){if(this.ws.state==="closed")throw new De(ce.WS_DISCONNECT);let o=()=>new Ct((v,w)=>{this.ws.once(En.CLOSED,()=>w(new De(ce.WS_ABORT))),this.ws.once(En.CONNECTED,v)});this.ws.state!=="connected"&&await o();let c=this.sendMessage(a),f=new Ct((v,w)=>{let C=()=>{w(new De(ce.WS_ABORT))};this.ws.once(En.RECONNECTING,C),this.ws.once(En.CLOSED,C),this.once("req_".concat(c),v),vs(3e3).then(()=>{this.removeAllListeners("req_".concat(c)),this.ws.off(En.RECONNECTING,C),this.ws.off(En.CLOSED,C),w(new De(ce.TIMEOUT,"cross channel ws request timeout"))})}),m=await f;if(!m||m.code!==200)throw new De(ce.CROSS_CHANNEL_SERVER_ERROR_RESPONSE,"response: ".concat(JSON.stringify(m)));return m}async connect(a){this.ws.removeAllListeners(En.REQUEST_NEW_URLS),this.ws.on(En.REQUEST_NEW_URLS,o=>{o(a)}),await this.ws.init(a)}dispose(){this.clearHeartBeatCheck(),this.emit("dispose"),this.removeAllListeners(),this.ws.close()}sendPing(a){let o=this.requestId++;return a.requestId=o,this.ws.sendMessage(a),o}startHeartBeatCheck(){this.heartBeatTimer&&window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=window.setInterval(()=>{this.sendPing({command:"ping",appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sid:this.joinInfo.sid,ts:+new Date,requestId:0})},3e3)}clearHeartBeatCheck(){window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=void 0}}class A4e extends nr{set state(a){a!==this._state&&(a!==il.RELAY_STATE_FAILURE&&(this.errorCode=GS.RELAY_OK),this.emit("state",a,this.errorCode),this._state=a)}get state(){return this._state}constructor(a,o,c,f,m){super(),X(this,"joinInfo",void 0),X(this,"sid",void 0),X(this,"clientId",void 0),X(this,"cancelToken",Io.CancelToken.source()),X(this,"workerToken",void 0),X(this,"requestId",0),X(this,"signal",void 0),X(this,"prevChannelMediaConfig",void 0),X(this,"httpRetryConfig",void 0),X(this,"_resolution",void 0),X(this,"_state",il.RELAY_STATE_IDLE),X(this,"errorCode",GS.RELAY_OK),X(this,"onStatus",v=>{z.debug("[".concat(this.clientId,"] ChannelMediaStatus: ").concat(JSON.stringify(v))),v&&v.command&&(v.command==="onAudioPacketReceived"&&this.emit("event",mm.PACKET_RECEIVED_AUDIO_FROM_SRC),v.command==="onVideoPacketReceived"&&this.emit("event",mm.PACKET_RECEIVED_VIDEO_FROM_SRC),v.command==="onSrcTokenPrivilegeDidExpire"&&(this.errorCode=GS.SRC_TOKEN_EXPIRED,this.state=il.RELAY_STATE_FAILURE),v.command==="onDestTokenPrivilegeDidExpire"&&(this.errorCode=GS.DEST_TOKEN_EXPIRED,this.state=il.RELAY_STATE_FAILURE))}),X(this,"onReconnect",async()=>{z.debug("[".concat(this.clientId,"] ChannelMediaSocket disconnect, reconnecting")),this.emit("event",mm.NETWORK_DISCONNECTED),this.state=il.RELAY_STATE_IDLE,this.prevChannelMediaConfig&&this.sendStartRelayMessage(this.prevChannelMediaConfig).catch(v=>{this.state!==il.RELAY_STATE_IDLE&&(z.error("auto restart channel media relay failed",v.toString()),this.errorCode=GS.SERVER_CONNECTION_LOST,this.state=il.RELAY_STATE_FAILURE)})}),this.joinInfo=a,this.clientId=o,this.sid=m3(),this.signal=new x4e(this.joinInfo,this.clientId,c),this.httpRetryConfig=f,this._resolution=m}async startChannelMediaRelay(a){if(this.state!==il.RELAY_STATE_IDLE)throw new De(ce.INVALID_OPERATION);this.state=il.RELAY_STATE_CONNECTING,await this.connect(),z.debug("[".concat(this.clientId,"] startChannelMediaRelay: connect success"));try{await this.sendStartRelayMessage(a)}catch(o){throw o.data&&o.data.serverResponse&&o.data.serverResponse.command==="SetSourceChannel"?new De(ce.CROSS_CHANNEL_FAILED_JOIN_SRC):o.data&&o.data.serverResponse&&o.serverResponse.command==="SetDestChannelStatus"?new De(ce.CROSS_CHANNEL_FAILED_JOIN_DEST):o.data&&o.data.serverResponse&&o.serverResponse.command==="StartPacketTransfer"?new De(ce.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST):o}this.prevChannelMediaConfig=a}async updateChannelMediaRelay(a){if(this.state!==il.RELAY_STATE_RUNNING)throw new De(ce.INVALID_OPERATION);await this.sendUpdateMessage(a),this.prevChannelMediaConfig=a}async setVideoProfile(a){if(this._resolution=a,this.state!==il.RELAY_STATE_RUNNING)throw new De(ce.INVALID_OPERATION);let o=this.genMessage(io.SetVideoProfile);await this.signal.request(o),z.debug("[".concat(this.clientId,"] startChannelMediaRelay: setVideoProfile success"))}async stopChannelMediaRelay(){await this.sendStopRelayMessage(),z.debug("[".concat(this.clientId,"] stopChannelMediaRelay: send stop message success")),this.state=il.RELAY_STATE_IDLE,this.dispose()}dispose(){z.debug("[".concat(this.clientId,"] disposeChannelMediaRelay")),this.cancelToken.cancel(),this.cancelToken=Io.CancelToken.source(),this.state=il.RELAY_STATE_IDLE,this.emit("dispose"),this.signal.dispose(),this.prevChannelMediaConfig=void 0}async connect(){let a=await xAe(this.joinInfo,this.cancelToken.token,this.httpRetryConfig);this.workerToken=a.workerToken,await this.signal.connect(a.addressList),this.emit("event",mm.NETWORK_CONNECTED),this.signal.on("status",this.onStatus),this.signal.on("reconnecting",this.onReconnect)}async sendStartRelayMessage(a){let o=this.genMessage(io.StopPacketTransfer);await this.signal.request(o),await this.signal.waitStatus("Normal Quit"),z.debug("[".concat(this.clientId,"] startChannelMediaRelay: StopPacketTransfer success"));let c=this.genMessage(io.SetSdkProfile,a);await this.signal.request(c),z.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSdkProfile success"));let f=this.genMessage(io.SetSourceChannel,a);await this.signal.request(f),await this.signal.waitStatus("SetSourceChannelStatus"),this.emit("event",mm.PACKET_JOINED_SRC_CHANNEL),z.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceChannel success"));let m=this.genMessage(io.SetSourceUserId,a);await this.signal.request(m),z.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceUserId success"));let v=this.genMessage(io.SetDestChannel,a);await this.signal.request(v),await this.signal.waitStatus("SetDestChannelStatus"),this.emit("event",mm.PACKET_JOINED_DEST_CHANNEL),z.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetDestChannel success"));let w=this.genMessage(io.StartPacketTransfer,a);await this.signal.request(w),this.emit("event",mm.PACKET_SENT_TO_DEST_CHANNEL),this.state=il.RELAY_STATE_RUNNING,z.debug("[".concat(this.clientId,"] startChannelMediaRelay: StartPacketTransfer success")),this.setVideoProfile(this._resolution)}async sendUpdateMessage(a){let o=this.genMessage(io.UpdateDestChannel,a);await this.signal.request(o),this.emit("event",mm.PACKET_UPDATE_DEST_CHANNEL),z.debug("[".concat(this.clientId,"] sendUpdateMessage: UpdateDestChannel success"))}async sendStopRelayMessage(){let a=this.genMessage(io.StopPacketTransfer);await this.signal.request(a),z.debug("[".concat(this.clientId,"] sendStopRelayMessage: StopPacketTransfer success"))}genMessage(a,o){let c=[],f=[],m=[];this.requestId+=1;let v={appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sdkVersion:dd,sid:this.sid,ts:Date.now(),requestId:this.requestId,seq:this.requestId,allocate:!0,clientRequest:{}};v.sdkVersion==="4.21.0"&&(v.sdkVersion="0.0.1");let w=null,C=null;switch(a){case io.SetSdkProfile:return v.clientRequest={command:"SetSdkProfile",type:"multi_channel"},v;case io.SetSourceChannel:if(C=o&&o.getSrcChannelMediaInfo(),!C)throw new De(ce.UNEXPECTED_ERROR,"can not find source config");return v.clientRequest={command:"SetSourceChannel",uid:"0",channelName:C.channelName,token:C.token||this.joinInfo.appId},v;case io.SetSourceUserId:if(C=o&&o.getSrcChannelMediaInfo(),!C)throw new De(ce.UNEXPECTED_ERROR,"can not find source config");return v.clientRequest={command:"SetSourceUserId",uid:C.uid+""},v;case io.SetDestChannel:if(w=o&&o.getDestChannelMediaInfo(),!w)throw new De(ce.UNEXPECTED_ERROR,"can not find dest config");return w.forEach(R=>{c.push(R.channelName),f.push(R.uid+""),m.push(R.token||this.joinInfo.appId)}),v.clientRequest={command:"SetDestChannel",channelName:c,uid:f,token:m},v;case io.StartPacketTransfer:return v.clientRequest={command:"StartPacketTransfer"},v;case io.Reconnect:return v.clientRequest={command:"Reconnect"},v;case io.StopPacketTransfer:return v.clientRequest={command:"StopPacketTransfer"},v;case io.UpdateDestChannel:if(w=o&&o.getDestChannelMediaInfo(),!w)throw new De(ce.UNEXPECTED_ERROR,"can not find dest config");return w.forEach(R=>{c.push(R.channelName),f.push(R.uid+""),m.push(R.token||this.joinInfo.appId)}),v.clientRequest={command:"UpdateDestChannel",channelName:c,uid:f,token:m},v;case io.SetVideoProfile:v.clientRequest={command:"SetVideoProfile",width:this._resolution.width,height:this._resolution.height}}return v}}function kD(r){var a={},o=!1;function c(f,m){return o=!0,{done:!1,value:new EW(m=new wW(function(v){v(r[f](m))}),1)}}return a[OS!==void 0&&Ite||"@@iterator"]=function(){return this},a.next=function(f){return o?(o=!1,f):c("next",f)},typeof r.throw=="function"&&(a.throw=function(f){if(o)throw o=!1,f;return c("throw",f)}),typeof r.return=="function"&&(a.return=function(f){return o?(o=!1,f):c("return",f)}),a}var lle=l(yoe);function cle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function dle(r){for(var a=1;aa.rtpMap&&a.rtpMap.encodingName.toLowerCase()||"").filter(a=>{var o;return Tt(o=Object.keys(VS)).call(o,a)}))]}constructor(a,o){super(a,o),X(this,"store",void 0),X(this,"peerConnection",void 0),X(this,"remoteSDP",void 0),X(this,"initialOffer",void 0),X(this,"statsFilter",void 0),X(this,"useRTX",!1),X(this,"localCapabilities",void 0),X(this,"localCandidateCount",0),X(this,"allCandidatesReceived",!1),X(this,"establishPromise",void 0),X(this,"mutex",new Ts("P2PConnection-mutex")),this.store=o,this.peerConnection=new RTCPeerConnection(AI.resolvePCConfiguration(a),{optional:[{googDscp:!0}]}),this.statsFilter=ID(this.peerConnection,ve("STATS_UPDATE_INTERVAL"),void 0,Pi()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,this.establishPromise=this.establish()}async establish(){try{let a=await this.peerConnection.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});if(!a.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let o=Ah(a.sdp),c=Q3(a.sdp,{filterRTX:!this.useRTX,filterVideoFec:ve("FILTER_VIDEO_FEC"),filterAudioFec:ve("FILTER_AUDIO_FEC"),filterAudioCodec:["opus"]});return this.localCapabilities=c,this.initialOffer=a,hle(hle({},o),{},{rtpCapabilities:{send:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},recv:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},sendrecv:c},offerSDP:a.sdp})}catch(a){throw new Ke(ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,a.toString())}}async connect(a,o,c,f,m,v){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.remoteSDP=new class{constructor(C){X(this,"sessionDesc",void 0),X(this,"localCapabilities",void 0),X(this,"rtpCapabilities",void 0),X(this,"candidates",void 0),X(this,"iceParameters",void 0),X(this,"dtlsParameters",void 0),X(this,"setup",void 0),X(this,"currentMidIndex",void 0),X(this,"cname",void 0),C=zi(C);let{remoteIceParameters:R,remoteDtlsParameters:x,candidates:L,remoteRTPCapabilities:U,remoteSetup:F,localCapabilities:Z,sdkCodec:W,cname:K}=C,oe=rr.parse(`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE audio video +a=msid-semantic: WMS +a=ice-lite +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendrecv +a=rtcp-mux +a=rtcp-rsize +a=mid:audio +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendrecv +a=rtcp-mux +a=rtcp-rsize +a=mid:video +`);this.rtpCapabilities=U,this.candidates=L,this.iceParameters=R,this.dtlsParameters=x,this.setup=F,this.localCapabilities=Z,this.cname=K;for(let ue=0;ueke.payloadType.toString(10));let Oe=U.videoCodecs.filter(ke=>{var He,lt;return(He=ke.rtpMap)===null||He===void 0?void 0:Tt(lt=He.encodingName.toLowerCase()).call(lt,W)});Oe.length===0&&(Oe=U.videoCodecs),xe.attributes.payloads=Oe,xe.attributes.extmaps=U.videoExtensions}xe.media.mediaType==="audio"&&(xe.media.fmts=U.audioCodecs.map(Oe=>Oe.payloadType.toString(10)),xe.attributes.payloads=U.audioCodecs,xe.attributes.extmaps=U.audioExtensions),oe.mediaDescriptions[ue]=this.mungMediaDesc(xe)}this.sessionDesc=oe,this.currentMidIndex=oe.mediaDescriptions.length-1}toString(){return rr.print(this.sessionDesc)}send(C,R,x){let{ssrcs:L,ssrcGroups:U}=Dc(R,this.cname),F=this.sessionDesc.mediaDescriptions.find(K=>C===Wt.VIDEO?K.media.mediaType==="video":K.media.mediaType==="audio"),Z=L[0].attributes.label,W=L[0].attributes.mslabel;return F.attributes.ssrcs=F.attributes.ssrcs.concat(L),F.attributes.ssrcGroups=F.attributes.ssrcGroups.concat(U),{id:Z,mslabel:W}}batchSend(C){return C.map(R=>{let{kind:x,ssrcMsg:L}=R;return this.send(x,L,void 0)})}stopSending(C){this.sessionDesc.mediaDescriptions.forEach(R=>{let x=[],L=[],U=[];R.attributes.ssrcs.forEach(F=>{Tt(C).call(C,F.attributes.label||"")?U.push(F):x.push(F)}),R.attributes.ssrcGroups.forEach(F=>{var Z;Tt(Z=U.map(W=>W.ssrcId)).call(Z,F.ssrcIds[0])||L.push(F)}),R.attributes.ssrcs=x,R.attributes.ssrcGroups=L})}mute(C){let R=this.sessionDesc.mediaDescriptions.find(x=>x.attributes.mid===C);if(!R)throw new Error("mediaDescription not found with ".concat(C," in remote SDP when calling RemoteSDP.mute."));R.attributes.direction="inactive"}unmute(C){let R=this.sessionDesc.mediaDescriptions.find(x=>x.attributes.mid===C);if(!R)throw new Error("mediaDescription not found with ".concat(C," in remote SDP when calling RemoteSDP.unmute."));R.attributes.direction="sendonly"}receive(C,R,x){C.forEach((L,U)=>{let F=L._mediaStreamTrack,Z=this.sessionDesc.mediaDescriptions.findIndex(K=>K.attributes.mid===F.kind),W=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[Z],L);this.sessionDesc.mediaDescriptions[Z]=W})}stopReceiving(C){}updateCandidates(C){C===Pa.TCP?this.candidates.forEach(R=>{this.candidates.findIndex(x=>x.transport==="tcp"&&x.connectionAddress===R.connectionAddress&&x.port===R.port)===-1&&this.candidates.push(dle(dle({},R),{},{foundation:"tcpcandidate",priority:Number(R.priority)-1+"",transport:"tcp",port:Number(R.port)+90+""}))}):this.candidates=this.candidates.filter(R=>R.transport!=="tcp");for(let R of this.sessionDesc.mediaDescriptions)R.attributes.candidates=this.candidates}restartICE(C){C=zi(C),this.iceParameters=C,this.sessionDesc.mediaDescriptions.forEach(R=>{R.attributes.iceUfrag=C.iceUfrag,R.attributes.icePwd=C.icePwd})}predictReceivingMids(C){let R=[];for(let x=0;xL.attributes.mid===C);if(x!==-1){let L=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[x],R);this.sessionDesc.mediaDescriptions[x]=L}}bumpMid(C){this.currentMidIndex+=C}updateTrackLabel(C,R,x){let L=this.sessionDesc.mediaDescriptions.find(F=>C===Wt.VIDEO?F.attributes.mid==="video":F.attributes.mid==="audio");if(L){let F=L.attributes.ssrcs.find(Z=>Z.attributes.label===R);var U;F&&(F.attributes.label=x,(U=F.attributes.msid)===null||U===void 0||U.replace(R,x))}}mungMediaDesc(C){let R=zi(C);return ND(R),function(x){let L=x.attributes.extmaps.find(U=>U.extensionName==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01");L&&x.attributes.extmaps.splice(x.attributes.extmaps.indexOf(L),1),x.attributes.payloads.forEach(U=>{let F=U.rtcpFeedbacks.findIndex(Z=>Z.type==="transport-cc");F!==-1&&U.rtcpFeedbacks.splice(F,1)})}(R),R}getSSRC(C){for(let R of this.sessionDesc.mediaDescriptions)for(let x of R.attributes.ssrcs)if(x.attributes.label===C)return[x]}}({remoteIceParameters:a,remoteDtlsParameters:o,candidates:c,remoteRTPCapabilities:f.send,remoteSetup:m,localCapabilities:this.localCapabilities,sdkCodec:this.store.codec,cname:v});let w=this.remoteSDP.toString();await this.peerConnection.setLocalDescription(this.initialOffer),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(w){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(w.toString()))}}async updateRemoteRTPCapabilities(a,o){throw new Ke(ce.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}send(a,o){var c=this;return Ul(function*(){let f=yield Dn(c.mutex.lock());try{if(!c.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let m=a.map(U=>c.peerConnection.addTrack(U._mediaStreamTrack)),v=yield Dn(c.peerConnection.createOffer()),w=rr.parse(v.sdp),C=a.map(U=>{let F=U._mediaStreamTrack,Z=w.mediaDescriptions.find(W=>W.attributes.mid===F.kind);if(!Z)throw new Error("Cannot extract ssrc from mediaDescription.");return function(W,K,oe){let ue=W.attributes.ssrcs.filter(Oe=>Oe.attributes.label===K),xe=W.attributes.ssrcGroups;if(ue.length===0)throw new Error("Cannot extract ssrc from plan-b SDP.");if(xe&&ue.length>1){let Oe=xe.find(ke=>ke.ssrcIds.indexOf(ue[0].ssrcId)!==-1);return Oe?[{ssrcId:Oe.ssrcIds[0],rtx:oe?Oe.ssrcIds[1]:void 0}]:[{ssrcId:ue[0].ssrcId}]}return[{ssrcId:ue[0].ssrcId}]}(Z,F.id,c.useRTX)}),R;try{R=yield C}catch(U){throw m.forEach(F=>{gs()&&F.replaceTrack(null),c.peerConnection.removeTrack(F)}),U}let x=c.mungSendOfferSDP(v.sdp,a);c.remoteSDP.receive(a,o,R);let L=c.remoteSDP.toString();return yield Dn(c.peerConnection.setLocalDescription({type:"offer",sdp:x})),yield Dn(c.applySendEncodings(m,a)),yield Dn(c.peerConnection.setRemoteDescription({type:"answer",sdp:L})),a.map((U,F)=>{let Z=U._mediaStreamTrack.id;return{localSSRC:C[F],id:Z}})}catch(m){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(m.toString()))}finally{f()}})()}async stopSending(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let o=this.peerConnection.getSenders().filter(m=>{var v;return a.indexOf(((v=m.track)===null||v===void 0?void 0:v.id)||"")!==-1});if(o.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");o.map(m=>{gs()&&m.replaceTrack(null),this.peerConnection.removeTrack(m)});let c=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(c),this.remoteSDP.stopReceiving(a);let f=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:f})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(o.toString()))}}async receive(a,o,c,f){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(a," before remoteSDP created."));let{id:m,mslabel:v}=this.remoteSDP.send(a,o,f),w=new Ct((x,L)=>{let U=setTimeout(()=>{L(new Error("Cannot receive track, id: ".concat(m)))},1e4),F=Z=>{let W=ni();if((W.name==="Safari"&&Number(W.version)===11||ra())&&Z.track.id!==m&&Z.streams[0].id===v){var K;let oe=Z.streams[0].getTracks()[0];return(K=this.remoteSDP)===null||K===void 0||K.updateTrackLabel(a,m,Z.track.id),this.peerConnection.removeEventListener("track",F),clearTimeout(U),void x(oe)}if(Z.track.id===m)return this.peerConnection.removeEventListener("track",F),clearTimeout(U),void x(Z.track)};this.peerConnection.addEventListener("track",F)}),C=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:C});let R=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(R),{track:await w,id:m}}catch(m){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async stopReceiving(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(a);let o=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:o});let c=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(c)}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(o.toString()))}}async muteRemote(a){}async unmuteRemote(a){}async muteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let o=this.peerConnection.getSenders().filter(c=>{var f;return a.indexOf(((f=c.track)===null||f===void 0?void 0:f.id)||"")!==-1});if(o.length!==a.length)throw new Error("sender' length doesn't match mids' length.");o.map(c=>{if(gs()&&c.track)c.track.enabled=!1;else{let f=c.getParameters();f.encodings.forEach(m=>m.active=!1),c.setParameters(f)}})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(o.toString()))}}async unmuteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let o=this.peerConnection.getSenders().filter(m=>{var v;return a.indexOf(((v=m.track)===null||v===void 0?void 0:v.id)||"")!==-1});if(o.length!==a.length)throw new Error("Senders' length doesn't match mids' length.");o.map(async m=>{if(gs()&&m.track)m.track.enabled=!0;else{let v=m.getParameters();v.encodings.forEach(w=>w.active=!0),await m.setParameters(v)}});let c=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(c);let f=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:f})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(o.toString()))}}restartICE(a){var o=this;return Ul(function*(){let c=yield Dn(o.mutex.lock("From P2PConnection.restartICE"));try{if(!o.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");if(Jn().supportPCSetConfiguration){let C=o.peerConnection.getConfiguration(),R=a===Pa.RELAY?"relay":"all";C.iceTransportPolicy!==R&&(z.debug("[".concat(o.store.clientId,"] restartICE change iceTransportPolicy from [").concat(C.iceTransportPolicy,"] to [").concat(R,"]")),C.iceTransportPolicy=R,o.peerConnection.setConfiguration(C))}else if(a===Pa.RELAY)return;a!==Pa.RELAY&&o.remoteSDP.updateCandidates(a);let f=yield Dn(o.peerConnection.createOffer({iceRestart:!0}));if(!f.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let m=Ah(f.sdp),{remoteIceParameters:v}=yield m.iceParameters;o.remoteSDP.restartICE(v);let w=o.remoteSDP.toString();yield Dn(o.peerConnection.setLocalDescription(f)),yield Dn(o.peerConnection.setRemoteDescription({type:"answer",sdp:w}))}catch(f){z.warning("[".concat(o.store.clientId,"] restart ICE failed, abort operation"),f)}finally{c()}})()}close(){var a;this.peerConnection.close(),(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,"closed"),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(a){return this.statsFilter.getVideoIsReady(a)}async updateEncoderConfig(a,o){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let c=await this.peerConnection.createOffer(),f=this.mungSendOfferSDP(c.sdp,[o]);this.remoteSDP.updateRecvMedia(o._mediaStreamTrack.kind,o);let m=this.remoteSDP.toString();await this.peerConnection.setLocalDescription({type:"offer",sdp:f}),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(c){throw new Ke(ce.EXCHANGE_SDP_FAILED,c.toString())}}async updateSendParameters(a,o){let c=this.peerConnection.getSenders().filter(f=>{var m;return((m=f.track)===null||m===void 0?void 0:m.id)===a});c.length===1&&await this.applySendEncodings(c,[o])}setStatsRemoteVideoIsReady(a,o){this.statsFilter.setVideoIsReady2(a,o)}async replaceTrack(a,o){let c=this.peerConnection.getSenders().find(f=>{var m;return((m=f.track)===null||m===void 0?void 0:m.id)===o});c&&await c.replaceTrack(a._mediaStreamTrack)}createDataChannels(a,o){throw new Ke(ce.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}stopDataChannels(a){throw new Ke(ce.NOT_SUPPORTED,"Planb mode does not support stopDataChannels.")}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var a;(a=this.onICEConnectionStateChange)===null||a===void 0||a.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var a;(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidate=a=>{a.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,z.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,z.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},ve("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(a){let o={iceServers:[],sdpSemantics:"plan-b"};return a.iceServers?o.iceServers=a.iceServers:a.turnServer&&a.turnServer.mode!=="off"&&(US(a.turnServer.servers)?o.iceServers=a.turnServer.servers:(o.iceServers&&o.iceServers.push(...AI.turnServerConfigToIceServers(a.turnServer.servers)),ve("USE_TURN_SERVER_OF_GATEWAY")&&o.iceServers&&a.turnServer.serversFromGateway&&o.iceServers.push(...AI.turnServerConfigToIceServers(a.turnServer.serversFromGateway)),a.turnServer.servers.concat(a.turnServer.serversFromGateway||[]).forEach(c=>{c.forceturn&&(o.iceTransportPolicy="relay")}))),o}static turnServerConfigToIceServers(a){let o=[];return a.forEach(c=>{c.security?c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turns:".concat(c.turnServerURL,":").concat(c.tcpport,"?transport=tcp")}):(c.udpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.udpport,"?transport=udp")}),c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.tcpport,"?transport=tcp")}))}),o}async updateRtpSenderEncodings(a,o){var c;if(o||(o=this.peerConnection.getSenders().find(R=>{var x;return((x=R.track)===null||x===void 0?void 0:x.id)===a._mediaStreamTrack.id})),!o)return z.warn("[".concat(a.getTrackId(),"] no rtpSender found}"));if(!Jn().supportSetRtpSenderParameters)return z.warn("Browser not support set rtp-sender parameters");let f={},m={};if(a instanceof ki)switch(a._optimizationMode){case"motion":f.degradationPreference="maintain-framerate";break;case"detail":f.degradationPreference="maintain-resolution";break;default:f.degradationPreference="balanced"}if(ve("DSCP_TYPE")&&C0()){var v;let R=ve("DSCP_TYPE");Tt(v=["very-low","low","medium","high"]).call(v,R)&&(m.networkPriority=R)}let w=o.getParameters(),C=(c=w.encodings)===null||c===void 0?void 0:c[0];C&&Object.assign(C,m),Object.assign(w,f),z.debug("[".concat(a.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(w.encodings))),await o.setParameters(w)}async applySendEncodings(a,o){try{if(!Jn().supportSetRtpSenderParameters||a.length!==o.length)return;for(let c=0;c{let v=f._mediaStreamTrack,w=c.mediaDescriptions.find(C=>C.attributes.mid===v.kind);w&&F0(w,f)}),rr.print(c)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=a=>{var o;(o=this.onFirstAudioReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoReceived=a=>{var o;(o=this.onFirstVideoReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstAudioDecoded=a=>{var o;(o=this.onFirstAudioDecoded)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoDecoded=(a,o,c)=>{var f;(f=this.onFirstVideoDecoded)===null||f===void 0||f.call(this,a,o,c)},this.statsFilter.onSelectedLocalCandidateChanged=(a,o)=>{var c;(c=this.onSelectedLocalCandidateChanged)===null||c===void 0||c.call(this,a,o)},this.statsFilter.onSelectedRemoteCandidateChanged=(a,o)=>{var c;(c=this.onSelectedRemoteCandidateChanged)===null||c===void 0||c.call(this,a,o)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0}async batchReceive(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");let o=this.remoteSDP.batchSend(a).map((m,v)=>{let{id:w,mslabel:C}=m,{kind:R}=a[v];return new Ct((x,L)=>{let U=setTimeout(()=>{L(new Error("Cannot receive track, id: ".concat(w)))},1e4),F=Z=>{let W=ni();if(W.name==="Safari"&&Number(W.version)===11&&Z.track.id!==w&&Z.streams[0].id===C){var K;let oe=Z.streams[0].getTracks()[0];return(K=this.remoteSDP)===null||K===void 0||K.updateTrackLabel(R,w,Z.track.id),this.peerConnection.removeEventListener("track",F),clearTimeout(U),void x({track:oe,id:w})}if(Z.track.id===w)return this.peerConnection.removeEventListener("track",F),clearTimeout(U),void x({track:Z.track,id:w})};this.peerConnection.addEventListener("track",F)})}),c=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});let f=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(f),await Ct.all(o)}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(o.toString()))}}async getRemoteSSRC(a){if(!this.remoteSDP)return;let o=this.remoteSDP.getSSRC(a);return o==null?void 0:o[0].ssrcId}setConfiguration(a){if(Jn().supportPCSetConfiguration){let o=AI.resolvePCConfiguration(a);this.peerConnection.setConfiguration(o)}}},vt(Mi.prototype,"connect",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"connect"),Mi.prototype),vt(Mi.prototype,"stopSending",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"stopSending"),Mi.prototype),vt(Mi.prototype,"receive",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"receive"),Mi.prototype),vt(Mi.prototype,"stopReceiving",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"stopReceiving"),Mi.prototype),vt(Mi.prototype,"muteRemote",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"muteRemote"),Mi.prototype),vt(Mi.prototype,"unmuteRemote",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"unmuteRemote"),Mi.prototype),vt(Mi.prototype,"muteLocal",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"muteLocal"),Mi.prototype),vt(Mi.prototype,"unmuteLocal",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"unmuteLocal"),Mi.prototype),vt(Mi.prototype,"close",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"close"),Mi.prototype),vt(Mi.prototype,"updateEncoderConfig",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"updateEncoderConfig"),Mi.prototype),vt(Mi.prototype,"updateSendParameters",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"updateSendParameters"),Mi.prototype),vt(Mi.prototype,"replaceTrack",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"replaceTrack"),Mi.prototype),vt(Mi.prototype,"getRemoteSSRC",[vd],Object.getOwnPropertyDescriptor(Mi.prototype,"getRemoteSSRC"),Mi.prototype),Mi);function vd(r,a,o){let c=r[a];if(typeof c!="function")throw new Error("Cannot use mutex on object property.");return o.value=async function(){let f=this.mutex,m=await f.lock("Locking from P2PConnection.".concat(a));try{for(var v=arguments.length,w=new Array(v),C=0;C=a.length-1&&c===Eb.DOWN)return r;let m=Tm(Tm({},r),{},{scale:c===Eb.DOWN?++f:--f});switch(o){case"maintain-framerate":m=Tm(Tm({},m),a[f].motion);break;case"maintain-resolution":m=Tm(Tm({},m),a[f].detail);break;case"balanced":m=Tm(Tm({},m),a[f].balanced)}return m}function vle(r,a){if(a){let o={overUse:0,underUse:0,adaptationList:yle(a)};jD.set(r,o)}else jD.delete(r)}function yle(r){let a=Tm({},r),{bitrateMax:o,frameRate:c,scaleResolutionDownBy:f,bitrateMin:m}=a,{MIN_FRAME_RATE:v,MAX_THRESHOLD_FRAMERATE:w,MAX_SCALE:C,BITRATE_MIN_THRESHOLD:R,BITRATE_MAX_THRESHOLD:x,BWE_SCALE_UP_THRESHOLD:L,BWE_SCALE_DOWN_THRESHOLD:U,PERF_SCALE_DOWN_THRESHOLD:F,PERF_SCALE_UP_THRESHOLD:Z,BALANCE_BITRATE_FACTOR:W,BALANCE_FRAMERATE_FACTOR:K,BALANCE_RESOLUTION_FACTOR:oe,MOTION_RESOLUTION_FACTOR:ue,MOTION_BITRATE_FACTOR:xe,DETAIL_FRAMERATE_FACTOR:Oe,DETAIL_BITRATE_FACTOR:ke}=KH,He=Math.min(a.frameRate,w),lt=[{scale:0,threshold:{bwe_down:Math.round(Math.pow(U,1)*o),bwe_up:o,fps_down:Math.round(Math.pow(F,1)*He),fps_up:c},balanced:{scaleResolutionDownBy:1,frameRate:c,bitrateMax:o,bitrateMin:m},motion:{scaleResolutionDownBy:1,frameRate:c,bitrateMax:o,bitrateMin:m},detail:{scaleResolutionDownBy:1,frameRate:c,bitrateMax:o,bitrateMin:m}}];for(let ut=1;ut<=C;ut++){let ft={bwe_up:Math.round(Math.pow(L,ut)*o),bwe_down:Math.round(Math.pow(U,ut+1)*o),fps_up:Math.round(Math.pow(Z,ut)*He),fps_down:Math.round(Math.pow(F,ut+1)*He)},zt={scaleResolutionDownBy:f/Math.pow(oe,ut),frameRate:Math.max(Math.round(Math.pow(K,ut)*c),v),bitrateMax:Math.max(Math.round(Math.pow(W,ut)*o),x),bitrateMin:Math.max(Math.round(Math.pow(W,ut)*m),R)},$n={scaleResolutionDownBy:f/Math.pow(ue,ut),frameRate:c,bitrateMax:Math.max(Math.round(Math.pow(xe,ut)*o),x),bitrateMin:Math.max(Math.round(Math.pow(xe,ut)*m),R)},hi={scaleResolutionDownBy:1,frameRate:Math.max(Math.round(Math.pow(Oe,ut)*c),v),bitrateMax:Math.max(Math.round(Math.pow(ke,ut)*o),x),bitrateMin:Math.max(Math.round(Math.pow(ke,ut)*m),R)};lt.push({scale:ut,threshold:ft,balanced:zt,motion:$n,detail:hi})}return lt}function I4e(r,a,o,c,f,m){let v=jD.get(r)||{overUse:0,underUse:0,adaptationList:yle(f)},{adaptationList:w}=v;jD.set(r,v);let{OVERUSE_TIMES_THRESHOLD:C,UNDERUSE_TIMES_THRESHOLD:R}=KH,{scale:x}=c,L,U;return typeof a=="number"&&a>0&&function(F,Z,W,K){if(Z>=W.length)return!1;let{threshold:{fps_down:oe}}=W[Z];return ve("FORCE_AG_HIGH_FRAMERATE")&&K==="maintain-framerate"&&(oe=W[0].threshold.fps_down),FC)||typeof o=="number"&&o>0&&function(F,Z,W){if(Z>=W.length)return!1;let{threshold:{bwe_down:K}}=W[Z];return FC)?(v.overUse=0,v.underUse=0,L=gle(c,w,m,Eb.DOWN),[L,U]):(typeof a=="number"&&a>0&&typeof o=="number"&&o>0&&function(F,Z,W,K){if(Z===0)return;let{threshold:{fps_up:oe}}=W[Z];return ve("FORCE_AG_HIGH_FRAMERATE")&&K==="maintain-framerate"&&(oe=W[1].threshold.fps_up),F>oe}(a,x,w,m)&&function(F,Z,W){if(Z===0)return;let{threshold:{bwe_up:K}}=W[Z];return F>K}(o,x,w)&&(v.underUse++,v.underUse>R&&(v.overUse=0,v.underUse=0,L=gle(c,w,m,Eb.UP),L.scale===0&&(U=MD.NONE))),[L,U])}function _le(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function DW(r){for(var a=1;a=o}(14)&&Ine(17,4)||Ane(14)&&Nne(17,4)))}let UD=new Map;function FD(r){let a=UD.get(r);if(a){let{timer:o,adaptationFunc:c,originConfig:f}=a;window.clearTimeout(o),c(f),UD.delete(r)}vle(r)}var ri;function Ele(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function G0(r){for(var a=1;aa.rtpMap&&a.rtpMap.encodingName.toLowerCase()||"").filter(a=>{var o;return Tt(o=Object.keys(VS)).call(o,a)}))]}constructor(a,o){super(a,o),X(this,"store",void 0),X(this,"peerConnection",void 0),X(this,"id",Di(5,"connection-")),X(this,"remoteSDP",void 0),X(this,"initialOffer",void 0),X(this,"transportEventReceiver",void 0),X(this,"statsFilter",void 0),X(this,"useXR",ve("USE_XR")),X(this,"localCapabilities",void 0),X(this,"remoteCodecs",void 0),X(this,"localCandidateCount",0),X(this,"allCandidatesReceived",!1),X(this,"dataStreamChannelMap",new Map),X(this,"establishPromise",void 0),X(this,"recoveredDataChannelIds",[]),X(this,"currentDataChannelId",1),X(this,"mutex",new Ts("P2PConnection-mutex")),X(this,"qualityLimitationReason",MD.NONE),this.store=o,this.peerConnection=new RTCPeerConnection(II.resolvePCConfiguration(a),{optional:[{googDscp:!0}]}),this.statsFilter=ID(this.peerConnection,ve("STATS_UPDATE_INTERVAL"),void 0,Pi()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,this.establishPromise=this.establish()}async updateRemoteRTPCapabilities(a,o){if(this.remoteCodecs=o,!this.remoteSDP)return void z.debug("[P2PConnection] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(o));if(this.remoteSDP.updateRemoteCodec(a,o,this.store.codec)){let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(c);let m=this.remoteSDP.toString();f==null||f(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}else z.debug("[P2PConnection] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});let a=await this.peerConnection.createOffer();if(!a.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let o=Ah(a.sdp),c=await IW({filterRTX:!ve("USE_PUB_RTX")&&!ve("USE_SUB_RTX"),filterVideoFec:ve("FILTER_VIDEO_FEC"),filterAudioFec:ve("FILTER_AUDIO_FEC"),filterVideoCodec:ve("FILTER_VIDEO_CODEC")},{useXR:this.useXR});return this.localCapabilities=yb(c),this.initialOffer=a,G0(G0({},o),{},{rtpCapabilities:c,offerSDP:a.sdp})}catch(a){throw new Ke(ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,a.toString())}}async connect(a,o,c,f,m,v){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.remoteSDP=new class{get localCapabilities(){return zi(this._localCapabilities)}get rtpCapabilities(){return zi(this._rtpCapabilities)}get candidates(){return zi(this._candidates)}get iceParameters(){return zi(this._iceParameters)}get dtlsParameters(){return zi(this._dtlsParameters)}constructor(F){X(this,"sessionDesc",void 0),X(this,"_localCapabilities",void 0),X(this,"_rtpCapabilities",void 0),X(this,"_candidates",void 0),X(this,"_iceParameters",void 0),X(this,"_dtlsParameters",void 0),X(this,"setup",void 0),X(this,"currentMidIndex",void 0),X(this,"cname",void 0),X(this,"firefoxSsrcMidMap",new Map),F=zi(F);let{remoteIceParameters:Z,remoteDtlsParameters:W,candidates:K,remoteRTPCapabilities:oe,remoteSetup:ue,localCapabilities:xe,cname:Oe}=F,ke=rr.parse(`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 +a=msid-semantic: WMS +a=ice-lite +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +`);this._rtpCapabilities=oe,this._candidates=K,this._iceParameters=Z,this._dtlsParameters=W,this._localCapabilities=xe,this.setup=ue,this.cname=Oe;let He=this.rtpCapabilities.send;for(let lt of ke.mediaDescriptions){if(lt.attributes.iceUfrag=Z.iceUfrag,lt.attributes.icePwd=Z.icePwd,lt.attributes.fingerprints=W.fingerprints,lt.attributes.candidates=K,lt.attributes.setup=ue,lt.media.mediaType==="video"&&(lt.media.fmts=He.videoCodecs.map(ut=>ut.payloadType.toString(10)),lt.attributes.payloads=He.videoCodecs,lt.attributes.extmaps=He.videoExtensions,ve("PRELOAD_MEDIA_COUNT")>0)){let{ssrcs:ut,ssrcGroups:ft}=Dc([{ssrcId:ple,rtx:ve("USE_SUB_RTX")?40001:void 0}],this.cname);lt.attributes.ssrcs=ut,lt.attributes.ssrcGroups=ft}if(lt.media.mediaType==="audio"&&(lt.media.fmts=He.audioCodecs.map(ut=>ut.payloadType.toString(10)),lt.attributes.payloads=He.audioCodecs,lt.attributes.extmaps=He.audioExtensions,Ih(lt),ve("PRELOAD_MEDIA_COUNT")>0)){let{ssrcs:ut,ssrcGroups:ft}=Dc([{ssrcId:2e4}],this.cname);lt.attributes.ssrcs=ut,lt.attributes.ssrcGroups=ft}}this.sessionDesc=ke,this.currentMidIndex=ke.mediaDescriptions.length-1}preloadRemoteMedia(){let F=ve("PRELOAD_MEDIA_COUNT");this.rtpCapabilities;let Z=this.candidates,W=this.dtlsParameters,K=this.iceParameters,oe=this.rtpCapabilities.send;for(let ue=1;ueft.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:K.iceUfrag,icePwd:K.icePwd,unrecognized:[],candidates:Z,extmaps:oe.videoExtensions,fingerprints:W.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:lt,ssrcGroups:ut,rtcpFeedbackWildcards:[],payloads:oe.videoCodecs,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(2*ue)}}),this.sessionDesc.mediaDescriptions.push({media:{mediaType:"audio",port:tI,protos:["UDP","TLS","RTP","SAVPF"],fmts:oe.audioCodecs.map(ft=>ft.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:K.iceUfrag,icePwd:K.icePwd,unrecognized:[],candidates:Z,extmaps:oe.audioExtensions,fingerprints:W.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:ke,ssrcGroups:He,rtcpFeedbackWildcards:[],payloads:oe.audioCodecs,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(2*ue+1)}}),this.currentMidIndex+=2}this.updateBundleMids()}toString(){return rr.print(this.sessionDesc)}send(F,Z,W,K){let{ssrcs:oe,ssrcGroups:ue}=Dc(Z,this.cname,ve("SYNC_GROUP")?W:void 0),xe=this.findPreloadMediaDesc(oe);if(xe){if(Pi()&&this.firefoxSsrcMidMap.set(oe[0].ssrcId,xe.attributes.mid),K&&(K.twcc||K.remb)){let Oe=this.sessionDesc.mediaDescriptions.indexOf(xe);return this.sessionDesc.mediaDescriptions[Oe]=this.mungSendMediaDesc(xe,K),{mid:xe.attributes.mid,needExchangeSDP:!0}}return{mid:xe.attributes.mid,needExchangeSDP:!1}}{let Oe=this.findAvailableMediaIndex(F,oe),ke;return Oe===-1||Oe===1&&(gs()||Pne())||Oe===0&&ve("USE_SUB_RTX")||Lne()?(ke=this.createOrRecycleSendMedia(F,oe,ue,"sendonly",K),this.updateBundleMids()):(ke=zi(this.sessionDesc.mediaDescriptions[Oe]),ke.attributes.direction="sendonly",ke.attributes.ssrcs=oe,ke.attributes.ssrcGroups=ue,this.sessionDesc.mediaDescriptions[Oe]=this.mungSendMediaDesc(ke,K)),Pi()&&this.firefoxSsrcMidMap.set(oe[0].ssrcId,ke.attributes.mid),{mid:ke.attributes.mid,needExchangeSDP:!0}}}sendDataChannel(){let{mediaDesc:F,needExchangeSDP:Z}=this.createOrRecycleDataChannel();return this.updateBundleMids(),{mid:F.attributes.mid,needExchangeSDP:Z}}batchSend(F){let Z=F.map(oe=>{let{kind:ue,ssrcMsg:xe,mslabel:Oe}=oe;return this.send(ue,xe,Oe)}),W=[],K=!1;return Z.forEach(oe=>{let{mid:ue,needExchangeSDP:xe}=oe;xe&&(K=!0),W.push(ue)}),{mids:W,needExchangeSDP:K}}stopSending(F){let Z=this.sessionDesc.mediaDescriptions.filter(W=>W.attributes.mid&&F.indexOf(W.attributes.mid)!==-1);if(Z.length!==F.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");Z.forEach(W=>{W.attributes.mid==="0"||Pi()||Lne()?W.attributes.ssrcs=[]:(W.attributes.ssrcs=[],W.attributes.direction="inactive",W.media.port="0")}),this.updateBundleMids()}mute(F){let Z=this.sessionDesc.mediaDescriptions.find(W=>W.attributes.mid===F);if(!Z)throw new Error("mediaDescription not found with ".concat(F," in remote SDP when calling RemoteSDP.mute."));Z.attributes.direction="inactive"}unmute(F){let Z=this.sessionDesc.mediaDescriptions.find(W=>W.attributes.mid===F);if(!Z)throw new Error("mediaDescription not found with ".concat(F," in remote SDP when calling RemoteSDP.unmute."));Z.attributes.direction="sendonly"}muteRemote(F){let Z=this.sessionDesc.mediaDescriptions.filter(W=>Tt(F).call(F,W.attributes.mid||""));if(Z.length!==F.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");Z.forEach(W=>{W.attributes.direction="inactive"})}unmuteRemote(F){let Z=this.sessionDesc.mediaDescriptions.filter(W=>Tt(F).call(F,W.attributes.mid||""));if(Z.length!==F.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");Z.forEach(W=>{W.attributes.direction="recvonly"})}receive(F,Z,W,K){F.forEach((oe,ue)=>{this.createOrRecycleRecvMedia(oe,[],"recvonly",Z,W,K[ue])}),this.updateBundleMids()}stopReceiving(F){let Z=this.sessionDesc.mediaDescriptions.filter(W=>F.indexOf(W.attributes.mid)!==-1);if(Z.length!==F.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");Z.forEach(W=>{W.media.port="0",W.attributes.direction="inactive"}),this.updateBundleMids()}updateCandidates(F){let Z=this._candidates.filter(W=>W.transport==="udp");if(F===Pa.TCP){if(Z.length===0)return;if(ve("TCP_CANDIDATE_ONLY")){let W=this._candidates.filter(K=>K.transport==="tcp");Z.forEach(K=>{W.findIndex(oe=>oe.connectionAddress===K.connectionAddress)===-1&&W.push(H0(H0({},K),{},{foundation:"tcpcandidate",priority:Number(K.priority)-1+"",transport:"tcp",port:Number(K.port)+90+""}))}),this._candidates=W}else{let W=[];Z.forEach(K=>{W.push(H0(H0({},K),{},{foundation:"tcpcandidate",priority:Number(K.priority)-1+"",transport:"tcp",port:Number(K.port)+90+""}))}),this._candidates=[...Z,...W]}}else if(F===Pa.RELAY){if(Z.length!==0)return;{let W=this._candidates.filter(K=>K.transport==="tcp");W.forEach(K=>{Z.push(H0(H0({},K),{},{foundation:"udpcandidate",priority:Number(K.priority)+1+"",transport:"udp",port:Number(K.port)-90+""}))}),this._candidates=[...Z,...W]}}else Z.length===0?(this._candidates.filter(W=>W.transport==="tcp").forEach(W=>{Z.push(H0(H0({},W),{},{foundation:"udpcandidate",priority:Number(W.priority)+1+"",transport:"udp",port:Number(W.port)-90+""}))}),this._candidates=Z):this._candidates=this._candidates.filter(W=>W.transport!=="tcp");for(let W of this.sessionDesc.mediaDescriptions)W.attributes.candidates=this.candidates}restartICE(F){F=zi(F),this._iceParameters=F,this.sessionDesc.mediaDescriptions.forEach(Z=>{Z.attributes.iceUfrag=F.iceUfrag,Z.attributes.icePwd=F.icePwd})}predictReceivingMids(F){let Z=[];for(let W=0;W{let K=W.media.mediaType===F&&W.media.port!=="0"&&(W.attributes.direction==="sendonly"||W.attributes.direction==="sendrecv")&&W.attributes.ssrcs.length===0;if(Pi()){if(K){let oe=this.firefoxSsrcMidMap.get(Z[0].ssrcId);return!(oe||W.attributes.mid!=="0"&&W.attributes.mid!=="1")||!(!oe||oe!==W.attributes.mid)}return!1}return K})}createOrRecycleDataChannel(){for(let W of this.sessionDesc.mediaDescriptions)if(W.media.mediaType==="application")return{mediaDesc:W,needExchangeSDP:!1};this.currentMidIndex+=1;let F="".concat(this.currentMidIndex),Z={media:{mediaType:"application",port:tI,protos:["UDP","DTLS","SCTP"],fmts:["webrtc-datachannel"]},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:[],fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[],rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,mid:"".concat(F),sctpPort:"5000"}};return this.sessionDesc.mediaDescriptions.push(Z),{mediaDesc:Z,needExchangeSDP:!0}}createOrRecycleRecvMedia(F,Z,W,K,oe,ue){let xe=F._mediaStreamTrack.kind,Oe=this.rtpCapabilities.recv,ke=o_(xe,Oe,this.localCapabilities.send,xe===Wt.VIDEO?K:oe),He=xe===Wt.VIDEO?Oe.videoExtensions:Oe.audioExtensions;this.currentMidIndex+=1;let lt="".concat(this.currentMidIndex),ut={media:{mediaType:xe,port:tI,protos:["UDP","TLS","RTP","SAVPF"],fmts:ke.map(zt=>zt.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:He,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:Z,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:ke,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:W,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(lt)}};ut=this.mungRecvMediaDsec(ut,F,ue);let ft=this.findFirstClosedMedia(xe);if(ft){let zt=this.sessionDesc.mediaDescriptions.indexOf(ft);this.sessionDesc.mediaDescriptions[zt]=ut}else this.sessionDesc.mediaDescriptions.push(ut);return ut}updateRemoteCodec(F,Z,W){let K=[...new Set(this._rtpCapabilities.recv.videoCodecs.map(ut=>ut.rtpMap&&ut.rtpMap.encodingName.toLowerCase()||"").filter(ut=>{var ft;return Tt(ft=Object.keys(VS)).call(ft,ut)}))],oe=new Set(Z);if(K.every(ut=>oe.has(ut)))return z.debug("codecs has not changed, no need to updateRemoteCodec, codecs: ".concat(Z)),!1;let ue=this._rtpCapabilities.recv.videoCodecs.filter(ut=>Z.some(ft=>{var zt;return Tt(zt=ut.rtpMap&&ut.rtpMap.encodingName.toLowerCase()||"").call(zt,ft)}));if(ue.length===0)return z.debug("updateRemoteCodec failed, because cannot find matched codec, remoteCapabilities codecs: ".concat(K," codecs: ").concat(Z)),!1;let xe=[...new Set(ue.map(ut=>ut.rtpMap&&ut.rtpMap.encodingName.toLowerCase()||""))],Oe;if(z.debug("updateRemoteCodec, from ".concat(K," to ").concat(xe)),F.length===0)Oe=this.sessionDesc.mediaDescriptions.filter(ut=>ut.media.mediaType==="video"&&ut.attributes.direction==="recvonly");else if(Oe=this.sessionDesc.mediaDescriptions.filter(ut=>ut.attributes.mid&&Tt(F).call(F,ut.attributes.mid)&&ut.attributes.direction==="recvonly"),Oe.length!==F.length)return z.debug("updateRemoteCodec failed, because cannot find mids, mids: ".concat(F,", codecs: ").concat(Z)),!1;if(ve("USE_PUB_RTX")||ve("USE_SUB_RTX")){let ut=NW(ue,this.rtpCapabilities.recv.videoCodecs);ue.push(...ut)}this._rtpCapabilities.recv.videoCodecs=ue;let ke=this.localCapabilities.send,He=this.rtpCapabilities.recv,lt=o_(Wt.VIDEO,He,ke,W);return Oe.forEach(ut=>{let ft=lt.map(zt=>zt.payloadType.toString(10));z.debug("updateRemoteCodec mid: ".concat(ut.attributes.mid,", from ").concat(ut.attributes.payloads," to ").concat(lt)),ut.attributes.payloads=lt,ut.media.fmts=ft}),!0}createOrRecycleSendMedia(F,Z,W,K,oe){let ue=this.rtpCapabilities.send,xe=F===Wt.VIDEO?ue.videoCodecs:ue.audioCodecs,Oe=F===Wt.VIDEO?ue.videoExtensions:ue.audioExtensions;this.currentMidIndex+=1;let ke="".concat(this.currentMidIndex),He={media:{mediaType:F,port:tI,protos:["UDP","TLS","RTP","SAVPF"],fmts:xe.map(ut=>ut.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:Oe,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:Z,ssrcGroups:W,rtcpFeedbackWildcards:[],payloads:xe,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:K,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(ke)}};He=this.mungSendMediaDesc(He,oe);let lt=this.findFirstClosedMedia(F);if(lt){let ut=this.sessionDesc.mediaDescriptions.indexOf(lt);this.sessionDesc.mediaDescriptions[ut]=He}else this.sessionDesc.mediaDescriptions.push(He);return He}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(F=>F.media.port!=="0").map(F=>F.attributes.mid)}mungRecvMediaDsec(F,Z,W){let K=zi(F);return ND(K),F0(K,Z),OD(K,Z),xW(K),vb(K,W,this.localCapabilities.send),K}mungSendMediaDesc(F,Z){let W=zi(F);return vb(W,Z,this.localCapabilities.recv),Ih(W),W}updateRecvMedia(F,Z){let W=this.sessionDesc.mediaDescriptions.findIndex(K=>K.attributes.mid===F);if(W!==-1){let K=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[W],Z);this.sessionDesc.mediaDescriptions[W]=K}}bumpMid(F){this.currentMidIndex+=F}findFirstClosedMedia(F){return this.sessionDesc.mediaDescriptions.find(Z=>Pi()?Z.media.port==="0"&&Z.media.mediaType===F:Z.media.port==="0")}findPreloadMediaDesc(F){return this.sessionDesc.mediaDescriptions.find(Z=>{var W;return((W=Z.attributes)===null||W===void 0||(W=W.ssrcs[0])===null||W===void 0?void 0:W.ssrcId)===F[0].ssrcId})}getSSRC(F){var Z;return(Z=this.sessionDesc.mediaDescriptions.find(W=>W.attributes.mid===F))===null||Z===void 0?void 0:Z.attributes.ssrcs}}({remoteIceParameters:a,remoteDtlsParameters:o,candidates:c,remoteRTPCapabilities:f,remoteSetup:m,localCapabilities:this.localCapabilities,cname:v}),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);let w=this.remoteSDP.toString(),C=rr.parse(this.initialOffer.sdp),R=C.mediaDescriptions.find(F=>F.media.mediaType==="audio");R&&Ih(R),this.useXR&&PD(C);let x=rr.print(C),L=this.logSDPExchange(x||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:x}),L==null||L(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w});let U=this.peerConnection.getTransceivers()[0];if(U!=null&&U.receiver&&this.tryBindTransportEvents(U.receiver),ve("PRELOAD_MEDIA_COUNT")>0){this.remoteSDP.preloadRemoteMedia();let F=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:F});let Z=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(Z)}}catch(w){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(w.toString()))}}send(a,o,c){var f=this;return Ul(function*(){let m=yield Dn(f.mutex.lock("From P2PConnection.send"));try{if(!f.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let v=[];a.forEach(W=>{let K=f.peerConnection.addTransceiver(W._mediaStreamTrack,{direction:"sendonly"});v.push(K),W._updateRtpTransceiver(K)}),Pi()&&ve("SIMULCAST")===!0&&(yield Dn(f.applySimulcastForFirefox(v,a)));let w=yield Dn(f.peerConnection.createOffer()),C=f.remoteSDP.predictReceivingMids(a.length),R=f.mungSendOfferSDP(w.sdp,a,C),x=rr.parse(R),L=C.map(W=>{let K=x.mediaDescriptions.find(oe=>oe.attributes.mid===W);if(!K)throw new Error("Cannot extract ssrc from mediaDescription.");return RW(K,ve("USE_PUB_RTX"))}),U;try{U=yield L}catch(W){U=[],f.remoteSDP.receive(a,o,c,U);let K=f.remoteSDP.toString();throw yield Dn(f.peerConnection.setLocalDescription({type:"offer",sdp:R})),yield Dn(f.peerConnection.setRemoteDescription({type:"answer",sdp:K})),yield Dn(f.stopSending(C,!0)),W}f.remoteSDP.receive(a,o,c,U);let F=f.remoteSDP.toString(),Z=f.logSDPExchange(R,"offer","local","send");return yield Dn(f.peerConnection.setLocalDescription({type:"offer",sdp:R})),yield Dn(f.applySimulcastEncodings(v,a)),yield Dn(f.applySendEncodings(v,a)),Z==null||Z(F),yield Dn(f.peerConnection.setRemoteDescription({type:"answer",sdp:F})),v.map((W,K)=>{let oe=C[K];return{localSSRC:L[K],id:oe,transceiver:W}})}catch(v){throw v instanceof Ke?v:new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(v.toString()))}finally{m()}})()}async createDataChannels(a,o){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.createDataChannels before remote SDP created");let c=this.dataStreamChannelMap.get(a);if(c&&c.readyState==="open")z.debug("[P2PConnection] Channels are already available and can be reused directly.");else{let m=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof m!="number")throw new Error("create DataChannel error, because cannot get dc id");c=this.peerConnection.createDataChannel("datastream-channel",{id:m,negotiated:!0,ordered:!1,maxRetransmits:ve("DATASTREAM_MAX_RETRANSMITS")}),c.binaryType="arraybuffer",this.dataStreamChannelMap.set(a,c)}o.forEach(m=>{m._updateOriginDataChannel(c)});let{needExchangeSDP:f}=this.remoteSDP.sendDataChannel();if(f){let m=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:m});let v=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(v),z.debug("[P2PConnection] createDataChannels by exchanging SDP.")}else z.debug("[P2PConnection] createDataChannels no need to exchange SDP.");return}catch(c){throw c instanceof Ke?c:new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.createDataChannels failed; ".concat(c.toString()))}}async stopDataChannels(a){try{let o=this.dataStreamChannelMap.get(a);return o&&(o.id&&this.recoveredDataChannelIds.push(o.id),o.close()),void this.dataStreamChannelMap.delete(a)}catch(o){throw o instanceof Ke?o:new Ke(ce.DATACHANNEL_FAILED,"P2PConnection.stopDataChannels failed; ".concat(o.toString()))}}async stopSending(a,o){let c=o?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let f=this.peerConnection.getTransceivers().filter(C=>a.indexOf(C.mid)!==-1);if(f.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");f.map(C=>{var R;FD(this.id+C.mid),C.direction="inactive",(R=C.stop)===null||R===void 0||R.call(C)});let m=await this.peerConnection.createOffer(),v=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(a);let w=this.remoteSDP.toString();v==null||v(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(f){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(f.toString()))}finally{c&&c()}}async receive(a,o,c,f){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(a," before remoteSDP created."));let{mid:m,needExchangeSDP:v}=this.remoteSDP.send(a,o,c,f);if(v){let C=this.remoteSDP.toString(),R=this.logSDPExchange(C,"offer","remote","receive");await this.peerConnection.setRemoteDescription({type:"offer",sdp:C});let x=await this.peerConnection.createAnswer(),L=this.mungReceiveAnswerSDP(x.sdp,m,a);R==null||R(L||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:L}),z.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(a," by exchanging SDP."))}else z.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(a," no need to exchange SDP."));let w=this.peerConnection.getTransceivers().find(C=>C.mid===m);if(!w)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,id:m,transceiver:w}}catch(m){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async batchReceive(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");let{mids:o,needExchangeSDP:c}=this.remoteSDP.batchSend(a);if(c){let f=this.remoteSDP.toString(),m=this.logSDPExchange(f,"offer","remote","receive");await this.peerConnection.setRemoteDescription({type:"offer",sdp:f});let v=await this.peerConnection.createAnswer();m==null||m(v.sdp||""),await this.peerConnection.setLocalDescription(v),z.debug("[".concat(this.store.clientId,"] [P2PConnection] batchReceive by exchanging SDP."))}else z.debug("[".concat(this.store.clientId,"] [P2PConnection] batchReceive no need to exchange SDP."));return o.map(f=>{let m=this.peerConnection.getTransceivers().find(v=>v.mid===f);if(!m)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:m.receiver.track,id:f,transceiver:m}})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(o.toString()))}}async stopReceiving(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(a);let o=this.remoteSDP.toString(),c=this.logSDPExchange(o,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:o});let f=await this.peerConnection.createAnswer();c==null||c(f.sdp||""),await this.peerConnection.setLocalDescription(f)}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(o.toString()))}}async muteRemote(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteRemote mid=".concat(a," before remote SDP created."));this.remoteSDP.mute(a);let o=this.remoteSDP.toString(),c=this.logSDPExchange(o,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:o});let f=await this.peerConnection.createAnswer();c==null||c(f.sdp||""),await this.peerConnection.setLocalDescription(f)}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteRemote failed; ".concat(o.toString()))}}async unmuteRemote(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteRemote mid=".concat(a," before remote SDP created."));this.remoteSDP.unmute(a);let o=this.remoteSDP.toString(),c=this.logSDPExchange(o,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:o});let f=await this.peerConnection.createAnswer();c==null||c(f.sdp||""),await this.peerConnection.setLocalDescription(f)}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteRemote failed; ".concat(o.toString()))}}async muteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let o=this.peerConnection.getTransceivers().filter(v=>v.mid&&a.indexOf(v.mid)!==-1);if(o.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length.");o.map(v=>{v.direction="inactive"});let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(c),this.remoteSDP.muteRemote(a);let m=this.remoteSDP.toString();f==null||f(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(o.toString()))}}async unmuteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let o=this.peerConnection.getTransceivers().filter(v=>v.mid&&a.indexOf(v.mid)!==-1);if(o.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length.");o.map(async(v,w)=>{v.direction="sendonly"});let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(c),this.remoteSDP.unmuteRemote(a);let m=this.remoteSDP.toString();f==null||f(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(o){throw new Ke(ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(o.toString()))}}restartICE(a){var o=this;return Ul(function*(){let c=yield Dn(o.mutex.lock("From P2PConnection.restartICE"));try{if(!o.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");if(Jn().supportPCSetConfiguration){let R=o.peerConnection.getConfiguration(),x=a===Pa.RELAY?"relay":"all";R.iceTransportPolicy!==x&&(z.debug("[".concat(o.store.clientId,"] restartICE change iceTransportPolicy from [").concat(R.iceTransportPolicy,"] to [").concat(x,"]")),R.iceTransportPolicy=x,o.peerConnection.setConfiguration(R))}else if(a===Pa.RELAY)return;o.remoteSDP.updateCandidates(a);let f=yield Dn(o.peerConnection.createOffer({iceRestart:!0}));if(!f.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let m=Ah(f.sdp),{remoteIceParameters:v}=yield m.iceParameters;o.remoteSDP.restartICE(v);let w=o.remoteSDP.toString(),C=o.logSDPExchange(f.sdp||"","offer","local","restartICE");o.store.descriptionStart(),yield Dn(o.peerConnection.setLocalDescription(f)),C==null||C(w),yield Dn(o.peerConnection.setRemoteDescription({type:"answer",sdp:w}))}catch(f){z.warning("[".concat(o.store.clientId,"] restart ICE failed, abort operation"),f)}finally{c()}})()}close(){var a;this.peerConnection.getTransceivers().forEach(o=>{FD(this.id+o.mid)}),this.peerConnection.close(),(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return G0(G0({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(a){return this.statsFilter.getVideoIsReady(a)}async updateEncoderConfig(a,o){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let c=await this.peerConnection.createOffer(),f=this.mungSendOfferSDP(c.sdp,[o],[a]);this.remoteSDP.updateRecvMedia(a,o);let m=this.remoteSDP.toString(),v=this.logSDPExchange(f,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:f}),v==null||v(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(c){throw new Ke(ce.EXCHANGE_SDP_FAILED,c.toString())}}async updateSendParameters(a,o){let c=this.peerConnection.getTransceivers().filter(f=>f.mid===a);c.length===1&&(this.isVP8Simulcast(o)?Pi()||await this.applySimulcastEncodings(c,[o]):await this.applySendEncodings(c,[o]))}setStatsRemoteVideoIsReady(a,o){this.statsFilter.setVideoIsReady2(a,o)}async replaceTrack(a,o){let c=this.peerConnection.getTransceivers().find(f=>f.mid===o);c&&await c.sender.replaceTrack(a._mediaStreamTrack)}async getSelectedCandidatePair(){let a=this.peerConnection.getReceivers();if(a.length>0&&a[0].transport&&a[0].transport.iceTransport&&a[0].transport.iceTransport.getSelectedCandidatePair&&a[0].transport.iceTransport.getSelectedCandidatePair()){let o=a[0].transport.iceTransport,{local:c,remote:f}=o.getSelectedCandidatePair();return{local:G0(G0({},Wf),{},{candidateType:c.type,protocol:c.protocol,address:c.address,port:c.port}),remote:G0(G0({},Wf),{},{candidateType:f.type,protocol:f.protocol,address:f.address,port:f.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var a;(a=this.onICEConnectionStateChange)===null||a===void 0||a.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var a;(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidate=a=>{a.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,z.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,z.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},ve("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(a){let o={iceServers:[]};return a.iceServers?o.iceServers=a.iceServers:a.turnServer&&a.turnServer.mode!=="off"&&(US(a.turnServer.servers)?o.iceServers=a.turnServer.servers:(o.iceServers&&o.iceServers.push(...II.turnServerConfigToIceServers(a.turnServer.servers)),ve("USE_TURN_SERVER_OF_GATEWAY")&&o.iceServers&&a.turnServer.serversFromGateway&&o.iceServers.push(...II.turnServerConfigToIceServers(a.turnServer.serversFromGateway)),ve("FORCE_TURN_TCP")?o.iceTransportPolicy="relay":a.turnServer.servers.concat(a.turnServer.serversFromGateway||[]).forEach(c=>{c.forceturn&&(o.iceTransportPolicy="relay")}))),ve("ENABLE_ENCODED_TRANSFORM")&&Jn().supportWebRTCEncodedTransform&&(o.encodedInsertableStreams=!0),o}static turnServerConfigToIceServers(a){let o=[];return a.forEach(c=>{c.security?c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turns:".concat(O0(c.turnServerURL),":").concat(c.tcpport,"?transport=tcp")}):(c.udpport&&!ve("FORCE_TURN_TCP")&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.udpport,"?transport=udp")}),c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.tcpport,"?transport=tcp")}))}),o}tryBindTransportEvents(a){let o=a.transport;if(o){this.transportEventReceiver=a,o.onstatechange=()=>{var f;o!=null&&o.state&&((f=this.onDTLSTransportStateChange)===null||f===void 0||f.call(this,o.state))},o.onerror=f=>{var m;(m=this.onDTLSTransportError)===null||m===void 0||m.call(this,"error"in f?f.error:f)};let c=o.iceTransport;c&&(c.onstatechange=()=>{let f=o==null?void 0:o.iceTransport.state;var m;f&&((m=this.onICETransportStateChange)===null||m===void 0||m.call(this,f))},c.getSelectedCandidatePair&&(c.onselectedcandidatepairchange=()=>{if(c.getSelectedCandidatePair()){let{local:f,remote:m}=c.getSelectedCandidatePair();z.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify({candidateType:f.type,protocol:f.protocol}),", remote ").concat(JSON.stringify({candidateType:m.type,protocol:m.protocol,address:m.address,port:m.port})," )"))}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(a,o){var c,f;if(o||(o=this.peerConnection.getSenders().find(W=>W.track===a._mediaStreamTrack)),!o)return z.warn("[".concat(a.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(a))return z.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Jn().supportSetRtpSenderParameters)return z.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let m={},v={};switch(a._optimizationMode){case"motion":m.degradationPreference="maintain-framerate";break;case"detail":m.degradationPreference="maintain-resolution";break;case"balanced":m.degradationPreference="balanced"}let w=function(W,K){return W.getTransceivers().find(oe=>oe.sender.track===K||oe.receiver.track===K)}(this.peerConnection,a._mediaStreamTrack),C=ZIe(a);if(N4e(a)&&w&&o&&C&&this.getLocalVideoStats&&Tt(c=["vp8","vp9"]).call(c,this.store.codec)){var R;let W=m.degradationPreference||(Tt(R=a._hints).call(R,Hi.CUSTOM_TRACK)?ve("CUSTOM_ADAPTATION_DEFAULT_MODE"):"maintain-framerate");(function(K,oe,ue,xe,Oe,ke){if(FD(K),xe!=="balanced"&&xe!=="maintain-framerate"&&xe!=="maintain-resolution")return;let He=-1;vle(K,oe);let lt=window.setInterval(()=>{let ft=UD.get(K);if(!ve("ENABLE_AG_ADAPTATION")||!ft)return void FD(K);let zt=ke();if(zt.sendPackets>0&&zt.OutgoingAvailableBandwidth>0){if(He===-1)return void(He=Date.now());if(Date.now()-He<1e3)return;let $n=zt.sendFrameRate,hi=zt.OutgoingAvailableBandwidth,[Gi,Ur]=I4e(K,$n,hi,ft.adaptationConfig,oe,xe);Ur&&(ue.qualityLimitationReason=Ur),Gi&&ft.adaptationConfig.scale!==Gi.scale&&(z.debug("[".concat(K,"] applyAdaptation: ").concat(ue.qualityLimitationReason,` + sendFps `).concat($n,", bwe ").concat(hi,", switch from ").concat(ft.adaptationConfig.scale," to ").concat(Gi.scale," ")),ft.adaptationConfig=DW(DW({},ft.adaptationConfig),Gi),Oe(Gi))}},ve("CHECK_LOCAL_STATS_INTERVAL")),ut=DW({},oe);UD.set(K,{timer:lt,adaptationConfig:ut,originConfig:oe,adaptationFunc:Oe}),z.debug("[".concat(K,"] start adaptation, originConfig: ").concat(JSON.stringify(oe),", degradationPreference: ").concat(xe))})(this.id+w.mid,C,this,W,K=>{o&&this.updateAdaptation(o,K)},this.getLocalVideoStats.bind(this))}if(a._encoderConfig){var x;let{bitrateMax:W,frameRate:K,scaleResolutionDownBy:oe}=a._encoderConfig;W&&(v.maxBitrate=1e3*W),(Tt(x=a._hints).call(x,Hi.LOW_STREAM)||a.isUseScaleResolutionDownBy)&&(K&&(v.maxFramerate=rl(K)),oe&&oe>=1&&(v.scaleResolutionDownBy=oe))}let{maxFramerate:L}=ve("ENCODER_CONFIG_LIMIT");if(L&&typeof L=="number"&&(v.maxFramerate=v.maxFramerate?Math.min(v.maxFramerate,L):L),ve("DSCP_TYPE")&&C0()){var U;let W=ve("DSCP_TYPE");Tt(U=["very-low","low","medium","high"]).call(U,W)&&(v.networkPriority=W)}let F=o.getParameters(),Z=(f=F.encodings)===null||f===void 0?void 0:f[0];Pi()&&!Z&&(m.encodings=[v]),Z&&Object.assign(Z,v),Object.assign(F,m),z.debug("[".concat(a.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(F.encodings))),await o.setParameters(F)}async updateAdaptation(a,o){var c,f;if(!a)return z.debug("[updateAdaptation] no rtpSender found");if(!Jn().supportSetRtpSenderParameters)return z.debug("[updateAdaptation] Browser not support set rtp-sender parameters");let m={},{bitrateMax:v,frameRate:w,scaleResolutionDownBy:C}=o;v&&(m.maxBitrate=1e3*v),w&&(m.maxFramerate=rl(w)),C&&C>=1&&Tt(c=["vp8","vp9"]).call(c,this.store.codec)&&(m.scaleResolutionDownBy=C);let R=a.getParameters(),x=(f=R.encodings)===null||f===void 0?void 0:f[0];x&&Object.assign(x,m),Object.assign(R,{});try{await a.setParameters(R),z.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify(R.encodings)))}catch(L){!("transport"in a)||a.transport&&a.transport.state==="connected"?this.peerConnectionState!=="connected"?z.debug("[updateAdaptation] peerConnection not connected}"):z.debug("[updateAdaptation] updateRtpSenderEncodings failed",L):z.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(a,o){try{if(!Jn().supportSetRtpSenderParameters||a.length!==o.length)return;for(let c=0;c{let w=c[v],C=f.mediaDescriptions.find(R=>R.attributes.mid===w);C&&(F0(C,m),AW(C,m,this.store.codec))}),rr.print(f)}mungReceiveAnswerSDP(a,o,c){let f=rr.parse(a),m=f.mediaDescriptions.find(v=>v.attributes.mid===o);return m&&(c===Wt.AUDIO&&m.media.mediaType==="audio"&&Ih(m),this.useXR&&PD(f)),rr.print(f)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=a=>{var o;(o=this.onFirstAudioReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoReceived=a=>{var o;(o=this.onFirstVideoReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstAudioDecoded=a=>{var o;(o=this.onFirstAudioDecoded)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoDecoded=(a,o,c)=>{var f;(f=this.onFirstVideoDecoded)===null||f===void 0||f.call(this,a,o,c)},this.statsFilter.onSelectedLocalCandidateChanged=(a,o)=>{var c;(c=this.onSelectedLocalCandidateChanged)===null||c===void 0||c.call(this,a,o)},this.statsFilter.onSelectedRemoteCandidateChanged=(a,o)=>{var c;(c=this.onSelectedRemoteCandidateChanged)===null||c===void 0||c.call(this,a,o)},this.statsFilter.onFirstVideoDecodedTimeout=a=>{var o;(o=this.onFirstVideoDecodedTimeout)===null||o===void 0||o.call(this,a)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(a,o){if(a.length===o.length)for(let C=0;C200&&(v=x._scalabilityMode)!==null&&v!==void 0&&v.numSpatialLayers&&((w=x._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let L={},U={high:1e3*(x._encoderConfig.bitrateMax-50),medium:5e4};L.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];let F=R.sender.getParameters();await R.sender.setParameters(Object.assign(F,L))}}}async applySimulcastEncodings(a,o){if(!Pi()&&a.length===o.length)for(let c=0;c200&&(m=a._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((v=a._scalabilityMode)===null||v===void 0?void 0:v.numSpatialLayers)>1)}logSDPExchange(a,o,c,f){if(ve("SDP_LOGGING"))return z.upload("[".concat(this.store.clientId,"] exchanging ").concat(c," ").concat(o," SDP during P2PConnection.").concat(f,` +`),a),o==="offer"?m=>{this.logSDPExchange(m,"answer",c==="local"?"remote":"local",f)}:void 0}async getRemoteSSRC(a){if(!this.remoteSDP)return;let o=this.remoteSDP.getSSRC(a);return o==null?void 0:o[0].ssrcId}setConfiguration(a){if(Jn().supportPCSetConfiguration){let o=II.resolvePCConfiguration(a);this.peerConnection.setConfiguration(o)}}},vt(ri.prototype,"updateRemoteRTPCapabilities",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"updateRemoteRTPCapabilities"),ri.prototype),vt(ri.prototype,"connect",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"connect"),ri.prototype),vt(ri.prototype,"createDataChannels",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"createDataChannels"),ri.prototype),vt(ri.prototype,"receive",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"receive"),ri.prototype),vt(ri.prototype,"batchReceive",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"batchReceive"),ri.prototype),vt(ri.prototype,"stopReceiving",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"stopReceiving"),ri.prototype),vt(ri.prototype,"muteRemote",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"muteRemote"),ri.prototype),vt(ri.prototype,"unmuteRemote",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"unmuteRemote"),ri.prototype),vt(ri.prototype,"muteLocal",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"muteLocal"),ri.prototype),vt(ri.prototype,"unmuteLocal",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"unmuteLocal"),ri.prototype),vt(ri.prototype,"close",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"close"),ri.prototype),vt(ri.prototype,"updateEncoderConfig",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"updateEncoderConfig"),ri.prototype),vt(ri.prototype,"updateSendParameters",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"updateSendParameters"),ri.prototype),vt(ri.prototype,"replaceTrack",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"replaceTrack"),ri.prototype),vt(ri.prototype,"updateAdaptation",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"updateAdaptation"),ri.prototype),vt(ri.prototype,"getRemoteSSRC",[sl],Object.getOwnPropertyDescriptor(ri.prototype,"getRemoteSSRC"),ri.prototype),ri);function sl(r,a,o){let c=r[a];if(typeof c!="function")throw new Error("Cannot use mutex on object property.");return o.value=async function(){let f=this.mutex,m=await f.lock("From P2PConnection.".concat(a));try{for(var v=arguments.length,w=new Array(v),C=0;CU.payloadType.toString(10)),L.attributes.payloads=x.videoCodecs,L.attributes.extmaps=x.videoExtensions,ve("PRELOAD_MEDIA_COUNT")>0)){let{ssrcs:U,ssrcGroups:F}=Dc([{ssrcId:MW,rtx:ve("USE_SUB_RTX")?40001:void 0}],this.cname);L.attributes.ssrcs=U,L.attributes.ssrcGroups=F}if(L.media.mediaType==="audio"&&(L.media.fmts=x.audioCodecs.map(U=>U.payloadType.toString(10)),L.attributes.payloads=x.audioCodecs,L.attributes.extmaps=x.audioExtensions,Ih(L),ve("PRELOAD_MEDIA_COUNT")>0)){let{ssrcs:U,ssrcGroups:F}=Dc([{ssrcId:kW}],this.cname);L.attributes.ssrcs=U,L.attributes.ssrcGroups=F}}this.sessionDesc=R,this.currentMidIndex=R.mediaDescriptions.length-1}updateRemoteRTPCapabilities(a){let o=rr.parse(ble);this._rtpCapabilities=a;let c=this.rtpCapabilities.send;for(let f of o.mediaDescriptions){if(f.attributes.iceUfrag=this._iceParameters.iceUfrag,f.attributes.icePwd=this._iceParameters.icePwd,f.attributes.fingerprints=this._dtlsParameters.fingerprints,f.attributes.candidates=this._candidates,f.attributes.setup=this.setup,f.media.mediaType==="application"&&(f.attributes.sctpPort="5000"),f.media.mediaType==="video"&&(f.media.fmts=c.videoCodecs.map(m=>m.payloadType.toString(10)),f.attributes.payloads=c.videoCodecs,f.attributes.extmaps=c.videoExtensions,ve("PRELOAD_MEDIA_COUNT")>0)){let{ssrcs:m,ssrcGroups:v}=Dc([{ssrcId:MW,rtx:ve("USE_SUB_RTX")?40001:void 0}],this.cname);f.attributes.ssrcs=m,f.attributes.ssrcGroups=v}if(f.media.mediaType==="audio"&&(f.media.fmts=c.audioCodecs.map(m=>m.payloadType.toString(10)),f.attributes.payloads=c.audioCodecs,f.attributes.extmaps=c.audioExtensions,ve("PRELOAD_MEDIA_COUNT")>0)){let{ssrcs:m,ssrcGroups:v}=Dc([{ssrcId:kW}],this.cname);f.attributes.ssrcs=m,f.attributes.ssrcGroups=v}}this.sessionDesc=o,this.currentMidIndex=o.mediaDescriptions.length-1}preloadRemoteMedia(a){this.rtpCapabilities;let o=this.candidates,c=this.dtlsParameters,f=this.iceParameters,m=this.rtpCapabilities.send;for(let v=1;vF.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:f.iceUfrag,icePwd:f.icePwd,unrecognized:[],candidates:o,extmaps:m.videoExtensions,fingerprints:c.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:L,ssrcGroups:U,rtcpFeedbackWildcards:[],payloads:m.videoCodecs,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(2*v-1)}}),this.sessionDesc.mediaDescriptions.push({media:{mediaType:"audio",port:BD,protos:["UDP","TLS","RTP","SAVPF"],fmts:m.audioCodecs.map(F=>F.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:f.iceUfrag,icePwd:f.icePwd,unrecognized:[],candidates:o,extmaps:m.audioExtensions,fingerprints:c.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:R,ssrcGroups:x,rtcpFeedbackWildcards:[],payloads:m.audioCodecs,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(2*v)}}),this.currentMidIndex+=2}this.updateBundleMids()}toString(){return rr.print(this.sessionDesc)}send(a,o,c,f){let{ssrcs:m,ssrcGroups:v}=Dc(o,this.cname,ve("SYNC_GROUP")?c:void 0),w=this.findPreloadMediaDesc(m);if(w){if(Pi()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,w.attributes.mid),f&&(f.twcc||f.remb)){let C=this.sessionDesc.mediaDescriptions.indexOf(w);return this.sessionDesc.mediaDescriptions[C]=this.mungSendMediaDesc(w,f),{mid:w.attributes.mid,needExchangeSDP:!0}}return{mid:w.attributes.mid,needExchangeSDP:!1}}{let C=this.findAvailableMediaIndex(a,m),R;return C===-1||gs()||ra()||Pne()||C===0&&ve("USE_SUB_RTX")?(R=this.createOrRecycleSendMedia(a,m,v,"sendonly",f),this.updateBundleMids()):(R=zi(this.sessionDesc.mediaDescriptions[C]),R.attributes.direction="sendonly",R.attributes.ssrcs=m,R.attributes.ssrcGroups=v,this.sessionDesc.mediaDescriptions[C]=this.mungSendMediaDesc(R,f)),Pi()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,R.attributes.mid),{mid:R.attributes.mid,needExchangeSDP:!0}}}batchSend(a){let o=a.map(m=>{let{kind:v,ssrcMsg:w,mslabel:C}=m;return this.send(v,w,C)}),c=[],f=!1;return o.forEach(m=>{let{mid:v,needExchangeSDP:w}=m;w&&(f=!0),c.push(v)}),{mids:c,needExchangeSDP:f}}stopSending(a){let o=this.sessionDesc.mediaDescriptions.filter(c=>c.attributes.mid&&a.indexOf(c.attributes.mid)!==-1);if(o.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");o.forEach(c=>{c.attributes.mid==="0"||Pi()||gs()||ra()?c.attributes.ssrcs=[]:(c.attributes.ssrcs=[],c.attributes.direction="inactive",c.media.port="0")}),this.updateBundleMids()}mute(a){let o=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===a);if(!o)throw new Error("mediaDescription not found with ".concat(a," in remote SDP when calling RemoteSDP.mute."));o.attributes.direction="inactive"}unmute(a){let o=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===a);if(!o)throw new Error("mediaDescription not found with ".concat(a," in remote SDP when calling RemoteSDP.unmute."));o.attributes.direction="sendonly"}muteRemote(a){let o=this.sessionDesc.mediaDescriptions.filter(c=>Tt(a).call(a,c.attributes.mid||""));if(o.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");o.forEach(c=>{c.attributes.direction="inactive"})}unmuteRemote(a){let o=this.sessionDesc.mediaDescriptions.filter(c=>Tt(a).call(a,c.attributes.mid||""));if(o.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");o.forEach(c=>{c.attributes.direction="recvonly"})}receive(a,o,c,f){a.forEach((m,v)=>{this.createOrRecycleRecvMedia(m,[],"recvonly",o,c,f[v])}),this.updateBundleMids()}stopReceiving(a){let o=this.sessionDesc.mediaDescriptions.filter(c=>a.indexOf(c.attributes.mid)!==-1);if(o.length!==a.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");o.forEach(c=>{c.media.port="0",c.attributes.direction="inactive"}),this.updateBundleMids()}updateCandidates(a){a===Pa.TCP?this._candidates.forEach(o=>{this._candidates.findIndex(c=>c.transport==="tcp"&&c.connectionAddress===o.connectionAddress&&c.port===o.port)===-1&&this._candidates.push(Sle(Sle({},o),{},{foundation:"tcpcandidate",priority:Number(o.priority)-1+"",transport:"tcp",port:Number(o.port)+90+""}))}):this._candidates=this._candidates.filter(o=>o.transport!=="tcp");for(let o of this.sessionDesc.mediaDescriptions)o.attributes.candidates=this.candidates}restartICE(a){a=zi(a),this._iceParameters=a,this.sessionDesc.mediaDescriptions.forEach(o=>{o.attributes.iceUfrag=a.iceUfrag,o.attributes.icePwd=a.icePwd})}predictReceivingMids(a){let o=[];for(let c=0;c{let f=c.media.mediaType===a&&c.media.port!=="0"&&(c.attributes.direction==="sendonly"||c.attributes.direction==="sendrecv")&&c.attributes.ssrcs.length===0;if(Pi()){if(f){let m=this.firefoxSsrcMidMap.get(o[0].ssrcId);return!(m||c.attributes.mid!=="0"&&c.attributes.mid!=="1")||!(!m||m!==c.attributes.mid)}return!1}return f})}createOrRecycleRecvMedia(a,o,c,f,m,v){let w=a._mediaStreamTrack.kind,C=this.rtpCapabilities.recv,R=o_(w,C,this.localCapabilities.send,w===Wt.VIDEO?f:m),x=w===Wt.VIDEO?C.videoExtensions:C.audioExtensions;this.currentMidIndex+=1;let L="".concat(this.currentMidIndex),U={media:{mediaType:w,port:BD,protos:["UDP","TLS","RTP","SAVPF"],fmts:R.map(Z=>Z.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:x,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:o,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:R,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:c,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(L)}};U=this.mungRecvMediaDsec(U,a,v);let F=this.findFirstClosedMedia(w);if(F){let Z=this.sessionDesc.mediaDescriptions.indexOf(F);this.sessionDesc.mediaDescriptions[Z]=U}else this.sessionDesc.mediaDescriptions.push(U);return U}updateRemoteCodec(a,o,c){let f=[...new Set(this._rtpCapabilities.recv.videoCodecs.map(U=>U.rtpMap&&U.rtpMap.encodingName.toLowerCase()||"").filter(U=>{var F;return Tt(F=Object.keys(VS)).call(F,U)}))],m=new Set(o);if(f.every(U=>m.has(U)))return z.debug("codecs has not changed, no need to updateRemoteCodec, codecs: ".concat(o)),!1;let v=this._rtpCapabilities.recv.videoCodecs.filter(U=>o.some(F=>{var Z;return Tt(Z=U.rtpMap&&U.rtpMap.encodingName.toLowerCase()||"").call(Z,F)}));if(v.length===0)return z.debug("updateRemoteCodec failed, because cannot find matched codec, remoteCapabilities codecs: ".concat(f," codecs: ").concat(o)),!1;let w=[...new Set(v.map(U=>U.rtpMap&&U.rtpMap.encodingName.toLowerCase()||""))],C;if(z.debug("updateRemoteCodec, from ".concat(f," to ").concat(w)),a.length===0)C=this.sessionDesc.mediaDescriptions.filter(U=>U.media.mediaType==="video"&&U.attributes.direction==="recvonly");else if(C=this.sessionDesc.mediaDescriptions.filter(U=>U.attributes.mid&&Tt(a).call(a,U.attributes.mid)&&U.attributes.direction==="recvonly"),C.length!==a.length)return z.debug("updateRemoteCodec failed, because cannot find mids, mids: ".concat(a,", codecs: ").concat(o)),!1;this._rtpCapabilities.recv.videoCodecs=v;let R=this.localCapabilities.send,x=this.rtpCapabilities.recv,L=o_(Wt.VIDEO,x,R,c);return C.forEach(U=>{let F=L.map(Z=>Z.payloadType.toString(10));z.debug("updateRemoteCodec mid: ".concat(U.attributes.mid,", from ").concat(U.attributes.payloads," to ").concat(L)),U.attributes.payloads=L,U.media.fmts=F}),!0}createOrRecycleSendMedia(a,o,c,f,m){let v=this.rtpCapabilities.send,w=a===Wt.VIDEO?v.videoCodecs:v.audioCodecs,C=a===Wt.VIDEO?v.videoExtensions:v.audioExtensions;this.currentMidIndex+=1;let R="".concat(this.currentMidIndex),x={media:{mediaType:a,port:BD,protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(U=>U.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:C,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:o,ssrcGroups:c,rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:f,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(R)}};x=this.mungSendMediaDesc(x,m);let L=this.findFirstClosedMedia(a);if(L){let U=this.sessionDesc.mediaDescriptions.indexOf(L);this.sessionDesc.mediaDescriptions[U]=x}else this.sessionDesc.mediaDescriptions.push(x);return x}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(a=>a.media.port!=="0").map(a=>a.attributes.mid)}mungRecvMediaDsec(a,o,c){let f=zi(a);return ND(f),F0(f,o),OD(f,o),xW(f),vb(f,c,this.localCapabilities.send),f}mungSendMediaDesc(a,o){let c=zi(a);return vb(c,o,this.localCapabilities.recv),Ih(c),c}updateRecvMedia(a,o){let c=this.sessionDesc.mediaDescriptions.findIndex(f=>f.attributes.mid===a);if(c!==-1){let f=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[c],o);this.sessionDesc.mediaDescriptions[c]=f}}bumpMid(a){this.currentMidIndex+=a}findFirstClosedMedia(a){return this.sessionDesc.mediaDescriptions.find(o=>Pi()?o.media.port==="0"&&o.media.mediaType===a:o.media.port==="0")}findPreloadMediaDesc(a){return this.sessionDesc.mediaDescriptions.find(o=>{var c;return((c=o.attributes)===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId)===a[0].ssrcId})}getSSRC(a){var o;return(o=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===a))===null||o===void 0?void 0:o.attributes.ssrcs}}var si;function Cle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function VD(r){for(var a=1;ao.rtpMap&&o.rtpMap.encodingName.toLowerCase()||"").filter(o=>{var c;return Tt(c=Object.keys(VS)).call(c,o)}))]}constructor(a,o,c){super(a,o),X(this,"store",void 0),X(this,"peerConnection",void 0),X(this,"remoteSDP",void 0),X(this,"initialOffer",void 0),X(this,"transportEventReceiver",void 0),X(this,"statsFilter",void 0),X(this,"useXR",ve("USE_XR")),X(this,"localCapabilities",void 0),X(this,"localCandidateCount",0),X(this,"allCandidatesReceived",!1),X(this,"remoteCodecs",void 0),X(this,"dataStreamChannelMap",new Map),X(this,"establishPromise",void 0),X(this,"mutex",new Ts("NVExtentionsConnection-mutex")),X(this,"rtcMedia",void 0),this.store=o,this.peerConnection=c,this.statsFilter=ID(this.peerConnection,ve("STATS_UPDATE_INTERVAL"),void 0,Pi()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,this.establishPromise=this.establish()}async establish(a){try{let o=await this.peerConnection.createOffer();if(!o.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let c=Ah(o.sdp),f=await IW({filterRTX:!ve("USE_PUB_RTX")&&!ve("USE_SUB_RTX"),filterVideoFec:ve("FILTER_VIDEO_FEC"),filterAudioFec:ve("FILTER_AUDIO_FEC"),filterVideoCodec:ve("FILTER_VIDEO_CODEC")},{useXR:this.useXR});return this.localCapabilities=f,this.initialOffer=o,VD(VD({},c),{},{rtpCapabilities:f,offerSDP:o.sdp})}catch(o){throw new De(ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,o.toString())}}async connect(a,o,c,f,m,v){try{if(!this.initialOffer)throw new Error("Cannot establish NVConnection without initial offer.");this.remoteSDP=new O4e({remoteIceParameters:a,remoteDtlsParameters:o,candidates:c,remoteRTPCapabilities:f,remoteSetup:m,localCapabilities:yb(this.localCapabilities),cname:v});let w=this.remoteSDP.toString(),C=rr.parse(this.initialOffer.sdp),R=C.mediaDescriptions.find(U=>U.media.mediaType==="audio");R&&Ih(R),this.useXR&&PD(C);let x=rr.print(C),L=this.logSDPExchange(x||"","offer","local","connect");await this.peerConnection.setLocalDescription({type:"offer",sdp:x}),L==null||L(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(w){throw new De(ce.EXCHANGE_SDP_FAILED,"NV.connect failed; ".concat(w.toString()))}}async updateRemoteRTPCapabilities(a,o){if(this.remoteCodecs=o,!this.remoteSDP)return void z.debug("[P2PConnection] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(o));if(this.remoteSDP.updateRemoteCodec(a,o,this.store.codec)){let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(c);let m=this.remoteSDP.toString();f==null||f(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}else z.debug("[P2PConnection] updateRemoteRTPCapabilities no need to exchange SDP.")}async updateRemoteConnect(a){var o,c,f,m;(o=this.remoteSDP)===null||o===void 0||o.updateRemoteRTPCapabilities(a),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&((m=this.remoteSDP)===null||m===void 0||m.updateRemoteCodec([],this.remoteCodecs,this.store.codec)),(c=this.remoteSDP)===null||c===void 0||c.preloadRemoteMedia(2);let v=(f=this.remoteSDP)===null||f===void 0?void 0:f.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:v});let w=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(w),z.debug("[NVExtentionsConnection] updateRemoteRTPCapabilities by exchanging SDP.")}send(a,o,c){var f=this;return Ul(function*(){let m=yield Dn(f.mutex.lock("From NVExtentionsConnection.send"));try{if(!f.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.send before remote SDP created");let v=[];a.forEach(W=>{let K=f.peerConnection.addTransceiver(W._mediaStreamTrack,{direction:"sendonly"});v.push(K)}),Pi()&&ve("SIMULCAST")===!0&&(yield Dn(f.applySimulcastForFirefox(v,a)));let w=yield Dn(f.peerConnection.createOffer()),C=f.remoteSDP.predictReceivingMids(a.length),R=f.mungSendOfferSDP(w.sdp,a,C),x=rr.parse(R),L=C.map(W=>{let K=x.mediaDescriptions.find(oe=>oe.attributes.mid===W);if(!K)throw new Error("Cannot extract ssrc from mediaDescription.");return RW(K,ve("USE_PUB_RTX"))}),U;try{U=yield L}catch(W){U=[],f.remoteSDP.receive(a,o,c,U);let K=f.remoteSDP.toString();throw yield Dn(f.peerConnection.setLocalDescription({type:"offer",sdp:R})),yield Dn(f.peerConnection.setRemoteDescription({type:"answer",sdp:K})),yield Dn(f.stopSending(C,!0)),W}f.remoteSDP.receive(a,o,c,U);let F=f.remoteSDP.toString(),Z=f.logSDPExchange(R,"offer","local","send");return yield Dn(f.peerConnection.setLocalDescription({type:"offer",sdp:R})),yield Dn(f.applySimulcastEncodings(v,a)),yield Dn(f.applySendEncodings(v,a)),Z==null||Z(F),yield Dn(f.peerConnection.setRemoteDescription({type:"answer",sdp:F})),v.map((W,K)=>{let oe=C[K];return{localSSRC:L[K],id:oe,transceiver:W}})}catch(v){throw v instanceof De?v:new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.send failed; ".concat(v.toString()))}finally{m()}})()}async stopSending(a,o){let c=o?void 0:await this.mutex.lock("From NVExtentionsConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.stopSending before remote SDP created");let f=this.peerConnection.getTransceivers().filter(C=>a.indexOf(C.mid)!==-1);if(f.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call NVExtentionsConnection.stopSending.");f.map(C=>{var R;C.direction="inactive",(R=C.stop)===null||R===void 0||R.call(C)});let m=await this.peerConnection.createOffer(),v=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(a);let w=this.remoteSDP.toString();v==null||v(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(f){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.stopSending failed; ".concat(f.toString()))}finally{c&&c()}}async createDataChannels(a,o){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.createDataChannels before remote SDP created");let c=this.dataStreamChannelMap.get(a);return c&&c.readyState==="open"?z.debug("[P2PConnection] Channels are already available and can be reused directly."):(c=this.peerConnection.createDataChannel("datastream-channel",{ordered:!1,maxRetransmits:ve("DATASTREAM_MAX_RETRANSMITS")}),c.binaryType="arraybuffer",this.dataStreamChannelMap.set(a,c)),void o.forEach(f=>{f._updateOriginDataChannel(c)})}catch(c){throw c instanceof De?c:new De(ce.DATACHANNEL_FAILED,"NVExtentionsConnection.createDataChannels failed; ".concat(c.toString()))}}async stopDataChannels(a){try{let o=this.dataStreamChannelMap.get(a);return o==null||o.close(),void this.dataStreamChannelMap.delete(a)}catch(o){throw o instanceof De?o:new De(ce.DATACHANNEL_FAILED,"NVExtentionsConnection.stopDataChannels failed; ".concat(o.toString()))}}async receive(a,o,c,f){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.receive ".concat(a," before remoteSDP created."));let{mid:m,needExchangeSDP:v}=this.remoteSDP.send(a,o,c,f);if(v){let C=this.remoteSDP.toString(),R=this.logSDPExchange(C,"offer","remote","receive");await this.peerConnection.setRemoteDescription({type:"offer",sdp:C});let x=await this.peerConnection.createAnswer(),L=this.mungReceiveAnswerSDP(x.sdp,m,a);R==null||R(L||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:L}),z.debug("[NVExtentionsConnection] receive ".concat(a," by exchanging SDP."))}else z.debug("[NVExtentionsConnection] receive ".concat(a," no need to exchange SDP."));let w=this.peerConnection.getTransceivers().find(C=>C.mid===m);if(!w)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,id:m}}catch(m){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.receive failed; ".concat(m.toString()))}}async batchReceive(a){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.batchReceive before remoteSDP created.");let{mids:o,needExchangeSDP:c}=this.remoteSDP.batchSend(a);if(c){let f=this.remoteSDP.toString(),m=this.logSDPExchange(f,"offer","remote","receive");await this.peerConnection.setRemoteDescription({type:"offer",sdp:f});let v=await this.peerConnection.createAnswer();m==null||m(v.sdp||""),await this.peerConnection.setLocalDescription(v),z.debug("[NVExtentionsConnection] batchReceive by exchanging SDP.")}else z.debug("[NVExtentionsConnection] batchReceive no need to exchange SDP.");return o.map(f=>{let m=this.peerConnection.getTransceivers().find(v=>v.mid===f);if(!m)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:m.receiver.track,id:f}})}catch(o){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.receive failed; ".concat(o.toString()))}}async stopReceiving(a){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(a);let o=this.remoteSDP.toString(),c=this.logSDPExchange(o,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:o});let f=await this.peerConnection.createAnswer();c==null||c(f.sdp||""),await this.peerConnection.setLocalDescription(f)}catch(o){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection stopReceiving failed; ".concat(o.toString()))}}async muteRemote(a){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.muteRemote mid=".concat(a," before remote SDP created."));this.remoteSDP.mute(a);let o=this.remoteSDP.toString(),c=this.logSDPExchange(o,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:o});let f=await this.peerConnection.createAnswer();c==null||c(f.sdp||""),await this.peerConnection.setLocalDescription(f)}catch(o){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.muteRemote failed; ".concat(o.toString()))}}async unmuteRemote(a){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.unmuteRemote mid=".concat(a," before remote SDP created."));this.remoteSDP.unmute(a);let o=this.remoteSDP.toString(),c=this.logSDPExchange(o,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:o});let f=await this.peerConnection.createAnswer();c==null||c(f.sdp||""),await this.peerConnection.setLocalDescription(f)}catch(o){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.unmuteRemote failed; ".concat(o.toString()))}}async muteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.muteLocal before remote SDP created.");let o=this.peerConnection.getTransceivers().filter(v=>v.mid&&a.indexOf(v.mid)!==-1);if(o.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length.");o.map(v=>{v.direction="inactive"});let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(c),this.remoteSDP.muteRemote(a);let m=this.remoteSDP.toString();f==null||f(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(o){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.muteLocal failed; ".concat(o.toString()))}}async unmuteLocal(a){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.unmuteLocal before remote SDP created.");let o=this.peerConnection.getTransceivers().filter(v=>v.mid&&a.indexOf(v.mid)!==-1);if(o.length!==a.length)throw new Error("Transceivers' length doesn't match mids' length.");o.map(async(v,w)=>{v.direction="sendonly"});let c=await this.peerConnection.createOffer(),f=this.logSDPExchange(c.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(c),this.remoteSDP.unmuteRemote(a);let m=this.remoteSDP.toString();f==null||f(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(o){throw new De(ce.EXCHANGE_SDP_FAILED,"NVExtentionsConnection.unmuteLocal failed; ".concat(o.toString()))}}restartICE(a){var o=this;return Ul(function*(){let c=yield Dn(o.mutex.lock("From NVExtentionsConnection.restartICE"));try{if(!o.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");if(Jn().supportPCSetConfiguration){let R=o.peerConnection.getConfiguration(),x=a===Pa.RELAY?"relay":"all";R.iceTransportPolicy!==x&&(z.debug("restartICE change iceTransportPolicy from [".concat(R.iceTransportPolicy,"] to [").concat(x,"]")),R.iceTransportPolicy=x,o.peerConnection.setConfiguration(R))}else if(a===Pa.RELAY)return;a!==Pa.RELAY&&o.remoteSDP.updateCandidates(a);let f=yield Dn(o.peerConnection.createOffer({iceRestart:!0}));if(!f.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let m=Ah(f.sdp),{remoteIceParameters:v}=yield m.iceParameters;o.remoteSDP.restartICE(v);let w=o.remoteSDP.toString(),C=o.logSDPExchange(f.sdp||"","offer","local","restartICE");yield Dn(o.peerConnection.setLocalDescription(f)),C==null||C(w),yield Dn(o.peerConnection.setRemoteDescription({type:"answer",sdp:w}))}catch(f){z.warning("restart ICE failed, abort operation",f)}finally{c()}})()}close(){var a;(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,"closed"),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(a){return this.statsFilter.getVideoIsReady(a)}async updateEncoderConfig(a,o){try{if(!this.remoteSDP)throw new Error("Cannot call NVExtentionsConnection.updateEncoderConfig before remote SDP created.");let c=await this.peerConnection.createOffer(),f=this.mungSendOfferSDP(c.sdp,[o],[a]);this.remoteSDP.updateRecvMedia(a,o);let m=this.remoteSDP.toString(),v=this.logSDPExchange(f,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:f}),v==null||v(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(c){throw new De(ce.EXCHANGE_SDP_FAILED,c.toString())}}async updateSendParameters(a,o){let c=this.peerConnection.getTransceivers().filter(f=>f.mid===a);c.length===1&&(this.isVP8Simulcast(o)?Pi()||await this.applySimulcastEncodings(c,[o]):await this.applySendEncodings(c,[o]))}setStatsRemoteVideoIsReady(a,o){this.statsFilter.setVideoIsReady2(a,o)}async replaceTrack(a,o){let c=this.peerConnection.getTransceivers().find(f=>f.mid===o);c&&await c.sender.replaceTrack(a._mediaStreamTrack)}getP2PConnectionParams(){var a;if((a=this.peerConnection.currentLocalDescription)===null||a===void 0||!a.sdp||!this.localCapabilities)throw new Error;return VD(VD({},Ah(this.peerConnection.currentLocalDescription.sdp)),{},{rtpCapabilities:this.localCapabilities})}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var a;(a=this.onICEConnectionStateChange)===null||a===void 0||a.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var a;(a=this.onConnectionStateChange)===null||a===void 0||a.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidate=a=>{a.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,z.debug("[pc-".concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,z.debug("[pc-".concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},ve("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(a){let o={iceServers:[]};return a.iceServers?o.iceServers=a.iceServers:a.turnServer&&a.turnServer.mode!=="off"&&(US(a.turnServer.servers)?o.iceServers=a.turnServer.servers:(o.iceServers&&o.iceServers.push(...Kk.turnServerConfigToIceServers(a.turnServer.servers)),ve("USE_TURN_SERVER_OF_GATEWAY")&&o.iceServers&&a.turnServer.serversFromGateway&&o.iceServers.push(...Kk.turnServerConfigToIceServers(a.turnServer.serversFromGateway)),ve("FORCE_TURN_TCP")?o.iceTransportPolicy="relay":a.turnServer.servers.concat(a.turnServer.serversFromGateway||[]).forEach(c=>{c.forceturn&&(o.iceTransportPolicy="relay")}))),o}static turnServerConfigToIceServers(a){let o=[];return a.forEach(c=>{c.security?c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turns:".concat(O0(c.turnServerURL),":").concat(c.tcpport,"?transport=tcp")}):(c.udpport&&!ve("FORCE_TURN_TCP")&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.udpport,"?transport=udp")}),c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.tcpport,"?transport=tcp")}))}),o}async applySendEncodings(a,o){try{if(!Jn().supportSetRtpSenderParameters||a.length!==o.length)return;for(let L=0;L1&&(W.scaleResolutionDownBy=F._encoderConfig.scaleResolutionDownBy)),ve("DSCP_TYPE")&&C0()){var x;let ue=ve("DSCP_TYPE");Tt(x=["very-low","low","medium","high"]).call(x,ue)&&(W.networkPriority=ue)}let K=U.sender.getParameters(),oe=(m=K.encodings)===null||m===void 0?void 0:m[0];Pi()&&!oe&&(Z.encodings=[W]),oe&&Object.assign(oe,W),Object.assign(K,Z),await U.sender.setParameters(K)}}}catch{z.debug("Apply RTPSendEncodings failed.")}}mungSendOfferSDP(a,o,c){let f=rr.parse(a);return o.forEach((m,v)=>{let w=c[v],C=f.mediaDescriptions.find(R=>R.attributes.mid===w);C&&(F0(C,m),AW(C,m,this.store.codec))}),rr.print(f)}mungReceiveAnswerSDP(a,o,c){let f=rr.parse(a),m=f.mediaDescriptions.find(v=>v.attributes.mid===o);return m&&c===Wt.AUDIO&&m.media.mediaType==="audio"&&Ih(m),this.useXR&&PD(f),rr.print(f)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=a=>{var o;(o=this.onFirstAudioReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoReceived=a=>{var o;(o=this.onFirstVideoReceived)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstAudioDecoded=a=>{var o;(o=this.onFirstAudioDecoded)===null||o===void 0||o.call(this,a)},this.statsFilter.onFirstVideoDecoded=(a,o,c)=>{var f;(f=this.onFirstVideoDecoded)===null||f===void 0||f.call(this,a,o,c)},this.statsFilter.onSelectedLocalCandidateChanged=(a,o)=>{var c;(c=this.onSelectedLocalCandidateChanged)===null||c===void 0||c.call(this,a,o)},this.statsFilter.onSelectedRemoteCandidateChanged=(a,o)=>{var c;(c=this.onSelectedRemoteCandidateChanged)===null||c===void 0||c.call(this,a,o)},this.statsFilter.onFirstVideoDecodedTimeout=a=>{var o;(o=this.onFirstVideoDecodedTimeout)===null||o===void 0||o.call(this,a)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(a,o){if(a.length===o.length)for(let C=0;C200&&(v=x._scalabilityMode)!==null&&v!==void 0&&v.numSpatialLayers&&((w=x._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let L={},U={high:1e3*(x._encoderConfig.bitrateMax-50),medium:5e4};L.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];let F=R.sender.getParameters();await R.sender.setParameters(Object.assign(F,L))}}}async applySimulcastEncodings(a,o){if(!Pi()&&a.length===o.length)for(let c=0;c200&&(m=a._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((v=a._scalabilityMode)===null||v===void 0?void 0:v.numSpatialLayers)>1)}logSDPExchange(a,o,c,f){if(ve("SDP_LOGGING"))return z.upload("exchanging ".concat(c," ").concat(o," SDP during NVExtentionsConnection.").concat(f,` +`),a),o==="offer"?m=>{this.logSDPExchange(m,"answer",c==="local"?"remote":"local",f)}:void 0}async getRemoteSSRC(a){if(!this.remoteSDP)return;let o=this.remoteSDP.getSSRC(a);return o==null?void 0:o[0].ssrcId}setConfiguration(a){if(Jn().supportPCSetConfiguration){let o=Kk.resolvePCConfiguration(a);this.peerConnection.setConfiguration(o)}}},vt(si.prototype,"connect",[al],Object.getOwnPropertyDescriptor(si.prototype,"connect"),si.prototype),vt(si.prototype,"updateRemoteRTPCapabilities",[al],Object.getOwnPropertyDescriptor(si.prototype,"updateRemoteRTPCapabilities"),si.prototype),vt(si.prototype,"updateRemoteConnect",[al],Object.getOwnPropertyDescriptor(si.prototype,"updateRemoteConnect"),si.prototype),vt(si.prototype,"createDataChannels",[al],Object.getOwnPropertyDescriptor(si.prototype,"createDataChannels"),si.prototype),vt(si.prototype,"receive",[al],Object.getOwnPropertyDescriptor(si.prototype,"receive"),si.prototype),vt(si.prototype,"batchReceive",[al],Object.getOwnPropertyDescriptor(si.prototype,"batchReceive"),si.prototype),vt(si.prototype,"stopReceiving",[al],Object.getOwnPropertyDescriptor(si.prototype,"stopReceiving"),si.prototype),vt(si.prototype,"muteRemote",[al],Object.getOwnPropertyDescriptor(si.prototype,"muteRemote"),si.prototype),vt(si.prototype,"unmuteRemote",[al],Object.getOwnPropertyDescriptor(si.prototype,"unmuteRemote"),si.prototype),vt(si.prototype,"muteLocal",[al],Object.getOwnPropertyDescriptor(si.prototype,"muteLocal"),si.prototype),vt(si.prototype,"unmuteLocal",[al],Object.getOwnPropertyDescriptor(si.prototype,"unmuteLocal"),si.prototype),vt(si.prototype,"close",[al],Object.getOwnPropertyDescriptor(si.prototype,"close"),si.prototype),vt(si.prototype,"updateEncoderConfig",[al],Object.getOwnPropertyDescriptor(si.prototype,"updateEncoderConfig"),si.prototype),vt(si.prototype,"updateSendParameters",[al],Object.getOwnPropertyDescriptor(si.prototype,"updateSendParameters"),si.prototype),vt(si.prototype,"replaceTrack",[al],Object.getOwnPropertyDescriptor(si.prototype,"replaceTrack"),si.prototype),vt(si.prototype,"getRemoteSSRC",[al],Object.getOwnPropertyDescriptor(si.prototype,"getRemoteSSRC"),si.prototype),si);function al(r,a,o){let c=r[a];if(typeof c!="function")throw new Error("Cannot use mutex on object property.");return o.value=async function(){let f=this.mutex,m=await f.lock("From NVExtentionsConnection.".concat(a));try{for(var v=arguments.length,w=new Array(v),C=0;C{let R=setTimeout(()=>{this.closeSignal(),C(new De(ce.DATACHANNEL_CONNECTION_TIMEOUT,"Datachannel connection timed out, candidates: ".concat(JSON.stringify(c))))},2e3);this.dataChannel.onopen=()=>{if(this.dataChannel.readyState==="open")return clearTimeout(R),void w()},this.dataChannel.onerror=x=>{this.closeSignal(),C(x)}}),{transmitter:this.dataChannel,close:this.closeSignal.bind(this)}}async updateRemoteRTPCapabilities(a,o){return this._p2pConnection.updateRemoteRTPCapabilities(a,o)}send(a,o,c){var f=this;return Ul(function*(){let m=yield Dn(f.mutex.lock("From DataChannelConnection.send"));try{return yield*kD(Tle(f._p2pConnection.send(a,o,c)))}finally{m()}})()}async stopSending(a,o){return this._p2pConnection.stopSending(a,o)}async createDataChannels(a,o){return this._p2pConnection.createDataChannels(a,o)}async stopDataChannels(a){return this._p2pConnection.stopDataChannels(a)}async receive(a,o,c,f){return this._nvMedia?(z.debug("[DataChannelConnection] receive ".concat(a," by DataChannel.")),await this._nvMedia.reveiveByRTCMedia(a,o,this.cname)):(z.debug("[DataChannelConnection] receive ".concat(a," by WebRTC.")),await this._p2pConnection.receive(a,o,c,f))}async batchReceive(a){return[...await this._p2pConnection.batchReceive(a)]}async stopReceiving(a){return await this._p2pConnection.stopReceiving(a)}async muteRemote(a){return await this._p2pConnection.muteRemote(a)}async unmuteRemote(a){return await this._p2pConnection.unmuteRemote(a)}async muteLocal(a){return await this._p2pConnection.muteLocal(a)}async unmuteLocal(a){return await this._p2pConnection.unmuteLocal(a)}restartICE(a){var o=this;return Ul(function*(){return yield*kD(Tle(o._p2pConnection.restartICE(a)))})()}close(){var a;(a=this._nvMedia)===null||a===void 0||a.close(),this._p2pConnection.close(),this.unbindConnectionEvents(this._p2pConnection)}getStats(){return this._p2pConnection.getStats()}getRemoteVideoIsReady(a){return this._p2pConnection.getRemoteVideoIsReady(a)}updateRemoteConnect(a){var o;(o=this._nvMedia)===null||o===void 0||o.setRemoteRtpCapabilities(a),this._p2pConnection.updateRemoteConnect(a)}async updateEncoderConfig(a,o){return await this._p2pConnection.updateEncoderConfig(a,o)}async updateSendParameters(a,o){return await this._p2pConnection.updateSendParameters(a,o)}setStatsRemoteVideoIsReady(a,o){this._p2pConnection.setStatsRemoteVideoIsReady(a,o)}async replaceTrack(a,o){return await this._p2pConnection.replaceTrack(a,o)}async getRemoteSSRC(a){return this._p2pConnection.getRemoteSSRC(a)}logSDPExchange(a,o,c,f){if(ve("SDP_LOGGING"))return z.upload("exchanging ".concat(c," ").concat(o," SDP during DataChannelConnection.").concat(f,` +`),a),o==="offer"?m=>{this.logSDPExchange(m,"answer",c==="local"?"remote":"local",f)}:void 0}static resolvePCConfiguration(a){let o={iceServers:[]};return a.iceServers?o.iceServers=a.iceServers:a.turnServer&&a.turnServer.mode!=="off"&&(US(a.turnServer.servers)?o.iceServers=a.turnServer.servers:(o.iceServers&&o.iceServers.push(...qk.turnServerConfigToIceServers(a.turnServer.servers)),ve("USE_TURN_SERVER_OF_GATEWAY")&&o.iceServers&&a.turnServer.serversFromGateway&&o.iceServers.push(...qk.turnServerConfigToIceServers(a.turnServer.serversFromGateway)),ve("FORCE_TURN_TCP")?o.iceTransportPolicy="relay":a.turnServer.servers.concat(a.turnServer.serversFromGateway||[]).forEach(c=>{c.forceturn&&(o.iceTransportPolicy="relay")}))),o}static turnServerConfigToIceServers(a){let o=[];return a.forEach(c=>{c.security?c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turns:".concat(O0(c.turnServerURL),":").concat(c.tcpport,"?transport=tcp")}):(c.udpport&&!ve("FORCE_TURN_TCP")&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.udpport,"?transport=udp")}),c.tcpport&&o.push({username:c.username,credential:c.password,credentialType:"password",urls:"turn:".concat(c.turnServerURL,":").concat(c.tcpport,"?transport=tcp")}))}),o}bindPCEvents(){this._p2pConnection.onICEConnectionStateChange=a=>{var o;return(o=this.onICEConnectionStateChange)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onConnectionStateChange=a=>{var o;return(o=this.onConnectionStateChange)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onDTLSTransportStateChange=a=>{var o;return(o=this.onDTLSTransportStateChange)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onDTLSTransportError=a=>{var o;return(o=this.onDTLSTransportError)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onICETransportStateChange=a=>{var o;return(o=this.onICETransportStateChange)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onFirstAudioReceived=a=>{var o;return(o=this.onFirstAudioReceived)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onFirstVideoReceived=a=>{var o;return(o=this.onFirstVideoReceived)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onFirstAudioDecoded=a=>{var o;return(o=this.onFirstAudioDecoded)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onFirstVideoDecoded=(a,o,c)=>{var f;return(f=this.onFirstVideoDecoded)===null||f===void 0?void 0:f.call(this,a,o,c)},this._p2pConnection.onFirstVideoDecodedTimeout=a=>{var o;return(o=this.onFirstVideoDecodedTimeout)===null||o===void 0?void 0:o.call(this,a)},this._p2pConnection.onSelectedLocalCandidateChanged=(a,o)=>{var c;return(c=this.onSelectedLocalCandidateChanged)===null||c===void 0?void 0:c.call(this,a,o)},this._p2pConnection.onSelectedRemoteCandidateChanged=(a,o)=>{var c;return(c=this.onSelectedRemoteCandidateChanged)===null||c===void 0?void 0:c.call(this,a,o)}}closeSignal(){this.dataChannel.close(),this.peerConnection.close()}unbindConnectionEvents(a){a.onConnectionStateChange=void 0,a.onICEConnectionStateChange=void 0,a.onICETransportStateChange=void 0,a.onDTLSTransportStateChange=void 0,a.onDTLSTransportError=void 0,a.onFirstAudioDecoded=void 0,a.onFirstAudioReceived=void 0,a.onFirstVideoDecoded=void 0,a.onFirstVideoReceived=void 0,a.onSelectedLocalCandidateChanged=void 0,a.onSelectedRemoteCandidateChanged=void 0,a.onFirstVideoDecodedTimeout=void 0}setConfiguration(a){this._p2pConnection.setConfiguration(a)}},vt(vi.prototype,"connect",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"connect"),vi.prototype),vt(vi.prototype,"updateRemoteRTPCapabilities",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"updateRemoteRTPCapabilities"),vi.prototype),vt(vi.prototype,"createDataChannels",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"createDataChannels"),vi.prototype),vt(vi.prototype,"receive",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"receive"),vi.prototype),vt(vi.prototype,"stopReceiving",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"stopReceiving"),vi.prototype),vt(vi.prototype,"muteRemote",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"muteRemote"),vi.prototype),vt(vi.prototype,"unmuteRemote",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"unmuteRemote"),vi.prototype),vt(vi.prototype,"muteLocal",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"muteLocal"),vi.prototype),vt(vi.prototype,"unmuteLocal",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"unmuteLocal"),vi.prototype),vt(vi.prototype,"close",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"close"),vi.prototype),vt(vi.prototype,"updateEncoderConfig",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"updateEncoderConfig"),vi.prototype),vt(vi.prototype,"updateSendParameters",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"updateSendParameters"),vi.prototype),vt(vi.prototype,"replaceTrack",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"replaceTrack"),vi.prototype),vt(vi.prototype,"getRemoteSSRC",[kc],Object.getOwnPropertyDescriptor(vi.prototype,"getRemoteSSRC"),vi.prototype),vi);function kc(r,a,o){let c=r[a];if(typeof c!="function")throw new Error("Cannot use mutex on object property.");return o.value=async function(){let f=this.mutex,m=await f.lock("From DataChannelConnection.".concat(a));try{for(var v=arguments.length,w=new Array(v),C=0;C{let m=await this.mutex.lock("Locking from P2PChannel.handleMuteLocalTrack");try{if(!this.connection||this.state!==gi.Connected)return void f(new Ke(ce.INVALID_OPERATION,"Cannot call P2PChannel.handleMuteLocalTrack before connection established."));let v=this.filterTobeMutedTracks(o);if(v.length===0)return void c();let w=v.find(R=>R[0]==="videoLowTrack");w&&w[1].track._originMediaStreamTrack.stop(),await this.connection.muteLocal(v.map(R=>{let[,{id:x}]=R;return x}));let C=this.createMuteMessage(v);await Li(this,pn.RequestMuteLocal,C),c()}catch(v){f(v)}finally{m()}}),X(this,"handleUnmuteLocalTrack",async(o,c,f)=>{let m=await this.mutex.lock("Locking from P2PChannel.handleUnmuteLocalTrack");try{if(!this.connection||this.state!==gi.Connected)return void f(new Ke(ce.INVALID_OPERATION,"Cannot call P2PChannel.handleUnmuteLocalTrack before connection established."));let v=this.filterTobeUnmutedTracks(o);if(v.length===0)return void c();let w=v.find(R=>R[0]==="videoLowTrack");if(w){let R=w[1];if(R.track._originMediaStreamTrack.stop(),!ve("DISABLE_DUAL_STREAM_USE_ENCODING")&&Jn().supportDualStreamEncoding){let x=o._mediaStreamTrack.clone();R.track._mediaStreamTrack=x,R.track._originMediaStreamTrack=x}else{let x=OW(o,Vy(this,pn.RequestLowStreamParameter));R.track._mediaStreamTrack=x,R.track._originMediaStreamTrack=x}await new Ct((x,L)=>{this.handleReplaceTrack(R.track,x,L,!0)})}await this.connection.unmuteLocal(v.map(R=>{let[,{id:x}]=R;return x}));let C=this.createUnmuteMessage(v);await Li(this,pn.RequestUnmuteLocal,C),c()}catch(v){f(v)}finally{m()}}),X(this,"handleUpdateVideoEncoder",async(o,c,f)=>{let m=await this.mutex.lock("Locking from P2PChannel.handleSetVideoEncoder");try{let v=this.localTrackMap.get(ht.LocalVideoTrack);if(!this.connection||!v||v.track!==o||this.state!==gi.Connected)return void c();let{id:w,track:C}=v;await this.connection.updateSendParameters(w,C),await this.connection.updateEncoderConfig(w,C),this.emit(pn.UpdateVideoEncoder,C),c()}catch(v){f(v)}finally{m()}}),X(this,"handleUpdateVideoSendParameters",async(o,c,f)=>{let m=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoSendParameters");try{let v=this.localTrackMap.get(ht.LocalVideoTrack);if(!this.connection||!v||v.track!==o||this.state!==gi.Connected)return void c();let{id:w,track:C}=v;await this.connection.updateSendParameters(w,C),c()}catch(v){f(v)}finally{m()}}),X(this,"handleReplaceMixingTrack",async(o,c,f,m)=>{if(!this.connection||this.state!==gi.Connected)return void c();let v=LW([o]),w;z.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(v.getTrackId(),"]")),typeof m=="boolean"&&m||(w=await this.mutex.lock("From P2PChannel.handleReplaceMixingTrack"));try{await this.replaceTrack(o,v),c()}catch(R){f(R)}finally{var C;(C=w)===null||C===void 0||C()}}),X(this,"handleReplaceTrack",async(o,c,f,m)=>{let v;z.debug("[".concat(this.store.clientId,"] P2PChannel handleReplaceTrack for [track-id-").concat(o.getTrackId(),"]")),typeof m=="boolean"&&m||(v=await this.mutex.lock("From P2PChannel.handleReplaceTrack"));try{var w;let R=Array.from(this.localTrackMap.entries()).find(x=>{let[,{track:L}]=x;return o===L});if(!this.connection||!R||this.state!==gi.Connected)return void c();if(await((w=this.connection)===null||w===void 0?void 0:w.replaceTrack(o,R[1].id)),this.isPlanB){let x=R[1];x.id=o._mediaStreamTrack.id,this.localTrackMap.set(R[0],x)}if(R[0]===ht.LocalVideoTrack&&!ve("DISABLE_DUAL_STREAM_USE_ENCODING")&&Jn().supportDualStreamEncoding){let x=this.localTrackMap.get(ht.LocalVideoLowTrack);if(x){let L=o._mediaStreamTrack.clone();x.track._originMediaStreamTrack.stop(),x.track._mediaStreamTrack=L,x.track._originMediaStreamTrack=L,await new Ct((U,F)=>{this.handleReplaceTrack(x.track,U,F,!0)})}}c()}catch(R){f(R)}finally{var C;(C=v)===null||C===void 0||C()}}),X(this,"handleGetRTCStats",o=>{o(this.statsCollector.getRTCStats())}),X(this,"handleGetLocalVideoStats",o=>{o(this.statsCollector.getLocalVideoTrackStats())}),X(this,"handleGetLocalAudioStats",o=>{o(this.statsCollector.getLocalAudioTrackStats())}),X(this,"handleGetRemoteVideoStats",o=>this.statsCollector.getRemoteVideoTrackStats(o.uid)[o.uid]),X(this,"handleGetRemoteAudioStats",o=>this.statsCollector.getRemoteAudioTrackStats(o.uid)[o.uid]),this.store=r,this.statsCollector=a,this.statsCollector.addP2PChannel(this),this.statsUploader=new Goe(this.store),this.bindStatsUploaderEvents(),this.isPlanB=!Jn().supportUnifiedPlan||ve("CHROME_FORCE_PLAN_B")&&C0(),this.shouldForwardP2PCreation=ve("FORWARD_P2P_CREATION")&&Jn().supportPCSetConfiguration&&MH(),this.shouldForwardP2PCreation&&(this.connection=this.store.useDataChannel?new W0({},this.store):this.isPlanB?new _b({},this.store):new Ph({},this.store),this.bindConnectionEvents(this.connection))}async startP2PConnection(r,a){var o;this.state=gi.New;let c=this.shouldForwardP2PCreation&&((o=this.connection)===null||o===void 0?void 0:o.peerConnectionState)==="closed";if(this.shouldForwardP2PCreation&&!c||(c&&this.connection&&(z.warning("[".concat(this.store.clientId,"] P2PChannel.startP2PConnection ForwardP2P closed.")),this.connection.close(),this.unbindConnectionEvents(this.connection)),this.connection=this.store.useDataChannel?new W0(r,this.store):this.isPlanB?new _b(r,this.store):new Ph(r,this.store),this.bindConnectionEvents(this.connection)),!this.connection)throw new Ke(ce.UNEXPECTED_ERROR,"Cannot P2PChannel.startConnection before P2PConnection initialization .");return this._pcStatsUploadType=ve("NEW_ICE_RESTART")?gm.FIRST_CONNECTION:gm.OLD_FIRST_CONNECTION,this._isFirstConnected=!0,this._isInRestartIce=!1,this._isStartRestartIce=!1,this.connection.setConfiguration(r),this.connection.establishPromise}async connect(r,a,o,c,f,m){if(!this.connection)throw new Ke(ce.UNEXPECTED_ERROR,"Cannot P2PChannel.connect before P2PChannel.startP2PConnection .");this.connection instanceof W0?this.connection.updateRemoteConnect(c):(this.store.peerConnectionStart(),await this.connection.connect(r,a,o,c,f,m),this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=gi.Connected)}updateRemoteRTPCapabilities(r){let a=Array.from(this.localTrackMap.entries()).filter(f=>{var m;let[v]=f;return Tt(m=[ht.LocalVideoLowTrack,ht.LocalVideoTrack]).call(m,v)}),o=a.map(f=>{let[,{id:m}]=f;return m}),c=a.map(f=>{let[m]=f;return m});if(this.connection instanceof Ph){if($t.updateRemoteRTPCapabilities(this.store.sessionId,{trackTypes:JSON.stringify(c),localCodecs:JSON.stringify(this.connection.localCodecs),remoteCodecs:JSON.stringify(r)}),!Tt(r).call(r,this.store.codec)){let f=["vp9","vp8","h264"].find(m=>Tt(r).call(r,m));f&&(this.store.codec=f,z.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId," updateRemoteRTPCapabilities] default codec is not available, hence the fallback to ").concat(f,".")))}this.connection.updateRemoteRTPCapabilities(o,r)}}async preConnect(r,a,o,c,f,m){if(!this.connection)throw new Ke(ce.UNEXPECTED_ERROR,"Cannot P2PChannel.connect before P2PChannel.startP2PConnection .");this.store.peerConnectionStart();let v=await this.connection.connect(r,a,o,c,f,m);return this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=gi.Connected,v}getEstablishParams(){if(this.connection instanceof W0)return this.connection.getP2PConnectionParams();throw new Error("Only DataChannelConnection needs to obtain establishParams")}async publishDataChannel(r){if(!this.connection||this.state!==gi.Connected){if(this.state===gi.Disconnected)throw new Ke(ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");return void r.forEach(o=>{var c;Tt(c=this.pendingLocalDataChannels).call(c,o)||this.pendingLocalDataChannels.push(o)})}let a=this.filterTobePublishedDataChannels(r);a.length!==0&&(a.forEach(o=>{let c=Date.now();this.store.publish(o.id.toString(),"datachannel",c)}),await this.connection.createDataChannels(this.store.uid,a),a.forEach(o=>{this.localDataChannels.push(o);let c=Date.now();this.store.publish(o.id+"","datachannel",void 0,c)}))}publish(r,a,o){var c=this;return Ul(function*(){let f=yield Dn(c.mutex.lock("From P2PChannel.publish"));try{if(!c.connection||c.state!==gi.Connected){if(c.state===gi.Disconnected)throw new Ke(ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");c.throwIfTrackTypeNotMatch(r);let v=r.filter(w=>c.pendingLocalTracks.indexOf(w)===-1);return void(c.pendingLocalTracks=c.pendingLocalTracks.concat(v))}c.store.pubId=c.store.pubId+1,aa.markPublishStart(c.store.clientId,c.store.pubId);let m=c.filterTobePublishedTracks(r,a,o);if(m.length===0)return void(yield Dn(c.tryToUnmuteAudio(r)));yield*kD(xle(c.doPublish(c.connection,m)))}finally{f()}})()}doPublish(r,a){var o=this;return Ul(function*(){a.forEach(L=>{let{track:U,type:F}=L,Z=Date.now();o.store.publish(U.getTrackId(),F===ht.LocalAudioTrack?"audio":"video",Z)}),o.bindLocalTrackEvents(a);let c=a.map(L=>{let{track:U}=L;return U}),f=yield Dn(r.send(a.map(L=>{let{track:U}=L;return U}),o.store.codec,o.store.audioCodec)),m=(yield Dn(f.next())).value,v=o.createGatewayPublishMessage(a,m),w;try{w=yield v}catch(L){throw f.throw(L),(L==null?void 0:L.code)===ce.WS_ABORT&&a.forEach(U=>{let{track:F}=U;o.pendingLocalTracks.indexOf(F)===-1&&o.pendingLocalTracks.push(F)}),o.unbindLocalTrackEvents(a),L}let C=o.mapPubResToRemoteConfig(v,w),R=(yield Dn(f.next(C))).value,x=ve("ENABLE_VIDEO_SEI");c.forEach(async L=>{let U=L.getRTCRtpTransceiver();U&&x&&(L.trackMediaType===Wt.VIDEO?await r4e(U.sender,L):L.trackMediaType===Wt.AUDIO&&await async function(F){if(!Jn().supportWebRTCEncodedTransform)return void z.warning("browser not support audio encoded transform");if(RD.has(F)||!F.track)return;let Z={track:F.track};if(b0()){if(!F.createEncodedStreams)return void z.warning("browser not support createEncodedStreams() API");let K=null;try{K=F.createEncodedStreams()}catch(ue){return void z.error("create audio-encoded-streams error",ue&&ue.message)}let oe=new TransformStream({transform(ue,xe){Z.controller||(Z.controller=xe),F.track&&F.track.id!==Z.track.id&&(z.debug("audio track changed: ".concat(Z.track.id," => ").concat(F.track.id)),Z.track.removeEventListener("ended",W),Z.track=F.track,Z.track.addEventListener("ended",W)),xe.enqueue(ue)}});K.readable.pipeThrough(oe).pipeTo(K.writable)}else if(gs()){if(typeof RTCRtpScriptTransform>"u")return void z.warning("browser not support RTCRtpScriptTransform");let K=TD(),oe=new MessageChannel;await new Ct(xe=>K.onmessage=Oe=>{Oe.data==="registered"&&xe(void 0)});let ue=new RTCRtpScriptTransform(K,{name:"tx",port:oe.port2},[oe.port2]);F.transform=ue,await new Ct(xe=>K.onmessage=Oe=>{Oe.data==="started"&&xe(void 0)}),oe.port1.onmessage=xe=>{var Oe;xe.data.transformed&&F.track&&((Oe=F.track)===null||Oe===void 0?void 0:Oe.id)!==Z.track.id&&(z.debug("audio track changed: ".concat(Z.track.id," => ").concat(F.track.id)),Z.track.removeEventListener("ended",W),Z.track=F.track,Z.track.addEventListener("ended",W))},Z.worker=K}function W(){if(F.track){if(this.id!==F.track.id)return;F.track.removeEventListener("ended",W)}let K=RD.get(F);if(K){RD.delete(F);try{var oe,ue;(oe=K.controller)===null||oe===void 0||oe.terminate(),(ue=K.worker)===null||ue===void 0||ue.terminate()}catch(xe){z.warning(xe&&xe.message)}}}RD.set(F,Z),F.track.addEventListener("ended",W)}(U.sender))}),a.forEach(L=>{let{type:U}=L;o.statsCollector.addLocalStats(U)}),o.assignLocalTracks(a,R),o.statsUploader.startUploadOutboundStats(),a.forEach(L=>{let{track:U,type:F}=L,Z=Date.now();o.store.publish(U.getTrackId(),F===ht.LocalAudioTrack?"audio":"video",void 0,Z)})})()}async updateVideoStreamParameter(r,a){let o=this.localTrackMap.get(a);if(!o)return;if(!(o.track instanceof ki))return z.warn("[updateVideoStreamParameter]: track is not an instance of LocalVideoTrack");if(!(this.connection instanceof Ph||this.connection instanceof _b))return z.warn("[updateVideoStreamParameter]: connection is not P2PConnection or P2PConnectionPlanB");let{track:c}=o,f=function(m,v){let w={};return m.height&&m.width&&(w.scaleResolutionDownBy=oG(m,v)),w.maxFramerate=m.framerate?rl(m.framerate):void 0,w.maxBitrate=m.bitrate?1e3*m.bitrate:void 0,w}(r,c);if(c._encoderConfig||(c._encoderConfig={}),a!==ht.LocalVideoLowTrack||!ve("DISABLE_DUAL_STREAM_USE_ENCODING")&&Jn().supportDualStreamEncoding)f.scaleResolutionDownBy!=null&&(c._encoderConfig.scaleResolutionDownBy=f.scaleResolutionDownBy);else{let m=c._originMediaStreamTrack;if(!m.canvas)return z.warn("[".concat(c.getTrackId(),"] no canvas on track"));(function(v,w){let C=v.canvas;w.width&&(C.width=rl(w.width)),w.height&&(C.height=rl(w.height)),w.framerate&&(C.stopCapture&&C.stopCapture(),C.stopCapture=hW(()=>{!C.startCapture&&C.stopCapture&&C.stopCapture(),C.startCapture&&C.startCapture()},rl(w.framerate)))})(m,r)}f.maxBitrate!=null&&(c._encoderConfig.bitrateMax=f.maxBitrate/1e3),f.maxFramerate!=null&&(c._encoderConfig.frameRate&&typeof c._encoderConfig.frameRate=="object"?c._encoderConfig.frameRate.max=f.maxFramerate:c._encoderConfig.frameRate={max:f.maxFramerate}),z.debug("[".concat(c.getTrackId(),"] LowStreamEncoderConfig: , ").concat(JSON.stringify(c._encoderConfig))),await this.connection.updateRtpSenderEncodings(c)}publishLowStream(r){var a=this;return Ul(function*(){if(!a.connection||a.state!==gi.Connected)return;let o=yield Dn(a.mutex.lock("Locking from P2PChannel.publishLowStream"));try{let f=a.localTrackMap.get(ht.LocalVideoTrack);if(!f)throw new Ke(ce.UNEXPECTED_ERROR,"Could not find high stream");if(a.localTrackMap.has(ht.LocalVideoLowTrack))throw new Ke(ce.UNEXPECTED_ERROR,"[".concat(a.store.clientId,"] Can't publish low stream when stream already publish"));let m=[{track:a.getLowVideoTrack(f.track,r),type:ht.LocalVideoLowTrack}];if(yield*kD(xle(a.doPublish(a.connection,m))),f.track.muted||!f.track.enabled){var c;let v=(c=a.localTrackMap.get(ht.LocalVideoLowTrack))===null||c===void 0?void 0:c.id;v!==void 0&&(yield Dn(a.connection.muteLocal([v])))}}finally{o()}})()}async republish(){this.pendingLocalTracks.length>0&&(z.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await Kr(this,pn.RequestRePublish,this.pendingLocalTracks),this.emit(pn.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[]),this.pendingLocalDataChannels.length>0&&(z.debug("Emit P2PChannelEvents.RequestRePublishDataChannel to republish datachannels."),await Kr(this,pn.RequestRePublishDataChannel,this.pendingLocalDataChannels),this.pendingLocalDataChannels=[])}async reSubscribe(r){for(let a=this.pendingRemoteTracks.length-1;a>=0;a--){let{user:o,kind:c}=this.pendingRemoteTracks[a];(c!==Wt.AUDIO||o._audio_added_&&o._audioSSRC)&&(c!==Wt.VIDEO||o._video_added_&&o._videoSSRC)||this.pendingRemoteTracks.splice(a,1)}if(r)await Kr(this,pn.RequestReSubscribe,this.pendingRemoteTracks);else for(let{user:a,kind:o}of this.pendingRemoteTracks)await this.subscribe(a,o,o===Wt.VIDEO?a._videoSSRC:a._audioSSRC);this.pendingRemoteTracks.forEach(a=>{let{user:o}=a;this.emit(pn.MediaReconnectEnd,o.uid)}),this.pendingRemoteTracks=[]}async unpublish(r){if(!this.connection||this.state!==gi.Connected)return void r.forEach(c=>{let f=this.pendingLocalTracks.indexOf(c);f!==-1&&this.pendingLocalTracks.splice(f,1)});let a=this.filterTobeUnpublishedTracks(r);if(a.length===0)return;let o=a.find(c=>c[0]==="videoLowTrack");return o&&o[1].track.close(),this.doUnpublish(this.connection,a)}async unpublishDataChannel(r){if(!this.connection||this.state!==gi.Connected)return void r.forEach(o=>{let c=this.pendingLocalDataChannels.indexOf(o);c!==-1&&this.pendingLocalDataChannels.splice(c,1)});let a=this.filterTobeUnpublishedDataChannels(r);return a.length!==0?(a.forEach(o=>{let c=this.localDataChannels.indexOf(o);c!==-1&&this.localDataChannels.splice(c,1)}),this.localDataChannels.length===0&&await this.connection.stopDataChannels(this.store.uid),a.map(o=>o.id)):void 0}async unpublishLowStream(){if(!this.connection||this.state!==gi.Connected)return;let r=this.localTrackMap.get(ht.LocalVideoLowTrack);if(!r)return;r.track.close();let a=[[ht.LocalVideoLowTrack,r]];return this.doUnpublish(this.connection,a)}async doUnpublish(r,a){let o=this.createGatewayUnpublishMessage(a);return await r.stopSending(a.map(c=>{let[,{id:f}]=c;return f})),this.withdrawLocalTracks(a),this.unbindLocalTrackEvents(a.map(c=>{let[f,{track:m}]=c;return{type:f,track:m}})),a.forEach(c=>{let[f]=c;this.statsCollector.removeLocalStats(f)}),this.localTrackMap.size===0&&this.statsUploader.stopUploadOutboundStats(),o}async subscribeDataChannel(r,a){if(!this.connection||this.state!==gi.Connected)throw new Ke(ce.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");let o=a.filter(c=>{var f;return!((f=this.remoteDataChannelMap.get(r))!==null&&f!==void 0&&f.get(c.id))});if(o.length!==0)return await this.connection.createDataChannels(r.uid,o),o.forEach(c=>{var f;this.remoteDataChannelMap.has(r)?(f=this.remoteDataChannelMap.get(r))===null||f===void 0||f.set(c.id,c):this.remoteDataChannelMap.set(r,new Map([[c.id,c]]));let m=this.pendingRemoteDataChannels.findIndex(v=>{let{user:w,id:C}=v;return w.uid===r.uid&&C===c.id});m!==-1&&this.pendingRemoteDataChannels.splice(m,1)}),o.map(c=>c.id)}async subscribe(r,a,o,c,f){var m;if(!this.connection||this.state!==gi.Connected)throw new Ke(ce.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");if((m=this.remoteUserMap.get(r))!==null&&m!==void 0&&m.has(a))return;let v,w,C;if(f){let L=f.find(F=>{let{stream_type:Z}=F;return Z===a});if(!L)throw new Ke(ce.UNEXPECTED_ERROR,"Cannot subscribe to remote ".concat(a," for user: ").concat(r.uid," because subscribe answer from gateway does not contain stream_type: ").concat(a,"."));let U=await this.connection.receive(a,L.ssrcs,String(r._uintid),L.attributes);this.connection instanceof Ph&&(C=U.transceiver),v=U.track,w=U.id}else{let L=await this.connection.receive(a,[{ssrcId:o,rtx:c}],String(r._uintid),void 0);this.connection instanceof Ph&&(C=L.transceiver),v=L.track,w=L.id}a===Wt.AUDIO?(r._audioTrack?r._audioTrack._updateOriginMediaStreamTrack(v):(r._audioTrack=new gb(v,r.uid,r._uintid,this.store),z.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(r._audioTrack.getTrackId()))),C&&r._audioTrack._updateRtpTransceiver(C),this.bindRemoteTrackEvents(r,r._audioTrack)):(r._videoTrack?r._videoTrack._updateOriginMediaStreamTrack(v):(r._videoTrack=new mb(v,r.uid,r._uintid,this.store),z.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(r._videoTrack.getTrackId()))),C&&r._videoTrack._updateRtpTransceiver(C),this.bindRemoteTrackEvents(r,r._videoTrack)),ve("ENABLE_VIDEO_SEI")&&C&&(a==Wt.VIDEO?await s4e(C.receiver,{onSei:L=>{var U;(U=r._videoTrack)===null||U===void 0||U._onSei(L)}}):a==Wt.AUDIO&&await async function(L){if(!Jn().supportWebRTCEncodedTransform)return void z.warning("browser not support audio encoded transform");if(xD.has(L))return;let U={track:L.track};if(b0()){if(!L.createEncodedStreams)return void z.warning("browser not support createEncodedStreams() API");let Z=null;try{Z=L.createEncodedStreams()}catch(K){return void z.error("create audio-encoded-streams error",K&&K.message)}let W=new TransformStream({transform(K,oe){U.controller||(U.controller=oe),L.track&&L.track.id!==U.track.id&&(z.debug("audio track changed: ".concat(U.track.id," => ").concat(L.track.id)),U.track.removeEventListener("ended",F),U.track=L.track,U.track.addEventListener("ended",F)),oe.enqueue(K)}});Z.readable.pipeThrough(W).pipeTo(Z.writable)}else if(gs()){if(typeof RTCRtpScriptTransform>"u")return void z.warning("browser not support RTCRtpScriptTransform");let Z=TD(),W=new MessageChannel;await new Ct(oe=>Z.onmessage=ue=>{ue.data==="registered"&&oe(void 0)});let K=new RTCRtpScriptTransform(Z,{name:"rx",port:W.port2},[W.port2]);L.transform=K,await new Ct(oe=>Z.onmessage=ue=>{ue.data==="started"&&oe(void 0)}),W.port1.onmessage=oe=>{var ue;oe.data.transformed&&L.track&&((ue=L.track)===null||ue===void 0?void 0:ue.id)!==U.track.id&&(z.debug("audio track changed: ".concat(U.track.id," => ").concat(L.track.id)),U.track.removeEventListener("ended",F),U.track=L.track,U.track.addEventListener("ended",F))},U.worker=Z}function F(){L.track.removeEventListener("ended",F),function(Z){let W=xD.get(Z);if(W){xD.delete(Z);try{var K,oe;(K=W.controller)===null||K===void 0||K.terminate(),(oe=W.worker)===null||oe===void 0||oe.terminate()}catch(ue){z.warning(ue&&ue.message)}}}(L)}xD.set(L,U),L.track.addEventListener("ended",F)}(C.receiver));let R=this.remoteUserMap.get(r);R?R.set(a,w):this.remoteUserMap.set(r,new Map([[a,w]])),this.statsCollector.addRemoteStats(r.uid),this.statsUploader.startUploadInboundStats();let x=this.pendingRemoteTracks.findIndex(L=>{let{user:U,kind:F}=L;return U.uid===r.uid&&a===F});x!==-1&&(this.pendingRemoteTracks.splice(x,1),this.emit(pn.MediaReconnectEnd,r.uid))}async massSubscribe(r){return this.massSubscribeNoLock(r)}async massSubscribeNoLock(r){if(!this.connection||this.state!==gi.Connected)throw new Ke(ce.INVALID_OPERATION,"Cannot subscribeAll remote users when peerConnection disconnected.");r=r.filter(o=>{var c;let{user:f,mediaType:m}=o;return!((c=this.remoteUserMap.get(f))!==null&&c!==void 0&&c.has(m))});let a=await this.connection.batchReceive(r.map(o=>{let{user:c,mediaType:f,ssrcId:m,rtxSsrcId:v}=o;return{kind:f,ssrcMsg:[{ssrcId:m,rtx:v}],mslabel:String(c._uintid)}}));r.forEach((o,c)=>{let{user:f,mediaType:m}=o,{track:v,id:w,transceiver:C}=a[c];m===Wt.AUDIO?(f._audioTrack?f._audioTrack._updateOriginMediaStreamTrack(v):(f._audioTrack=new gb(v,f.uid,f._uintid,this.store),z.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(f._audioTrack.getTrackId()))),C&&f._audioTrack._updateRtpTransceiver(C),this.bindRemoteTrackEvents(f,f._audioTrack)):(f._videoTrack?f._videoTrack._updateOriginMediaStreamTrack(v):(f._videoTrack=new mb(v,f.uid,f._uintid,this.store),z.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(f._videoTrack.getTrackId()))),C&&f._videoTrack._updateRtpTransceiver(C),this.bindRemoteTrackEvents(f,f._videoTrack));let R=this.remoteUserMap.get(f);R?R.set(m,w):this.remoteUserMap.set(f,new Map([[m,w]])),this.statsCollector.addRemoteStats(f.uid),this.statsUploader.startUploadInboundStats();let x=this.pendingRemoteTracks.findIndex(L=>{let{user:U,kind:F}=L;return U.uid===f.uid&&m===F});x!==-1&&(this.pendingRemoteTracks.splice(x,1),this.emit(pn.MediaReconnectEnd,f.uid))})}async unsubscribe(r,a,o){let c=this.pendingRemoteTracks.filter(v=>{let{user:w,kind:C}=v;return a!==void 0?w.uid===r.uid&&a===C:w.uid===r.uid});if(c.forEach(v=>{let w=this.pendingRemoteTracks.indexOf(v);this.pendingRemoteTracks.splice(w,1)}),this.connection&&this.state===gi.Connected||o||c.forEach(v=>{let{kind:w}=v;var C;if(w===Wt.AUDIO)(C=r._audioTrack)===null||C===void 0||C._destroy(),r._audioTrack=void 0;else if(w===Wt.VIDEO){var R;(R=r._videoTrack)===null||R===void 0||R._destroy(),r._videoTrack=void 0}}),!this.connection||this.state!==gi.Connected)return;let f=this.filterTobeUnSubscribedTracks(r,a);if(f.length===0)return;await this.connection.stopReceiving(f.map(v=>{let[,{id:w}]=v;return w}));let m=this.createUnsubscribeMessage(f);return this.withdrawRemoteTracks(f),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),f.forEach(v=>{let[w,{kind:C}]=v;var R,x;if(C===Wt.VIDEO&&w._videoSSRC&&((R=this.connection)===null||R===void 0||R.setStatsRemoteVideoIsReady(w._videoSSRC,!1)),C===Wt.VIDEO)this.unbindRemoteTrackEvents(w._videoTrack),o||((x=w._videoTrack)===null||x===void 0||x._destroy(),w._videoTrack=void 0);else if(C===Wt.AUDIO){var L;this.unbindRemoteTrackEvents(w._audioTrack),!o&&((L=w._audioTrack)===null||L===void 0||L._destroy(),w._audioTrack=void 0)}}),m}async unsubscribeDataChannel(r,a){if(a.forEach(f=>{let m=this.pendingRemoteDataChannels.findIndex(v=>v.id===f.id);m!==-1&&this.pendingRemoteDataChannels.splice(m,1)}),!this.connection)return;let o=this.filterTobeUnSubscribedDataChannels(r,a);if(o.length===0)return;a.forEach(f=>{f._close()});let c=this.remoteDataChannelMap.get(r);return o.forEach(f=>{c&&c.delete(f.id)}),c&&c.size===0&&(this.remoteDataChannelMap.delete(r),await this.connection.stopDataChannels(r.uid)),o.map(f=>f.id)}async massUnsubscribe(r){return this.massUnsubscribeNoLock(r)}async massUnsubscribeNoLock(r){let a=[];for(let{user:f,mediaType:m}of r){let v=this.pendingRemoteTracks.filter(w=>{let{user:C,kind:R}=w;return m!==void 0?C.uid===f.uid&&m===R:C.uid===f.uid});v.forEach(w=>{let C=this.pendingRemoteTracks.indexOf(w);this.pendingRemoteTracks.splice(C,1)}),a=a.concat(v)}if(!this.connection||this.state!==gi.Connected)return void a.forEach(f=>{let{user:m,kind:v}=f;var w;if(v===Wt.AUDIO)(w=m._audioTrack)===null||w===void 0||w._destroy(),m._audioTrack=void 0;else if(v===Wt.VIDEO){var C;(C=m._videoTrack)===null||C===void 0||C._destroy(),m._videoTrack=void 0}});let o=_c(r).call(r,(f,m)=>{let{user:v,mediaType:w}=m,C=this.filterTobeUnSubscribedTracks(v,w);return f.concat(C)},[]);if(o.length===0)return;await this.connection.stopReceiving(o.map(f=>{let[,{id:m}]=f;return m}));let c=this.createUnsubscribeAllMessage(o);return this.withdrawRemoteTracks(o),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),o.forEach(f=>{let[m,{kind:v}]=f;var w,C;if(v===Wt.VIDEO&&m._videoSSRC&&((w=this.connection)===null||w===void 0||w.setStatsRemoteVideoIsReady(m._videoSSRC,!1)),v===Wt.VIDEO)this.unbindRemoteTrackEvents(m._videoTrack),(C=m._videoTrack)===null||C===void 0||C._destroy(),m._videoTrack=void 0;else if(v===Wt.AUDIO){var R;this.unbindRemoteTrackEvents(m._audioTrack),(R=m._audioTrack)===null||R===void 0||R._destroy(),m._audioTrack=void 0}}),c}async muteRemote(r,a){if(!this.connection)return;let o=this.remoteUserMap.get(r);if(!o)return void z.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(r.uid,"."));if(!o.get(a))return void z.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(r.uid," media type ").concat(a,"."));let c=a===Wt.VIDEO?r._videoSSRC:r._audioSSRC;c!==void 0&&this.connection.setStatsRemoteVideoIsReady(c,!1)}async unmuteRemote(r,a){return this.unmuteRemoteNoLock(r,a)}async unmuteRemoteNoLock(r,a){if(!this.connection)return;let o=this.remoteUserMap.get(r);if(!o)return void z.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(r.uid,"."));o.get(a)||z.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(r.uid," media type ").concat(a,"."))}getAllTracks(r){let a=this.localTrackMap.get(ht.LocalAudioTrack);if((a==null?void 0:a.track)instanceof ns){let o=a.track;return Array.from(this.localTrackMap.entries()).filter(c=>{let[f]=c;return f!==ht.LocalAudioTrack}).filter(c=>{let[f]=c;return!(r&&f===ht.LocalVideoLowTrack)}).map(c=>{let[,{track:f}]=c;return f}).concat(o.trackList)}return Array.from(this.localTrackMap.entries()).filter(o=>{let[c]=o;return!(r&&c===ht.LocalVideoLowTrack)}).map(o=>{let[,{track:c}]=o;return c})}getAllDataChannels(){return this.localDataChannels}reportPublishEvent(r,a,o,c,f){if(r){let v=this.localTrackMap.get(ht.LocalAudioTrack),w=c?this.localTrackMap.get(ht.LocalVideoLowTrack):this.localTrackMap.get(ht.LocalVideoTrack);$t.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:r,ec:a,audioName:v==null?void 0:v.track.getTrackLabel(),videoName:w==null?void 0:w.track.getTrackLabel(),screenshare:(w==null?void 0:w.track._hints.indexOf(Hi.SCREEN_TRACK))!==-1,audio:!!v,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:f})}else{var m;o||(o=[]);let v=o.find(C=>C instanceof br),w=c?(m=this.localTrackMap.get(ht.LocalVideoTrack))===null||m===void 0?void 0:m.track:o.find(C=>C instanceof ki);$t.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:r,ec:a,audioName:v==null?void 0:v.getTrackLabel(),videoName:w==null?void 0:w.getTrackLabel(),screenshare:(w==null?void 0:w._hints.indexOf(Hi.SCREEN_TRACK))!==-1,audio:!!v,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:f})}}reportSubscribeEvent(r,a,o,c){let f=c===Wt.VIDEO?o._videoSSRC:o._audioSSRC;f&&$t.subscribe(this.store.sessionId,{succ:r,ec:a,video:c===Wt.VIDEO,audio:c===Wt.AUDIO,peerid:o.uid,subscribeRequestid:c===Wt.VIDEO?o._videoSSRC:o._audioSSRC,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,f)})}reset(){z.debug("[".concat(this.store.clientId,"] P2PChannel.reset")),this.mutex=new Ts("P2PChannel-mutex"),this.connection&&(this.connection.close(),this.unbindConnectionEvents(this.connection),this.connection=void 0),this.shouldForwardP2PCreation&&(this.connection=this.store.useDataChannel?new W0({},this.store):this.isPlanB?new _b({},this.store):new Ph({},this.store),this.bindConnectionEvents(this.connection)),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();let r=this.localTrackMap.get(ht.LocalAudioTrack);if((r==null?void 0:r.track)instanceof ns){if(r.track.trackList.length>0){let a=r.track;r.track.trackList.forEach(o=>{a.removeAudioTrack(o)})}r.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.iceFailedCount=0,this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.localDataChannels=[],this.remoteDataChannelMap.clear(),this.pendingLocalDataChannels=[],this.pendingRemoteDataChannels=[],this.state=gi.Disconnected}getStats(){var r;return(r=this.connection)===null||r===void 0?void 0:r.getStats()}getRemoteVideoIsReady(r){var a;return((a=this.connection)===null||a===void 0?void 0:a.getRemoteVideoIsReady(r))||!1}getLocalAudioVolume(){let r=this.localTrackMap.get(ht.LocalAudioTrack);if(r)return r.track.getVolumeLevel()}getLocalVideoSize(){let r=this.localTrackMap.get(ht.LocalVideoTrack);if(r)return{width:r.track.videoWidth||0,height:r.track.videoHeight||0}}getEncoderConfig(r){let a=this.localTrackMap.get(r);return a&&a.track instanceof ki||a&&a.track instanceof br?a.track._encoderConfig:void 0}getLocalMedia(r){return this.localTrackMap.get(r)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(r,a){if(!r)return this.remoteUserMap.size>0;let o=this.remoteUserMap.get(r);return!!o&&(!a||o.has(a))}async hasRemoteMediaWithLock(r,a){if(!r)return this.remoteUserMap.size>0;let o=this.remoteUserMap.get(r);return!!o&&(!a||o.has(a))}getRemoteMedia(r){var a;let o=Array.from(tl(a=this.remoteUserMap).call(a)).find(c=>c.uid===r);return o?{audioTrack:o.audioTrack,audioSSRC:o._audioSSRC,videoTrack:o.videoTrack,videoSSRC:o._videoSSRC}:{}}getAudioLevels(){let r=Array.from(this.remoteUserMap.entries()).map(o=>{let[c]=o;return{uid:c.uid,level:c.audioTrack?100*c.audioTrack._source.getAccurateVolumeLevel():0}}),a=this.localTrackMap.get(ht.LocalAudioTrack);return a&&r.push({level:100*a.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),r=JA(r).call(r,(o,c)=>o.level-c.level),r}async disconnectForReconnect(){this.connection&&(z.debug("[".concat(this.store.clientId,"] P2PChannel.disconnectForReconnect closing P2PConnection")),this.state=gi.Reconnecting,ve("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(r=>{let[a]=r;var o;a._videoTrack&&a._videoTrack._player&&((o=a._videoTrack._player.getVideoElement())===null||o===void 0||o.pause(),a._videoTrack._player.isKeepLastFrame=!0,a._videoTrack._originMediaStreamTrack.stop())}),this.connection.close(),this.unbindConnectionEvents(this.connection),this.connection=void 0,this.shouldForwardP2PCreation&&(this.connection=this.store.useDataChannel?new W0({},this.store):this.isPlanB?new _b({},this.store):new Ph({},this.store),this.bindConnectionEvents(this.connection)),this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(r=>{var a;let[o,{track:c}]=r;switch(o){case ht.LocalVideoTrack:Tt(a=c._hints).call(a,Hi.LOW_STREAM)?c.close():this.pendingLocalTracks.push(c);break;case ht.LocalAudioTrack:c instanceof ns?this.pendingLocalTracks=this.pendingLocalTracks.concat(c.trackList):this.pendingLocalTracks.push(c);case ht.LocalVideoLowTrack:}}),this.emit(pn.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(r=>{let[a,o]=r;Array.from(tl(o).call(o)).forEach(c=>{this.setPendingRemoteMedia(a,c)}),this.emit(pn.MediaReconnectStart,a.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.localDataChannels.length!==0&&(this.localDataChannels.forEach(r=>{this.pendingLocalDataChannels.push(r)}),this.localDataChannels.length=0),this.remoteDataChannelMap.size!==0&&(Array.from(this.remoteDataChannelMap.entries()).forEach(r=>{let[a,o]=r;Array.from(tl(o).call(o)).forEach(c=>{this.setPendingRemoteDataChannel(a,c)})}),this.remoteDataChannelMap.clear()),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),z.debug("[".concat(this.store.clientId,"] P2PChannel disconnected, waiting to reconnect.")))}hasPendingRemoteDataChannel(r,a){for(let o of this.pendingRemoteDataChannels){let{user:c,id:f}=o;if((r instanceof z0?r.uid:r)===c.uid&&f===a)return!0}return!1}setPendingRemoteDataChannel(r,a){this.hasPendingRemoteDataChannel(r,a)||this.pendingRemoteDataChannels.push({user:r,id:a})}hasPendingRemoteMedia(r,a){for(let o of this.pendingRemoteTracks){let{user:c,kind:f}=o;if((r instanceof z0?r.uid:r)===c.uid&&a===f)return!0}return!1}setPendingRemoteMedia(r,a){this.hasPendingRemoteMedia(r,a)||this.pendingRemoteTracks.push({user:r,kind:a})}restartICE(r){var a=this;return Ul(function*(){if(!a.connection||a.state!==gi.Connected||a.connection instanceof W0)return;let o=yield Dn(a.mutex.lock("From P2PChannel.restartICE")),c;try{c=yield Dn(a.connection.restartICE(r));let m=yield Dn(c.next());if(m.done)return;let v=m.value,w=yield v;switch(a.reportPCDisconnectedOrFailed(r),r){case Pa.TCP:a._pcStatsUploadType=gm.TCP_RESTART;break;case Pa.RELAY:a._pcStatsUploadType=gm.RELAY_RESTART;break;default:a._pcStatsUploadType=gm.OLD_RESTART}a._isInRestartIce=!0,c.next(w)}catch(m){var f;(f=c)===null||f===void 0||f.throw(m)}finally{o()}})()}getUplinkNetworkQuality(){if(!this.connection)return 0;let r=this.connection.getStats(),a=this.localTrackMap.get(ht.LocalVideoTrack),o=this.localTrackMap.get(ht.LocalAudioTrack),c=r.videoSend.find(F=>F.ssrc===(a==null?void 0:a.ssrcs[0].ssrcId)),f=r.audioSend.find(F=>F.ssrc===(o==null?void 0:o.ssrcs[0].ssrcId));if(!c||!f)return 1;let m=Ml(this,pn.NeedSignalRTT),v=c?c.rttMs:void 0,w=f?f.rttMs:void 0,C=v&&w?(v+w)/2:v||w,R=(C&&m?(C+m)/2:C||m)||0,x=100*r.sendPacketLossRate*.7/50+.3*R/1500,L=x<.17?1:x<.36?2:x<.59?3:x<.1?4:5,U=a==null?void 0:a.track;if(U&&U._encoderConfig&&U._hints.indexOf(Hi.SCREEN_TRACK)===-1){let F=U._encoderConfig.bitrateMax,Z=r.bitrate.actualEncoded;if(F&&Z){let W=(1e3*F-Z)/(1e3*F);return cie[W<.15?0:W<.3?1:W<.45?2:W<.6?3:4][L]}}return L}getDownlinkNetworkQuality(){if(!this.connection)return 0;let r=this.connection.getStats(),a=0;return Array.from(this.remoteUserMap.entries()).forEach(o=>{let[c]=o,f=c._audioSSRC,m=c._videoSSRC,v=r.audioRecv.find(Z=>Z.ssrc===f),w=r.videoRecv.find(Z=>Z.ssrc===m);if(!v&&!w)return void(a+=1);let C=Ml(this,pn.NeedSignalRTT),R=r.rtt,x=(R&&C?(R+C)/2:R||C)||0,L=v?v.jitterMs:void 0,U=r.recvPacketLossRate,F=.7*U*100/50+.3*x/1500;L&&(F=.6*U*100/50+.2*x/1500+.2*L/400),a+=F<.1?1:F<.17?2:F<.36?3:F<.59?4:5}),this.remoteUserMap.size>0?Math.round(a/this.remoteUserMap.size):a}async muteLocalTrack(r){return new Ct((a,o)=>{this.handleMuteLocalTrack(r,a,o)})}async replaceTrack(r,a){var o;if(z.debug("[".concat(this.store.clientId,"] P2PChannel replaceTrack from [").concat(r.getTrackId(),"] to [").concat(a.getTrackId(),"]")),!this.connection||this.state!==gi.Connected)return;let c=Array.from(this.localTrackMap.entries()).find(m=>{let[,{track:v}]=m;return r===v});if(!c)return;let f=c[0];if(r!==a&&(this.unbindLocalTrackEvents([{track:r,type:f}]),this.bindLocalTrackEvents([{track:a,type:f}]),c[1].track=a),await((o=this.connection)===null||o===void 0?void 0:o.replaceTrack(a,c[1].id)),this.isPlanB){let m=c[1];m.id=a._mediaStreamTrack.id,this.localTrackMap.set(f,m)}if(f===ht.LocalVideoTrack&&!ve("DISABLE_DUAL_STREAM_USE_ENCODING")&&Jn().supportDualStreamEncoding){let m=this.localTrackMap.get(ht.LocalVideoLowTrack);if(m){let v=r._mediaStreamTrack.clone();m.track._originMediaStreamTrack.stop(),m.track._mediaStreamTrack=v,m.track._originMediaStreamTrack=v,await new Ct((w,C)=>{this.handleReplaceTrack(m.track,w,C,!0)})}}}filterTobePublishedTracks(r,a,o){let c=[],f=this.getAllTracks();r=FS(r=r.filter(C=>f.indexOf(C)===-1));let m,v=!1,w=this.localTrackMap.get(ht.LocalAudioTrack);for(let C of r){if(C instanceof ki&&(this.localTrackMap.has(ht.LocalVideoTrack)||v?new Ke(ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(c.push({track:C,type:ht.LocalVideoTrack}),v=!0),a)){let R=this.getLowVideoTrack(C,o);c.push({track:R,type:ht.LocalVideoLowTrack})}if(C instanceof br)if(w){let R=w.track;if(R instanceof ns)PW([C]),R.addAudioTrack(C),this.bindLocalAudioTrackEvents(C,!0);else{let x=LW([R,C]);z.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(x.getTrackId(),"]")),this.replaceTrack(R,x)}}else m instanceof ns?(PW([C]),m.addAudioTrack(C)):m||!C._useAudioElement&&Jn().webAudioMediaStreamDest&&!C._bypassWebAudio?m=LW(m?[C,m]:[C]):m=C}return m&&(z.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will send audioTrack [").concat(m.getTrackId(),"]")),c.push({track:m,type:ht.LocalAudioTrack})),c}filterTobeUnpublishedTracks(r){let a=[],o=this.getAllTracks();r=FS(r=r.filter(c=>o.indexOf(c)!==-1));for(let c of r){if(c instanceof br){let f=this.localTrackMap.get(ht.LocalAudioTrack);if(!f)continue;f.track instanceof ns?(f.track.removeAudioTrack(c),this.unbindLocalAudioTrackEvents(c),f.track.trackList.length===0&&(a.push([ht.LocalAudioTrack,f]),f.track.close())):a.push([ht.LocalAudioTrack,f])}if(c instanceof ki){let f=this.localTrackMap.get(ht.LocalVideoTrack);if(!f)continue;a.push([ht.LocalVideoTrack,f]);let m=this.localTrackMap.get(ht.LocalVideoLowTrack);m&&a.push([ht.LocalVideoLowTrack,m])}}return a}filterTobePublishedDataChannels(r){return r=(r=FS(r)).filter(a=>this.localDataChannels.findIndex(o=>o.id===a.id)===-1)}filterTobeUnpublishedDataChannels(r){return r=(r=(r=FS(r)).filter(a=>this.localDataChannels.indexOf(a)!==-1)).filter(a=>a._originDataChannel)}bindLocalTrackEvents(r){r.forEach(a=>{let{track:o,type:c}=a;switch(c){case ht.LocalVideoTrack:o.addListener(Mt.GET_STATS,this.handleGetLocalVideoStats),o.addListener(Mt.GET_RTC_STATS,this.handleGetRTCStats),o.addListener(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),o.addListener(Mt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),o.addListener(Mt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),o.addListener(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack),o.addListener(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case ht.LocalAudioTrack:this.bindLocalAudioTrackEvents(o);case ht.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(r,a){r instanceof ns?r.trackList.forEach(o=>{o.addListener(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),o.addListener(Mt.GET_STATS,this.handleGetLocalAudioStats),o.addListener(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),o.addListener(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(r.addListener(Mt.GET_STATS,this.handleGetLocalAudioStats),r.addListener(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),r.addListener(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),r.addListener(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),r.addListener(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),a||(r.addListener(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack),r.addListener(Mt.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack)))}unbindLocalTrackEvents(r){r||(r=Array.from(this.localTrackMap.entries()).map(a=>{let[o,{track:c}]=a;return{track:c,type:o}})),r.forEach(a=>{let{track:o,type:c}=a;switch(c){case ht.LocalVideoTrack:o.off(Mt.GET_STATS,this.handleGetLocalVideoStats),o.off(Mt.GET_RTC_STATS,this.handleGetRTCStats),o.off(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),o.off(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),o.off(Mt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),o.off(Mt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),o.off(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack),o.off(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),o.off(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case ht.LocalAudioTrack:this.unbindLocalAudioTrackEvents(o);case ht.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(r){r instanceof ns?r.trackList.forEach(a=>{a.off(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.off(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.off(Mt.GET_STATS,this.handleGetLocalAudioStats),a.off(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.off(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(r.off(Mt.GET_STATS,this.handleGetLocalAudioStats),r.off(Mt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),r.off(Mt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),r.off(Mt.NEED_REPLACE_TRACK,this.handleReplaceTrack),r.off(Mt.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack),r.off(Mt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),r.off(Mt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(r,a){a instanceof mb&&a.addListener(Mt.GET_STATS,o=>{o(this.handleGetRemoteVideoStats(r))}),a instanceof gb&&a.addListener(Mt.GET_STATS,o=>{o(this.handleGetRemoteAudioStats(r))})}unbindRemoteTrackEvents(r){r&&r.removeAllListeners(Mt.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(r=>{let[a,o]=r;o.has(Wt.AUDIO)&&this.unbindRemoteTrackEvents(a._audioTrack),o.has(Wt.VIDEO)&&this.unbindRemoteTrackEvents(a._videoTrack)})}createGatewayPublishMessage(r,a){return r.map((o,c)=>{var f;let m,v,{track:w,type:C}=o;switch(C){case ht.LocalAudioTrack:m=pi.Audio,v={dtx:w instanceof CD&&w._config.DTX,hq:!1,lq:!1,stereo:!1,speech:!1};break;case ht.LocalVideoTrack:m=Tt(f=w._hints).call(f,Hi.SCREEN_TRACK)?pi.Screen:pi.High,v=$f($f({},Aie(w)),{},{codec:this.store.codec});break;case ht.LocalVideoLowTrack:m=pi.Low,v=$f($f({},Aie(w)),{},{codec:this.store.codec})}return{stream_type:m,attributes:v,ssrcs:a[c]}})}createGatewayUnpublishMessage(r){return r.map(a=>{var o;let c,[f,{track:m,ssrcs:v,id:w}]=a;switch(f){case ht.LocalVideoTrack:c=Tt(o=m._hints).call(o,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalAudioTrack:c=pi.Audio;break;case ht.LocalVideoLowTrack:c=pi.Low}return{stream_type:c,ssrcs:v,mid:w}})}assignLocalTracks(r,a){r.forEach((o,c)=>{let{track:f,type:m}=o;this.localTrackMap.set(m,{track:f,id:a[c].id,ssrcs:a[c].localSSRC})})}withdrawLocalTracks(r){r.forEach(a=>{let[o]=a;this.localTrackMap.delete(o)})}bindConnectionEvents(r){r.onConnectionStateChange=async a=>{if(z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onConnectionStateChange(").concat(a,")")),this.emit(pn.PeerConnectionStateChange,a),a!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),a==="connected"&&(this._restartTimer&&(clearTimeout(this._restartTimer),this._restartTimer=void 0),(this._isFirstConnected||this._isInRestartIce)&&this.reportPCStats(Date.now(),!0,this._pcStatsUploadType),this._isInRestartIce=!1,this._isFirstConnected=!1,this._isStartRestartIce=!1),ve("NEW_ICE_RESTART")){var o;if(Tt(o=this._restartStates).call(o,a)){if(this._isStartRestartIce)return;this._isStartRestartIce=!0;let c=v=>{(r.iceConnectionState==="disconnected"||r.iceConnectionState==="checking"||r.iceConnectionState==="failed")&&(z.debug("[".concat(this.store.clientId,"] [P2PChannel] start use restartICE, type is ").concat(v)),Ml(this,pn.QueryClientConnectionState)==="CONNECTED"&&this.emit(pn.RequestRestartICE,v))},f=()=>{r.iceConnectionState!=="disconnected"&&r.iceConnectionState!=="checking"&&r.iceConnectionState!=="failed"||(this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),z.debug("[".concat(this.store.clientId,"] P2PConnection disconnected timeout, force reconnect")),setTimeout(()=>this.emit(pn.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())},m=ve("ICE_RESTART_INTERVAL");return void(this._restartTimer=window.setTimeout(()=>{if(ve("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Jn().supportPCSetConfiguration)c(Pa.RELAY),this._restartTimer=window.setTimeout(f,m);else if(Pi())c(Pa.UDP),this._restartTimer=window.setTimeout(f,4e3);else{if(c(Pa.TCP),Jn().supportPCSetConfiguration)return void(this._restartTimer=window.setTimeout(()=>{c(Pa.RELAY),this._restartTimer=window.setTimeout(f,m)},m));this._restartTimer=window.setTimeout(f,m)}},800))}}else{if(a==="disconnected"&&r.iceConnectionState==="disconnected")return setTimeout(()=>{r.iceConnectionState==="disconnected"&&ve("ICE_RESTART")&&Ml(this,pn.QueryClientConnectionState)==="CONNECTED"&&this.emit(pn.RequestRestartICE)},800),void setTimeout(()=>{r.peerConnectionState==="disconnected"&&(z.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection disconnected timeout 4000ms, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),this._isInRestartIce=!1,setTimeout(()=>this.emit(pn.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())},4e3);a==="failed"&&(z.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection state failed, force reconnect")),this.reportPCDisconnectedOrFailed(),setTimeout(()=>this.emit(pn.P2PLost),0),this.iceFailedCount+=1,await this.requestReconnect())}},r.onICEConnectionStateChange=a=>{a!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(a,")")),$t.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:a,tag:vr.TRACER}).onSuccess(),this.emit(pn.IceConnectionStateChange,a)},r.onICETransportStateChange=a=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(a,")"))},r.onDTLSTransportStateChange=a=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(a,")"))},r.onDTLSTransportError=a=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(a,")"))},r.onFirstAudioDecoded=a=>{var o;let c=Array.from(tl(o=this.remoteUserMap).call(o)).find(m=>m._audioSSRC===a);var f;c&&(this.store.subscribe(c.uid,"audio",void 0,void 0,void 0,Date.now()),(f=c.audioTrack)===null||f===void 0||f.emit(ub.FIRST_FRAME_DECODED),$t.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_DECODE,fr.FIRST_AUDIO_DECODE,{peer:c._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId}))},r.onFirstAudioReceived=a=>{var o;let c=Array.from(tl(o=this.remoteUserMap).call(o)).find(f=>f._audioSSRC===a);c&&$t.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_RECEIVED,fr.FIRST_AUDIO_RECEIVED,{peer:c._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId})},r.onFirstVideoDecoded=(a,o,c)=>{this.reportVideoFirstFrameDecoded(a,o,c)},r.onFirstVideoReceived=a=>{var o;let c=Array.from(tl(o=this.remoteUserMap).call(o)).find(f=>f._videoSSRC===a);c&&$t.firstRemoteFrame(this.store.sessionId,Rs.FIRST_VIDEO_RECEIVED,fr.FIRST_VIDEO_RECEIVED,{peer:c._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId})},r.onSelectedLocalCandidateChanged=(a,o)=>{let c=a.candidateType==="relay",f=o.candidateType==="relay";o.candidateType!=="unknown"&&c===f||this.emit(pn.ConnectionTypeChange,c),z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(P0(o))," -> ").concat(JSON.stringify(P0(a)),")"))},r.onSelectedRemoteCandidateChanged=(a,o)=>{z.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(P0(o))," -> ").concat(JSON.stringify(P0(a)),")"))},r.onFirstVideoDecodedTimeout=a=>{this.reportVideoFirstFrameDecoded(a,void 0,void 0,!0)},r.getLocalVideoStats=()=>{let a=this.statsCollector.getLocalVideoTrackStats(),o=this.statsCollector.getRTCStats();return $f($f({},a),o)}}unbindConnectionEvents(r){r.onConnectionStateChange=void 0,r.onICEConnectionStateChange=void 0,r.onICETransportStateChange=void 0,r.onDTLSTransportStateChange=void 0,r.onDTLSTransportError=void 0,r.onFirstAudioDecoded=void 0,r.onFirstAudioReceived=void 0,r.onFirstVideoDecoded=void 0,r.onFirstVideoReceived=void 0,r.onSelectedLocalCandidateChanged=void 0,r.onSelectedRemoteCandidateChanged=void 0,r.onFirstVideoDecodedTimeout=void 0,r.getLocalVideoStats=void 0}filterTobeMutedTracks(r){let a=[];if(this.getAllTracks().indexOf(r)===-1)return a;let o=this.localTrackMap.get(ht.LocalAudioTrack);if(r instanceof br&&(o==null?void 0:o.track)instanceof ns)return o.track.isActive||a.push([ht.LocalAudioTrack,o]),a;let c=Array.from(this.localTrackMap.entries()).find(f=>{let[,{track:m}]=f;return r===m});if(c&&(a.push(c),c[0]===ht.LocalVideoTrack)){let f=this.localTrackMap.get(ht.LocalVideoLowTrack);f&&a.push([ht.LocalVideoLowTrack,f])}return a}filterTobeUnmutedTracks(r){let a=[],o=this.localTrackMap.get(ht.LocalAudioTrack);if(r instanceof br&&(o==null?void 0:o.track)instanceof ns)return o.track.isActive&&a.push([ht.LocalAudioTrack,o]),a;let c=Array.from(this.localTrackMap.entries()).find(f=>{let[,{track:m}]=f;return r===m});if(c)if(c[0]===ht.LocalVideoTrack){a.push(c);let f=this.localTrackMap.get(ht.LocalVideoLowTrack);f&&a.push([ht.LocalVideoLowTrack,f])}else a.push(c);return a}createMuteMessage(r){return r.map(a=>{var o;let c,[f,{track:m,ssrcs:v,id:w}]=a;switch(f){case ht.LocalAudioTrack:c=pi.Audio;break;case ht.LocalVideoTrack:c=Tt(o=m._hints).call(o,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalVideoLowTrack:c=pi.Low}return{stream_type:c,ssrcs:v,mid:w}})}createUnmuteMessage(r){return r.map(a=>{var o;let c,[f,{track:m,ssrcs:v,id:w}]=a;switch(f){case ht.LocalAudioTrack:c=pi.Audio;break;case ht.LocalVideoTrack:c=Tt(o=m._hints).call(o,Hi.SCREEN_TRACK)?pi.Screen:pi.High;break;case ht.LocalVideoLowTrack:c=pi.Low}return{stream_type:c,ssrcs:v,mid:w}})}filterTobeUnSubscribedTracks(r,a){let o=[],c=this.remoteUserMap.get(r);if(!c)return o;if(a){let f=c.get(a);if(!f)return o;o.push([r,{kind:a,id:f}])}else Array.from(c.entries()).forEach(f=>{let[m,v]=f;o.push([r,{kind:m,id:v}])});return o}filterTobeUnSubscribedDataChannels(r,a){let o=[];return a.forEach(c=>{var f;(f=this.remoteDataChannelMap.get(r))!==null&&f!==void 0&&f.has(c.id)&&o.push(c)}),o}createUnsubscribeMessage(r){let a=[];return r.forEach(o=>{let[c,{kind:f,id:m}]=o;switch(f){case Wt.VIDEO:return void(c._videoSSRC&&a.push({stream_type:Wt.VIDEO,ssrcId:c._videoSSRC}));case Wt.AUDIO:return void(c._audioSSRC&&a.push({stream_type:Wt.AUDIO,ssrcId:c._audioSSRC}))}}),a}createUnsubscribeAllMessage(r){let a=new Map;return r.forEach(o=>{let[c,{kind:f}]=o;if(a.has(c)){let m=a.get(c);f===Wt.VIDEO?m|=ys.Video:m|=ys.Audio,a.set(c,m)}else f===Wt.VIDEO?a.set(c,ys.Video):a.set(c,ys.Audio)}),{users:Array.from(a.entries()).map(o=>{let[c,f]=o;return{stream_id:c.uid,stream_type:f}})}}withdrawRemoteTracks(r){r.forEach(a=>{let[o,{kind:c}]=a,f=this.remoteUserMap.get(o);f&&(f.delete(c),Array.from(f.entries()).length===0&&this.remoteUserMap.delete(o))})}async updateBitrateLimit(r){let a=this.localTrackMap.get(ht.LocalVideoTrack),o=this.localTrackMap.get(ht.LocalVideoLowTrack);a&&await a.track.setBitrateLimit(r.uplink),o&&r.low_stream_uplink&&await o.track.setBitrateLimit({max_bitrate:r.low_stream_uplink.bitrate,min_bitrate:r.low_stream_uplink.bitrate||0})}isP2PDisconnected(){return this.connection?this.connection.peerConnectionState!=="connected":!0}mapPubResToRemoteConfig(r,a){return r.map((o,c)=>{var f;let{stream_type:m}=o;return(f=a.find(v=>{let{stream_type:w}=v;return m===w}))===null||f===void 0?void 0:f.attributes})}async tryToUnmuteAudio(r){for(let o=0;o{let[,{id:v}]=m;return v})));let f=this.createUnmuteMessage(c);return void await Li(this,pn.RequestUnmuteLocal,f)}}bindStatsUploaderEvents(){this.statsUploader.requestStats=()=>this.getStats(),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=r=>{var a;return!((a=this.connection)===null||a===void 0||!a.getRemoteVideoIsReady(r))},this.statsUploader.requestUpload=(r,a)=>this.emit(pn.RequestUpload,r,a),this.statsUploader.requestUploadStats=r=>this.emit(pn.RequestUploadStats,r),this.statsUploader.requestAllTracks=()=>this.getAllTracks()}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await vs(j8(this.dtlsFailedCount,kr)),this.emit(pn.RequestReconnect)}async reconnectP2P(){let r=Array.from(this.localTrackMap.entries()),a=this.createGatewayUnpublishMessage(r);Array.from(this.remoteUserMap.entries()),a.length>0&&await Kr(this,pn.RequestUnpublishForReconnectPC,a),this.disconnectForReconnect(),this.emit(pn.RequestReconnectPC)}canPublishLowStream(){return this.localTrackMap.has(ht.LocalVideoTrack)||this.pendingLocalTracks.some(r=>r instanceof ki)}throwIfTrackTypeNotMatch(r){if(r.filter(a=>a instanceof ki).length>1)throw new Ke(ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(r.filter(a=>a instanceof br).length>1&&(r.some(a=>a instanceof br&&a._bypassWebAudio)||!Jn().webAudioMediaStreamDest))throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(let a of r){if(a instanceof ki&&this.pendingLocalTracks.some(o=>o instanceof ki))throw new Ke(ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(a instanceof br&&this.pendingLocalTracks.some(o=>o instanceof br)&&(!Jn().webAudioMediaStreamDest||a._bypassWebAudio||this.pendingLocalTracks.some(o=>o instanceof br&&o._bypassWebAudio)))throw new Ke(ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(r,a){let o=!ve("DISABLE_DUAL_STREAM_USE_ENCODING")&&Jn().supportDualStreamEncoding,c=$f($f({},{width:160,height:120,framerate:15,bitrate:50}),a),f;f=o?r._mediaStreamTrack.clone():OW(r,c);let m=Di(8,"track-low-"),v=new ki(f,$f($f({},o&&{scaleResolutionDownBy:oG(c,r)}),{},{frameRate:c.framerate,bitrateMax:c.bitrate,bitrateMin:c.bitrate}),void 0,void 0,m);return v.on(i_.TRANSCEIVER_UPDATED,w=>{r._updateRtpTransceiver(w,cb.LOW_STREAM)}),v._hints.push(Hi.LOW_STREAM),r.on("sei-to-send",w=>{v.emit("sei-to-send",w)}),r.addListener(Mt.NEED_CLOSE,()=>{v.close()}),v}async globalLock(){return this.mutex.lock("From P2PChannel.globalLock")}async reportPCStats(r,a,o){let c=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;if(this.connection&&this.connection instanceof Ph){var f,m,v,w;let C=this.store.keyMetrics.descriptionStart||0,{iceConnectionState:R,dtlsTransportState:x,peerConnectionState:L}=this.connection,{local:U,remote:F}=await this.connection.getSelectedCandidatePair();$t.pcStats(this.store.sessionId,{startTime:C,eventElapse:r-C||0,iceconnectionsate:R,dtlsstate:x,connectionstate:L,intSucc:a?1:2,error:c,selectedLocalCandidateProtocol:(f=U==null?void 0:U.protocol)!==null&&f!==void 0?f:"",selectedLocalCandidateType:(m=U.candidateType)!==null&&m!==void 0?m:"",selectedLocalCandidateAddress:"".concat(U.address,":").concat(U.port),selectedRemoteCandidateProtocol:(v=F.protocol)!==null&&v!==void 0?v:"",selectedRemoteCandidateType:(w=F.candidateType)!==null&&w!==void 0?w:"",selectedRemoteCandidateAddress:"".concat(F.address,":").concat(F.port),restartCnt:o})}}reportVideoFirstFrameDecoded(r,a,o,c){var f;let m=Array.from(tl(f=this.remoteUserMap).call(f)).find(v=>v._videoSSRC===r);if(m){c||this.store.subscribe(m.uid,"video",void 0,void 0,void 0,void 0,Date.now());let v=this.store.keyMetrics,w=v.subscribe.find(C=>C.userId===m.uid&&C.type==="video");$t.firstRemoteVideoDecode(this.store.sessionId,Rs.FIRST_VIDEO_DECODE,fr.FIRST_VIDEO_DECODE,{peer:m._uintid,videowidth:a,videoheight:o,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,r),subscribeRequestid:r,p2pid:this.store.p2pId,apEnd:v.requestAPEnd||0,apStart:v.requestAPStart||0,joinGwEnd:v.joinGatewayEnd||0,joinGwStart:v.joinGatewayStart||0,pcEnd:v.peerConnectionEnd||0,pcStart:v.peerConnectionStart||0,subscriberEnd:(w==null?void 0:w.subscribeEnd)||0,subscriberStart:(w==null?void 0:w.subscribeStart)||0,videoAddNotify:(w==null?void 0:w.streamAdded)||0,state:c?1:0})}}async remoteMediaSsrcChanged(r,a,o){if(!this.connection)return!1;let c=this.remoteUserMap.get(r);if(!c)return!1;let f=c.get(a);if(!f)return!1;let m=await this.connection.getRemoteSSRC(f);return m!==void 0&&m!==o}resetConnection(r){z.debug("[".concat(this.store.clientId,"] [P2PChannel] reset connection to ").concat(r)),this.state===gi.Connected?(z.debug("[".concat(this.store.clientId,"] [P2PChannel] fallback to websocket but P2PChannel state still connected, disconnect first")),this.disconnectForReconnect()):(this.connection&&(this.connection.close(),this.unbindConnectionEvents(this.connection),this.connection=void 0),this.shouldForwardP2PCreation&&(this.connection=r===yie.datachannel?new W0({},this.store):this.isPlanB?new _b({},this.store):new Ph({},this.store),this.bindConnectionEvents(this.connection)))}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(r=>{let[a,{track:o}]=r;a===ht.LocalVideoLowTrack?o._updateRtpTransceiver(void 0,cb.LOW_STREAM):o._updateRtpTransceiver(void 0)})}reportPCDisconnectedOrFailed(r){this.connection&&this.connection instanceof Ph&&(this.connection.iceConnectionState!=="disconnected"&&this.connection.iceConnectionState!=="checking"&&this.connection.iceConnectionState!=="failed"||(this._isFirstConnected?(this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),this._isFirstConnected=!1):this._pcStatsUploadType===gm.TCP_RESTART&&r===Pa.RELAY?this.reportPCStats(Date.now(),!1,this._pcStatsUploadType):this.reportPCStats(Date.now(),!1,gm.DISCONNECTED_OR_FAILED)))}},vt(kn.prototype,"startP2PConnection",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"startP2PConnection"),kn.prototype),vt(kn.prototype,"connect",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"connect"),kn.prototype),vt(kn.prototype,"updateRemoteRTPCapabilities",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"updateRemoteRTPCapabilities"),kn.prototype),vt(kn.prototype,"preConnect",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"preConnect"),kn.prototype),vt(kn.prototype,"publishDataChannel",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"publishDataChannel"),kn.prototype),vt(kn.prototype,"unpublish",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"unpublish"),kn.prototype),vt(kn.prototype,"unpublishDataChannel",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"unpublishDataChannel"),kn.prototype),vt(kn.prototype,"unpublishLowStream",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"unpublishLowStream"),kn.prototype),vt(kn.prototype,"subscribeDataChannel",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"subscribeDataChannel"),kn.prototype),vt(kn.prototype,"subscribe",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"subscribe"),kn.prototype),vt(kn.prototype,"massSubscribe",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"massSubscribe"),kn.prototype),vt(kn.prototype,"unsubscribe",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"unsubscribe"),kn.prototype),vt(kn.prototype,"unsubscribeDataChannel",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"unsubscribeDataChannel"),kn.prototype),vt(kn.prototype,"massUnsubscribe",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"massUnsubscribe"),kn.prototype),vt(kn.prototype,"muteRemote",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"muteRemote"),kn.prototype),vt(kn.prototype,"unmuteRemote",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"unmuteRemote"),kn.prototype),vt(kn.prototype,"hasRemoteMediaWithLock",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"hasRemoteMediaWithLock"),kn.prototype),vt(kn.prototype,"disconnectForReconnect",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"disconnectForReconnect"),kn.prototype),vt(kn.prototype,"updateBitrateLimit",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"updateBitrateLimit"),kn.prototype),vt(kn.prototype,"remoteMediaSsrcChanged",[ba],Object.getOwnPropertyDescriptor(kn.prototype,"remoteMediaSsrcChanged"),kn.prototype),kn);function ba(r,a,o){let c=r[a];if(typeof c!="function")throw new Error("Cannot use mutex on object property.");return o.value=async function(){let f=this.mutex,m=await f.lock("From P2PChannel.".concat(a));try{for(var v=arguments.length,w=new Array(v),C=0;C>>3){case 0:break e;case 1:c.code=qf(o);break;case 2:c.msg=Ple(o,qf(o));break;case 3:{let m=j4e(o);c.data=k4e(o),o.limit=m;break}default:Ale(o,7&f)}}return c}({bytes:a=r,offset:0,limit:a.length});var a}function k4e(r){let a={};e:for(;!Ole(r);){let o=qf(r);switch(o>>>3){case 0:break e;case 1:a.requestId=Ple(r,qf(r));break;case 2:a.requestType=qf(r)>>>0;break;case 3:a.scorePorn=BW(r);break;case 4:a.scoreSexy=BW(r);break;case 5:a.scoreNeutral=BW(r);break;case 6:a.requestScene=qf(r)>>>0;break;case 7:a.scene=qf(r)>>>0;break;default:Ale(r,7&o)}}return a}function M4e(r,a){let o=r.service;o!==void 0&&(yi(a,8),yi(a,o));let c=r.vendor;c!==void 0&&(yi(a,16),yi(a,c));let f=r.token;f!==void 0&&(yi(a,26),Kf(a,f));let m=r.callbackUrl;m!==void 0&&(yi(a,34),Kf(a,m))}function j4e(r){let a=qf(r),o=r.limit;return r.limit=r.offset+a,o}function Ale(r,a){switch(a){case 0:for(;128&Lle(r););break;case 2:UW(r,qf(r));break;case 5:UW(r,4);break;case 1:UW(r,8);break;default:throw new Error("Unimplemented type: "+a)}}let U4e=new Float32Array(1);new Uint8Array(U4e.buffer);let jW=new Float64Array(1),ol=new Uint8Array(jW.buffer);function wb(r){return{low:r|=0,high:r>>31,unsigned:r>=0}}let Ile=[];function Nle(){let r=Ile.pop();return r?(r.offset=r.limit=0,r):{bytes:new Uint8Array(64),offset:0,limit:0}}function F4e(r){Ile.push(r)}function UW(r,a){if(r.offset+a>r.limit)throw new Error("Skip past limit");r.offset+=a}function Ole(r){return r.offset>=r.limit}function Sb(r,a){let o=r.bytes,c=r.offset,f=r.limit,m=c+a;if(m>o.length){let v=new Uint8Array(2*m);v.set(o),r.bytes=v}return r.offset=m,m>f&&(r.limit=m),c}function FW(r,a){let o=r.offset;if(o+a>r.limit)throw new Error("Read past limit");return r.offset+=a,o}function Ple(r,a){let o=FW(r,a),c=String.fromCharCode,f=r.bytes,m="�",v="";for(let w=0;w=a?v+=m:(C=f[w+o+1],(192&C)!=128?v+=m:(L=(31&U)<<6|63&C,L<128?v+=m:(v+=c(L),w++))):(240&U)==224?w+2>=a?v+=m:(C=f[w+o+1],R=f[w+o+2],(49344&(C|R<<8))!=32896?v+=m:(L=(15&U)<<12|(63&C)<<6|63&R,L<2048||L>=55296&&L<=57343?v+=m:(v+=c(L),w+=2))):(248&U)==240?w+3>=a?v+=m:(C=f[w+o+1],R=f[w+o+2],x=f[w+o+3],(12632256&(C|R<<8|x<<16))!=8421504?v+=m:(L=(7&U)<<18|(63&C)<<12|(63&R)<<6|63&x,L<65536||L>1114111?v+=m:(L-=65536,v+=c(55296+(L>>10),56320+(1023&L)),w+=3))):v+=m:v+=c(U)}return v}function Kf(r,a){let o=a.length,c=0;for(let v=0;v=55296&&w<=56319&&v+1=55296&&w<=56319&&v+1>6&31|192:(w<65536?m[f++]=w>>12&15|224:(m[f++]=w>>18&7|240,m[f++]=w>>12&63|128),m[f++]=w>>6&63|128),m[f++]=63&w|128)}}function B4e(r,a){let o=Sb(r,a.limit),c=r.bytes,f=a.bytes;for(let m=0,v=a.limit;m>>=0;a>=128;)Dle(r,127&a|128),a>>>=7;Dle(r,a)}function $0(r,a){let o=a.low>>>0,c=(a.low>>>28|a.high<<4)>>>0,f=a.high>>>24,m=f===0?c===0?o<16384?o<128?1:2:o<1<<21?3:4:c<16384?c<128?5:6:c<1<<21?7:8:f<128?9:10,v=Sb(r,m),w=r.bytes;switch(m){case 10:w[v+9]=f>>>7&1;case 9:w[v+8]=m!==9?128|f:127&f;case 8:w[v+7]=m!==8?c>>>21|128:c>>>21&127;case 7:w[v+6]=m!==7?c>>>14|128:c>>>14&127;case 6:w[v+5]=m!==6?c>>>7|128:c>>>7&127;case 5:w[v+4]=m!==5?128|c:127&c;case 4:w[v+3]=m!==4?o>>>21|128:o>>>21&127;case 3:w[v+2]=m!==3?o>>>14|128:o>>>14&127;case 2:w[v+1]=m!==2?o>>>7|128:o>>>7&127;case 1:w[v]=m!==1?128|o:127&o}}function kle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}let V4e=new Map([["moderation",1],["supervise",2]]);class WD extends nr{get connectionState(){return this._connectionState}set connectionState(a){if(this._connectionState===a)return;let o=this._connectionState;this._connectionState=a,this.emit(As.CONNECTION_STATE_CHANGE,o,a)}get inspectType(){return this._inspectType}set inspectType(a){var o;this._inspectMode=_c(o=a.map(c=>V4e.get(c)||0)).call(o,(c,f)=>c+f),this._inspectType=a}get quality(){return this._quality}set quality(a){this._quality=a>1?1:a<.1?.1:a,this.qualityTimer&&(window.clearTimeout(this.qualityTimer),this.qualityTimer=null),this._quality>=1||(this.qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this.qualityRatio},6e4))}constructor(a){super(),X(this,"name","AgoraRTCVideoContentInspect"),X(this,"_connectionState",mu.CONNECTING),X(this,"_innerConnectionState",void 0),X(this,"sequence",0),X(this,"inspectStartTime",void 0),X(this,"workerManagerConnection",void 0),X(this,"workerConnection",void 0),X(this,"workerMessageLengthLimit",void 0),X(this,"inspectIntervalMinimum",void 0),X(this,"qualityRatio",void 0),X(this,"_connectInfo",void 0),X(this,"_cancelTokenSource",Io.CancelToken.source()),X(this,"_retryConfig",void 0),X(this,"wmSequence",0),X(this,"inspectInterval",void 0),X(this,"inspectTimer",null),X(this,"ossFilePrefix",void 0),X(this,"extraInfo",void 0),X(this,"_inspectType",void 0),X(this,"_inspectMode",void 0),X(this,"_quality",1),X(this,"qualityTimer",null),X(this,"_inspectId",void 0),X(this,"_needWorkUrlOnly",!1),X(this,"inspectImage",()=>{if(this.connectionState!==mu.CONNECTED)throw new De(ce.OPERATION_ABORTED,"content inspect service connection status is ".concat(this.connectionState));this.inspectTimer&&(window.clearInterval(this.inspectTimer),this.inspectTimer=null),this.inspectTimer=window.setInterval(()=>{this.connectionState===mu.CONNECTED?this.requestToInspectImage():z.debug("[".concat(this._inspectId,"] Inspect State is not connected , "),this.connectionState)},this.inspectInterval{this._innerConnectionState=o,z.debug("[".concat(this._inspectId,"] Inspect operation :").concat(gu[o]," ").concat(c||""))}),this.handleWorkerManagerEvents(),this.workerConnection=new E3("worker-"+this._inspectId,kr),this.handleWorkerEvents()}async init(a,o){this.emit(As.STATE_CHANGE,gu.CONNECT_AP),this._connectInfo=a;let c=this._cancelTokenSource.token;return this._retryConfig=o,new Ct((f,m)=>{this.on(As.CONNECTION_STATE_CHANGE,(v,w)=>{w===mu.CONNECTED&&f()}),this.requestAP(a,c,o).then(v=>{this.connectWorkerManager(v)}).catch(v=>{m(v)})})}async requestAP(a,o,c){let f=ve("WEBCS_DOMAIN").map(w=>"https://".concat(w,"/api/v1")),m=await function(w,C,R,x){let{appId:L,areaCode:U,cname:F,sid:Z,token:W,uid:K}=C;qS++;let oe="image_moderation_api",ue={service_name:oe,json_body:JSON.stringify({appId:L,areaCode:U,cname:F,command:"allocateEdge",requestId:qS,seq:qS,sid:Z,token:W,ts:Date.now(),uid:K+""})},xe,Oe,ke=w[0];return wh(async()=>{xe=Date.now();let He=await Th(ke,{data:ue,cancelToken:R,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(Oe=Date.now()-xe,He.code!==0){let zt=new De(ce.UNEXPECTED_RESPONSE,"image inspect ap error, code"+He.code,{retry:!0,responseTime:Oe});throw z.error(zt.toString()),zt}let lt=JSON.parse(He.json_body);if(lt.code!==200){let zt=new De(ce.UNEXPECTED_RESPONSE,"image inspect ap error, code: ".concat(lt.code,", reason: ").concat(lt.reason),{code:lt.code,responseTime:Oe});throw z.error(zt.toString()),zt}if(!lt.servers||!Array.isArray(lt.servers)||lt.servers.length===0){let zt=new De(ce.UNEXPECTED_RESPONSE,"image inspect ap empty server",{code:lt.code,responseTime:Oe});throw z.error(zt.toString()),zt}let ut=ve("VIDEO_INSPECT_WORKER_MANAGER_HOST"),ft=ve("VIDEO_INSPECT_WORKER_MANAGER_PORT");return{addressList:lt.servers.map(zt=>{let{address:$n,wss:hi}=zt;if($n&&hi)return"wss://".concat($n.replace(/\./g,"-"),".").concat(ut,":").concat(ft||hi)}).filter(zt=>!!zt),workerToken:lt.workerToken,vid:lt.vid,responseTime:Oe}},(He,lt)=>($t.apworkerEvent(Z,{success:!0,sc:200,serviceName:oe,responseDetail:JSON.stringify(He.addressList),firstSuccess:lt===0,responseTime:Oe,serverIp:w[lt%w.length]}),!1),(He,lt)=>($t.apworkerEvent(Z,{success:!1,sc:He.data&&He.data.code||200,serviceName:oe,responseTime:Oe,serverIp:w[lt%w.length]}),!!(He.code!==ce.OPERATION_ABORTED&&He.code!==ce.UNEXPECTED_RESPONSE||He.data&&He.data.retry)&&(ke=w[(lt+1)%w.length],!0)),x)}(f,a,o,c);this.emit(As.STATE_CHANGE,gu.AP_CONNECTED);let{addressList:v}=m;return this.wmSequence++,v}async connectWorkerManager(a){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._needWorkUrlOnly=o,this.emit(As.STATE_CHANGE,gu.CONNECT_WORKER_MANAGER),await this.workerManagerConnection.init(a,1e4)}async connectWorker(a){await this.workerConnection.init([a])}handleWorkerManagerEvents(){this.workerManagerConnection.on(En.CONNECTED,async()=>{this.emit(As.STATE_CHANGE,gu.WORKER_MANAGER_CONNECTED,this.workerManagerConnection.url),this.workerManagerConnection.sendMessage({appId:this._connectInfo.appId,cname:this._connectInfo.cname,uid:this._connectInfo.uid+"",sdkVersion:"4.21.0",sid:this._connectInfo.sid,seq:this.wmSequence,ts:Number(Date.now()),requestId:Math.floor(1e12*Math.random()),allocate:!0,clientRequest:{command:"join"}},!0)}),this.workerManagerConnection.on(En.CLOSED,()=>{this._innerConnectionState{this._innerConnectionState{this._innerConnectionState{this.emit(As.STATE_CHANGE,gu.GET_WORKER_MANAGER_RESPONSE);let o=this.workerManagerConnection.url;this.workerManagerConnection.close();let c=JSON.parse(a.data);if(c.code!==200)throw z.error("[".concat(this._inspectId,"] Unexpected code ").concat(c.code," from worker manager")),new De(ce.UNEXPECTED_RESPONSE,"response code of worker is unexpected",c);if(!(c.serverResponse&&c.serverResponse.portWss&&o))throw z.error("[".concat(this._inspectId,"] Unexpected content from worker manager : ").concat(JSON.stringify(c))),new De(ce.UNEXPECTED_RESPONSE,"response content of worker is unexpected",c);{let f=ve("VIDEO_INSPECT_WORKER_PORT")||c.serverResponse.portWss,m=o.replace(/:\d+\/?$/,":".concat(f));this.emit(As.STATE_CHANGE,gu.CONNECT_WORKER,m),this._needWorkUrlOnly?this.emit(As.REQUEST_NEW_WORKER_URL,m):await this.connectWorker(m)}}),this.workerManagerConnection.on(En.WILL_RECONNECT,(a,o,c)=>{c(a)}),this.workerManagerConnection.on(En.REQUEST_NEW_URLS,(a,o)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(a).catch(o)})}handleWorkerEvents(){this.workerConnection.on(En.CONNECTED,async()=>{this.emit(As.STATE_CHANGE,gu.WORKER_CONNECTED,this.workerConnection.url),this.connectionState=mu.CONNECTED}),this.workerConnection.on(En.ON_MESSAGE,async a=>{if(a.data instanceof ArrayBuffer){let c=D4e(new Uint8Array(a.data));if(ve("SHOW_VIDEO_INSPECT_WORKER_MESSAGE")&&z.debug("[".concat(this._inspectId,"] Response message for worker of inspect content "),JSON.stringify(c)),c.code===200){if(Array.isArray(this.inspectType)&&this.inspectType.length===1&&this.inspectType[0]==="supervise")return void this.emit(As.INSPECT_RESULT,void 0,void 0);if(c.data&&c.data.scorePorn&&c.data.scoreSexy&&c.data.scoreNeutral){var o;let f={porn:c.data.scorePorn,sexy:c.data.scoreSexy,neutral:c.data.scoreNeutral},m=_c(o=Object.keys(f)).call(o,(w,C)=>f[w]>f[C]?w:C,"porn"),v=Object.keys(f).find(w=>w===m);this.emit(As.INSPECT_RESULT,v)}else this.emit(As.INSPECT_RESULT,void 0,new De(ce.UNEXPECTED_RESPONSE,c.code+"","There is an unexpected data on message"))}else this.emit(As.INSPECT_RESULT,void 0,new De(ce.UNEXPECTED_RESPONSE,c.code+"",c.msg))}else z.error("[".concat(this._inspectId,"] Unexpected message type from worker")),this.emit(As.INSPECT_RESULT,void 0,new De(ce.UNEXPECTED_RESPONSE,"invalid worker message type"))}),this.workerConnection.on(En.CLOSED,()=>{this.connectionState=mu.CLOSED}),this.workerConnection.on(En.FAILED,()=>{this.connectionState=mu.CLOSED}),this.workerConnection.on(En.RECONNECTING,()=>{this.connectionState=this.connectionState===mu.CONNECTED?mu.RECONNECTING:mu.CONNECTING}),this.workerConnection.on(En.WILL_RECONNECT,(a,o,c)=>{a==="recover"&&c(a),c("tryNext")}),this.workerConnection.on(En.REQUEST_NEW_URLS,(a,o)=>{this.workerManagerConnection.close(),this.once(As.REQUEST_NEW_WORKER_URL,c=>{a([c])}),this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(c=>{this.connectWorkerManager(c,!0)}).catch(c=>{o(c)})})}static intToLong(a){return{low:a|=0,high:a>>31,unsigned:a>=0}}async requestToInspectImage(){this.sequence++;let a=Ml(this,As.CLIENT_LOCAL_VIDEO_TRACK),o={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(a){if(!a.isPlaying)return void this.emit(As.INSPECT_RESULT,void 0,new De(ce.INVALID_OPERATION,"Only the track being played can be inspected"));let c=await this.generateRequestData(a,o);this.workerConnection.sendMessage(c,!0,!0)}else this.emit(As.INSPECT_RESULT,void 0,new De(ce.INVALID_OPERATION,"Only the track being published can be inspected"))}async generateRequestData(a,o){let{appId:c,cname:f,cid:m,vid:v,sid:w,uid:C}=o,R=Date.now(),x=await a.getCurrentFrameImage("image/jpeg",this.quality),L=await Mse(x,c,f),U=this.sequence+"-"+m+"-"+C+"-"+R+"-"+Di(12,""),F={appId:c,cid:m,cname:f,deviceId:"",elapse:WD.intToLong(Number(R-this.inspectStartTime)),fileSize:L.byteLength,jpgEncryption:2,height:x.height,width:x.width,jpg:L,networkType:6,osType:7,requestId:U,sdkVersion:"4.21.0",sequence:this.sequence,sid:w,timestamp:WD.intToLong(R),uid:C,vid:v,service:this._inspectMode,callbackData:this.extraInfo,ossFilePrefix:this.ossFilePrefix};this.extraInfo===void 0&&delete F.callbackData,this.ossFilePrefix===void 0&&delete F.ossFilePrefix;let Z=L4e(F);if(Z.byteLength>>3){case 0:break e;case 1:c.code=nI(o);break;case 2:c.msg=Ule(o,nI(o));break;case 3:c.requestId=Ule(o,nI(o));break;case 4:c.timestamp=K4e(o,!1);break;default:G4e(o,7&f)}}return c}({bytes:a=r,offset:0,limit:a.length});var a}function G4e(r,a){switch(a){case 0:for(;128&Nu(r););break;case 2:zW(r,nI(r));break;case 5:zW(r,4);break;case 1:zW(r,8);break;default:throw new Error("Unimplemented type: "+a)}}function bb(r){return{low:r|=0,high:r>>31,unsigned:r>=0}}let W4e=[];function zW(r,a){if(r.offset+a>r.limit)throw new Error("Skip past limit");r.offset+=a}function $4e(r){return r.offset>=r.limit}function $D(r,a){let o=r.bytes,c=r.offset,f=r.limit,m=c+a;if(m>o.length){let v=new Uint8Array(2*m);v.set(o),r.bytes=v}return r.offset=m,m>f&&(r.limit=m),c}function Mle(r,a){let o=r.offset;if(o+a>r.limit)throw new Error("Read past limit");return r.offset+=a,o}function jle(r,a){let o=$D(r,a.length);r.bytes.set(a,o)}function Ule(r,a){let o=Mle(r,a),c=String.fromCharCode,f=r.bytes,m="�",v="";for(let w=0;w=a?v+=m:(C=f[w+o+1],(192&C)!=128?v+=m:(L=(31&U)<<6|63&C,L<128?v+=m:(v+=c(L),w++))):(240&U)==224?w+2>=a?v+=m:(C=f[w+o+1],R=f[w+o+2],(49344&(C|R<<8))!=32896?v+=m:(L=(15&U)<<12|(63&C)<<6|63&R,L<2048||L>=55296&&L<=57343?v+=m:(v+=c(L),w+=2))):(248&U)==240?w+3>=a?v+=m:(C=f[w+o+1],R=f[w+o+2],x=f[w+o+3],(12632256&(C|R<<8|x<<16))!=8421504?v+=m:(L=(7&U)<<18|(63&C)<<12|(63&R)<<6|63&x,L<65536||L>1114111?v+=m:(L-=65536,v+=c(55296+(L>>10),56320+(1023&L)),w+=3))):v+=m:v+=c(U)}return v}function K0(r,a){let o=a.length,c=0;for(let v=0;v=55296&&w<=56319&&v+1=55296&&w<=56319&&v+1>6&31|192:(w<65536?m[f++]=w>>12&15|224:(m[f++]=w>>18&7|240,m[f++]=w>>12&63|128),m[f++]=w>>6&63|128),m[f++]=63&w|128)}}function Nu(r){return r.bytes[Mle(r,1)]}function Fle(r,a){let o=$D(r,1);r.bytes[o]=a}function nI(r){let a,o=0,c=0;do a=Nu(r),o<32&&(c|=(127&a)<>>=0;a>=128;)Fle(r,127&a|128),a>>>=7;Fle(r,a)}function K4e(r,a){let o,c=0,f=0,m=0;return o=Nu(r),c=127&o,128&o&&(o=Nu(r),c|=(127&o)<<7,128&o&&(o=Nu(r),c|=(127&o)<<14,128&o&&(o=Nu(r),c|=(127&o)<<21,128&o&&(o=Nu(r),f=127&o,128&o&&(o=Nu(r),f|=(127&o)<<7,128&o&&(o=Nu(r),f|=(127&o)<<14,128&o&&(o=Nu(r),f|=(127&o)<<21,128&o&&(o=Nu(r),m=127&o,128&o&&(o=Nu(r),m|=(127&o)<<7))))))))),{low:c|f<<28,high:f>>>4|m<<24,unsigned:a}}function q0(r,a){let o=a.low>>>0,c=(a.low>>>28|a.high<<4)>>>0,f=a.high>>>24,m=f===0?c===0?o<16384?o<128?1:2:o<1<<21?3:4:c<16384?c<128?5:6:c<1<<21?7:8:f<128?9:10,v=$D(r,m),w=r.bytes;switch(m){case 10:w[v+9]=f>>>7&1;case 9:w[v+8]=m!==9?128|f:127&f;case 8:w[v+7]=m!==8?c>>>21|128:c>>>21&127;case 7:w[v+6]=m!==7?c>>>14|128:c>>>14&127;case 6:w[v+5]=m!==6?c>>>7|128:c>>>7&127;case 5:w[v+4]=m!==5?128|c:127&c;case 4:w[v+3]=m!==4?o>>>21|128:o>>>21&127;case 3:w[v+2]=m!==3?o>>>14|128:o>>>14&127;case 2:w[v+1]=m!==2?o>>>7|128:o>>>7&127;case 1:w[v]=m!==1?128|o:127&o}}let Ble={},Vle={},KD=4294967296,q4e=KD*KD,zle=q4e/2;Gle(0,!0);let Hle=Gle(0),Y4e=iI(0,-2147483648,!1),X4e=iI(-1,2147483647,!1);function Gle(r,a){let o,c,f;return a?(f=0<=(r>>>=0)&&r<256)&&(c=Vle[r],c)?c:(o=iI(r,0,!0),f&&(Vle[r]=o),o):(f=-128<=(r|=0)&&r<128)&&(c=Ble[r],c)?c:(o=iI(r,r<0?-1:0,!1),f&&(Ble[r]=o),o)}function iI(r,a,o){return{low:0|r,high:0|a,unsigned:!!o}}function J4e(r,a){if(isNaN(r))return Hle;{if(r<=-zle)return Y4e;if(r+1>=zle)return X4e}return r<0?Hle:iI(r%KD|0,r/KD|0,a)}function Wle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}class HW extends nr{get connectionState(){return this._connectionState}set connectionState(a){if(this._connectionState===a)return;let o=this._connectionState;this._connectionState=a,this.emit(bh.CONNECTION_STATE_CHANGE,a,o)}get quality(){return this._quality}set quality(a){this._quality=a>1?1:a<.1?.1:a,this._qualityTimer&&(window.clearTimeout(this._qualityTimer),this._qualityTimer=null),this._quality>=1||(this._qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this._qualityRatio},6e4))}constructor(a){var o;super(),X(this,"name","AgoraRTCImageModeration"),X(this,"_connectionState",hd.CONNECTING),X(this,"_sequence",0),X(this,"_moderationStartTime",void 0),X(this,"_workerConnection",void 0),X(this,"_workerMessageLengthLimit",void 0),X(this,"_qualityRatio",void 0),X(this,"_connectInfo",void 0),X(this,"_cancelTokenSource",Io.CancelToken.source()),X(this,"_retryConfig",void 0),X(this,"_moderationInterval",void 0),X(this,"_moderationTimer",null),X(this,"_moderationMode",1),X(this,"_quality",1),X(this,"_qualityTimer",null),X(this,"_ticket",void 0),X(this,"_moderationIntervalMinimum",void 0),X(this,"_uploadFailedNum",0),X(this,"_uploadNum",0),X(this,"_uploadTimer",null),X(this,"_extraInfo",void 0),X(this,"_vendor",""),X(this,"_encoder",new TextEncoder),X(this,"_moderationId",void 0),X(this,"inspectImage",()=>{if(this.connectionState!==hd.CONNECTED)throw new De(ce.OPERATION_ABORTED,"image moderation service connection status is ".concat(this.connectionState));this._moderationTimer&&(window.clearInterval(this._moderationTimer),this._moderationTimer=null),this._moderationTimer=window.setInterval(()=>{this.connectionState===hd.CONNECTED?this.requestToInspectImage():z.debug("[".concat(this._moderationId,"] Moderation State is not connected , "),this.connectionState)},this._moderationInterval{z.debug("[".concat(this._moderationId,"] Moderation operation :").concat(WS[c]," ").concat(f||""))}),this.handleWorkerEvents()}async init(a,o){this.emit(bh.STATE_CHANGE,WS.CONNECT_AP),this._connectInfo=a;let c=this._cancelTokenSource.token;return this._retryConfig=o,new Ct((f,m)=>{this.on(bh.CONNECTION_STATE_CHANGE,(v,w)=>{v===hd.CONNECTED&&f()}),this.requestAP(a,c,o).then(v=>{this.connectWorker(v)}).catch(v=>{m(v)})})}updateConfig(a){var o;this._moderationInterval=(o=a.interval)!==null&&o!==void 0?o:1e3,a.extraInfo&&(this._extraInfo=this._encoder.encode(a.extraInfo)),a.vendor&&(this._vendor=a.vendor),z.debug("[".concat(this._moderationId,"] updateConfig: ").concat(JSON.stringify(a))),this.connectionState===hd.CONNECTED&&this.inspectImage()}async requestAP(a,o,c){let f=ve("WEBCS_DOMAIN").map(C=>"https://".concat(C,"/api/v1")),m=await function(C,R,x,L){let{appId:U,areaCode:F,cname:Z,sid:W,token:K,uid:oe}=R;qS++;let ue="moderation_plugin",xe={service_name:ue,json_body:JSON.stringify({appId:U,areaCode:F,cname:Z,command:"allocateEdge",requestId:qS,seq:qS,sid:W,appToken:K,ts:Date.now(),uid:oe+""})},Oe,ke,He=C[0];return wh(async()=>{Oe=Date.now();let lt=await Th(He,{data:xe,cancelToken:x,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(ke=Date.now()-Oe,lt.code!==0){let zt=new De(ce.UNEXPECTED_RESPONSE,"moderation plugin ap error, code"+lt.code,{retry:!0,responseTime:ke});throw z.error(zt.toString()),zt}let ut=JSON.parse(lt.json_body);if(ut.code!==200){let zt=new De(ce.UNEXPECTED_RESPONSE,"moderation plugin ap error, code: ".concat(ut.code,", reason: ").concat(ut.reason),{code:ut.code,responseTime:ke});throw z.error(zt.toString()),zt}if(!ut.servers||!Array.isArray(ut.servers)||ut.servers.length===0){let zt=new De(ce.UNEXPECTED_RESPONSE,"moderation plugin ap empty server",{code:ut.code,responseTime:ke});throw z.error(zt.toString()),zt}if(!ut.servers.some(zt=>!!zt.wss)){let zt=new De(ce.UNEXPECTED_RESPONSE,"moderation plugin ap empty port",{code:ut.code,responseTime:ke});throw z.error(zt.toString()),zt}let ft=ve("IMAGE_MODERATION_WORKER_HOST");return{addressList:ut.servers.map(zt=>{let{address:$n,wss:hi}=zt;if($n&&hi)return"wss://".concat($n.replace(/\./g,"-"),".").concat(ft,":").concat(hi,"/moderation")}).filter(zt=>!!zt),workerToken:ut.workerToken,vid:ut.vid,ticket:ut.appTicket,responseTime:ke}},(lt,ut)=>($t.apworkerEvent(W,{success:!0,sc:200,serviceName:ue,responseDetail:JSON.stringify(lt.addressList),firstSuccess:ut===0,responseTime:ke,serverIp:C[ut%C.length]}),!1),(lt,ut)=>($t.apworkerEvent(W,{success:!1,sc:lt.data&<.data.code||200,serviceName:ue,responseTime:ke,serverIp:C[ut%C.length]}),!!(lt.code!==ce.OPERATION_ABORTED&<.code!==ce.UNEXPECTED_RESPONSE||lt.data&<.data.retry)&&(He=C[(ut+1)%C.length],!0)),L)}(f,a,o,c);this.emit(bh.STATE_CHANGE,WS.AP_CONNECTED);let{addressList:v,ticket:w}=m;return this._ticket=w,v}async connectWorker(a){this.emit(bh.STATE_CHANGE,WS.CONNECT_WORKER),await this._workerConnection.init(a,1e4)}handleWorkerEvents(){this._workerConnection.on(En.CONNECTED,async()=>{this.emit(bh.STATE_CHANGE,WS.WORKER_CONNECTED,this._workerConnection.url),this.connectionState=hd.CONNECTED}),this._workerConnection.on(En.CLOSED,()=>{this.connectionState=hd.CLOSED}),this._workerConnection.on(En.FAILED,()=>{this.connectionState=hd.CLOSED}),this._workerConnection.on(En.RECONNECTING,()=>{this.connectionState=this.connectionState===hd.CONNECTED?hd.RECONNECTING:hd.CONNECTING}),this._workerConnection.on(En.ON_MESSAGE,async a=>{if(a.data instanceof ArrayBuffer){let o=H4e(new Uint8Array(a.data));ve("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&z.debug("[".concat(this._moderationId,"] Response message for worker of image moderation "),JSON.stringify(o)),this._uploadNum++,o.code===void 0||o.code===0||(this._uploadFailedNum++,z.error("[".concat(this._moderationId,"] Error response from worke, code is ").concat(o.code,", msg is ").concat(o.msg)),this._uploadTimer||(this._uploadTimer=window.setTimeout(()=>{$t.reportApiInvoke(this._connectInfo.sid||null,{name:$r.IMAGE_MODERATION_UPLOAD,options:[this._uploadFailedNum,this._uploadNum,o.code],tag:vr.TRACER}).onError(new De(ce.IMAGE_MODERATION_UPLOAD_FAILED,o.msg)),this._uploadTimer=null},ve("IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL"))))}else z.error("[".concat(this._moderationId,"] Unexpected message type from worker"))}),this._workerConnection.on(En.WILL_RECONNECT,(a,o,c)=>{a==="recover"&&c(a),c("tryNext")}),this._workerConnection.on(En.REQUEST_NEW_URLS,(a,o)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(a).catch(o)})}static intToLong(a){return{low:a|=0,high:a>>31,unsigned:a>=0}}async requestToInspectImage(){let a=Ml(this,bh.CLIENT_LOCAL_VIDEO_TRACK),o={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(a){if(!a.isPlaying)return void(ve("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&z.debug("Only the track being played can be inspected"));this._sequence++;let c=await this.generateRequestData(a,o);this._workerConnection.sendMessage(c,!0,!0)}else ve("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&z.debug("Only the track being published can be inspected")}async generateRequestData(a,o){let{appId:c,cname:f,cid:m,vid:v,sid:w,uid:C}=o,R=Date.now(),x=await a.getCurrentFrameImage("image/jpeg",this.quality),L=await Mse(x,c,f),U=this._sequence+"-"+m+"-"+C+"-"+R+"-"+Di(12,""),F={appId:c,cid:m,cname:f,deviceId:"",elapse:HW.intToLong(Number(R-this._moderationStartTime)),fileSize:x.buffer.byteLength,height:x.height,width:x.width,jpg:L,networkType:6,osType:7,requestId:U,sdkVersion:"4.21.0",sequence:this._sequence,sid:w,timestamp:J4e(R),uid:C,vid:v,service:this._moderationMode,ticket:this._ticket,callbackData:this._extraInfo,vendorConfigs:this._vendor};this._extraInfo===void 0&&delete F.callbackData;let Z=z4e(F);if(Z.byteLength0&&(c.firstRecvTs=Date.now()-m);let w=o.mediaDelay+v;w<=0?(a.pop(),Yle(o.context,f),w=0):w=Math.min(w,Z4e),setTimeout(()=>a.length&&qle(r),w)}function Yle(r,a){r.safeEmit(Gn.STREAM_MESSAGE,a.uid,a.payload),r.onStreamMessage&&r.onStreamMessage(a)}function eNe(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=arguments.length>2?arguments[2]:void 0;if(!r.syncWithAudio)return Yle(o,{uid:r.uid,payload:r.payload});let c="".concat(o.id,"-").concat(r.uid),f=GW.get(c)||[],m=f.findIndex(R=>r.sendTs>=R.sendTs),v=Kle(Kle({},r),{},{context:o,mediaDelay:a,recvTs:Date.now()});m===-1?f.push(v):f.splice(m,0,v),GW.set(c,f);let w=!1;var C;qD.has(c)?w=!((C=qD.get(c))===null||C===void 0||!C.isSyncing):qD.set(c,{isSyncing:w,firstRecvTs:0,firstSendTs:0}),w||qle(c)}let tNe=ni().name;function Xle(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Jle(r){for(var a=1;a{let m=o.shift();m&&await m(),o.length>0&&c{o.push(async()=>{try{let x=await r(...v);C(x)}catch(x){R(x)}}),c{z.warn("Your browser does not support preloading, this feature be run in a secure environment")},"preload_webcrypto_not_supported");if(!o&&o!==null)throw new Ke(ce.INVALID_PARAMS,"Invalid token: ".concat(o,". If you don not use token, set it to null"));o&&Ms(o,"token",1,2047),Ms(r,"appid",1,2047),z8(a),c&&H8(c);let m=m3();z.debug("preload channel ".concat(a,", uid is ").concat(c));let v={appId:r,cname:a,token:o||r,uid:typeof c!="string"?c:null,sid:m,proxyServer:f},w,C;typeof c=="string"?(v.stringUid=c,[C,w]=await Ct.all([TAe(c,{sid:m,appId:r},qW.token),Gie(Jle(Jle({},v),{},{token:o||r,uid:0}),qW.token)]),v.uid=C.uid,w.gatewayInfo.uid=v.uid,w.gatewayInfo.res.uid=v.uid):w=await Gie(v,qW.token);let R={sid:m,appId:r,cname:a,token:o||r,uid:v.stringUid||c,intUid:v.uid||w.gatewayInfo.uid,stringUid:v.stringUid,ts:Date.now(),sua:C,ap:w};await async function(x){let L;try{x.uid&&ece({appId:x.appId,cname:x.cname,token:x.token,uid:x.uid,stringUid:x.stringUid});let U=rce(x),F=await async function(W,K){try{let oe=await window.crypto.subtle.importKey("raw",qne(K),"AES-GCM",!1,["encrypt"]),ue=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:new Uint8Array(1)},oe,Hy(window.btoa(JSON.stringify(W))));return R0(new Uint8Array(ue))}catch{return}}(x,x.token||x.appId);if(!F)return;L=ice(Cb);let Z=L?JSON.parse(L):[];Z.push({[U]:F}),Z.length>ve("AP_CACHE_NUM")&&Z.shift(),XD(Cb,JSON.stringify(Z))}catch(U){z.warn("Error caching server parameters:",U.message),XD(Cb,"")}}(R),$W++}catch(m){throw KW++,function(v){WW||(WW=window.setTimeout(()=>{let C="";YD.forEach((R,x)=>{C+="".concat(x,": ").concat(R," ;")}),$t.reportApiInvoke(null,{name:$r.PRELOAD,options:{success:$W,failed:KW,err:C}}).onError(v),$W=0,KW=0,YD.clear(),WW=null},iNe));let w=YD.get(v.code)||0;YD.set(v.code,w+1)}(m),m}}async function Zle(r){try{let a=ece(r);if(!a||r.cloudProxyServer!=="disabled")return;let o=await async function(c,f){try{let m=await window.crypto.subtle.importKey("raw",qne(f),"AES-GCM",!1,["decrypt"]),v=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(1)},m,Hy(c));return JSON.parse(window.atob(R0(new Uint8Array(v))))}catch{return}}(a,r.token||r.appId);if(!o||!function(c,f){return c.cname===f.cname&&c.appId===f.appId&&c.token===f.token?f.stringUid?c.stringUid===f.stringUid:typeof f.uid=="number"?c.uid===f.uid:c.uid==f.uid:!1}(o,r))return;if(o&&Date.now()-o.ts=0;C--)if(w(v[C]))return C;return-1}(o,v=>c in v);if(f===-1)return;let m=o.splice(f,1)[0];return XD(Cb,JSON.stringify(o)),m[c]}catch(o){z.warn("Error delete preload info: ".concat(a),o.message),XD(Cb,"")}}function YW(r){if(r){let a=h_.get(r);a&&(window.clearTimeout(a),a=null,h_.delete(r)),Tt(f_).call(f_,r)||r.cloudProxyServer!=="disabled"||f_.push(r)}if(h_.size0){let a=f_.shift();h_.set(a,window.setTimeout(async()=>{let{appId:o,cname:c,token:f,uid:m,proxyServer:v}=a;try{await rNe(o,c,f,m,v),h_.has(a)&&YW(a)}catch(w){z.warn("update preload failed",w.message),tce(a)}},ve("AP_UPDATE_INTERVAL")))}}function tce(r){let a=f_.indexOf(r);a!==-1&&f_.splice(a,1);let o=h_.get(r);o&&(window.clearTimeout(o),o=null,h_.delete(r),YW())}function nce(r,a){let o=r.sua,c=r.ap;a&&o&&$t.reqUserAccount(r.sid,{lts:o.requestTime,elapse:o.elapse,success:!0,serverAddr:o.url,stringUid:a,uid:r.intUid,errorCode:null,extend:o.req}),$t.reportResourceTiming(r.ap.url,r.sid),$t.joinWebProxyAP(r.sid,{lts:c.requestTime,elapse:c.elapse,sucess:1,apServerAddr:c.url,turnServerAddrList:c.proxyInfo.addresses.map(f=>f.ip).join(","),eventType:"disabled",unilbsServerIds:[Mr.CHOOSE_SERVER,Mr.CLOUD_PROXY_FALLBACK].toString()}),$t.joinChooseServer(r.sid,{lts:c.requestTime,elapse:c.elapse,succ:!0,csAddr:c.url,opid:c.opid,serverList:c.gatewayInfo.gatewayAddrs.map(f=>f.address),ec:null,cid:c.gatewayInfo.cid.toString(),uid:c.gatewayInfo.uid.toString(),csIp:c.gatewayInfo.csIp,unilbsServerIds:[Mr.CHOOSE_SERVER].toString(),isHttp3:c.isHttp3})}function ice(r){return window.atob(window.localStorage.getItem(r)||"")}function XD(r,a){window.localStorage.setItem(r,window.btoa(a))}function rce(r){let a="".concat(r.appId,"_").concat(r.cname);return typeof r.uid=="string"&&(a+="_s_".concat(r.uid)),typeof r.uid=="number"&&(a+="_".concat(r.uid)),r.token&&(a+="_".concat(r.token)),tie(a)}var sce,ace,oce,lce,cce,dce,uce,hce,fce,pce,mce,gce,vce,yce,_ce,Ece,wce,Sce,bce,Cce,Tce,Rce,xce,Ace,Ice,Nce,Oce,Pce,Lce,Dce,kce,Mce,jce,Uce,Fce,Bce,Vce,zce,Hce,Gce,Wce,$ce,Nt;function Kce(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function yd(r){for(var a=1;a{if(!Array.isArray(a)){if(!(a instanceof hb))return[a];a=[a]}return a.map(o=>o?Object(o).toString():"null")}}),oce=hn({argsMap:(r,a)=>(a||(a=[]),a instanceof goe?[a.getChannelId()]:(Array.isArray(a)||(a=[a]),a.map(o=>o.getTrackId())))}),lce=hn({argsMap:(r,a,o,c)=>[typeof a=="object"?a.uid:a,o,c]}),cce=hn({argsMap:(r,a,o)=>[a,o]}),dce=hn({argsMap:(r,a)=>a.map(o=>{let{user:c,mediaType:f}=o;return[c==null?void 0:c.uid,f]})}),uce=hn({argsMap:(r,a,o,c)=>[typeof a=="object"?a.uid:a,o,c]}),hce=hn({argsMap:(r,a)=>a.map(o=>{let{user:c,mediaType:f}=o;return{uid:c==null?void 0:c.uid,mediaType:f}})}),fce=hn(),pce=hn(),mce=hn(),gce=hn(),vce=hn(),yce=hn(),_ce=hn(),Ece=hn(),wce=hn(),Sce=hn(),bce=hn(),Cce=hn(),Tce=hn(),Rce=hn(),xce=hn({argsMap:(r,a)=>[a]}),Ace=hn(),Ice=hn(),Nce=hn(),Oce=hn(),Pce=hn(),Lce=hn(),Dce=hn(),kce=hn(),Mce=hn(),jce=hn(),Uce=hn({argsMap:(r,a)=>(Array.isArray(a)||(a=[a]),[JSON.stringify(a)])}),Fce=hn(),Bce=hn(),Vce=hn(),zce=hn(),Hce=hn(),Gce=hn(),Wce=hn({reportResult:!0}),$ce=hn(),Nt=class extends nr{get connectionState(){return this._gateway.state}get remoteUsers(){return this._users}get localTracks(){return this._p2pChannel.getAllTracks(!0)}get uid(){return this._uid}get channelName(){return this._channelName}get localDataChannels(){return this._p2pChannel.getAllDataChannels()}get mode(){return this._config.mode}get role(){var r;return((r=this._config)===null||r===void 0?void 0:r.role)||"audience"}get codec(){return this._config.codec}get audioCodec(){return this._config.audioCodec||"opus"}get isStringUID(){return!!this._joinInfo&&!!this._joinInfo.stringUid}get __className__(){return"Client"}constructor(r){let a;if(super(),X(this,"store",void 0),X(this,"_uid",void 0),X(this,"_channelName",void 0),X(this,"_uintUid",void 0),X(this,"_users",[]),X(this,"_config",void 0),X(this,"_clientId",void 0),X(this,"_appId",void 0),X(this,"_sessionId",null),X(this,"_key",void 0),X(this,"_rtmConfig",{}),X(this,"_joinInfo",void 0),X(this,"_gateway",void 0),X(this,"_statsCollector",void 0),X(this,"_configDistribute",void 0),X(this,"_leaveMutex",new Ts("client-leave")),X(this,"_publishMutex",new Ts("client-publish")),X(this,"_renewTokenMutex",new Ts("client-renewtoken")),X(this,"_subscribeMutex",new Ts("client-subscribe")),X(this,"_encryptionMode","none"),X(this,"_encryptionSecret",null),X(this,"_encryptionSalt",null),X(this,"_encryptDataStream",!1),X(this,"_encryptDataStreamKey",null),X(this,"_encryptDataStreamIv",null),X(this,"_proxyServer",void 0),X(this,"_turnServer",{servers:[],mode:"auto"}),X(this,"_cloudProxyServerMode","disabled"),X(this,"_isDualStreamEnabled",!1),X(this,"_defaultStreamFallbackType",void 0),X(this,"_lowStreamParameter",void 0),X(this,"_streamFallbackTypeCacheMap",new Map),X(this,"_remoteStreamTypeCacheMap",new Map),X(this,"_axiosCancelSource",Io.CancelToken.source()),X(this,"_audioVolumeIndicationInterval",void 0),X(this,"_networkQualityInterval",void 0),X(this,"_userOfflineTimeout",void 0),X(this,"_streamRemovedTimeout",void 0),X(this,"_injectStreamingClient",void 0),X(this,"_liveTranscodeStreamingClient",void 0),X(this,"_liveRawStreamingClient",void 0),X(this,"_channelMediaRelayClient",void 0),X(this,"_networkQualitySensitivity","normal"),X(this,"_p2pChannel",void 0),X(this,"_useLocalAccessPoint",!1),X(this,"_setLocalAPVersion",void 0),X(this,"_joinAndNotLeaveYet",!1),X(this,"_numberOfJoinCount",0),X(this,"_remoteDefaultVideoStreamType",void 0),X(this,"_inspect",void 0),X(this,"_moderation",void 0),X(this,"_license",void 0),X(this,"_pendingPublishedUsers",[]),X(this,"ntpAlignErrorCount",0),X(this,"remoteInboundOffset",0),X(this,"_handleLocalTrackEnable",(o,c,f)=>{this.publish(o,!1).then(c).catch(f)}),X(this,"_handleLocalTrackDisable",(o,c,f)=>{this.unpublish(o).then(c).catch(f)}),X(this,"_handleUserOnline",o=>{if(ve("BLOCK_LOCAL_CLIENT")&&Wy(o.uid,this.channelName))return void z.debug("[".concat(o.uid,"] will be ignored in local"));this.isStringUID&&typeof o.uid!="string"&&z.error("[".concat(this._clientId,"] StringUID is Mixed with UintUID"));let c=this._users.find(f=>f.uid===o.uid);if(c)c._trust_in_room_=!0,c._is_pre_created&&(c._is_pre_created=!1,this.safeEmit(Gn.USER_JOINED,c));else{let f=new z0(o.uid,o.uint_id||o.uid);this._users.push(f),z.debug("[".concat(this._clientId,"] user online"),o.uid),this.safeEmit(Gn.USER_JOINED,f)}}),X(this,"_handleUserOffline",o=>{if(ve("BLOCK_LOCAL_CLIENT")&&Wy(o.uid,this.channelName))return;let c=this._users.find(f=>f.uid===o.uid);c&&(this._handleRemoveStream(o),this._handleRemoveDataChannels(o),c._audio_pre_subscribed||c._video_pre_subscribed?c._is_pre_created=!0:L8(this._users,c),this._remoteStreamTypeCacheMap.delete(c.uid),this._streamFallbackTypeCacheMap.delete(c.uid),z.debug("[".concat(this._clientId,"] user offline"),o.uid,"reason:",o.reason),this.safeEmit(Gn.USER_LEAVED,c,o.reason))}),X(this,"_handleAddAudioOrVideoStream",(o,c,f,m,v,w,C)=>{if(ve("BLOCK_LOCAL_CLIENT")&&Wy(c,this.channelName))return;let R=this._users.find(L=>L.uid===c);if(!R)return void z.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));z.debug("[".concat(this._clientId,"] stream added with uid ").concat(c,", type ").concat(o)),this.store.subscribe(R.uid,o,void 0,void 0,void 0,Date.now());let x=o==="audio"?R.hasAudio:R.hasVideo;R._uintid||(R._uintid=v||c),o==="audio"?R._trust_audio_stream_added_state_=!0:R._trust_video_stream_added_state_=!0,o==="audio"?(R._audio_added_=!0,f!==void 0&&(R._audioSSRC=f),m!==void 0&&(R._cname=m),w&&(R._audioOrtc=w)):(R._video_added_=!0,f!==void 0&&(R._videoSSRC=f),m!==void 0&&(R._cname=m),C!==void 0&&(R._rtxSsrcId=C),w&&(R._videoOrtc=w)),(o==="audio"?R.hasAudio:R.hasVideo)&&!x&&(z.info("[".concat(this._clientId,"] remote user ").concat(R.uid," published ").concat(o)),this.safeEmit(Gn.USER_PUBLISHED,R,o)),o==="video"?$t.onGatewayStream(this._sessionId,Rs.ON_ADD_VIDEO_STREAM,fr.ON_ADD_VIDEO_STREAM,{peer:v||c,ssrc:R._videoSSRC}):$t.onGatewayStream(this._sessionId,Rs.ON_ADD_AUDIO_STREAM,fr.ON_ADD_AUDIO_STREAM,{peer:v||c,ssrc:R._audioSSRC}),this._p2pChannel.remoteMediaSsrcChanged(R,o,f).then(L=>{if(L&&(z.debug("[".concat(this._clientId,"] resubscribe ").concat(o," for user ").concat(R.uid," after rejoin because SSRC id changed.")),this._p2pChannel instanceof GD))return this._p2pChannel.unsubscribe(R,o,!0).then(()=>this._subscribe(R,o,!0).catch(U=>{z.error("[".concat(this._clientId,"] resubscribe error"),U.toString())}))}),this._p2pChannel.hasPendingRemoteMedia(R,o)&&(z.debug("[".concat(this._clientId,"] resubscribe ").concat(o," for user ").concat(R.uid," after reconnect.")),this._subscribe(R,o,!0).catch(L=>{z.error("[".concat(this._clientId,"] resubscribe error"),L.toString())}))}),X(this,"_handleRemoveStream",o=>{if(ve("BLOCK_LOCAL_CLIENT")&&Wy(o.uid,this.channelName))return;let c=this._users.find(m=>m.uid===o.uid);if(!c)return void z.warning("[".concat(this._clientId,"] can not find target user!(on_remove_stream)"));z.debug("[".concat(this._clientId,"] stream removed with uid ").concat(o.uid));let f=()=>{};c.hasAudio&&c.hasVideo?f=()=>{z.info("[".concat(this._clientId,"] remote user ").concat(c.uid," unpublished audio track")),this.safeEmit(Gn.USER_UNPUBLISHED,c,"audio"),z.info("[".concat(this._clientId,"] remote user ").concat(c.uid," unpublished video track")),this.safeEmit(Gn.USER_UNPUBLISHED,c,"video")}:c.hasVideo?f=()=>{z.info("[".concat(this._clientId,"] remote user ").concat(c.uid," unpublished video track")),this.safeEmit(Gn.USER_UNPUBLISHED,c,"video")}:c.hasAudio&&(f=()=>{z.info("[".concat(this._clientId,"] remote user ").concat(c.uid," unpublished audio track")),this.safeEmit(Gn.USER_UNPUBLISHED,c,"audio")}),c._video_pre_subscribed||c._audio_pre_subscribed||(c._trust_audio_stream_added_state_=!0,c._trust_video_stream_added_state_=!0,c._audio_added_=!1,c._video_added_=!1,this._p2pChannel instanceof GD&&this._p2pChannel.unsubscribe(c).then(m=>{if(m)return this._gateway.unsubscribe(m,c.uid)}),c._audioSSRC=void 0,c._videoSSRC=void 0,c._audioOrtc=void 0,c._videoOrtc=void 0,c._rtxSsrcId=void 0),$t.onGatewayStream(this._sessionId,Rs.ON_REMOVE_STREAM,fr.ON_REMOVE_STREAM,{peer:o.uint_id||o.uid}),f()}),X(this,"_handleSetStreamLocalEnable",(o,c,f)=>{if(ve("BLOCK_LOCAL_CLIENT")&&Wy(c,this.channelName))return;let m=this._users.find(C=>C.uid===c);if(!m)return void z.error("[".concat(this._clientId,"] can not find target user!(disable_local)"));z.debug("[".concat(this._clientId,"] local ").concat(o," ").concat(f?"enabled":"disabled"," with uid ").concat(c));let v=o==="audio"?m.hasAudio:m.hasVideo;if(o==="audio"){m._trust_audio_enabled_state_=!0;let C=m._audio_enabled_;if(m._audio_enabled_=f,m._audio_enabled_===C)return;{let R=m._audio_enabled_?"enable-local-audio":"disable-local-audio";z.debug("[".concat(this._clientId,"] user-info-updated, uid: ").concat(c,", msg: ").concat(R)),this.safeEmit(Gn.USER_INFO_UPDATED,c,R)}}else{m._trust_video_enabled_state_=!0;let C=m._video_enabled_;if(m._video_enabled_=f,m._video_enabled_===C)return;{let R=m._video_enabled_?"enable-local-video":"disable-local-video";z.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(c,", msg: ").concat(R)),this.safeEmit(Gn.USER_INFO_UPDATED,c,R)}}let w=o==="audio"?m.hasAudio:m.hasVideo;return v!==w?!v&&w?(z.info("[".concat(this._clientId,"] remote user ").concat(c," published ").concat(o)),void this.safeEmit(Gn.USER_PUBLISHED,m,o)):(o==="video"&&m._videoTrack&&m._videoTrack._destroy(),o==="audio"&&m._audioTrack,this._p2pChannel.muteRemote(m,o),z.info("[".concat(this._clientId,"] remote user ").concat(c," unpublished ").concat(o)),void this.safeEmit(Gn.USER_UNPUBLISHED,m,o)):void 0}),X(this,"_handleMuteStream",(o,c,f)=>{if(ve("BLOCK_LOCAL_CLIENT")&&Wy(o,this.channelName))return;z.debug("[".concat(this._clientId,"] receive mute message"),o,c,f);let m=this._users.find(C=>C.uid===o);if(!m)return void z.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(o));let v=c==="audio"?m.hasAudio:m.hasVideo;if(c==="audio"){m._trust_audio_mute_state_=!0;let C=m._audio_muted_;if(m._audio_muted_=f,m._audio_muted_===C)return;{let R=m._audio_muted_?"mute-audio":"unmute-audio";z.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(o,", msg: ").concat(R)),this.safeEmit(Gn.USER_INFO_UPDATED,o,R)}}else{m._trust_video_mute_state_=!0;let C=m._video_muted_;if(m._video_muted_=f,m._video_muted_===C)return;{let R=m._video_muted_?"mute-video":"unmute-video";z.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(o,", msg: ").concat(R)),this.safeEmit(Gn.USER_INFO_UPDATED,o,R)}}let w=c==="audio"?m.hasAudio:m.hasVideo;if(v!==w){if(!v&&w)return(c==="audio"?m._audioSSRC:m._videoSSRC)?(z.info("[".concat(this._clientId,"] remote user ").concat(o," published ").concat(c)),void this.safeEmit(Gn.USER_PUBLISHED,m,c)):void z.warning("[".concat(this._clientId,"] remote user ").concat(o," receive ").concat(c," unmute message before add stream message, ").concat(c," SSRC doesn't exist yet."));c==="video"&&m._videoTrack&&!m._video_pre_subscribed&&m._videoTrack._destroy(),c==="audio"&&m._audioTrack,this._p2pChannel.muteRemote(m,c),z.info("[".concat(this._clientId,"] remote user ").concat(o," unpublished ").concat(c)),this.safeEmit(Gn.USER_UNPUBLISHED,m,c)}}),X(this,"_handleP2PLost",async o=>{z.debug("[".concat(this._clientId,"] receive p2p lost"),o),parseInt(o.p2pid,10)===this.store.p2pId?await this._p2pChannel.requestReconnect():z.warning("[".concat(this._clientId,"] P2PLost stream not found"),o)}),X(this,"_handleTokenWillExpire",()=>{z.debug("[".concat(this._clientId,"] received message onTokenPrivilegeWillExpire")),this.safeEmit(Gn.ON_TOKEN_PRIVILEGE_WILL_EXPIRE)}),X(this,"_handleBeforeUnload",o=>{o.type==="beforeunload"&&o.returnValue!==void 0&&o.returnValue!==""||(this.leave(),z.info("[".concat(this._clientId,"] auto leave onbeforeunload or pagehide")))}),X(this,"_handleUpdateNetworkQuality",()=>{if(this._networkQualitySensitivity==="normal")return;if(navigator&&navigator.onLine!==void 0&&!navigator.onLine)return void this.safeEmit(Gn.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6});let o={downlinkNetworkQuality:0,uplinkNetworkQuality:0};o.uplinkNetworkQuality=this._p2pChannel.getUplinkNetworkQuality(),o.downlinkNetworkQuality=this._p2pChannel.getDownlinkNetworkQuality(),this.safeEmit(Gn.NETWORK_QUALITY,o)}),X(this,"_handleP2PAddAudioOrVideoStream",(o,c,f,m)=>{let v=this._users.find(C=>C.uid===c);if(!v)return void z.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));z.debug("[".concat(this._clientId,"] stream added with uid ").concat(c,", type ").concat(o)),this.store.subscribe(v.uid,o,void 0,void 0,void 0,Date.now());let w=o==="audio"?v.hasAudio:v.hasVideo;o==="audio"?v._trust_audio_stream_added_state_=!0:v._trust_video_stream_added_state_=!0,o==="audio"?(v._audio_added_=!0,f!==void 0&&(v._audioSSRC=f),m!==void 0&&(v._audioMid=m)):(v._video_added_=!0,f!==void 0&&(v._videoSSRC=f),m!==void 0&&(v._videoMid=m)),(o==="audio"?v.hasAudio:v.hasVideo)&&!w&&(z.info("[".concat(this._clientId,"] remote user ").concat(v.uid," published ").concat(o)),this.safeEmit(Gn.USER_PUBLISHED,v,o)),this._p2pChannel.hasPendingRemoteMedia(v,o)&&(z.debug("[".concat(this._clientId,"] resubscribe ").concat(o," for user ").concat(v.uid," after reconnect.")),this._subscribe(v,o,!0).catch(C=>{z.error("[".concat(this._clientId,"] resubscribe error"),C.toString())}))}),this._config=r,this._clientId=Di(5,"client-"),this.store=new cxe(r.codec,r.audioCodec,r.mode,this._clientId),this.store.clientCreated(),r.proxyServer&&this.setProxyServer(r.proxyServer,!0),r.turnServer&&this.setTurnServer(r.turnServer,!0),z.info("[".concat(this._clientId,"] Initializing AgoraRTC client v").concat(dd," build: ").concat(qH,", mode: ").concat(this.mode,", codec: ").concat(this.codec)),r.clientRoleOptions)try{$ne(r.clientRoleOptions),a=Object.assign({},r.clientRoleOptions)}catch(o){z.warning("[".concat(this._clientId,"] ").concat(o.toString()))}this._statsCollector=new Z3(this.store),this._statsCollector.onStatsException=(o,c,f)=>{z.debug("[".concat(this._clientId,"] receive exception msg, code: ").concat(o,", msg: ").concat(c,", uid: ").concat(f)),this.safeEmit(Gn.EXCEPTION,{code:o,msg:c,uid:f})},this._statsCollector.onUploadPublishDuration=(o,c,f,m)=>{let v=this._users.find(w=>w.uid===o);v&&$t.peerPublishStatus(this._sessionId,{subscribeElapse:m,audioPublishDuration:c,videoPublishDuration:f,peer:v._uintid})},this.store.useDataChannel=Jn().supportDataChannel&&ve("SIGNAL_CHANNEL"),this.store.useP2P=r.mode==="p2p",this._gateway=new _Ae(this.store,{clientId:this._clientId,mode:this.mode,codec:this.codec,websocketRetryConfig:r.websocketRetryConfig||kr,httpRetryConfig:r.httpRetryConfig||kr,forceWaitGatewayResponse:r.forceWaitGatewayResponse===void 0||r.forceWaitGatewayResponse,statsCollector:this._statsCollector,role:r.role,clientRoleOptions:a}),this._configDistribute=new IAe,this.store.useP2P?(this._p2pChannel=new Fl(this.store,this._statsCollector),this._handleP2PEvents()):this._p2pChannel=new GD(this.store,this._statsCollector),this._handleP2PChannelEvents(),this._handleGatewayEvents(),this._handleGatewaySignalEvents()}async joinMeta(r,a,o,c,f){let m=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],v=arguments.length>6&&arguments[6]!==void 0&&arguments[6];Ri("JOIN_GATEWAY_USE_443PORT_ONLY",m),Ri("JOIN_GATEWAY_USE_DUAL_DOMAIN",v);let w=this._gateway.signal.websocket;return w instanceof _3&&(w.use443PortOnly=m,w.tryDoubleDomain=v),async function(C,R,x){A8.get(C)||A8.set(C,[]),I8.get(C)||I8.set(C,R),Lf.get(C)||Lf.set(C,0);let L=A8.get(C),U=I8.get(C);if(!L||!U)throw new Error("concurrent: deferQueue or maxConcurrency is null");if(Lf.get(C)===U){let oe=u3();L.push(oe),await oe.promise}Lf.set(C,Lf.get(C)+1);for(var F=arguments.length,Z=new Array(F>3?F-3:0),W=3;W0&&(L[0].resolve(),L.shift()),Lf.get(C)===0&&(A8.set(C,[]),I8.set(C,0),Lf.set(C,0)),K}("client.join",ve("JOIN_MAX_CONCURRENCY"),this.join.bind(this),r,a,o,c,f)}async join(r,a,o,c,f){let m=++this._numberOfJoinCount;this.store.joinStart(),c&&(this.store.uid=c);let v=(U8||U8||(U8=(window.location.protocol.split(":")[0]||"").toUpperCase(),U8))==="HTTPS",w=nie()?window.isSecureContext:"Browser Not Support";(!nie()&&!v||!window.isSecureContext)&&z.warning("The website must be running in a secure context (About secure context: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts ), otherwise the media collection will be restricted by the browser"),this.connectionState==="DISCONNECTED"&&(this.store.avoidJoinStart=Math.round(Date.now()),z.debug("[".concat(this._clientId,"] set avoidJoinStart to ").concat(this.store.avoidJoinStart))),$t.setAppId(r);try{if(!o&&o!==null)throw new De(ce.INVALID_PARAMS,"Invalid token: ".concat(o,". If you don not use token, set it to null"));o&&Ms(o,"token",1,2047),Ms(r,"appid",1,2047),z8(a),c&&H8(c),f&&Ms(f,"optionalInfo",1,2047)}catch(W){throw $t.reportApiInvoke(m3(),{name:$r.JOIN,options:[r,a,o,c],states:{isHttps:v,isSecureContext:w},tag:vr.TRACER}).onError(W),W}let C=await Zle({appId:r,cname:a,uid:c,stringUid:typeof c=="string"?c:void 0,token:o||r,cloudProxyServer:this._cloudProxyServerMode}),R=(C==null?void 0:C.sid)||m3(),x=$t.reportApiInvoke(R,{name:$r.JOIN,options:[r,a,o,c],states:{isHttps:v,isSecureContext:w},tag:vr.TRACER});if(z.info("[".concat(this._clientId,"] start join channel ").concat(a,", join number: ").concat(m)),this._leaveMutex.isLocked&&(z.debug("[".concat(this._clientId,"] join: waiting leave operation")),(await this._leaveMutex.lock())(),z.debug("[".concat(this._clientId,"] join: continue"))),this._joinAndNotLeaveYet=!0,this.connectionState!=="DISCONNECTED"){let W=new De(ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already in connecting/connected state"));throw x.onError(W),W}this._sessionId||(this._sessionId=R,this.store.sessionId=this._sessionId),this._gateway.state="CONNECTING";let L=yd(yd({},this._rtmConfig),{},{clientId:this._clientId,appId:r,sid:this._sessionId,cname:a,uid:typeof c!="string"?c:null,turnServer:this._turnServer,proxyServer:this._proxyServer,token:o||r,cloudProxyServer:this._cloudProxyServerMode,optionalInfo:f,license:this._license,useLocalAccessPoint:this._useLocalAccessPoint,preload:!!C},this._remoteDefaultVideoStreamType!==void 0&&{defaultVideoStream:this._remoteDefaultVideoStreamType});if(this._useLocalAccessPoint&&(L.setLocalAPVersion=this._setLocalAPVersion),typeof c=="string"&&(L.stringUid=c,this._uintUid?(L.uid=this._uintUid,this._uintUid=void 0):L.uid=0),this._encryptionMode!=="none"&&this._encryptionSecret){if(L.aesmode=this._encryptionMode,L.aespassword=await(async W=>{let K=function(Oe){let ke=window.atob(`MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCMnXAHkKIGAM+x4N22gCI+Wyu +STM9ztkT3uYslTT2PuKmZfPzhH6kVdO7PTjGCOZnAsyb3oTtWat0KcxQ4jxvqQV+ +HvYl3iI1Yd4vl2c3qRMJPLtRDfNxa2Mcxgq7e9aEUibzdd0st+OJAy3tOj/Y0aVy +xQiYDz3vqa6bP29adwIDAQAB`),He=new Uint8Array(new ArrayBuffer(ke.length));for(let lt=0;lt{this.connectionState==="CONNECTING"&&U===this._sessionId&&$t.joinChannelTimeout(this._sessionId,5)},5e3);try{var F;let W,K=L.cloudProxyServer;if(Tt(F=["proxy3","proxy4","proxy5"]).call(F,K)){let ke=ve("PROXY_SERVER_TYPE3");Array.isArray(ke)?L.proxyServer=ke[0]:L.proxyServer=ke}if($t.setProxyServer(L.proxyServer),z.setProxyServer(L.proxyServer),this.store.requestAPStart(),C){if(z.debug("[".concat(this._clientId,"] get serverInfo Success from Preload Cache ").concat(L.stringUid?", ".concat(L.stringUid," => ").concat(C.intUid):""," ")),L.stringUid&&!L.uid&&(L.uid=C.intUid),W={gatewayInfo:C.ap.gatewayInfo},ve("JOIN_WITH_FALLBACK_MEDIA_PROXY")&&L.turnServer.mode==="auto")if(C.ap.proxyInfo.addresses.length===0)z.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers");else{let ke=(await Nie(C.ap.proxyInfo,C.ap.gatewayInfo.uid)).map(He=>({turnServerURL:He.address,tcpport:He.tcpport||Ks.tcpport,udpport:He.udpport||Ks.udpport,username:He.username||Ks.username,password:He.password||Ks.password,forceturn:!1,security:!0}));L.turnServer={mode:"manual",servers:ke}}nce(C,L.stringUid)}else{if(L.stringUid&&!L.uid){let ke;[ke,W]=await Ct.all([Hie(L.stringUid,L,this._axiosCancelSource.token,this._config.httpRetryConfig||kr,this.store),zie(L,this._axiosCancelSource.token,this._config.httpRetryConfig||kr,!0,this.store)]),z.debug("[".concat(this._clientId,"] getUserAccount Success ").concat(L.stringUid," => ").concat(ke)),L.uid=ke,W.gatewayInfo.uid=ke,W.gatewayInfo.res.uid=ke}else W=await zie(L,this._axiosCancelSource.token,this._config.httpRetryConfig||kr,!0,this.store);if(!this._joinAndNotLeaveYet)throw new De(ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"))}this.store.requestAPEnd(),setTimeout(()=>{this._configDistribute.startGetConfigDistribute(L,this._axiosCancelSource.token),this._configDistribute.on(rG.UPDATE_BITRATE_LIMIT,ke=>{this._p2pChannel.updateBitrateLimit(ke)})},0),this._key=o||r;let oe=W.gatewayInfo,ue=L.uid?L.uid:oe.uid;this._joinInfo=yd(yd({},L),{},{cid:oe.cid,uid:ue,vid:oe.vid,apResponse:oe.res,uni_lbs_ip:oe.uni_lbs_ip,gatewayAddrs:oe.gatewayAddrs}),this.store.intUid=ue;let xe=await this._joinGateway();if(!this._joinAndNotLeaveYet)throw new De(ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));x.onSuccess(xe),this._appId=r,this._channelName=L.cname,this._uid=xe,this.store.uid=xe,setTimeout(()=>{this._networkQualityInterval&&window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=window.setInterval(this._handleUpdateNetworkQuality,2e3),window.addEventListener(gs()?"beforeunload":"pagehide",this._handleBeforeUnload),this._statsCollector.startUpdateStats()},0);let Oe=L.stringUid?"string uid: ".concat(L.stringUid,",uid: ").concat(L.uid):"uid: ".concat(this._uid);return z.info("[".concat(this._clientId,"] Joining channel success: channel: ").concat(a,",").concat(Oe)),setTimeout(()=>{z.startUpload()},5e3),this.store.joinEnd(),Z=this,Tt(A0).call(A0,Z)||A0.push(Z),this._cloudProxyServerMode==="disabled"&&Jn().supportWebCrypto&&ve("ENABLE_PRELOAD")&&YW(this._joinInfo),xe}catch(W){let K=Array.isArray(W)?W[0]:W;throw K&&K.code===ce.OPERATION_ABORTED?z.warning("[".concat(this._clientId,"] join number: ").concat(m,", Joining channel failed, rollback"),K):z.error("[".concat(this._clientId,"] join number: ").concat(m,", Joining channel failed, rollback"),K),K.code!==ce.OPERATION_ABORTED&&this._numberOfJoinCount===m&&(this._gateway.state="DISCONNECTED",this._reset()),x.onError(K),K}var Z}_joinGateway(){if(!this._joinInfo||!this._key)throw new De(ce.INVALID_OPERATION);return this._gateway.join(this._joinInfo,this._key,!(this._joinInfo.cloudProxyServer!=="disabled"||this._joinInfo.proxyServer||!ve("JOIN_WITH_FALLBACK_SIGNAL_PROXY"))).then(r=>r).catch(r=>{if(r.code===ce.INIT_WEBSOCKET_TIMEOUT)return this._gateway.leave(!0,Hn.FALLBACK),r;if(r.code===ce.INIT_DATACHANNEL_TIMEOUT)return this._gateway.leave(!0,Hn.FALLBACK),r;throw r}).then(r=>{if(r instanceof De){if(r.code===ce.INIT_WEBSOCKET_TIMEOUT){if(z.info("[".concat(this._clientId,"] join timeout, fallback to proxy")),!this._joinInfo||!this._key)throw new De(ce.INVALID_OPERATION);this._joinInfo.cloudProxyServer="fallback",this._cloudProxyServerMode="fallback",this.store.cloudProxyServerMode="fallback";let a=ve("PROXY_SERVER_TYPE3");if(Array.isArray(a))if(this._joinInfo.apUrl){let c=/^https?:\/\/(.+?)(\/.*)?$/.exec(this._joinInfo.apUrl)[1].split("."),f=c.slice(c.length-2).join(".");a.forEach(m=>{this._joinInfo&&Tt(m).call(m,f)&&(this._joinInfo.proxyServer=m)}),this._joinInfo.proxyServer||(this._joinInfo.proxyServer=a[0])}else this._joinInfo.proxyServer=a[0];else this._joinInfo.proxyServer=a;let o=ve("LOG_UPLOAD_SERVER").match(/.+:(\d{1,5})$/);return o&&o[1]&&o[1]!=="443"&&z.setProxyServer(this._joinInfo.proxyServer),ve("STATS_COLLECTOR_PORT").toString()!=="443"&&$t.setProxyServer(this._joinInfo.proxyServer),$t.reportApiInvoke(this._sessionId,{name:$r.JOIN_FALLBACK_TO_PROXY,options:[this._joinInfo.proxyServer],tag:vr.TRACER}).onSuccess(),this.safeEmit(Gn.JOIN_FALLBACK_TO_PROXY,this._joinInfo.proxyServer),ve("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&this._joinInfo.turnServer.servers.forEach(c=>{"forceturn"in c&&(c.forceturn=!0)}),this._gateway.join(this._joinInfo,this._key)}if(z.info("[".concat(this._clientId,"] join by datachannel timeout, fallback to websocket")),!this._joinInfo||!this._key)throw new De(ce.INVALID_OPERATION);return $t.reportApiInvoke(this._sessionId,{name:$r.DATACHANNEL_FAILBACK,options:[this.store.clientId],tag:vr.TRACER}).onSuccess(),this._joinGateway()}return r}).then(r=>r)}async leave(){z.info("[".concat(this._clientId,"] Leaving channel")),window.removeEventListener(gs()?"beforeunload":"pagehide",this._handleBeforeUnload),this._reset(),function(a){let o=A0.indexOf(a);o!==-1&&A0.splice(o,1)}(this),this._statsCollector.stopUpdateStats();let r=await this._leaveMutex.lock();if(this.connectionState==="DISCONNECTED")return z.info("[".concat(this._clientId,"] Leaving channel repeated, success")),void r();await this._gateway.leave(this.connectionState!=="CONNECTED"),z.info("[".concat(this._clientId,"] Leaving channel success")),this._joinAndNotLeaveYet=!1,this.store.resetJoinChannelServiceRecords(),r()}async publish(r){let a=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!Array.isArray(r)){if(!(r instanceof hb))return this._publishDataChannel(r);r=[r]}if(r.length===0)throw new De(ce.INVALID_PARAMS,"param list is empty");let o=r;if(this._gateway.role==="audience")throw new De(ce.INVALID_OPERATION,"audience can not publish stream");for(let f of o){if(!(f instanceof hb))throw new De(ce.INVALID_PARAMS,"parameter is not local track");if(!f._enabled&&a)throw new De(ce.TRACK_IS_DISABLED,"can not publish a disabled track: ".concat(f.getTrackId()))}z.info("[".concat(this._clientId,"] Publishing tracks, id ").concat(o.map(f=>"".concat(f.getTrackId()," "))));let c=await this._publishMutex.lock();await this._configDistribute.awaitConfigDistributeComplete(),a&&o.forEach(f=>{let m=this._configDistribute.getBitrateLimit();f instanceof ki&&m&&f.setBitrateLimit(m.uplink)});try{await this._publishHighStream(o),z.info("[".concat(this._clientId,"] Publish success, id ").concat(o.map(f=>"".concat(f.getTrackId()," "))))}catch(f){throw z.error("[".concat(this._clientId,"] publish error"),f.toString()),f}finally{c()}}async _publishDataChannel(r){Ti(r.id,"id",0,65535,!0),fm(r.ordered,"ordered"),Ms(r.metadata,"metadata",0,512),z.info("[".concat(this._clientId,"] Publishing datachannels, id ").concat(r.id));let a=await this._publishMutex.lock();try{if(this._p2pChannel.getAllDataChannels().findIndex(c=>c.id===r.id)!==-1)throw new De(ce.INVALID_PARAMS,"Invalid id: ".concat(r.id,". If you want to republish the datachannel, unpublish first"));if(!this._joinInfo||this._uid===void 0)throw new De(ce.INVALID_OPERATION,"Can't publish datachannel, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish datachannel in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&ve("FORCE_TURN")&&!ve("TURN_ENABLE_TCP")&&!ve("TURN_ENABLE_UDP"))throw new De(ce.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");let o=new goe(r);if(await this._p2pChannel.publishDataChannel([o]),!this._p2pChannel.isP2PDisconnected()){if(typeof o._originDataChannelId!="number")throw z.error("[".concat(this._clientId,"] can not publish with mediaType datachannel, cannot get RTCDatachannel id")),new De(ce.CREATE_DATACHANNEL_ERROR);try{let c={streamId:r.id,ordered:r.ordered,maxRetransmits:ve("DATASTREAM_MAX_RETRANSMITS"),metadata:r.metadata,channelId:o._originDataChannelId};await this._gateway.publishDataChannel(this._uid,c,!0),await o._waitTillOpen()}catch(c){if(c.code!==ce.DISCONNECT_P2P)throw c}}return z.info("[".concat(this._clientId,"] Publish dataChannels success, id ").concat(o.id)),o}catch(o){throw z.error("[".concat(this._clientId,"] publish datachannels error"),o.toString()),o}finally{a()}}async unpublish(r){if(!this._joinInfo||this._uid===void 0)throw new De(ce.INVALID_OPERATION,"Can't unpublish stream, haven't joined yet!");let a=[];if(r)if(Array.isArray(r))a=r;else{if(!(r instanceof hb))return this._unpublishDataChannel([r]);a=[r]}else this.store.useP2P||await this._unpublishDataChannel(),a=this._p2pChannel.getAllTracks(!0);z.info("[".concat(this._clientId,"] Unpublish tracks, tracks ").concat(a.map(c=>"".concat(c.getTrackId()," "))," "));let o=await this._publishMutex.lock();try{if(this._p2pChannel instanceof Fl){let c=await this._p2pChannel.unpublish(a);c&&await this._gateway.sendExtensionMessage(Nr.UNPUBLISH,{unpubMsg:c},!0)}else{let c=await this._p2pChannel.unpublish(a);c&&await this._gateway.unpublish(c,this._uid),z.info("[".concat(this._clientId,"] Unpublish success,tracks ").concat(a.map(f=>"".concat(f.getTrackId()))))}}catch(c){throw z.error("[".concat(this._clientId,"] unpublish error"),c.toString()),c}finally{o&&o()}}async _unpublishDataChannel(r){r!==void 0&&r.length!==0||(r=this._p2pChannel.getAllDataChannels()),z.info("[".concat(this._clientId,"] Unpublish datachannels, datachannels ").concat(r.map(o=>"".concat(o.id," "))," "));let a=await this._publishMutex.lock();try{let o=await this._p2pChannel.unpublishDataChannel(r);o&&await this._gateway.unpublishDataChannel(o),z.info("[".concat(this._clientId,"] Unpublish dataChannel success,dataChannel ").concat(r.map(c=>"".concat(c.id))))}catch(o){throw z.error("[".concat(this._clientId,"] unpublish dataChannel error"),o.toString()),o}finally{a&&a()}}async subscribe(r,a,o){if(!(r instanceof z0)){let c=this.remoteUsers.find(f=>f.uid===r);if(!c)throw new De(ce.INVALID_REMOTE_USER,"user is not in the channel");r=c}return a==="datachannel"?this._subscribeDataChannel(r,o):this._subscribe(r,a)}async presubscribe(r,a){if(as(a,"mediaType",["audio","video"]),this._p2pChannel instanceof Fl)throw new De(ce.INVALID_OPERATION,"can't presub at p2p mode");if(!this._joinInfo)throw new De(ce.INVALID_OPERATION,"can't presub when not join");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can't presub in ".concat(this.connectionState," state"));let o=a===Wt.AUDIO,c=a===Wt.VIDEO,f=await this._subscribeMutex.lock();try{let{ssrcId:m,ortc:v,rtxSsrcId:w,cname:C,uint_id:R}=await this._gateway.presubscribe(r,a,!0);if(m==null)throw new De(ce.UNEXPECTED_RESPONSE,"no ssrc id");let x=this._users.find(U=>U.uid===r);x||(x=new z0(r,R||r),x._is_pre_created=!0,this._users.push(x)),C&&(x._cname=C),x._uintid||(x._uintid=R||r),o&&(x._audioSSRC=m,x._audio_pre_subscribed=!0,v&&(x._audioOrtc=v)),c&&(x._videoSSRC=m,x._video_pre_subscribed=!0,v&&(x._videoOrtc=v),w!=null&&(x._rtxSsrcId=w)),z.info("[".concat(this._clientId,"] presub succeed ssrc: ").concat(m)),await this._p2pChannel.subscribe(x,a,m,w,v);let L=o?x._audioTrack:x._videoTrack;if(!L)throw new De(ce.UNEXPECTED_ERROR,"can not find remote track in user");return o&&(x._trust_audio_stream_added_state_=!0,x._audio_added_=!0),c&&(x._trust_video_stream_added_state_=!0,x._video_added_=!0),L}catch(m){throw z.error("[".concat(this._clientId,"] presub user ").concat(r," error"),m),m}finally{f()}}async _subscribeDataChannel(r,a){var o;if(Ti(a,"channelId",0,65535,!0),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"Can't subscribe datachannel, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"Can't subscribe datachannel in ".concat(this.connectionState," state"));if(!this._users.find(v=>v===r))throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid,", this user is not in the channel")),new De(ce.INVALID_REMOTE_USER,"user is not in the channel");if(!r.hasAudio&&!r.hasVideo&&r._dataChannels.length===0)throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid,", user is not published")),new De(ce.INVALID_REMOTE_USER,"user is not published");let c=(o=r._dataChannels)===null||o===void 0?void 0:o.find(v=>v.id===a);if(!c)throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid," with mediaType datachannel, remote datachannel is not published")),new De(ce.REMOTE_USER_IS_NOT_PUBLISHED);let f=await this._subscribeMutex.lock();z.info("[".concat(this._clientId,"] subscribe user ").concat(r.uid,", mediaType: datachannel"));try{let v=await this._p2pChannel.subscribeDataChannel(r,[c]);if(v&&Tt(v).call(v,c.id))try{var m;if(typeof c._originDataChannelId!="number")throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid," with mediaType datachannel, cannot get RTCDatachannel")),new De(ce.CREATE_DATACHANNEL_ERROR);let w={id:c.id,datachannelId:c._originDataChannelId,ordered:c.ordered,maxRetransmits:c.maxRetransmits,metadata:(m=c.metadata)!==null&&m!==void 0?m:""};await this._gateway.subscribeDataChannel(r.uid,w,!0),await c._waitTillOpen()}catch(w){if((w==null?void 0:w.code)!==ce.WS_ABORT)throw await this._p2pChannel.unsubscribeDataChannel(r,[c]),w;await this._p2pChannel.unsubscribeDataChannel(r,[c]),this._p2pChannel.setPendingRemoteDataChannel(r,c.id)}return z.info("[".concat(this._clientId,"] subscribe success user ").concat(r.uid,", mediaType: datachannel")),c}finally{f()}}async _p2pSubscribe(r,a,o){if(as(a,"mediaType",["audio","video"]),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(f=>f===r)){let f=new De(ce.INVALID_REMOTE_USER,"user is not in the channel");throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid,", this user is not in the channel")),f}if(!r.hasAudio&&!r.hasVideo){let f=new De(ce.INVALID_REMOTE_USER,"user is not published");throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid,", user is not published")),f}if(!o&&(a==="audio"&&!r.hasAudio||a==="video"&&!r.hasVideo)){let f=new De(ce.REMOTE_USER_IS_NOT_PUBLISHED);throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid," with mediaType ").concat(a,", remote track is not published")),f}let c=await this._subscribeMutex.lock();z.info("[".concat(this._clientId,"] subscribe user ").concat(r.uid,", mediaType: ").concat(a));try{if(await this._p2pChannel.hasRemoteMediaWithLock(r,a))await this._p2pChannel.unmuteRemote(r,a);else try{let m=a==="audio"?r._audioSSRC:r._videoSSRC,v=a==="audio"?r._audioMid:r._videoMid;this.store.subscribe(r.uid,a,Date.now()),this._p2pChannel instanceof Fl&&await this._p2pChannel.subscribe(r,a,m,v)}catch(m){throw m}z.info("[".concat(this._clientId,"] subscribe success user ").concat(r.uid,", mediaType: ").concat(a)),this._defaultStreamFallbackType&&this.setStreamFallbackOption(r.uid,this._defaultStreamFallbackType).catch(m=>{z.warning("[".concat(this._clientId,"] auto set fallback failed"),m)});let f=a==="audio"?r._audioTrack:r._videoTrack;if(!f)throw new De(ce.UNEXPECTED_ERROR,"can not find remote track in user object");return f}catch(f){throw z.error("[".concat(this._clientId,"] subscribe user ").concat(r.uid," error"),f),f}finally{c()}}async _subscribe(r,a,o){if(this._p2pChannel instanceof Fl)return this._p2pSubscribe(r,a);if(as(a,"mediaType",["audio","video"]),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(C=>C===r)){let C=new De(ce.INVALID_REMOTE_USER,"user is not in the channel");throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid,", this user is not in the channel")),C}if(!r.hasAudio&&!r.hasVideo){let C=new De(ce.INVALID_REMOTE_USER,"user is not published");throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid,", user is not published")),C}if(!(o||(a!=="audio"||r.hasAudio&&r._audioSSRC!==void 0)&&(a!=="video"||r.hasVideo&&r._videoSSRC!==void 0))){let C=new De(ce.REMOTE_USER_IS_NOT_PUBLISHED);throw z.error("[".concat(this._clientId,"] can not subscribe ").concat(r.uid," with mediaType ").concat(a,", remote track is not published")),C}let c=a==="audio"?r._audioSSRC:r._videoSSRC,f=a==="audio"?r._audioOrtc:r._videoOrtc,m=a==="video"?r._rtxSsrcId:void 0,v={stream_type:a==="audio"?Wt.AUDIO:Wt.VIDEO,ssrcId:c},w=await this._subscribeMutex.lock();z.info("[".concat(this._clientId,"] subscribe user ").concat(r.uid,", mediaType: ").concat(a));try{if(await this._p2pChannel.hasRemoteMediaWithLock(r,a))await this._p2pChannel.unmuteRemote(r,a);else try{let R=a==="audio"?r._audioSSRC:r._videoSSRC;R!==void 0&&R!==c&&(c=R,f=a==="audio"?r._audioOrtc:r._videoOrtc,m=a==="video"?r._rtxSsrcId:void 0,v={stream_type:a==="audio"?Wt.AUDIO:Wt.VIDEO,ssrcId:c}),aa.markSubscribeStart(this.store.clientId,c),this.store.subscribe(r.uid,a,Date.now()),await this._p2pChannel.subscribe(r,a,c,m,f);try{await this._gateway.subscribe(r.uid,v,!0)}catch(x){if((x==null?void 0:x.code)!==ce.WS_ABORT)throw await this._p2pChannel.unsubscribe(r,a),x;await this._p2pChannel.unsubscribe(r,a,!0),this._p2pChannel.setPendingRemoteMedia(r,a)}this.store.subscribe(r.uid,a,void 0,Date.now()),this._p2pChannel.reportSubscribeEvent(!0,null,r,a)}catch(R){throw this._p2pChannel.reportSubscribeEvent(!1,R==null?void 0:R.code,r,a),R}z.info("[".concat(this._clientId,"] subscribe success user ").concat(r.uid,", mediaType: ").concat(a)),this._defaultStreamFallbackType&&this.setStreamFallbackOption(r.uid,this._defaultStreamFallbackType).catch(R=>{z.warning("[".concat(this._clientId,"] auto set fallback failed"),R)});let C=a==="audio"?r._audioTrack:r._videoTrack;if(!C)throw new De(ce.UNEXPECTED_ERROR,"can not find remote track in user object");return C}catch(C){throw z.error("[".concat(this._clientId,"] subscribe user ").concat(r.uid," error"),C),C}finally{w()}}async massSubscribe(r){if(pm(r,"subscribeList"),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));let a=Date.now(),o=new Map,c=await this._subscribeMutex.lock();z.info("[".concat(this._clientId,"]start massSubscribe user ").concat(r.map(w=>{let{user:C,mediaType:R}=w;return"user: ".concat(C==null?void 0:C.uid,", mediaType: ").concat(R)}).join("; ")));let f=(r=[...r]).map(w=>{let{user:C,mediaType:R}=w;return{user:C,mediaType:R}}),m=await this._p2pChannel.globalLock();try{var v;for(let C=r.length-1;C>=0;C--){let R=r[C],{user:x,mediaType:L}=R;if(as(L,"mediaType",["audio","video"]),!x){let Z=new De(ce.INVALID_PARAMS,"user property does not exist in subscribeList item");throw z.error("[".concat(this._clientId,"] user property does not exist in subscribeList item")),Z}if(!this._users.find(Z=>Z===x)){let Z=new De(ce.INVALID_REMOTE_USER,"user is not in the channel");z.error("[".concat(this._clientId,"] can not massSubscribe ").concat(x.uid,", this user is not in the channel")),f[C].error=Z,r.splice(C,1);continue}if(L==="audio"&&(!x.hasAudio||x._audioSSRC===void 0)||L==="video"&&(!x.hasVideo||x._videoSSRC===void 0)){let Z=new De(ce.REMOTE_USER_IS_NOT_PUBLISHED);z.error("[".concat(this._clientId,"] can not subscribe ").concat(x.uid," with mediaType ").concat(L,", remote user is not published")),f[C].error=Z,r.splice(C,1);continue}let U=ys.Video|ys.LwoVideo,F=o.get(x);if(F){if(L==="video"?F&U:F&ys.Audio){r.splice(C,1),z.warning("[".concat(this._clientId,"] repeat massSubscribe user:").concat(x.uid,", mediaType:").concat(L," twice"));continue}o.set(x,F|(L==="video"?U:ys.Audio))}else o.set(x,L==="video"?U:ys.Audio)}for(let C=r.length-1;C>=0;C--){let R=r[C],{user:x,mediaType:L}=R,U=ys.Video|ys.LwoVideo;if(this._p2pChannel.hasRemoteMedia(x,L)){await this._p2pChannel.unmuteRemoteNoLock(x,L);let F=o.get(x);o.set(x,L==="video"?F^U:F^ys.Audio),r.splice(C,1)}}this.store.massSubscribe(r.map(C=>({userId:C.user.uid,type:C.mediaType})),a);let w=_c(v=Array.from(o.entries())).call(v,(C,R)=>{let[x,L]=R;if(L===0)return C;let U={stream_id:x.uid,stream_type:L};return L&ys.Audio&&(U.audio_ssrc=x._audioSSRC),L&ys.Video&&(U.video_ssrc=x._videoSSRC),C.push(U),C},[]);try{r.length>0&&await this._p2pChannel.massSubscribeNoLock(r.map(R=>{let{user:x,mediaType:L}=R;return{user:x,mediaType:L,ssrcId:L===Wt.VIDEO?x._videoSSRC:x._audioSSRC,rtxSsrcId:L===Wt.VIDEO?x._rtxSsrcId:void 0}}));let C=new Map;if(w.length>0){let R=await this._gateway.subscribeAll(w,!0);((R==null?void 0:R.users)||[]).forEach(x=>{let{stream_id:L,video_error_code:U,audio_error_code:F,error_code:Z}=x;(U||F||Z)&&C.set(L,{video_error_code:U,audio_error_code:F,error_code:Z})})}if(Array.from(C.entries()).length>0){let R=[];Array.from(C.entries()).forEach(x=>{let[L,U]=x,F=this.remoteUsers.find(Z=>Z.uid===L);if(F){let Z;U.error_code||U.video_error_code&&U.audio_error_code?Z=void 0:U.video_error_code?Z=Wt.VIDEO:U.audio_error_code&&(Z=Wt.AUDIO),R.push({user:F,mediaType:Z})}}),R.length>0&&await this._p2pChannel.massUnsubscribeNoLock(R)}for(let R of f){let x=C.get(R.user.uid);if(x){let L=x.error_code||R.mediaType==="audio"&&x.audio_error_code||R.mediaType==="video"&&x.video_error_code;if(L){let U=Ky(L);z.error("user:".concat(R.user.uid," mediaType:").concat(R.mediaType," has massSubscribe error ").concat(U.desc)),R.error=new De(ce.SUBSCRIBE_FAILED,"code ".concat(L,": ").concat(U.desc))}}R.error||(R.mediaType==="video"?R.track=R.user.videoTrack:R.track=R.user.audioTrack)}return this.store.massSubscribe(f.filter(R=>!R.error).map(R=>({userId:R.user.uid,type:R.mediaType})),void 0,Date.now()),f.forEach(R=>{var x;$t.subscribe(this.store.sessionId,{succ:!!R.error,ec:((x=R.error)===null||x===void 0?void 0:x.code)||null,video:R.mediaType===Wt.VIDEO,audio:R.mediaType===Wt.AUDIO,peerid:R.user.uid,subscribeRequestid:R.mediaType===Wt.VIDEO?R.user._videoSSRC:R.user._audioSSRC,p2pid:this.store.p2pId,eventElapse:Math.floor(performance.now()-a)},!0)}),z.info("[".concat(this._clientId,"] massSubscribe success ").concat(r.map(R=>{let{user:x,mediaType:L}=R;return"user: ".concat(x==null?void 0:x.uid,", mediaType: ").concat(L)}).join("; "))),f}catch(C){throw await this._p2pChannel.massUnsubscribeNoLock(r),C}}finally{m(),c()}}async unsubscribe(r,a,o){if(!(r instanceof z0)){let f=this.remoteUsers.find(m=>m.uid===r);if(!f)throw new De(ce.INVALID_REMOTE_USER,"user is not in the channel");r=f}if(a||this.store.useP2P){if(a==="datachannel")return this._unsubscribeDataChannel(r,o)}else await this._unsubscribeDataChannel(r,o);if(a&&as(a,"mediaType",["audio","video"]),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"Can't unsubscribe stream, haven't joined yet!");if(!this._users.find(f=>f===r)){let f=new De(ce.INVALID_REMOTE_USER,"user is not in the channel");throw z.error("[".concat(this._clientId,"] can not unsubscribe ").concat(r.uid,", user is not in the channel")),f}z.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(r.uid,", mediaType: ").concat(a));let c=await this._subscribeMutex.lock();try{if(this._p2pChannel instanceof Fl)await this._p2pChannel.unsubscribe(r,a);else{let f=await this._p2pChannel.unsubscribe(r,a);f&&await this._gateway.unsubscribe(f,r.uid),a&&a!=="audio"||(r._audio_pre_subscribed=!1),a&&a!=="video"||(r._video_pre_subscribed=!1),r._is_pre_created&&L8(this._users,r),z.info("[".concat(this._clientId,"] unsubscribe success uid: ").concat(r.uid,", mediaType: ").concat(a))}}catch(f){if(f.code===ce.DISCONNECT_P2P)return void z.warning("disconnecting p2p, abort unsubscribe request.");throw z.error("[".concat(this._clientId,"] unsubscribe user ").concat(r.uid," error"),f.toString()),f}finally{c()}}async _unsubscribeDataChannel(r,a){if(a&&Ti(a,"id",0,65535,!0),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"Can't unsubscribe datachannel, haven't joined yet!");if(!this._users.find(c=>c===r)){let c=new De(ce.INVALID_REMOTE_USER,"user is not in the channel");throw z.error("[".concat(this._clientId,"] can not unsubscribe ").concat(r.uid,", user is not in the channel")),c}let o;if(typeof a=="number"){let c=r._dataChannels.find(f=>f.id===a);c&&(o=[c])}else o=r._dataChannels;if(o===void 0){let c=new De(ce.REMOTE_USER_IS_NOT_PUBLISHED);throw z.error("[".concat(this._clientId,"] can not unsubscribe ").concat(r.uid," with channelId ").concat(a,", remote datachannel is not published")),c}z.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(r.uid,", mediaType: datachannel, ids: ").concat(o.map(c=>c.id)));try{let c=await this._p2pChannel.unsubscribeDataChannel(r,o);c&&await this._gateway.unsubscribeDataChannel(c,r.uid),z.info("[".concat(this._clientId,"] unsubscribe datachannel success uid: ").concat(r.uid,", mediaType: datachannel, ids: ").concat(c))}catch(c){if(c.code===ce.DISCONNECT_P2P)return void z.warning("disconnecting p2p, abort unsubscribe request.");throw z.error("[".concat(this._clientId,"] unsubscribe user ").concat(r.uid," error"),c.toString()),c}}async massUnsubscribe(r){if(pm(r,"unsubscribeList"),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"Can't unsubscribeAll stream, haven't joined yet!");z.info("[".concat(this._clientId,"] start massUnsubscribe ").concat(r.map(o=>{let{user:c,mediaType:f}=o;return"user: ".concat(c==null?void 0:c.uid,", mediaType: ").concat(f,";")}).join())),r=[...r];let a=new Map;for(let o=r.length-1;o>=0;o--){let{user:c,mediaType:f}=r[o];if(!c){let v=new De(ce.INVALID_PARAMS,"user property does not exist in unsubscribeList item");throw z.error("[".concat(this._clientId,"] user property does not exist in unsubscribeList item")),v}if(as(f,"mediaType",["video","audio",void 0]),!this._users.find(v=>v===c)){z.warning("[".concat(this._clientId,"] can not unsubscribe ").concat(c.uid,", user is not in the channel")),r.splice(o,1);continue}let m=ys.Video|ys.LwoVideo;if(a.has(c)){let v=a.get(c),w;switch(f){case"video":w=v&m;break;case"audio":w=v&ys.Audio;break;default:w=v&(ys.Audio|m)}if(w){z.warning("[".concat(this._clientId,"] repeat massUnsubscribe user:").concat(c.uid,",mediaType:").concat(f," twice.")),r.splice(o,1);continue}f?f==="audio"?a.set(c,v|ys.Audio):f==="video"&&a.set(c,v|m):a.set(c,v|ys.Audio|m)}else f?f==="audio"?a.set(c,ys.Audio):f==="video"&&a.set(c,m):a.set(c,ys.Audio|m)}try{let o=await this._p2pChannel.massUnsubscribe(r);o&&await this._gateway.massUnsubscribe(o),z.info("[".concat(this._clientId,"] massUnsubscribe success ").concat(r.map(c=>{let{user:f,mediaType:m}=c;return"user: ".concat(f==null?void 0:f.uid,", mediaType: ").concat(m,";")}).join()))}catch(o){if(o.code===ce.DISCONNECT_P2P)return void z.warning("[".concat(this._clientId,"] disconnecting p2p, abort unsubscribe request."));throw z.error("[".concat(this._clientId,"] massUnsubscribe error"),o.toString()),o}}async setLowStreamParameter(r){(function(o){if(!o)throw new Ke(ce.INVALID_PARAMS);gr(o.width)||jH(o.width,"streamParameter.width"),gr(o.height)||jH(o.height,"streamParameter.height"),gr(o.framerate)||jH(o.framerate,"streamParameter.framerate"),gr(o.bitrate)||Ti(o.bitrate,"streamParameter.bitrate")})(r),(!r.width&&r.height||r.width&&!r.height)&&z.warning("[".concat(this._clientId,"] The width and height parameters take effect only when both are set")),z.info("[".concat(this._clientId,"] set low stream parameter to"),JSON.stringify(r));let a=this._configDistribute.getLowStreamConfigDistribute();if(a&&a.bitrate&&r.bitrate&&a.bitrate1e3+a.rttMs+100?this.ntpAlignErrorCount+=1:this.ntpAlignErrorCount=0,this.ntpAlignErrorCount>=3?o:0}getNtpWallTimeInMs(){return document.visibilityState==="visible"&&(this.remoteInboundOffset=this.getRemoteInboundOffset()),this.remoteInboundOffset+Date.now()+this._gateway.ntpOffset}setProxyServer(r,a){if(Ms(r,"proxyServer"),!a){if(this.connectionState!=="DISCONNECTED")throw new De(ce.INVALID_OPERATION,"Set proxy server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new De(ce.INVALID_OPERATION,"You have already set the proxy")}this._proxyServer=r,$t.setProxyServer(this._proxyServer),z.setProxyServer(this._proxyServer),z.info("[".concat(this._clientId,"] Set proxy server ").concat(a?"by initialize call":""," success."))}setTurnServer(r,a){if(Array.isArray(r)||(r=[r]),!a){if(this.connectionState!=="DISCONNECTED")throw new De(ce.INVALID_OPERATION,"Set turn server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new De(ce.INVALID_OPERATION,"You have already set the proxy")}if(US(r))return this._turnServer={servers:r,mode:"original-manual"},void z.info("[".concat(this._clientId,"] Set original turnserver ").concat(a?"by initialize call":""," success: ").concat(r.map(o=>o.urls).join(","),"."));r.forEach(o=>Wne(o)),this._turnServer={servers:r,mode:"manual"},z.info("[".concat(this._clientId,"] Set turnserver ").concat(a?"by initialize call":""," success."))}setLicense(r){if(this.connectionState!=="DISCONNECTED")throw new De(ce.INVALID_OPERATION,"you should set license before join channel");if(Ms(r,"license",32,32),!/^[A-Za-z\d]+$/.test(r))throw new De(ce.INVALID_PARAMS,"license should only contains characters from A-Z a-z 0-9");this._license=r,z.info("[".concat(this._clientId,"] set license success"),r)}startProxyServer(r){if(this.connectionState!=="DISCONNECTED")throw new De(ce.INVALID_OPERATION,"Start proxy server before join channel");if(this._proxyServer||this._turnServer.mode==="manual"||this._useLocalAccessPoint)throw new De(ce.INVALID_OPERATION,"You have already set the proxy");let a=[3,4,5],o;switch(r===void 0&&(r=3),r){case 1:case 2:throw new De(ce.NOT_SUPPORTED,"proxy mode 1/2 has been deprecated and not supported.");case 3:o="proxy3";break;case 4:o="proxy4";break;case 5:o="proxy5";break;default:throw new De(ce.INVALID_PARAMS,"proxy server mode must be ".concat(a.join("|")))}this._cloudProxyServerMode=o,this.store.cloudProxyServerMode=o,z.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode)}stopProxyServer(){if(this.connectionState!=="DISCONNECTED")throw new De(ce.INVALID_OPERATION,"Stop proxy server after leave channel");$t.setProxyServer(),z.setProxyServer(),this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled",z.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode),this._proxyServer=void 0,this._turnServer={mode:"auto",servers:[]}}setLocalAccessPointsV2(r){if(!r.accessPoints)throw new De(ce.INVALID_PARAMS,"accessPoints is required.");pm(r.accessPoints.serverList,"accessPoints.serverList"),Ms(r.accessPoints.domain,"accessPoints.domain");let a=(U,F)=>{Ti(U,F,0,65535,!0)},o=443;if(r.accessPoints.port&&(a(r.accessPoints.port,"accessPoints.port"),o=r.accessPoints.port),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new De(ce.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");ve("CLOSE_AFB_FOR_LOCAL_AP")&&(Ri("JOIN_WITH_FALLBACK_SIGNAL_PROXY",!1),Ri("JOIN_WITH_FALLBACK_MEDIA_PROXY",!1));let c=/^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,f=r.accessPoints.domain,m=r.accessPoints.serverList.map(U=>c.test(U)?"".concat(U.replace(/\./g,"-"),".").concat(f):U),v=m.map(U=>"".concat(U,":").concat(o));this._useLocalAccessPoint=!0,this._setLocalAPVersion=2,Ri("WEBCS_DOMAIN",v),Ri("WEBCS_DOMAIN_BACKUP_LIST",v),Ri("GATEWAY_DOMAINS",[f]),r.report&&r.report.hostname&&Array.isArray(r.report.hostname)&&r.report.hostname.length?(pm(r.report.hostname,"report.hostname"),Ri("EVENT_REPORT_DOMAIN",r.report.hostname[0]),Ri("EVENT_REPORT_BACKUP_DOMAIN",r.report.hostname[1]||r.report.hostname[0])):(Ri("EVENT_REPORT_DOMAIN",m[0]),Ri("EVENT_REPORT_BACKUP_DOMAIN",m[1]||m[0]));let w=6443;r.report&&r.report.port&&(a(r.report.port,"report.port"),w=r.report.port),Ri("STATS_COLLECTOR_PORT",w),r.report?Ri("ENABLE_EVENT_REPORT",!0):Ri("ENABLE_EVENT_REPORT",!1);let C="";r.log&&r.log.hostname&&Array.isArray(r.log.hostname)&&r.log.hostname.length?(pm(r.log.hostname,"log.hostname"),C=r.log.hostname[0]):C=m[0];let R=6444;r.log&&r.log.port&&(a(r.log.port,"log.port"),R=r.log.port),Ri("LOG_UPLOAD_SERVER","".concat(C,":").concat(R));let x=[];r.cds&&r.cds.hostname&&Array.isArray(r.cds.hostname)&&r.cds.hostname.length?(pm(r.cds.hostname,"cds.hostname"),x=r.cds.hostname):x=m;let L=443;r.cds&&r.cds.port&&(a(r.cds.port,"cds.port"),L=r.cds.port),Ri("CDS_AP",x.map(U=>"".concat(U,":").concat(L))),r.cds?Ri("ENABLE_CONFIG_DISTRIBUTE",!0):Ri("ENABLE_CONFIG_DISTRIBUTE",!1),z.info("set local access point v2 success")}setLocalAccessPoints(r,a){if(pm(r,"serverList"),Ms(a,"domain"),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new De(ce.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");let o=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;r=r.map(c=>o.test(c)?"".concat(c.replace(/\./g,"-"),".").concat(a):c),this._useLocalAccessPoint=!0,this._setLocalAPVersion=1,Ri("WEBCS_DOMAIN",r),Ri("WEBCS_DOMAIN_BACKUP_LIST",r),Ri("GATEWAY_DOMAINS",[a]),Ri("EVENT_REPORT_DOMAIN",r[0]),Ri("EVENT_REPORT_BACKUP_DOMAIN",r[1]||r[0]),Ri("LOG_UPLOAD_SERVER","".concat(r[0],":6444")),z.info("[".concat(this._clientId,"] set local access point success"))}async setRemoteDefaultVideoStreamType(r){if(as(r,"streamType",[0,1]),this._remoteDefaultVideoStreamType=r,this._joinInfo)try{await this._gateway.setDefaultRemoteVideoStreamType(r),this._joinInfo.defaultVideoStream=this._remoteDefaultVideoStreamType}catch(a){throw z.error("[".concat(this._clientId,"] set default remote video stream type error"),a.toString()),a}else z.debug("[".concat(this._clientId,"] haven't joined yet, cache remoteDefaultVideoStreamType ").concat(r))}async setRemoteVideoStreamType(r,a){as(a,"streamType",[0,1]);try{await this._gateway.setRemoteVideoStreamType(r,a),setTimeout(()=>{let o=this._users.find(c=>c.uid===r);o&&o.videoTrack&&o.videoTrack.updateMediaStreamTrackResolution()},2e3)}catch(o){throw z.error("[".concat(this._clientId,"] set remote video stream type error"),o.toString()),o}z.info("[".concat(this._clientId,"] set remote ").concat(r," video stream type to ").concat(a)),this._remoteStreamTypeCacheMap.set(r,a)}async setStreamFallbackOption(r,a){as(a,"fallbackType",[0,1,2]);try{await this._gateway.setStreamFallbackOption(r,a)}catch(o){throw z.error("[".concat(this._clientId,"] set stream fallback option"),o.toString()),o}z.info("[".concat(this._clientId,"] set remote ").concat(r," stream fallback type to ").concat(a)),this._streamFallbackTypeCacheMap.set(r,a)}setEncryptionConfig(r,a,o,c){(function(m){as(m,"encryptionMode",["aes-128-xts","aes-256-xts","aes-128-ecb","sm4-128-ecb","aes-128-gcm","aes-256-gcm","aes-128-gcm2","aes-256-gcm2","none"])})(r),Ms(a,"secret");let f=["aes-128-gcm2","aes-256-gcm2"];if(Tt(f).call(f,r)){if(!o||!(o instanceof Uint8Array&&o.length===32))throw new De(ce.INVALID_PARAMS,"salt must be an Uint8Array and exactly equal to 32 bytes")}else if(o)throw new De(ce.INVALID_PARAMS,"current encrypt mode does not need salt");if(c){if(fm(c,"encryptDataStream"),!Tt(f).call(f,r))throw new De(ce.INVALID_PARAMS,"current encrypt mode does not support data stream");this._encryptDataStream=!0}new RegExp(`^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*,.<>?/:;'"|{}\\[\\]])(?=.{8,})`).test(a)||z.warning(`The secret is not strong: + The secret must contain at least 1 lowercase alphabetical character, + The secret must contain at least 1 uppercase alphabetical character, + The secret must contain at least 1 numeric character, + The secret must contain at least one special character, + The secret must be eight characters or longer. + `),this._encryptionMode=r,this._encryptionSecret=a,o&&(this._encryptionSalt=R0(o))}async renewToken(r){if(Ms(r,"token",1,2047),!this._key||!this._joinInfo)throw new De(ce.INVALID_OPERATION,"renewToken should not be called before user join");let a=this._key;this._key=r,this._joinInfo&&(this._joinInfo.token=r);let o=await this._renewTokenMutex.lock();try{if(ve("USE_NEW_TOKEN")){z.debug("[".concat(this._clientId,"] start renew token with ticket from unilbs"));let c=await AAe(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||kr);z.debug("[".concat(this._clientId,"] get ticket from unilbs success")),await this._gateway.renewToken({token:r,ticket:c})}else z.debug("[".concat(this._clientId,"] start renew token without ticket")),await this._gateway.renewToken({token:r});z.debug("[".concat(this._clientId,"] renewToken success"))}catch(c){throw this._key=a,this._joinInfo.token=a,z.error("[".concat(this._clientId,"] renewToken failed"),c.toString()),c}finally{o()}}enableAudioVolumeIndicator(){this._audioVolumeIndicationInterval?z.warning("you have already enabled audio volume indicator!"):this._audioVolumeIndicationInterval=window.setInterval(()=>{let r=this._p2pChannel.getAudioLevels();this.safeEmit(Gn.VOLUME_INDICATOR,r)},ve("AUDIO_VOLUME_INDICATION_INTERVAL")||2e3)}getRTCStats(){let r=this._statsCollector.getRTCStats(),a=this._gateway.getInChannelInfo();return r.Duration=Math.round(a.duration/1e3),r}async startLiveStreaming(r,a){if(!a){if(this.codec!=="h264")throw new De(ce.LIVE_STREAMING_INVALID_RAW_STREAM,"raw streaming is only support h264");if(!this._p2pChannel.hasLocalMedia())throw new De(ce.LIVE_STREAMING_INVALID_RAW_STREAM,"can not find stream to raw streaming")}if(this._liveRawStreamingClient&&this._liveRawStreamingClient.hasUrl(r)||this._liveTranscodeStreamingClient&&this._liveTranscodeStreamingClient.hasUrl(r))throw new De(ce.LIVE_STREAMING_TASK_CONFLICT);let o=a?xs.TRANSCODE:xs.RAW;return this._createLiveStreamingClient(o).startLiveStreamingTask(r,o)}setLiveTranscoding(r){return this._createLiveStreamingClient(xs.TRANSCODE).setTranscodingConfig(r)}async stopLiveStreaming(r){let a=[this._liveRawStreamingClient,this._liveTranscodeStreamingClient].filter(o=>o&&o.hasUrl(r));if(!a.length)throw new De(ce.INVALID_PARAMS,"can not find live streaming url to stop");await Ct.all(a.map(o=>o&&o.stopLiveStreamingTask(r)))}async addInjectStreamUrl(r,a){if(!this._joinInfo)throw new De(ce.INVALID_OPERATION,"can not addInjectStreamUrl, no joininfo");let o=this._createLiveStreamingClient(xs.INJECT);o.setInjectStreamConfig(a,0),await o.startLiveStreamingTask(r,xs.INJECT)}async removeInjectStreamUrl(){var r;let a=this._createLiveStreamingClient(xs.INJECT),o=Array.from(Sh(r=a.streamingTasks).call(r)).find(c=>c.mode===xs.INJECT);if(!this._joinInfo||!o)throw new De(ce.INVALID_OPERATION,"can remove addInjectStreamUrl, no joininfo or inject task");await a.stopLiveStreamingTask(o.url)}async startChannelMediaRelay(r){ole(r),await this._createChannelMediaRelayClient().startChannelMediaRelay(r)}async updateChannelMediaRelay(r){ole(r),await this._createChannelMediaRelayClient().updateChannelMediaRelay(r)}async stopChannelMediaRelay(){await this._createChannelMediaRelayClient().stopChannelMediaRelay(),this._statsCollector.onStatsChanged&&(this._statsCollector.onStatsChanged=void 0)}async sendStreamMessage(r){var a;let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!this._joinInfo)throw new De(ce.INVALID_OPERATION,"can not send data stream, not joined");if((typeof r=="string"||r instanceof Uint8Array)&&(r={payload:r}),typeof r.payload=="string"){let f=new TextEncoder;r.payload=f.encode(r.payload)}let c=!1;if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Tt(a=["aes-128-gcm2","aes-256-gcm2"]).call(a,this._encryptionMode)&&(c=!0,r.payload=await async function(f,m,v){var w;let C=_c(w=Array.from(v)).call(w,(W,K)=>W+K,0),R={serverTs:0,seq:uxe++,length:v.length,checkSum:C},x=new Uint8Array(eie(C,2)),L=new ArrayBuffer(zS),U=new DataView(L);U.setUint32(0,R.serverTs),U.setUint16(4,R.seq),U.setUint16(6,R.length),U.setUint16(8,R.checkSum);let F=16-v.length%16;v=Yne(v,new Uint8Array(F));let Z=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:f,tagLength:iie,additionalData:x},m,v);return Yne(new Uint8Array(L),new Uint8Array(Z))}(this._encryptDataStreamIv,this._encryptDataStreamKey,r.payload)),new Blob([r.payload]).size>1024)throw new De(ce.INVALID_PARAMS,c?"encrypted stream message out of range.":"stream message out of range.");return this._gateway.signal.request(rn.DATA_STREAM,{payload:R0(r.payload),syncWithAudio:r.syncWithAudio,sendTs:Date.now()-Q4e},!o)}sendMetadata(r){if(!this._joinInfo)throw new De(ce.INVALID_OPERATION,"can not send metadata, not joined");if(new Blob([r]).size>1024)throw new De(ce.METADATA_OUT_OF_RANGE);return this._gateway.signal.request(rn.SEND_METADATA,{session_id:this._joinInfo.sid,metadata:R0(r)})}async sendCustomReportMessage(r){if(Array.isArray(r)||(r=[r]),r.forEach(fxe),!this._joinInfo)throw new De(ce.INVALID_OPERATION,"can not send custom report, not joined");await $t.sendCustomReportMessage(this._joinInfo.sid,r)}getLocalAudioStats(){return this._statsCollector.getLocalAudioTrackStats()}getRemoteAudioStats(){return this._statsCollector.getRemoteAudioTrackStats()}getLocalVideoStats(){return this._statsCollector.getLocalVideoTrackStats()}getRemoteVideoStats(){return this._statsCollector.getRemoteVideoTrackStats()}getRemoteNetworkQuality(){return this._statsCollector.getRemoteNetworkQualityStats()}async pickSVCLayer(r,a){as(a.spatialLayer,"spatialLayer",[0,1,2,3]),as(a.temporalLayer,"temporalLayer",[0,1,2,3]);try{await this._gateway.pickSVCLayer(r,a)}catch(o){throw z.error("[".concat(this._clientId,"] pick SVC layer failed"),o.toString()),o}}async setRTMConfig(r){let{apRTM:a=!1,rtmFlag:o}=r;if(fm(a,"apRTM"),Ti(o,"rtmFlag",0),this._rtmConfig.apRTM=a,this._rtmConfig.rtmFlag=o,z.debug("[".concat(this._clientId,"] setRTMconfig ").concat(JSON.stringify(r)," in ").concat(this.connectionState," state")),(this.connectionState==="CONNECTED"||this.connectionState==="RECONNECTING")&&this._joinInfo)return this._joinInfo.apRTM=a,this._joinInfo.rtmFlag=o,this._gateway.setRTM2Flag(o)}_reset(){if(z.debug("[".concat(this._clientId,"] reset client")),this._axiosCancelSource.cancel(),this._axiosCancelSource=Io.CancelToken.source(),this._streamFallbackTypeCacheMap=new Map,this._remoteStreamTypeCacheMap=new Map,this._configDistribute.stopGetConfigDistribute(),this._joinInfo&&tce(this._joinInfo),this._joinInfo=void 0,this._proxyServer=void 0,this._defaultStreamFallbackType=void 0,this._sessionId=null,this.store.sessionId=null,this._statsCollector.reset(),this._key=void 0,this._appId=void 0,this._uid=void 0,this.store.uid=void 0,this._channelName=void 0,this._encryptionMode="none",this._encryptionSecret=null,this._encryptionSalt=null,this._encryptDataStreamKey=null,this._encryptDataStreamIv=null,this._pendingPublishedUsers=[],this._users.forEach(r=>{r._audioTrack&&r._audioTrack._destroy(),r._videoTrack&&r._videoTrack._destroy(),r._dataChannels&&(r._dataChannels.forEach(a=>a._close()),r._dataChannels.length=0)}),this._users=[],this._audioVolumeIndicationInterval&&(window.clearInterval(this._audioVolumeIndicationInterval),this._audioVolumeIndicationInterval=void 0),this._cloudProxyServerMode==="fallback"&&(this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled"),this._p2pChannel.reset(),this._publishMutex=new Ts("client-publish"),this._subscribeMutex=new Ts("client-subscribe"),this._networkQualityInterval&&(window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=void 0),this._injectStreamingClient&&(this._injectStreamingClient.terminate(),this._injectStreamingClient.removeAllListeners(),this._injectStreamingClient=void 0),this._liveRawStreamingClient&&(this._liveRawStreamingClient.terminate(),this._liveRawStreamingClient.removeAllListeners(),this._liveRawStreamingClient=void 0),this._liveTranscodeStreamingClient&&(this._liveTranscodeStreamingClient.terminate(),this._liveTranscodeStreamingClient.removeAllListeners(),this._liveTranscodeStreamingClient=void 0),this._channelMediaRelayClient&&(this._channelMediaRelayClient.dispose(),this._channelMediaRelayClient=void 0),this._inspect)try{this._inspect.close(),this._inspect=void 0}catch{}if(this._moderation)try{this.setImageModeration(!1)}catch{}}_startSession(r,a){var o;let c=r||m3();r?z.debug("[".concat(this._clientId,"] new Session ").concat(c)):z.debug("[".concat(this._clientId,"] renewSession ").concat(this._sessionId," => ").concat(c));let f=r?"":this._sessionId||"";this._sessionId=c,this.store.sessionId=c;let m={lts:new Date().getTime(),mode:this.mode,buildFormat:1,stringUid:(a==null?void 0:a.stringUid)||((o=this._joinInfo)===null||o===void 0?void 0:o.stringUid),channelProfile:this.mode==="live"?1:0,channelMode:0,isABTestSuccess:Number(this._configDistribute.isSuccess),lsid:f,clientRole:this.role==="audience"?2:1};a?$t.sessionInit(this._sessionId,yd({cname:a.channel,appid:a.appId,preload:a.preload},m)):this._joinInfo?$t.sessionInit(this._sessionId,yd({cname:this._joinInfo.cname,appid:this._joinInfo.appId,preload:!!this._joinInfo.recoverPreloadCache},m)):this._gateway.joinInfo&&$t.sessionInit(this._sessionId,yd({cname:this._gateway.joinInfo.cname,appid:this._gateway.joinInfo.appId},m)),this._joinInfo&&(this._joinInfo.sid=c),this._gateway.joinInfo&&(this._gateway.joinInfo.sid=c)}async _publishHighStream(r){if(!this._joinInfo||this._uid===void 0)throw new De(ce.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&ve("FORCE_TURN")&&!ve("TURN_ENABLE_TCP")&&!ve("TURN_ENABLE_UDP"))throw new De(ce.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");z.debug("[".concat(this._clientId,"] publish high stream"));try{let o=await this._p2pChannel.publish(r,this._isDualStreamEnabled,this._lowStreamParameter);if(this._p2pChannel instanceof Fl){let c=(await o.next()).value;if(c){try{await this._gateway.sendExtensionMessage(Nr.PUBLISH,c,!0)}catch(f){throw o.throw(f),f}await o.next()}this._p2pChannel.reportPublishEvent(!0,null)}else{let c=(await o.next()).value;if(c){var a;let f;try{f=await this._gateway.publish(this._uid,c,!0)}catch(m){if(m.code!==ce.DISCONNECT_P2P)throw o.throw(m),m}await o.next(((a=f)===null||a===void 0?void 0:a.ortc)||[])}this._p2pChannel.reportPublishEvent(!0,null);for(let f of r)f instanceof ki&&f._encoderConfig&&this._gateway.setVideoProfile(f._encoderConfig),!f.muted&&f.enabled||await this._p2pChannel.muteLocalTrack(f)}}catch(o){if(this._p2pChannel.reportPublishEvent(!1,o==null?void 0:o.code,r),(o==null?void 0:o.code)===ce.WS_ABORT)return;throw o}}async _publishLowStream(){if(!this._joinInfo||this._uid===void 0)throw new De(ce.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new De(ce.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));z.debug("[".concat(this._clientId,"] publish low stream"));let r=this._configDistribute.getLowStreamConfigDistribute();r&&r.bitrate&&(this._lowStreamParameter||(this._lowStreamParameter={width:160,height:120,framerate:15,bitrate:50}),this._lowStreamParameter&&this._lowStreamParameter.bitrate&&r.bitratenew R4e(this._joinInfo,this._config.websocketRetryConfig||kr,this._config.httpRetryConfig||kr),o=c=>{c.onLiveStreamError=(f,m)=>{$t.reportApiInvoke(this._sessionId,{name:$r.ON_LIVE_STREAM_ERROR,options:[f,m],tag:vr.TRACER}).onSuccess(),this.safeEmit(Gn.LIVE_STREAMING_ERROR,f,m)},c.onLiveStreamWarning=(f,m)=>{$t.reportApiInvoke(this._sessionId,{name:$r.ON_LIVE_STREAM_WARNING,options:[f,m],tag:vr.TRACER}).onSuccess(),this.safeEmit(Gn.LIVE_STREAMING_WARNING,f,m)},c.on(G8.REQUEST_WORKER_MANAGER_LIST,(f,m,v)=>{if(!this._joinInfo)return v(new De(ce.INVALID_OPERATION,"can not find join info to get worker manager"));$ie(f,this._joinInfo,this._axiosCancelSource.token,kr).then(m).catch(v)})};switch(r){case xs.RAW:return this._liveRawStreamingClient||(this._liveRawStreamingClient=a(),o(this._liveRawStreamingClient)),this._liveRawStreamingClient;case xs.TRANSCODE:return this._liveTranscodeStreamingClient||(this._liveTranscodeStreamingClient=a(),o(this._liveTranscodeStreamingClient)),this._liveTranscodeStreamingClient;case xs.INJECT:return this._injectStreamingClient||(this._injectStreamingClient=a(),this._injectStreamingClient.on(G8.REQUEST_WORKER_MANAGER_LIST,(c,f,m)=>{if(!this._joinInfo)return m(new De(ce.INVALID_OPERATION,"can not find join info to get worker manager"));$ie(c,this._joinInfo,this._axiosCancelSource.token,kr).then(f).catch(m)}),this._injectStreamingClient.onInjectStatusChange=(c,f,m)=>{this.safeEmit(Gn.INJECT_STREAM_STATUS,c,f,m)}),this._injectStreamingClient}}_createChannelMediaRelayClient(){if(!this._joinInfo)return new De(ce.INVALID_OPERATION,"can not create channel media relay client, please join channel first").throw();if(!this._channelMediaRelayClient){let{sendResolutionWidth:r,sendResolutionHeight:a}=this.getLocalVideoStats(),o={width:r,height:a};this._channelMediaRelayClient=new A4e(this._joinInfo,this._clientId,this._config.websocketRetryConfig||kr,this._config.httpRetryConfig||kr,o),this._channelMediaRelayClient.on("state",c=>{c===il.RELAY_STATE_FAILURE&&this._channelMediaRelayClient&&this._channelMediaRelayClient.dispose(),this.safeEmit(Gn.CHANNEL_MEDIA_RELAY_STATE,c)}),this._channelMediaRelayClient.on("event",c=>{this.safeEmit(Gn.CHANNEL_MEDIA_RELAY_EVENT,c)}),this._statsCollector.onStatsChanged=(c,f)=>{var m;c==="resolution"&&((m=this._channelMediaRelayClient)===null||m===void 0||m.setVideoProfile(f))}}return this._channelMediaRelayClient}_handleUpdateDataChannel(r,a){let{added:o,deleted:c}=r,f=[];Array.isArray(o)&&o.length>0&&o.forEach(m=>{let{uid:v,stream_id:w,ordered:C,max_retrans_times:R,metadata:x}=m,L=this._users.find(U=>U._uintid===v);if(!L)return void z.error("[".concat(this._clientId,"] can not find target user!(on_add_data_channel)"));if(z.debug("[".concat(this._clientId,"] data_channel added with uid ").concat(v)),Tt(f).call(f,L)||f.push(L),L._uintid||(L._uintid=v),L._dataChannels.findIndex(U=>U.id===m.stream_id)===-1){let U={id:w,ordered:!!C,maxRetransmits:R,metadata:x},F=new i4e(U);L._dataChannels.push(F),z.info("[".concat(this._clientId,"] remote user ").concat(L.uid," published datachannel")),a||this.safeEmit(Gn.USER_PUBLISHED,L,"datachannel",U)}this._p2pChannel.hasPendingRemoteDataChannel(L,m.stream_id)&&(z.debug("[".concat(this._clientId,"] resubscribe datachannel for user ").concat(L.uid," after reconnect.")),this._subscribeDataChannel(L,m.stream_id).catch(U=>{z.error("[".concat(this._clientId,"] resubscribe datachannel error"),U.toString())}))}),a&&(this.safeEmit(Gn.PUBLISHED_USER_LIST,this._pendingPublishedUsers),this._pendingPublishedUsers=[]),Array.isArray(c)&&c.length>0&&c.forEach(m=>{let{uid:v,stream_id:w}=m,C=this._users.find(x=>x._uintid===v);if(!C)return void z.error("[".concat(this._clientId,"] can not find target user!(on_delete_data_channel)"));let R=C._dataChannels.find(x=>x.id===m.stream_id);R&&(z.debug("[".concat(this._clientId,"] data_stream delete with uid ").concat(v)),this._p2pChannel.unsubscribeDataChannel(C,[R]).then(x=>{if(C._dataChannels=C._dataChannels.filter(L=>L!==R),x)return this._gateway.unsubscribeDataChannel(x,C.uid)}),z.info("[".concat(this._clientId,"] remote user ").concat(v," unpublished datachannel ,id:").concat(R.id)),this.safeEmit(Gn.USER_UNPUBLISHED,C,"datachannel",R._config))})}_handleRemoveDataChannels(r){let a=this._users.find(o=>o.uid===r.uid);if(a){if(a._dataChannels!==void 0&&a._dataChannels.length>0){z.debug("[".concat(this._clientId,"] datachannel removed with uid ").concat(r.uid));let o=()=>{z.info("[".concat(this._clientId,"] remote user ").concat(a.uid," unpublished datachannel")),a._dataChannels.forEach(c=>{this.safeEmit(Gn.USER_UNPUBLISHED,a,"datachannel",c._config)})};this._p2pChannel.unsubscribeDataChannel(a,a._dataChannels).then(c=>{if(c)return this._gateway.unsubscribeDataChannel(c,a.uid)}),o()}}else z.warning("[".concat(this._clientId,"] can not find target user!(on_remove_datachannel)"))}_handleGatewayEvents(){this._gateway.on(Ir.DISCONNECT_P2P,async()=>{await this._p2pChannel.disconnectForReconnect()}),this._gateway.on(Ir.CONNECTION_STATE_CHANGE,(r,a,o)=>{var c;if(o===Hn.FALLBACK)return;let f=()=>{this.safeEmit(Gn.CONNECTION_STATE_CHANGE,r,a,o)};if($t.reportApiInvoke(this._sessionId||((c=this._gateway.joinInfo)===null||c===void 0?void 0:c.sid)||null,{name:$r.CONNECTION_STATE_CHANGE,options:[r,a,o],tag:vr.TRACER}).onSuccess(JSON.stringify({cur:r,prev:a,reason:o})),z.info("[".concat(this._clientId,"] connection state change: ").concat(a," -> ").concat(r)),r==="DISCONNECTED")return this._reset(),void f();if(r==="RECONNECTING")this._users.forEach(v=>{v._trust_in_room_=!1,v._trust_audio_enabled_state_=!1,v._trust_video_enabled_state_=!1,v._trust_audio_mute_state_=!1,v._trust_video_mute_state_=!1,v._trust_audio_stream_added_state_=!1,v._trust_video_stream_added_state_=!1,v._is_pre_created||(v._audio_pre_subscribed||(v._audioSSRC=void 0,v._audioOrtc=void 0),v._video_pre_subscribed||(v._videoSSRC=void 0,v._videoOrtc=void 0,v._rtxSsrcId=void 0),v._cname=void 0)}),this._userOfflineTimeout&&window.clearTimeout(this._userOfflineTimeout),this._streamRemovedTimeout&&window.clearTimeout(this._streamRemovedTimeout),this._userOfflineTimeout=void 0,this._streamRemovedTimeout=void 0;else if(r==="CONNECTED"){var m;this._streamFallbackTypeCacheMap.forEach((v,w)=>{this._gateway.setStreamFallbackOption(w,v).catch(C=>{z.warning("[".concat(this._clientId,"] auto set stream fallback option failed"),C)})}),this._remoteStreamTypeCacheMap.forEach((v,w)=>{this._gateway.setRemoteVideoStreamType(w,v).catch(C=>{z.warning("[".concat(this._clientId,"] auto set remote stream type failed"),C)})}),this._remoteDefaultVideoStreamType!==void 0&&((m=this._joinInfo)===null||m===void 0?void 0:m.defaultVideoStream)===void 0&&this.setRemoteDefaultVideoStreamType(this._remoteDefaultVideoStreamType).then(()=>{z.debug("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway connected"))}).catch(v=>{z.error("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway failed, ").concat(v))}),this.store.useP2P||(this._p2pChannel.republish(),this._userOfflineTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._userOfflineTimeout=void 0,this._users.filter(v=>!v._trust_in_room_).forEach(v=>{z.debug("[".concat(this._clientId,"] user offline timeout, emit user offline ").concat(v.uid)),this._handleUserOffline({uid:v.uid})}))},3e3),this._streamRemovedTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._streamRemovedTimeout=void 0,this._users.forEach(v=>{v._trust_audio_mute_state_||(z.debug("[".concat(this._clientId,"] auto dispatch audio unmute event ").concat(v.uid)),this._handleMuteStream(v.uid,Wt.AUDIO,!1)),v._trust_video_mute_state_||(z.debug("[".concat(this._clientId,"] auto dispatch video unmute event ").concat(v.uid)),this._handleMuteStream(v.uid,Wt.VIDEO,!1)),v._trust_audio_enabled_state_||(z.debug("[".concat(this._clientId,"] auto dispatch enable local audio ").concat(v.uid)),this._handleSetStreamLocalEnable("audio",v.uid,!0)),v._trust_video_enabled_state_||(z.debug("[".concat(this._clientId,"] auto dispatch enable local video ").concat(v.uid)),this._handleSetStreamLocalEnable("video",v.uid,!0)),v._trust_video_stream_added_state_||(z.debug("[".concat(this._clientId,"] auto dispatch reset video stream added ").concat(v.uid)),this._handleResetAddStream(v,"video")),v._trust_audio_stream_added_state_||(z.debug("[".concat(this._clientId,"] auto dispatch reset audio stream added ").concat(v.uid)),this._handleResetAddStream(v,"audio")),v._video_added_||v._audio_added_||(z.debug("[".concat(this._clientId,"] auto dispatch stream remove ").concat(v.uid)),this._handleRemoveStream({uid:v.uid,uint_id:v._uintid}))}))},1e3))}f()}),this._gateway.on(Ir.REQUEST_NEW_GATEWAY_LIST,async(r,a)=>{if(!this._joinInfo)return a(new De(ce.UNEXPECTED_ERROR,"can not recover, no join info"));try{let o;this._joinInfo.recoverPreloadCache?(o=this._joinInfo.recoverPreloadCache.ap,nce(this._joinInfo.recoverPreloadCache),this._joinInfo.recoverPreloadCache=void 0):o=await vG(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||kr,this.store),this._joinInfo&&(this._joinInfo.apResponse=o.gatewayInfo.res,this._joinInfo.gatewayAddrs=o.gatewayInfo.gatewayAddrs,this._joinInfo.uni_lbs_ip=o.gatewayInfo.uni_lbs_ip);let c=[];o.gatewayInfo.gatewayAddrs.forEach(f=>{let{address:m}=f,[v,w]=m.split(":");this._joinInfo&&this._joinInfo.proxyServer?c.push({proxy:this._joinInfo.proxyServer,host:v,port:w}):c.push({host:v,port:w})}),r(c)}catch(o){a(o)}}),this._gateway.on(Ir.NETWORK_QUALITY,r=>{this._networkQualitySensitivity==="normal"&&this.safeEmit(Gn.NETWORK_QUALITY,r)}),this._gateway.on(Ir.STREAM_TYPE_CHANGE,(r,a)=>{this.safeEmit(Gn.STREAM_TYPE_CHANGED,r,a),$t.reportApiInvoke(this._sessionId,{name:$r.STREAM_TYPE_CHANGE,options:[r,a],tag:vr.TRACER}).onSuccess(JSON.stringify({uid:r,streamType:a}))}),this._gateway.on(Ir.IS_P2P_DISCONNECTED,r=>{this._p2pChannel.isP2PDisconnected()?r(!0):this._p2pChannel.hasLocalMedia()||this._p2pChannel.hasRemoteMedia()?r(!1):r(!0)}),this._gateway.on(Ir.NEED_RENEW_SESSION,async r=>{if(r==="recover"&&this._joinInfo){let a=await Zle(yd(yd({},this._joinInfo),{},{uid:this._joinInfo.uid,stringUid:void 0}));this._joinInfo.recoverPreloadCache=a,this._startSession(a==null?void 0:a.sid)}else this._startSession()}),this._gateway.on(Ir.REQUEST_P2P_CONNECTION_PARAMS,async(r,a,o)=>{try{a(await this._p2pChannel.startP2PConnection(r))}catch(c){o(c)}}),this._gateway.on(Ir.JOIN_RESPONSE,(r,a)=>{if(this.store.useP2P)return;let{dtlsParameters:o,iceParameters:c,candidates:f,rtpCapabilities:m,setup:v,cname:w}=koe(r.ortc,a);this._p2pChannel.connect(c,o,f,m,v,w)}),this._gateway.on(Ir.REQUEST_DC_CONNECTION_PARAMS,r=>{r(this._p2pChannel.getEstablishParams())}),this._gateway.on(Ir.RESET_SIGNAL,r=>{this._p2pChannel.resetConnection(r),this._handleGatewaySignalEvents()}),this._gateway.on(Ir.DATACHANNEL_FAILBACK,()=>{this._joinGateway()}),this._gateway.on(Ir.DATACHANNEL_PRECONNECT,async(r,a,o,c)=>{var f,m,v,w,C,R;await this._p2pChannel.startP2PConnection({turnServer:(f=this._joinInfo)===null||f===void 0?void 0:f.turnServer},!0);let x=function(L,U){let F;return U&&U.ip&&typeof U.port=="number"?(F=[{foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:U.ip,port:U.port.toString(),type:"host",extension:{}}],z.debug("Using remote candidate from AP ".concat(U.ip,":").concat(U.port)),U.ip6&&(F.push({foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:U.ip6,port:U.port.toString(),type:"host",extension:{}}),z.debug("Using IPV6 remote candidate from AP ".concat(U.ip6,":").concat(U.port)))):F=[{foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:L.ip,port:L.port.toString(),type:"host",extension:{}}],F}(r,a);return this._p2pChannel.preConnect({iceUfrag:"".concat((m=this._joinInfo)===null||m===void 0?void 0:m.apResponse.cid,"_").concat((v=this._joinInfo)===null||v===void 0?void 0:v.apResponse.cert),icePwd:"".concat((w=this._joinInfo)===null||w===void 0?void 0:w.apResponse.cid,"_").concat((C=this._joinInfo)===null||C===void 0?void 0:C.apResponse.cert)},{fingerprints:[{hashFunction:"sha-256",fingerprint:(R=ve("FINGERPRINT"))!==null&&R!==void 0?R:r.fingerprint}]},x,{send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},"active","o/i14u9pJrxRKAsu").then(o).catch(c)})}_handleGatewaySignalEvents(){this._gateway.signal.on(Sn.ON_USER_ONLINE,this._handleUserOnline),this._gateway.signal.on(Sn.ON_USER_OFFLINE,this._handleUserOffline),this._gateway.signal.on(Sn.ON_ADD_AUDIO_STREAM,r=>this._handleAddAudioOrVideoStream("audio",r.uid,r.ssrcId,r.cname,r.uint_id,r.ortc)),this._gateway.signal.on(Sn.ON_ADD_VIDEO_STREAM,r=>this._handleAddAudioOrVideoStream("video",r.uid,r.ssrcId,r.cname,r.uint_id,r.ortc,r.rtxSsrcId)),this._gateway.signal.on(Sn.ON_REMOTE_DATASTREAM_UPDATE,r=>{this._handleUpdateDataChannel(r)}),this._gateway.signal.on(Sn.ON_REMOTE_FULL_DATASTREAM_INFO,r=>{this._handleUpdateDataChannel({added:r.datastreams,deleted:[]},!0)}),this._gateway.signal.on(Sn.ON_REMOVE_STREAM,this._handleRemoveStream),this._gateway.signal.on(Sn.ON_P2P_LOST,this._handleP2PLost),this._gateway.signal.on(Sn.MUTE_AUDIO,r=>this._handleMuteStream(r.uid,Wt.AUDIO,!0)),this._gateway.signal.on(Sn.UNMUTE_AUDIO,r=>this._handleMuteStream(r.uid,Wt.AUDIO,!1)),this._gateway.signal.on(Sn.MUTE_VIDEO,r=>this._handleMuteStream(r.uid,Wt.VIDEO,!0)),this._gateway.signal.on(Sn.UNMUTE_VIDEO,r=>this._handleMuteStream(r.uid,Wt.VIDEO,!1)),this._gateway.signal.on(Sn.RECEIVE_METADATA,r=>{let a=Hy(r.metadata);this.safeEmit(Gn.RECEIVE_METADATA,r.uid,a)}),this._gateway.signal.on(Sn.ON_DATA_STREAM,async r=>{var a;if(!r)return;let o=Hy(r.payload);if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Tt(a=["aes-128-gcm2","aes-256-gcm2"]).call(a,this._encryptionMode)){if(r.payload.lengthw.uid===r.uid),v=f==null?void 0:f.audioRecv.find(w=>w.ssrc===(m==null?void 0:m._audioSSRC));c=v==null?void 0:v.jitterBufferMs}c==null&&(c=0),eNe(yd(yd({},r),{},{payload:o}),c,{id:this._clientId,onStreamMessage:typeof this.onStreamMessage=="function"?this.onStreamMessage.bind(this):void 0,safeEmit:this.safeEmit.bind(this)})}),this._gateway.signal.on(Sn.ON_CRYPT_ERROR,()=>{T0(()=>{z.warning("[".concat(this._clientId,"] on crypt error")),this.safeEmit(Gn.CRYPT_ERROR)},this._sessionId)}),this._gateway.signal.on(Sn.ON_TOKEN_PRIVILEGE_WILL_EXPIRE,this._handleTokenWillExpire),this._gateway.signal.on(Sn.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{z.warning("[".concat(this._clientId,"] received message onTokenPrivilegeDidExpire, please get new token and join again")),this._gateway.leave(!0,Hn.TOKEN_EXPIRE),this.safeEmit(Gn.ON_TOKEN_PRIVILEGE_DID_EXPIRE),this._reset()}),this._gateway.signal.on(Sn.ON_STREAM_FALLBACK_UPDATE,r=>{z.debug("[".concat(this._clientId,"] stream fallback peerId: ").concat(r.stream_id,", attr: ").concat(r.stream_type)),this.safeEmit(Gn.STREAM_FALLBACK,r.stream_id,r.stream_type===1?"fallback":"recover")}),this._gateway.signal.on(Sn.ON_PUBLISH_STREAM,r=>{this.uid===this._uid&&(this._p2pChannel.reportPublishEvent(!0,null,void 0,!1,JSON.stringify({proxy:r.proxy})),z.info("[".concat(this._clientId,"] on publish stream, ").concat(JSON.stringify(r))))}),this._gateway.signal.on(Sn.ENABLE_LOCAL_VIDEO,r=>{this._handleSetStreamLocalEnable("video",r.uid,!0)}),this._gateway.signal.on(Sn.DISABLE_LOCAL_VIDEO,r=>{this._handleSetStreamLocalEnable("video",r.uid,!1)}),this._gateway.signal.on(Ut.REQUEST_TIMEOUT,(r,a)=>{if(this._joinInfo)switch(r){case rn.PUBLISH:{if(!a)return;let f=a.ortc;if(f){var o,c;let m=f.some(C=>{let{stream_type:R}=C;return R===pi.Audio}),v=f.some(C=>{let{stream_type:R}=C;return R!==pi.Audio}),w=f.some(C=>{let{stream_type:R}=C;return R===pi.Screen||R===pi.ScreenLow});a.state==="offer"&&$t.publish(this._joinInfo.sid,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:!1,ec:ce.TIMEOUT,audio:m,video:v,p2pid:a.p2p_id,publishRequestid:this.store.pubId,screenshare:w,audioName:m?(o=f.find(C=>{let{stream_type:R}=C;return R===pi.Audio}))===null||o===void 0||(o=o.ssrcs[0])===null||o===void 0?void 0:o.ssrcId.toString():void 0,videoName:v?(c=f.find(C=>{let{stream_type:R}=C;return R!==pi.Audio}))===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId.toString():void 0})}break}case rn.SUBSCRIBE:a&&$t.subscribe(this._joinInfo.sid,{succ:!1,ec:ce.TIMEOUT,audio:a.stream_type===Wt.AUDIO,video:a.stream_type===Wt.VIDEO,peerid:a.stream_id,subscribeRequestid:a.ssrcId,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,a.ssrcId)})}}),this._gateway.signal.on(Sn.ON_P2P_OK,r=>{this.uid,this._uid}),this._gateway.signal.on(Sn.ON_PUBLISHED_USER_LIST,r=>{if(r==null||!r.users)return;ve("BLOCK_LOCAL_CLIENT")&&(r.users=r.users.filter(c=>!Wy(c.string_id||c.stream_id,this.channelName)));let a=[],o=[];for(let c of r.users){let f=this._users.find(x=>x._uintid===c.stream_id);f?f._trust_in_room_=!0:(f=new z0(c.string_id||c.stream_id,c.stream_id),this._users.push(f),this.getListeners(Gn.PUBLISHED_USER_LIST).length===0&&(z.debug("[".concat(this._clientId,"] user online"),c.stream_id),this.safeEmit(Gn.USER_JOINED,f)));let m=ys.Audio&c.stream_type,v=(ys.Video|ys.LwoVideo)&c.stream_type,w=(65280&c.stream_type)!=0,C=m&&f.hasAudio,R=v&&f.hasVideo;v&&(f._trust_video_stream_added_state_=!0,f._video_added_=!0,f._videoSSRC=c.video_ssrc,f._rtxSsrcId=c.video_rtx),m&&(f._trust_audio_stream_added_state_=!0,f._audio_added_=!0,f._audioSSRC=c.audio_ssrc),m&&!C&&this.getListeners(Gn.PUBLISHED_USER_LIST).length===0&&(z.info("[".concat(this._clientId,"] remote user ").concat(f.uid," published audio")),this.safeEmit(Gn.USER_PUBLISHED,f,"audio")),v&&!R&&this.getListeners(Gn.PUBLISHED_USER_LIST).length===0&&(z.info("[".concat(this._clientId,"] remote user ").concat(f.uid," published video")),this.safeEmit(Gn.USER_PUBLISHED,f,"video")),(m&&!C||v&&!R||w)&&a.push(f),v&&this._p2pChannel.hasPendingRemoteMedia(f,"video")&&o.push({user:f,mediaType:"video"}),m&&this._p2pChannel.hasPendingRemoteMedia(f,"audio")&&o.push({user:f,mediaType:"audio"})}o.length>0&&(z.debug("[".concat(this._clientId,"] RE massSubscribe after reconnect ").concat(o.map(c=>"user: ".concat(c.user.uid,", mediaType: ").concat(c.mediaType)).join("; ")," ")),this.massSubscribe(o).catch(c=>{z.error("[".concat(this._clientId,"] mass resubscribe error"),c.toString())})),this.getListeners(Gn.PUBLISHED_USER_LIST).length>0?ve("ENABLE_DATASTREAM_2")?this._pendingPublishedUsers=a:(z.info("[".concat(this._clientId,"] client emit user-list event, users: ").concat(a.map(c=>c.uid).join(", "))),this.safeEmit(Gn.PUBLISHED_USER_LIST,a)):z.info("[".concat(this._clientId,"] client not emit user-list event case there is no user-list listener, users: ").concat(a.map(c=>c.uid).join(", ")))}),this._gateway.signal.on(Sn.ON_RTP_CAPABILITY_CHANGE,r=>{let{video_codec:a}=r;this._p2pChannel instanceof GD&&this._p2pChannel.updateRemoteRTPCapabilities(a.map(o=>o.toLowerCase()).filter(o=>{var c;return Tt(c=Object.keys(VS)).call(c,o)}))})}_handleP2PEvents(){this._gateway.signal.on(Sn.ON_USER_OFFLINE,()=>{this._p2pChannel.disconnectForReconnect()}),this._gateway.signal.on(Nr.PUBLISH,(r,a,o)=>{let{uid:c}=r;r.forEach(f=>{let{kind:m,ssrcs:v,mid:w,isMuted:C}=f;this._handleP2PAddAudioOrVideoStream(m,c,v[0].ssrcId,w);let R=this._users.find(x=>x.uid===c);return R&&this._p2pChannel instanceof Fl?this._p2pChannel.mockSubscribe(R,m,v[0].ssrcId,w).then(()=>{a()}).catch(o):a(),this._handleMuteStream(c,m,!!C)})}),this._gateway.signal.on(Nr.CALL,async(r,a,o)=>{if(this._p2pChannel instanceof Fl)try{var c;a(await this._p2pChannel.startP2P({turnServer:(c=this._joinInfo)===null||c===void 0?void 0:c.turnServer},r))}catch(f){o(f)}}),this._gateway.signal.on(Ut.P2P_CONNECTION,async r=>{this._p2pChannel instanceof Fl&&await this._p2pChannel.p2pConnect(r)}),this._gateway.signal.on(Nr.UNPUBLISH,async(r,a,o)=>{if(this._p2pChannel instanceof Fl){let{unpubMsg:c,uid:f}=r,m=this._users.find(v=>v.uid===f);if(!m)return z.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(f)),void a();try{c.forEach(async v=>{let{stream_type:w}=v,C=w===pi.Audio?Wt.AUDIO:Wt.VIDEO;await this._p2pChannel.unsubscribe(m,C),this._handleMuteStream(f,C,!0)}),a()}catch(v){o(v)}}}),this._gateway.signal.on(Nr.CONTROL,async(r,a)=>{let{action:o}=r;switch(o){case N0.MUTE_LOCAL_VIDEO:this._handleMuteStream(a,Wt.VIDEO,!0);break;case N0.MUTE_LOCAL_AUDIO:this._handleMuteStream(a,Wt.AUDIO,!0);break;case N0.UNMUTE_LOCAL_VIDEO:this._handleP2PAddAudioOrVideoStream("video",a),this._handleMuteStream(a,Wt.VIDEO,!1);break;case N0.UNMUTE_LOCAL_AUDIO:this._handleP2PAddAudioOrVideoStream("audio",a),this._handleMuteStream(a,Wt.AUDIO,!1)}}),this._gateway.signal.on(Nr.RESTART_ICE,async(r,a,o)=>{if(this._p2pChannel instanceof Fl)try{let{direction:c,iceParameter:f}=r;c!==no.SEND_ONLY||f?a(await this._p2pChannel.restartICE(c,f)):(this._p2pChannel.handleDisconnect(c),a())}catch(c){o(c)}}),this._gateway.signal.on(Nr.CANDIDATE,r=>{if(this._p2pChannel instanceof Fl){let{candidate:a,direction:o}=r;this._p2pChannel.addRemoteCandidate(a,o)}}),this._p2pChannel.on(pn.RequestP2PRestartICE,async(r,a,o)=>{try{let{direction:c}=r;a(await this._gateway.sendExtensionMessage(Nr.RESTART_ICE,r,c===no.SEND_ONLY))}catch(c){o(c)}}),this._p2pChannel.on(pn.LocalCandidate,r=>{this._gateway.sendExtensionMessage(Nr.CANDIDATE,JSON.stringify(r),!0)}),this._p2pChannel.on(pn.RequestP2PMuteLocal,async(r,a,o)=>{try{await this._gateway.sendExtensionMessage(Nr.CONTROL,r,!0),a()}catch(c){o(c)}}),this._p2pChannel.on(pn.RequestP2PUnmuteRemote,async(r,a,o)=>{if(this._joinInfo)try{await this._gateway.unmuteRemote(r,this._joinInfo.stringUid||this._joinInfo.uid),a()}catch(c){c.code===ce.DISCONNECT_P2P?a():o(c)}else a()}),this._p2pChannel.on(pn.RequestP2PMuteRemote,async(r,a,o)=>{if(this._joinInfo)try{await this._gateway.muteRemote(r,this._joinInfo.stringUid||this._joinInfo.uid),a()}catch(c){c.code===ce.DISCONNECT_P2P?a():o(c)}else a()}),this._p2pChannel.on(pn.StateChange,(r,a)=>{a===gi.Connected&&this._p2pChannel.republish()})}_handleP2PChannelEvents(){this._p2pChannel.on(pn.RequestMuteLocal,async(r,a,o)=>{if(this._joinInfo)try{await this._gateway.muteLocal(r,this._joinInfo.stringUid||this._joinInfo.uid),a()}catch(c){c.code===ce.DISCONNECT_P2P?a():o(c)}else a()}),this._p2pChannel.on(pn.RequestUnmuteLocal,async(r,a,o)=>{if(this._joinInfo)try{await this._gateway.unmuteLocal(r,this._joinInfo.stringUid||this._joinInfo.uid),a()}catch(c){c.code===ce.DISCONNECT_P2P?a():o(c)}else a()}),this._p2pChannel.on(pn.RequestRePublish,(r,a,o)=>{this.publish(r,!1).then(a).catch(o)}),this._p2pChannel.on(pn.RequestRePublishDataChannel,(r,a,o)=>{Ct.all(r.map(async c=>{await this._p2pChannel.publishDataChannel([c]);let f={streamId:c.id,ordered:c.ordered,maxRetransmits:c.maxRetransmits,metadata:c.metadata,channelId:c._originDataChannelId};try{await this._gateway.publishDataChannel(this._uid,f,!0)}catch(m){if(m.code!==ce.DISCONNECT_P2P)throw m}})).then(a).catch(o)}),this._p2pChannel.on(pn.RequestReSubscribe,async(r,a,o)=>{try{for(let{user:c,kind:f}of r)f===Wt.VIDEO?await this.subscribe(c,"video"):await this.subscribe(c,"audio");a()}catch(c){o(c)}}),this._p2pChannel.on(pn.RequestUpload,(r,a)=>{this._gateway.upload(r,a)}),this._p2pChannel.on(pn.RequestUploadStats,r=>{this._gateway.uploadWRTCStats(r)}),this._p2pChannel.on(pn.MediaReconnectStart,r=>{this.safeEmit(Gn.MEDIA_RECONNECT_START,r)}),this._p2pChannel.on(pn.MediaReconnectEnd,r=>{this.safeEmit(Gn.MEDIA_RECONNECT_END,r)}),this._p2pChannel.on(pn.NeedSignalRTT,r=>{r(this._gateway.getSignalRTT())}),this._p2pChannel.on(pn.RequestRestartICE,async r=>{if(this._p2pChannel instanceof Fl)return;let a=await this._p2pChannel.restartICE(r),o=await a.next();if(o.done)return;let c=o.value,f;try{f=await this._gateway.restartICE({iceParameters:c})}catch(v){return void a.throw(v)}let{iceParameters:m}=function(v){let w=v.iceParameters;return{iceParameters:{iceUfrag:w.iceUfrag,icePwd:w.icePwd}}}(f);await a.next({remoteIceParameters:m})}),this._p2pChannel.on(pn.RequestReconnect,async()=>{this._gateway.reconnect()}),this._p2pChannel.on(pn.RequestReconnectPC,async()=>{var r;let{iceParameters:a,dtlsParameters:o,rtpCapabilities:c}=await this._p2pChannel.startP2PConnection({turnServer:(r=this._joinInfo)===null||r===void 0?void 0:r.turnServer}),{gatewayEstablishParams:f,gatewayAddress:m}=await this._gateway.reconnectPC({iceParameters:a,dtlsParameters:o,rtpCapabilities:c}),{dtlsParameters:v,iceParameters:w,candidates:C,rtpCapabilities:R,setup:x,cname:L}=koe(f,m);await this._p2pChannel.connect(w,v,C,R,x,L),await this._p2pChannel.republish(),await this._p2pChannel.reSubscribe()}),this._p2pChannel.on(pn.RequestUnpublishForReconnectPC,async(r,a,o)=>{this._joinInfo&&this._uid!==void 0?(await this._gateway.unpublish(r,this._uid),a()):o()}),this._p2pChannel.on(pn.P2PLost,()=>{this.safeEmit(Gn.P2P_LOST,this.store.uid)}),this._p2pChannel.on(pn.UpdateVideoEncoder,r=>{r._encoderConfig&&this._gateway.setVideoProfile(r._encoderConfig)}),this._p2pChannel.on(pn.ConnectionTypeChange,r=>{this.safeEmit(Gn.IS_USING_CLOUD_PROXY,r)}),this._p2pChannel.on(pn.RequestLowStreamParameter,r=>{r(this._lowStreamParameter||{width:160,height:120,framerate:15,bitrate:50})}),this._p2pChannel.on(pn.QueryClientConnectionState,r=>{r(this.connectionState)})}getKeyMetrics(){return this.store.keyMetrics}async enableContentInspect(r){if(this.connectionState!=="CONNECTED"||!this._joinInfo)throw new De(ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client did not join channel"));if(this._inspect)throw new De(ce.INVALID_OPERATION,"[".concat(this._clientId,"] Inspect content service already in connecting/connected state"));if(!r)throw new De(ce.INVALID_PARAMS,"[".concat(this._clientId,"] inspectConfig is necessary"));if(!r.inspectType||!Array.isArray(r.inspectType))throw new De(ce.INVALID_PARAMS,"[".concat(this._clientId,"] inspectConfig.inspectType is necessary and is an instance of Array."));{let a=[...new Set(r.inspectType)];a.forEach(o=>{var c;if(!Tt(c=["supervise","moderation"]).call(c,o))throw new De(ce.INVALID_PARAMS,"[".concat(this._clientId,"] ").concat(o," is not a valid inspect type."))}),r.inspectType=a}if(r&&r.extraInfo&&r.extraInfo.length>1024)throw new De(ce.INVALID_PARAMS,"[".concat(this._clientId,"] inspectConfig.extraInfo length cannot exceed 1024 bytes"));try{let a=new WD(r);this._inspect=a,this.handleVideoInspectEvents(this._inspect),await a.init({appId:this._joinInfo.appId,areaCode:"",cname:this._joinInfo.cname,sid:this._joinInfo.sid,token:this._joinInfo.token,uid:this._joinInfo.uid,cid:this._joinInfo.cid,vid:this._joinInfo.vid?Number(this._joinInfo.vid):0},kr)}catch(a){throw Array.isArray(a)?a[0]:a}}async disableContentInspect(){if(!this._inspect)throw new De(ce.INVALID_OPERATION,"[".concat(this._clientId,"] inspectVideoContent not started"));try{this._inspect.close(),this._inspect=void 0}catch(r){throw Array.isArray(r)?r[0]:r}}async setImageModeration(r,a){if(fm(r,"enabled"),r){if(!a)throw new De(ce.INVALID_PARAMS,"[".concat(this._clientId,"] config is necessary"));if(Ti(a.interval,"interval",1e3,1/0),a&&a.extraInfo&&a.extraInfo.length>1024)throw new De(ce.INVALID_PARAMS,"[".concat(this._clientId,"] config.extraInfo length cannot exceed 1024 bytes"));if(a&&a.vendor&&a.vendor.length>1024)throw new De(ce.INVALID_PARAMS,"[".concat(this._clientId,"] config.vendor length cannot exceed 1024 bytes"));if(this.connectionState!=="CONNECTED"||!this._joinInfo)throw new De(ce.INVALID_OPERATION,"[".concat(this._clientId,'] can not enable image moderation, not joined"'));try{if(this._moderation)return void this._moderation.updateConfig(a);let o=new HW(a);this._moderation=o,this.handleImageModerationEvents(this._moderation),await o.init({appId:this._joinInfo.appId,areaCode:"",cname:this._joinInfo.cname,sid:this._joinInfo.sid,token:this._joinInfo.token,uid:this._joinInfo.uid,cid:this._joinInfo.cid,vid:this._joinInfo.vid?Number(this._joinInfo.vid):0},kr)}catch(o){throw Array.isArray(o)?o[0]:o}}else{if(!this._moderation)throw new De(ce.INVALID_OPERATION,"[".concat(this._clientId,"] image moderation not started"));try{this._moderation.close(),this._moderation.removeAllListeners(),this._moderation=void 0}catch(o){throw Array.isArray(o)?o[0]:o}}}setP2PTransport(r){if(function(a){as(a,"transport",["default","auto","relay","sd-rtn"])}(r),this.mode!=="p2p")throw new De(ce.INVALID_OPERATION,"only p2p mode can set p2pTransport");this.store.p2pTransport=r,z.info("[".concat(this._clientId,"] set client p2pTransport to ").concat(r))}handleImageModerationEvents(r){r.on(bh.CONNECTION_STATE_CHANGE,(a,o)=>{if(this.safeEmit(Gn.IMAGE_MODERATION_CONNECTION_STATE_CHANGE,a,o),a===hd.CONNECTED){if(this.connectionState!=="CONNECTED")throw this.setImageModeration(!1),new De(ce.OPERATION_ABORTED,"Image moderation was cancelled because it left the channel");r.inspectImage()}}),r.on(bh.CLIENT_LOCAL_VIDEO_TRACK,a=>{a(this.localTracks.filter(o=>o.trackMediaType==="video")[0])})}handleVideoInspectEvents(r){r.on(As.CONNECTION_STATE_CHANGE,(a,o)=>{if(this.safeEmit(Gn.CONTENT_INSPECT_CONNECTION_STATE_CHANGE,a,o),o===mu.CONNECTED){if(this.connectionState!=="CONNECTED")return void this.safeEmit(Gn.CONTENT_INSPECT_ERROR,new De(ce.OPERATION_ABORTED,"Content inspect was cancelled because it left the channel"));r.inspectImage()}}),r.on(As.INSPECT_RESULT,(a,o)=>{var c;if((o==null?void 0:o.code)===ce.INVALID_OPERATION&&this.connectionState==="DISCONNECTED")return z.debug("Stop inspect content because that has left channel"),this==null||(c=this._inspect)===null||c===void 0||c.close(),void(this._inspect=void 0);this.safeEmit(Gn.CONTENT_INSPECT_RESULT,a,o)}),r.on(As.CLIENT_LOCAL_VIDEO_TRACK,a=>{a(this.localTracks.filter(o=>o.trackMediaType==="video")[0])})}getJoinChannelServiceRecords(){return z.debug("getJoinChannelServiceRecords"),this.store.joinChannelServiceRecords}async setPublishAudioFilterEnabled(r){fm(r,"enabled"),Ri("ENABLE_PUBLISH_AUDIO_FILTER",r),this._joinInfo&&await this._gateway.setPublishAudioFilterEnabled(r)}_handleResetAddStream(r,a){switch(a){case"audio":r._audio_added_=!1,r._trust_audio_stream_added_state_=!0;break;case"video":r._video_added_=!1,r._trust_video_stream_added_state_=!0}}},vt(Nt.prototype,"leave",[sce],Object.getOwnPropertyDescriptor(Nt.prototype,"leave"),Nt.prototype),vt(Nt.prototype,"publish",[ace],Object.getOwnPropertyDescriptor(Nt.prototype,"publish"),Nt.prototype),vt(Nt.prototype,"unpublish",[oce],Object.getOwnPropertyDescriptor(Nt.prototype,"unpublish"),Nt.prototype),vt(Nt.prototype,"subscribe",[lce],Object.getOwnPropertyDescriptor(Nt.prototype,"subscribe"),Nt.prototype),vt(Nt.prototype,"presubscribe",[cce],Object.getOwnPropertyDescriptor(Nt.prototype,"presubscribe"),Nt.prototype),vt(Nt.prototype,"massSubscribe",[dce],Object.getOwnPropertyDescriptor(Nt.prototype,"massSubscribe"),Nt.prototype),vt(Nt.prototype,"unsubscribe",[uce],Object.getOwnPropertyDescriptor(Nt.prototype,"unsubscribe"),Nt.prototype),vt(Nt.prototype,"massUnsubscribe",[hce],Object.getOwnPropertyDescriptor(Nt.prototype,"massUnsubscribe"),Nt.prototype),vt(Nt.prototype,"setLowStreamParameter",[fce],Object.getOwnPropertyDescriptor(Nt.prototype,"setLowStreamParameter"),Nt.prototype),vt(Nt.prototype,"enableDualStream",[pce],Object.getOwnPropertyDescriptor(Nt.prototype,"enableDualStream"),Nt.prototype),vt(Nt.prototype,"disableDualStream",[mce],Object.getOwnPropertyDescriptor(Nt.prototype,"disableDualStream"),Nt.prototype),vt(Nt.prototype,"setClientRole",[gce],Object.getOwnPropertyDescriptor(Nt.prototype,"setClientRole"),Nt.prototype),vt(Nt.prototype,"setProxyServer",[vce],Object.getOwnPropertyDescriptor(Nt.prototype,"setProxyServer"),Nt.prototype),vt(Nt.prototype,"setTurnServer",[yce],Object.getOwnPropertyDescriptor(Nt.prototype,"setTurnServer"),Nt.prototype),vt(Nt.prototype,"setLicense",[_ce],Object.getOwnPropertyDescriptor(Nt.prototype,"setLicense"),Nt.prototype),vt(Nt.prototype,"startProxyServer",[Ece],Object.getOwnPropertyDescriptor(Nt.prototype,"startProxyServer"),Nt.prototype),vt(Nt.prototype,"stopProxyServer",[wce],Object.getOwnPropertyDescriptor(Nt.prototype,"stopProxyServer"),Nt.prototype),vt(Nt.prototype,"setLocalAccessPointsV2",[Sce],Object.getOwnPropertyDescriptor(Nt.prototype,"setLocalAccessPointsV2"),Nt.prototype),vt(Nt.prototype,"setLocalAccessPoints",[bce],Object.getOwnPropertyDescriptor(Nt.prototype,"setLocalAccessPoints"),Nt.prototype),vt(Nt.prototype,"setRemoteDefaultVideoStreamType",[Cce],Object.getOwnPropertyDescriptor(Nt.prototype,"setRemoteDefaultVideoStreamType"),Nt.prototype),vt(Nt.prototype,"setRemoteVideoStreamType",[Tce],Object.getOwnPropertyDescriptor(Nt.prototype,"setRemoteVideoStreamType"),Nt.prototype),vt(Nt.prototype,"setStreamFallbackOption",[Rce],Object.getOwnPropertyDescriptor(Nt.prototype,"setStreamFallbackOption"),Nt.prototype),vt(Nt.prototype,"setEncryptionConfig",[xce],Object.getOwnPropertyDescriptor(Nt.prototype,"setEncryptionConfig"),Nt.prototype),vt(Nt.prototype,"renewToken",[Ace],Object.getOwnPropertyDescriptor(Nt.prototype,"renewToken"),Nt.prototype),vt(Nt.prototype,"enableAudioVolumeIndicator",[Ice],Object.getOwnPropertyDescriptor(Nt.prototype,"enableAudioVolumeIndicator"),Nt.prototype),vt(Nt.prototype,"startLiveStreaming",[Nce],Object.getOwnPropertyDescriptor(Nt.prototype,"startLiveStreaming"),Nt.prototype),vt(Nt.prototype,"setLiveTranscoding",[Oce],Object.getOwnPropertyDescriptor(Nt.prototype,"setLiveTranscoding"),Nt.prototype),vt(Nt.prototype,"stopLiveStreaming",[Pce],Object.getOwnPropertyDescriptor(Nt.prototype,"stopLiveStreaming"),Nt.prototype),vt(Nt.prototype,"addInjectStreamUrl",[Lce],Object.getOwnPropertyDescriptor(Nt.prototype,"addInjectStreamUrl"),Nt.prototype),vt(Nt.prototype,"removeInjectStreamUrl",[Dce],Object.getOwnPropertyDescriptor(Nt.prototype,"removeInjectStreamUrl"),Nt.prototype),vt(Nt.prototype,"startChannelMediaRelay",[kce],Object.getOwnPropertyDescriptor(Nt.prototype,"startChannelMediaRelay"),Nt.prototype),vt(Nt.prototype,"updateChannelMediaRelay",[Mce],Object.getOwnPropertyDescriptor(Nt.prototype,"updateChannelMediaRelay"),Nt.prototype),vt(Nt.prototype,"stopChannelMediaRelay",[jce],Object.getOwnPropertyDescriptor(Nt.prototype,"stopChannelMediaRelay"),Nt.prototype),vt(Nt.prototype,"sendCustomReportMessage",[Uce],Object.getOwnPropertyDescriptor(Nt.prototype,"sendCustomReportMessage"),Nt.prototype),vt(Nt.prototype,"pickSVCLayer",[Fce],Object.getOwnPropertyDescriptor(Nt.prototype,"pickSVCLayer"),Nt.prototype),vt(Nt.prototype,"setRTMConfig",[Bce],Object.getOwnPropertyDescriptor(Nt.prototype,"setRTMConfig"),Nt.prototype),vt(Nt.prototype,"enableContentInspect",[Vce],Object.getOwnPropertyDescriptor(Nt.prototype,"enableContentInspect"),Nt.prototype),vt(Nt.prototype,"disableContentInspect",[zce],Object.getOwnPropertyDescriptor(Nt.prototype,"disableContentInspect"),Nt.prototype),vt(Nt.prototype,"setImageModeration",[Hce],Object.getOwnPropertyDescriptor(Nt.prototype,"setImageModeration"),Nt.prototype),vt(Nt.prototype,"setP2PTransport",[Gce],Object.getOwnPropertyDescriptor(Nt.prototype,"setP2PTransport"),Nt.prototype),vt(Nt.prototype,"getJoinChannelServiceRecords",[Wce],Object.getOwnPropertyDescriptor(Nt.prototype,"getJoinChannelServiceRecords"),Nt.prototype),vt(Nt.prototype,"setPublishAudioFilterEnabled",[$ce],Object.getOwnPropertyDescriptor(Nt.prototype,"setPublishAudioFilterEnabled"),Nt.prototype),Nt);class rI{constructor(a,o){X(this,"id",0),X(this,"element",void 0),X(this,"peerPair",void 0),X(this,"context",void 0),X(this,"audioPlayerElement",void 0),X(this,"audioTrack",void 0),rI.count+=1,this.id=rI.count,this.element=a,this.context=o}initPeers(){this.peerPair=[new RTCPeerConnection,new RTCPeerConnection],this.peerPair[1].ontrack=a=>{let o=document.createElement("audio");o.srcObject=new MediaStream([a.track]),o.play(),this.audioPlayerElement=o}}async switchSdp(){if(!this.peerPair)return;let a=async(c,f)=>{let m=f==="offer"?await c.createOffer():await c.createAnswer();return await c.setLocalDescription(m),c.iceGatheringState==="complete"?c.localDescription:new Ct(v=>{c.onicegatheringstatechange=()=>{c.iceGatheringState==="complete"&&v(c.localDescription)}})},o=async(c,f)=>await c.setRemoteDescription(f);try{let c=await a(this.peerPair[0],"offer");await o(this.peerPair[1],c);let f=await a(this.peerPair[1],"answer");await o(this.peerPair[0],f)}catch(c){throw new De(ce.LOCAL_AEC_ERROR,c.toString()).print()}}async getTracksFromMediaElement(a){if(this.audioTrack)return this.audioTrack;let o;try{a instanceof HTMLVideoElement&&(a.captureStream?a.captureStream():a.mozCaptureStream()),o=this.context.createMediaStreamDestination(),this.context.createMediaElementSource(a).connect(o)}catch(f){throw new De(ce.LOCAL_AEC_ERROR,f.toString()).print()}if(!o)throw new De(ce.LOCAL_AEC_ERROR,"no dest node when local aec").print();let c=o.stream.getAudioTracks()[0];return this.audioTrack=c,c}getElement(){return this.element}async startEchoCancellation(){this.context.resume(),this.peerPair&&this.close(),this.initPeers();let a=this.element,o=await this.getTracksFromMediaElement(a);this.peerPair&&this.peerPair[0].addTrack(o),await this.switchSdp()}close(){z.debug("close echo cancellation unit, id is",this.id),this.audioPlayerElement&&this.audioPlayerElement.pause(),this.peerPair&&this.peerPair.forEach(a=>{a.close()}),this.peerPair=void 0,this.audioPlayerElement=void 0}}var qce,JD;X(rI,"count",0);let aNe=window.AudioContext||window.webkitAudioContext,oNe=new(qce=hn({report:$t}),vt((JD=class{constructor(){X(this,"units",[]),X(this,"context",void 0)}processExternalMediaAEC(r){if(!this._doesEnvironmentNeedAEC())return z.debug("the system does not need to process local aec"),-1;this.context||(this.context=new aNe);let a=this.units.find(o=>o&&o.getElement()===r);return a||(a=new rI(r,this.context),this.units.push(a)),a.startEchoCancellation(),z.debug("start processing local audio echo cancellation, id is",a.id),a.id}_doesEnvironmentNeedAEC(){return ni().name!==fi.SAFARI}}).prototype,"processExternalMediaAEC",[qce],Object.getOwnPropertyDescriptor(JD.prototype,"processExternalMediaAEC"),JD.prototype),JD);function Yce(r,a){var o=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);a&&(c=c.filter(function(f){return Object.getOwnPropertyDescriptor(r,f).enumerable})),o.push.apply(o,c)}return o}function Xce(r){for(var a=1;a1&&arguments[1]!==void 0&&arguments[1];if(!XW)return;let o=Yr._cspEventHandlerPointer;if(o&&a)return void console.error(o,a);let c=f=>{if(!(f&&f.blockedURI&&(Yr.onSecurityPolicyViolation||Yr.getListeners(Mf.SECURITY_POLICY_VIOLATION).length>0)))return;let m=f.blockedURI;ve("CSP_DETECTED_HOSTNAME_LIST").some(v=>Tt(m).call(m,v))&&(Yr.onSecurityPolicyViolation&&typeof Yr.onSecurityPolicyViolation=="function"&&Yr.onSecurityPolicyViolation(f),Yr.getListeners(Mf.SECURITY_POLICY_VIOLATION).length>0&&Yr.safeEmit(Mf.SECURITY_POLICY_VIOLATION,f))};o&&XW.removeEventListener("securitypolicyviolation",o),(a||r&&typeof r=="function"||Yr.getListeners(Mf.SECURITY_POLICY_VIOLATION).length>0)&&XW.addEventListener("securitypolicyviolation",c),Yr._cspEventHandlerPointer=c}Ri("PROCESS_ID","process-".concat(Di(8,""),"-").concat(Di(4,""),"-").concat(Di(4,""),"-").concat(Di(4,""),"-").concat(Di(12,""))),function(){let r;try{r=window.localStorage.getItem("websdk_ng_global_parameter")}catch(a){return void z.error("Error loading sdk config",a.message)}if(r)try{let a=JSON.parse(window.atob(r)),o=Date.now();z.debug("Loading global parameters from cache",a),Object.keys(a).forEach(c=>{if(Object.prototype.hasOwnProperty.call(es,c)){let{value:f,expires:m}=a[c];if(m&&m<=o)return;x0[c]=f,es[c]=f}})}catch(a){z.error("Error loading mutableParamsCache: ".concat(r),a.message)}}(),Array.isArray(x0.AREAS)&&x0.AREAS.length>0&&uG(x0.AREAS,!0);let Qce=(r,a,o)=>{z.debug("setParameter key:".concat(r,", value:").concat(JSON.stringify(a))),Ri(r,a,o)},Yr=function(r){let a=new nr,o=r,c={getListeners:a.getListeners.bind(a),on:(f,m)=>(function(v,w){v===Mf.SECURITY_POLICY_VIOLATION&&Jce(w,!0)}(f,m),a.on.bind(a)(f,m)),addListener:a.addListener.bind(a),once:a.once.bind(a),off:a.off.bind(a),removeAllListeners:a.removeAllListeners.bind(a),emit:a.emit.bind(a),safeEmit:a.safeEmit.bind(a)};return Xce(Xce({},o),c)}({__TRACK_LIST__:lb,VERSION:dd,BUILD:qH,ESM_BUNDLER:!1,ESM:!1,UMD:!0,DEV:!1,setParameter:Qce,getParameter:ve,getSupportedCodec:async function(){let r={audio:[],video:[]};try{let a=new RTCPeerConnection,o=await async function(c){let f;return Jn().supportUnifiedPlan?(c.addTransceiver("video",{direction:"recvonly"}),c.addTransceiver("audio",{direction:"recvonly"}),f=(await c.createOffer()).sdp):f=(await c.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0})).sdp,f}(a);if(!o)return r;a.close(),a=null,r=function(c){let f={video:[],audio:[]};return c.match(/ VP8/i)&&f.video.push("VP8"),c.match(/ VP9/i)&&f.video.push("VP9"),c.match(/ AV1/i)&&f.video.push("AV1"),c.match(/ H264/i)&&f.video.push("H264"),c.match(/ H265/i)&&f.video.push("H265"),c.match(/ opus/i)&&f.audio.push("OPUS"),c.match(/ PCMU/i)&&f.audio.push("PCMU"),c.match(/ PCMA/i)&&f.audio.push("PCMA"),c.match(/ G722/i)&&f.audio.push("G722"),f}(o)}catch(a){throw new De(ce.CREATE_OFFER_FAILED,a.toString&&a.toString()).print()}return r},checkSystemRequirements:function(){let r=$t.reportApiInvoke(null,{name:$r.CHECK_SYSTEM_REQUIREMENTS,options:[],tag:vr.TRACER}),a=!1;try{let m=window.RTCPeerConnection,v=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,w=window.WebSocket;a=!!(m&&v&&w),a&&MH()&&function(C){let R=ni();return!(R.name!==fi.CHROME||!R.osVersion)&&Number(R.version)=58&&(Eh.engine.name!=="WebKit"||function(){let m=ni();if(O8()){if(m.os===ms.MAC_OS)return!0;if(m.os===ms.IOS){let v=Eh.os.version&&Eh.os.version.split(".");if(v&&Number(v[0])===14&&v[1]&&Number(v[1])>=3||v&&Number(v[0])>14)return!0}}return!1}())&&(o=!0),(c.name===fi.FIREFOX&&Number(c.version)>=56||c.name===fi.OPERA&&Number(c.version)>=45||c.name===fi.SAFARI&&Number(c.version)>=11||c.name==="WebKit"&&(ra()||fu())&&c.osVersion&&Number(c.osVersion.split(".")[0])>=11||kne()||ni().name===fi.QQ)&&(o=!0),z.debug("checkSystemRequirements, api:",a,"browser",o);let f=a&&o;return r.onSuccess(f),f},getDevices:function(r){return Oc.enumerateDevices(!0,!0,r)},getMicrophones:function(r){return Oc.getRecordingDevices(r)},getCameras:function(r){return Oc.getCamerasDevices(r)},getElectronScreenSources:Tse,getPlaybackDevices:function(r){return Oc.getSpeakers(r)},createClient:function(){var r;let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{codec:"vp8",audioCodec:"opus",mode:"rtc"},o=$t.reportApiInvoke(null,{name:$r.CREATE_CLIENT,options:[a],tag:vr.TRACER});try{(function(c){as(c.codec,"config.codec",["vp8","vp9","av1","h264","h265"]),as(c.mode,"config.mode",["rtc","live","p2p"]),c.audioCodec!==void 0&&as(c.audioCodec,"config.audioCodec",["opus","pcmu","pcma","g722"]),c.proxyServer!==void 0&&Ms(c.proxyServer,"config.proxyServer",1,1e4),c.turnServer!==void 0&&Wne(c.turnServer),c.httpRetryConfig!==void 0&&Gne(c.httpRetryConfig),c.websocketRetryConfig!==void 0&&Gne(c.websocketRetryConfig)})(a)}catch(c){throw o.onError(c),c}return(Ine(16,0)||Nne(16,0))&&(a.codec==="vp9"&&(a.codec="vp8",z.debug("browser not support vp9, force use vp8")),Ri("UNSUPPORTED_VIDEO_CODEC",["vp9"])),a.audioCodec===void 0&&(a.audioCodec="opus"),o.onSuccess(),new sNe(yd(yd({forceWaitGatewayResponse:!0},a),{},{role:Tt(r=["rtc","p2p"]).call(r,a.mode)?"host":a.role||"audience"}))},createCameraVideoTrack:async function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=ve("CAMERA_CAPTURE_CONFIG"),o=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CREATE_CAM_VIDEO_TRACK,options:[ir({},r),a]});a&&(r.encoderConfig=a);let c=bD(r),f=Di(8,"track-cam-"),m=null,v=r.encoderConfig==="720p_auto";z.info("start create camera video track with config",JSON.stringify(r),"trackId",f);try{m=(await Nc({video:c},f)).getVideoTracks()[0]||null}catch(C){throw o.onError(C),C}if(!m){let C=new Ke(ce.UNEXPECTED_ERROR,"can not find track in media stream");return o.onError(C),C.throw(z)}r.optimizationMode&&_W(f,m,r,zf(r.encoderConfig));let w=new yW(m,r,c,r.scalabiltyMode?_D(r.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},r.optimizationMode,f);return v&&w.startMonitorStats(),o.onSuccess(w.getTrackId()),z.info("create camera video success, trackId:",f),w},createCustomVideoTrack:function(r){let a=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CREATE_CUSTOM_VIDEO_TRACK,options:[r]}),o=new ki(r.mediaStreamTrack,{width:r.width,height:r.height,frameRate:r.frameRate,bitrateMax:r.bitrateMax,bitrateMin:r.bitrateMin},r.scalabiltyMode?_D(r.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},r.optimizationMode,Di(8,"track-cus-"),[Hi.CUSTOM_TRACK]);return a.onSuccess(o.getTrackId()),z.info("create custom video track success with config",r,"trackId",o.getTrackId()),o},createScreenVideoTrack:async function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"disable",o=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CREATE_SCREEN_VIDEO_TRACK,options:[ir({},r),a]}),c=r.encoderConfig==="720p_auto";r.encoderConfig?typeof r.encoderConfig=="string"||r.encoderConfig.width&&r.encoderConfig.height||(r.encoderConfig.width={max:1920},r.encoderConfig.height={max:1080}):r.encoderConfig="1080p_2";let f=function(L){let U={};L.screenSourceType&&(U.mediaSource=L.screenSourceType),L.extensionId&&b0()&&(U.extensionId=L.extensionId);let{displaySurface:F,selfBrowserSurface:Z,surfaceSwitching:W,systemAudio:K}=L;(DH(107)||xne(107)||One(93))&&(F&&(as(F,"displaySurface",["browser","window","monitor"]),U.displaySurface=F),Z?(as(Z,"selfBrowserSurface",["exclude","include"]),U.selfBrowserSurface=Z):U.selfBrowserSurface="include",W&&(as(W,"surfaceSwitching",["exclude","include"]),U.surfaceSwitching=W)),(DH(105)||xne(105)||One(91))&&K&&(as(K,"systemAudio",["exclude","include"]),U.systemAudio=K),L.electronScreenSourceId&&(U.sourceId=L.electronScreenSourceId);let oe=L.encoderConfig?oW(L.encoderConfig):null;return U.mandatory={chromeMediaSource:"desktop",maxWidth:oe?oe.width:void 0,maxHeight:oe?oe.height:void 0},oe&&(oe.frameRate&&(typeof oe.frameRate=="number"?(U.mandatory.maxFrameRate=oe.frameRate,U.mandatory.minFrameRate=oe.frameRate):(U.mandatory.maxFrameRate=oe.frameRate.max||oe.frameRate.ideal||oe.frameRate.exact||void 0,U.mandatory.minFrameRate=oe.frameRate.min||oe.frameRate.ideal||oe.frameRate.exact||void 0),U.frameRate=oe.frameRate),oe.width&&(U.width=oe.width),oe.height&&(U.height=oe.height)),U}(r),m=Di(8,"track-scr-v-"),v=null,w=null,C=Jn();if(!C.supportShareAudio&&a==="enable"){let L=new Ke(ce.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return o.onError(L),L.throw(z)}z.info("start create screen video track with config",r,"withAudio",a,"trackId",m);try{let L=await Nc({screen:f,screenAudio:a==="auto"?C.supportShareAudio:a==="enable"},m);v=L.getVideoTracks()[0]||null,w=L.getAudioTracks()[0]||null}catch(L){throw o.onError(L),L}if(!v){let L=new Ke(ce.UNEXPECTED_ERROR,"can not find track in media stream");return o.onError(L),L.throw(z)}if(!w&&a==="enable"){v&&v.stop();let L=new Ke(ce.SHARE_AUDIO_NOT_ALLOWED);return o.onError(L),L.throw(z)}r.optimizationMode||(r.optimizationMode="detail"),r.optimizationMode&&(_W(m,v,r,r.encoderConfig&&oW(r.encoderConfig)||void 0),r.encoderConfig&&typeof r.encoderConfig!="string"&&(r.encoderConfig.bitrateMin=r.encoderConfig.bitrateMax));let R=new ki(v,r.encoderConfig?oW(r.encoderConfig):{},r.scalabiltyMode?_D(r.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},r.optimizationMode,m,[Hi.SCREEN_TRACK]);if(c&&R.startMonitorStats(),!w)return o.onSuccess(R.getTrackId()),z.info("create screen video track success","video:",R.getTrackId()),R;let x=new br(w,void 0,Di(8,"track-scr-a-"),!1);return o.onSuccess([R.getTrackId(),x.getTrackId()]),z.info("create screen video track success","video:",R.getTrackId(),"audio:",x.getTrackId()),[R,x]},createMicrophoneAndCameraTracks:async function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=ve("CAMERA_CAPTURE_CONFIG"),c=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CREATE_MIC_AND_CAM_TRACKS,options:[r,a,o]});o&&(a.encoderConfig=o);let f=a.encoderConfig==="720p_auto",m=bD(a),v=kse(r),w=Di(8,"track-mic-"),C=Di(8,"track-cam-"),R=null,x=null;z.info("start create camera video track(".concat(C,") and microphone audio track(").concat(w,") with config, audio: ").concat(JSON.stringify(r),", video: ").concat(JSON.stringify(a)));try{let F=await Nc({audio:v,video:m},"".concat(w,"-").concat(C));R=F.getAudioTracks()[0],x=F.getVideoTracks()[0]}catch(F){throw c.onError(F),F}if(!R||!x){let F=new Ke(ce.UNEXPECTED_ERROR,"can not find tracks in media stream");return c.onError(F),F.throw(z)}a.optimizationMode&&_W(C,x,a,zf(a.encoderConfig));let L=new CD(R,r,v,w),U=new yW(x,a,m,a.scalabiltyMode?_D(a.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},a.optimizationMode,C);return f&&U.startMonitorStats(),c.onSuccess([L.getTrackId(),U.getTrackId()]),z.info("create camera video track(".concat(C,") and microphone audio track(").concat(w,") success")),[L,U]},createMicrophoneAudioTrack:async function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CREATE_MIC_AUDIO_TRACK,options:[r]}),o=kse(r),c=Di(8,"track-mic-"),f=null;z.info("start create microphone audio track with config",JSON.stringify(r),"trackId",c);try{f=(await Nc({audio:o},c)).getAudioTracks()[0]||null}catch(v){throw a.onError(v),v}if(!f){let v=new Ke(ce.UNEXPECTED_ERROR,"can not find track in media stream");return a.onError(v),v.throw(z)}let m=new CD(f,r,o,c);return a.onSuccess(m.getTrackId()),z.info("create microphone audio track success, trackId:",c),m},createCustomAudioTrack:function(r){let a=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CREATE_CUSTOM_AUDIO_TRACK,options:[r]}),o=new br(r.mediaStreamTrack,r.encoderConfig?ED(r.encoderConfig):{},Di(8,"track-cus-"),!1);return z.info("create custom audio track success with config",r,"trackId",o.getTrackId()),a.onSuccess(o.getTrackId()),o},createBufferSourceAudioTrack:async function(r){var a;let{cacheOnlineFile:o,encoderConfig:c}=r,{source:f}=r,m={source:f instanceof AudioBuffer?"AudioBuffer":f instanceof File?(a=File.name)!==null&&a!==void 0?a:"File":f,cacheOnlineFile:o,encoderConfig:c},v=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CREATE_BUFFER_AUDIO_TRACK,options:[m]});if(ve("DISABLE_WEBAUDIO"))throw new Ke(ce.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");let w=Di(8,"track-buf-");z.info("start create buffer source audio track with config",JSON.stringify(m),"trackId",w);let C=f;if(!(f instanceof AudioBuffer))try{f=await async function(L,U){let F=null;if(typeof L=="string"){let W=wae.get(L);if(W)return z.debug("use cached audio resource: ",L),W;try{F=(await wh(()=>Io.get(L,{responseType:"arraybuffer"}),void 0,void 0,{maxRetryCount:3})).data}catch(K){throw new Ke(ce.FETCH_AUDIO_FILE_FAILED,K.toString())}}else F=await new Ct((W,K)=>{let oe=new FileReader;oe.onload=ue=>{ue.target?W(ue.target.result):K(new Ke(ce.READ_LOCAL_AUDIO_FILE_ERROR))},oe.onerror=()=>{K(new Ke(ce.READ_LOCAL_AUDIO_FILE_ERROR))},oe.readAsArrayBuffer(L)});let Z=await function(W){let K=fb();return new Ct((oe,ue)=>{K.decodeAudioData(W,xe=>{oe(xe)},xe=>{ue(new Ke(ce.DECODE_AUDIO_FILE_FAILED,xe.toString()))})})}(F);return typeof L=="string"&&U&&wae.set(L,Z),Z}(f,o)}catch(L){return v.onError(L),L.throw(z)}let R=new t4e(f),x=new e4e(C,R,c?ED(c):{},w);return z.info("create buffer source audio track success, trackId:",w),v.onSuccess(x.getTrackId()),x},setAppType:function(r){if(z.debug("setAppType: ".concat(r)),!(Number.isInteger(r)&&r>=0))throw z.debug("Invalid appType"),new De(ce.INVALID_PARAMS,"invalid app type",r);Ri("APP_TYPE",Math.floor(r))},setLogLevel:function(r){z.setLogLevel(r)},enableLogUpload:function(){ve("USE_NEW_LOG")?Ri("UPLOAD_LOG",!0):z.enableLogUpload()},disableLogUpload:function(){ve("USE_NEW_LOG")?Ri("UPLOAD_LOG",!1):z.disableLogUpload()},createChannelMediaRelayConfiguration:function(){return new ale},checkAudioTrackIsActive:async function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,o=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CHECK_AUDIO_TRACK_IS_ACTIVE,options:[a]});if(!(r instanceof br||r instanceof gb)){let C=new De(ce.INVALID_TRACK,"the parameter is not a audio track");return o.onError(C),C.throw()}a&&a<1e3&&(a=1e3);let c=r instanceof br?r.getTrackLabel():"remote_track",f=r.getVolumeLevel(),m=f,v=f,w=Date.now();return new Ct(C=>{let R=setInterval(()=>{let x=r.getVolumeLevel();m=x>m?x:m,v=x1e-4,U=Date.now()-w;if(L||U>a){clearInterval(R);let F=L,Z={duration:U,deviceLabel:c,maxVolumeLevel:m,result:F};z.info("[track-".concat(r.getTrackId(),"] check audio track active completed. ").concat(JSON.stringify(Z))),o.onSuccess(Z),C(F)}},200)})},checkVideoTrackIsActive:async function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,o=$t.reportApiInvoke(null,{tag:vr.TRACER,name:$r.CHECK_VIDEO_TRACK_IS_ACTIVE,options:[a]});if(!(r instanceof ki||r instanceof mb)){let L=new De(ce.INVALID_TRACK,"the parameter is not a video track");return o.onError(L),L.throw()}a&&a<1e3&&(a=1e3);let c=r instanceof ki?r.getTrackLabel():"remote_track",f=r.getMediaStreamTrack(!0),m=document.createElement("video");m.style.width="1px",m.style.height="1px",m.setAttribute("muted",""),m.muted=!0,m.setAttribute("playsinline",""),m.controls=!1,(gs()||O8())&&(m.style.opacity="0.01",m.style.position="fixed",m.style.left="0",m.style.top="0",document.body.appendChild(m)),m.srcObject=new MediaStream([f]),m.play();let v=document.createElement("canvas");v.width=160,v.height=120;let w=0,C=0;try{let L=Date.now();w=await function(U,F,Z,W){let K,oe=0,ue=null;return new Ct((xe,Oe)=>{function ke(){oe>W&&K&&(K(),xe(oe));let He=Z.getContext("2d");if(!He){let ft=new De(ce.UNEXPECTED_ERROR,"can not get canvas 2d context.");return z.error(ft.toString()),void Oe(ft)}He.drawImage(U,0,0,160,120);let lt=He.getImageData(0,0,Z.width,Z.height),ut=Math.floor(lt.data.length/3);if(ue){for(let ft=0;ft{K&&(K(),xe(oe))},F),K=hW(()=>{ke()},30)})}(m,a,v,4),C=Date.now()-L}catch(L){throw o.onError(L),L}tNe===fi.SAFARI&&(m.pause(),m.remove()),m.srcObject=null;let R=w>4,x={duration:C,changedPicNum:w,deviceLabel:c,result:R};return z.info("[track-".concat(r.getTrackId(),"] check video track active completed. ").concat(JSON.stringify(x))),o.onSuccess(x),R},setArea:uG,audioElementPlayCenter:Oo,resumeAudioContext:function(){Oo.autoResumeAfterInterruption(!0)},processExternalMediaAEC:function(r){oNe.processExternalMediaAEC(r)},registerExtensions:function(r){let a=ve("PLUGIN_INFO")||[];r.forEach(o=>{"name"in o&&!Tt(a).call(a,o.name)&&a.push(o.name);let c=o;c.__registered__=!0,c.logger.hookLog=z.extLog,c.reporter.hookApiInvoke=$t.extApiInvoke,c.parameters&&Object.keys(c.parameters).forEach(f=>{c.parameters[f]=ve(f)})}),Qce("PLUGIN_INFO",a)},ChannelMediaRelayError:GS,ChannelMediaRelayEvent:mm,ChannelMediaRelayState:il,RemoteStreamFallbackType:KIe,RemoteStreamType:$Ie,ConnectionDisconnectedReason:Hn,AudienceLatencyLevelType:sxe,AREAS:ai,preload:async function(r,a,o,c){return Qle(r,a,o,c)}});return Object.defineProperties(Yr,{onAudioAutoplayFailed:{get:()=>Pc.onAudioAutoplayFailed,set:r=>{Pc.onAudioAutoplayFailed=r}},onAutoplayFailed:{get:()=>Pc.onAutoplayFailed,set:r=>{Pc.onAutoplayFailed=r}},_onSecurityPolicyViolation:{value:void 0,writable:!0},_cspEventHandlerPointer:{value:void 0,writable:!0},onSecurityPolicyViolation:{get:()=>Yr._onSecurityPolicyViolation,set(r){Yr._onSecurityPolicyViolation=r,Jce(r)}},__CLIENT_LIST__:{get:()=>ve("SHOW_GLOBAL_CLIENT_LIST")?A0:[]}}),Oc.on(r_.CAMERA_DEVICE_CHANGED,r=>{z.info("camera device changed",JSON.stringify(r)),Yr.onCameraChanged&&Yr.onCameraChanged(r),Yr.safeEmit(Mf.CAMERA_CHANGED,r)}),Oc.on(r_.RECORDING_DEVICE_CHANGED,r=>{z.info("microphone device changed",JSON.stringify(r)),Yr.onMicrophoneChanged&&Yr.onMicrophoneChanged(r),Yr.safeEmit(Mf.MICROPHONE_CHANGED,r)}),Oc.on(r_.PLAYOUT_DEVICE_CHANGED,r=>{z.debug("playout device changed",JSON.stringify(r)),Yr.onPlaybackDeviceChanged&&Yr.onPlaybackDeviceChanged(r),Yr.safeEmit(Mf.PLAYBACK_DEVICE_CHANGED,r)}),Oo.onAutoplayFailed=()=>{z.info("detect audio element autoplay failed"),Pc.onAudioAutoplayFailed&&Pc.onAudioAutoplayFailed()},Si.on("autoplay-failed",()=>{z.info("detect webaudio autoplay failed"),Pc.onAudioAutoplayFailed&&Pc.onAudioAutoplayFailed(),Yr.safeEmit(Mf.AUTOPLAY_FAILED)}),Si.on(js.STATE_CHANGE,(r,a)=>{z.info("audio context state changed: ".concat(a," => ").concat(r)),Yr.onAudioContextStateChanged&&Yr.onAudioContextStateChanged(r,a),Yr.safeEmit(Mf.AUDIO_CONTEXT_STATE_CHANGED,r,a)}),yr.on(By.NETWORK_STATE_CHANGE,(r,a)=>{z.info("[network-indicator] network state changed, ".concat(a," => ").concat(r))}),window&&(window.__ARTC__=Yr),Yr})}),p0e={};ePe(p0e,{AgoraRTCProvider:()=>v0e,AgoraRTCReactError:()=>oc,AgoraRTCScreenShareProvider:()=>uPe,LocalAudioTrack:()=>b0e,LocalUser:()=>A0e,LocalVideoTrack:()=>R0e,RemoteAudioTrack:()=>I0e,RemoteUser:()=>IPe,RemoteVideoTrack:()=>N0e,TrackBoundary:()=>RPe,VERSION:()=>PPe,default:()=>O0e,useAutoPlayAudioTrack:()=>KJ,useAutoPlayVideoTrack:()=>$J,useClientEvent:()=>lPe,useConnectionState:()=>fPe,useCurrentUID:()=>pPe,useIsConnected:()=>Bp,useJoin:()=>_0e,useLocalCameraTrack:()=>S0e,useLocalMicrophoneTrack:()=>w0e,useLocalScreenTrack:()=>CPe,useNetworkQuality:()=>mPe,usePublish:()=>E0e,useRTCClient:()=>ff,useRTCScreenShareClient:()=>hPe,useRemoteAudioTracks:()=>EPe,useRemoteUserTrack:()=>yq,useRemoteUsers:()=>SPe,useRemoteVideoTracks:()=>wPe,useTrackEvent:()=>cPe,useVolumeLevel:()=>vPe});var nPe=jE(UE());function El(n,t,i){return n.on(t,i),()=>n.off(t,i)}function iPe(n){try{return n()}catch(t){console.error(t)}}function FE(n){return()=>n.forEach(iPe)}function rPe(n,t){let i=setInterval(n,t);return()=>clearInterval(i)}function Zj(n,t){let i=setTimeout(n,t);return()=>clearTimeout(i)}function GJ(){let n,t,i;function s(){if(t){let _=t;t=void 0,_()}}async function l(){if(i){let _=i;i=void 0;try{await _()}catch(y){console.error(y)}}}async function d(_){n=!0,await l();try{i=await _()}catch(y){console.error(y)}n=!1,s()}async function u(){n=!0,await l(),n=!1,s()}function p(_){n?t=()=>d(_):d(_)}function g(){n?t=u:u()}return{run:p,dispose:g}}var eU=typeof document<"u"?k.useLayoutEffect:k.useEffect;function sPe(n){return n!=null&&typeof n.then=="function"}function Bv(){let n=k.useRef(!1);return k.useEffect(()=>(n.current=!1,()=>{n.current=!0}),[]),n}function aPe(){let n=Bv();function t(i,s){return new Promise(async(l,d)=>{try{let u=await i;n.current||l(u)}catch(u){n.current?s&&s(u):d(u)}})}return k.useCallback(t,[n])}function m0e(n){let t=aPe(),[i,s]=k.useState();return eU(()=>{sPe(n)?t(n).then(s):s(n)},[n,t]),i}function BE(n,t){let i=k.useRef();k.useEffect(()=>{let{run:s,dispose:l}=i.current||(i.current=GJ());return s(n),l},t)}function oPe(n,t){let i=n.split("."),s=t.split("."),l=Math.max(i.length,s.length);for(let d=0;dp)return 1;if(u{s.current=i},[i]),k.useEffect(()=>{if(n)return El(n,t,(...l)=>{s.current&&s.current(...l)})},[t,n])}function cPe(n,t,i){let s=k.useRef(i);eU(()=>{s.current=i},[i]),k.useEffect(()=>{if(n)return El(n,t,(...l)=>{s.current&&s.current(...l)})},[t,n])}var g0e=k.createContext(null);function v0e({client:n,children:t}){return h.jsx(g0e.Provider,{value:n,children:t})}function dPe(n){let t=k.useContext(g0e);return n||t}function ff(n){let t=dPe(n);if(!t)throw new Error("Agora RTC client not found. Should be wrapped in ");return t}var y0e=k.createContext(null);function uPe({client:n,children:t}){return h.jsx(y0e.Provider,{value:n,children:t})}function hPe(n){let t=k.useContext(y0e);return n||t}function fPe(n){let t=ff(n),[i,s]=k.useState(t?t.connectionState:"DISCONNECTED");return k.useEffect(()=>{if(t){s(t.connectionState);let l;return FE([El(t,"connection-state-change",d=>{l==null||l(),d==="CONNECTED"?l=Zj(()=>s(d),0):s(d)}),()=>l==null?void 0:l()])}else s("DISCONNECTED")},[t]),i}function Bp(n){let t=ff(n),[i,s]=k.useState(t?t.connectionState==="CONNECTED":!1);return k.useEffect(()=>{if(t){s(t.connectionState==="CONNECTED");let l;return FE([El(t,"connection-state-change",d=>{l==null||l(),l=Zj(()=>s(d==="CONNECTED"),0)}),()=>l==null?void 0:l()])}else s(!1)},[t]),i}function pPe(n){let t=ff(n),[i,s]=k.useState(t==null?void 0:t.uid);return k.useEffect(()=>{if(t)return El(t,"connection-state-change",l=>{if(l==="CONNECTED")return Zj(()=>s(t.uid),0);l==="DISCONNECTED"&&s(void 0)})},[t]),i}var oc=class extends Error{constructor(t,i){var n=(...Vat)=>(super(...Vat),sn(this,"rtcMethod"),sn(this,"rtcError"),sn(this,"name","AgoraRTCReactException"),this);n(typeof i=="string"?i:i.message),this.rtcMethod=t,this.rtcError=i}log(t){console[t](this)}};function _0e(n,t=!0,i){let s=ff(i),l=Bp(i),d=k.useRef(),[u,p]=k.useState(!1),[g,_]=k.useState(0),[y,E]=k.useState(null),b=Bv();return BE(async()=>{if(b.current||(E(null),_(0),p(!1)),t&&s){try{b.current||p(!0);let{appid:N,channel:O,token:D,uid:P}=typeof n=="function"?await n():n,j=await s.join(N,O,D,P);b.current||_(j)}catch(N){console.error(N),b.current||E(new oc("IAgoraRTCClient.join",N))}b.current||p(!1);let A=d.current||(d.current=GJ());return FE([()=>{A.dispose()},()=>{A.run(()=>s.unpublish(s.localTracks))},()=>{for(let N of s.localTracks)N.isPlaying&&N.stop(),N.close();A.run(()=>s.leave())}])}},[t,i]),{data:g,isLoading:u,isConnected:l,error:y}}var cue=()=>({uplinkNetworkQuality:0,downlinkNetworkQuality:0,delay:0});function mPe(n){let t=ff(n),[i,s]=k.useState(cue);return k.useEffect(()=>{if(t)return El(t,"network-quality",l=>s({uplinkNetworkQuality:l.uplinkNetworkQuality,downlinkNetworkQuality:l.downlinkNetworkQuality,delay:t.getRTCStats().RTT??0}));s(cue())},[t]),i}var gPe=jE(UE());function E0e(n,t=!0,i){let s=ff(i),l=Bp(i),d=k.useRef([]),[u,p]=k.useState(!1),[g,_]=k.useState(null),y=Bv();return BE(async()=>{if(y.current||(p(!1),_(null)),!s||!l||!t)return;let E=n.filter(Boolean),b=O=>{let D=oPe(gPe.default.VERSION,"4.18.2")>=0;return D||new oc("usePublish","please check your agora-rtc-sdk-ng version in package.json, it's recommend upgrade to >= 4.18.2").log("warn"),D?s.mode!=="live"||s.role!=="audience":!0},A=O=>d.current.some(D=>D&&D.getTrackId()===O.getTrackId()),N=O=>b()&&O.enabled&&t&&!A(O);for(let O=0;O(P==null?void 0:P.trackMediaType)===D.trackMediaType));try{y.current||p(!0),await s.publish(D)}catch(P){console.error(P),y.current||_(new oc("IAgoraRTCClient.publish",P))}y.current||p(!1)}}d.current=E},[l,t,s,n]),{isLoading:u,error:g}}function vPe(n){let[t,i]=k.useState(0);return k.useEffect(()=>{if(n)return rPe(()=>{i(n.getVolumeLevel())},1e3)},[n]),t}var yPe=jE(UE());function w0e(n=!0,t={ANS:!0,AEC:!0},i){let s=Bp(i),[l,d]=k.useState(null),[u,p]=k.useState(!1),[g,_]=k.useState(null),y=Bv();return BE(async()=>{if(y.current||(p(!1),_(null)),s&&n&&!l){try{y.current||p(!0);let E=await yPe.default.createMicrophoneAudioTrack(t);y.current||d(E)}catch(E){console.error(E),y.current||_(new oc("IAgoraRTC.createMicrophoneAudioTrack",E))}y.current||p(!1)}!s&&!y.current&&d(null)},[s,n]),{localMicrophoneTrack:l,isLoading:u,error:g}}var _Pe=jE(UE());function S0e(n=!0,t,i){let s=Bp(i),[l,d]=k.useState(null),[u,p]=k.useState(!1),[g,_]=k.useState(null),y=Bv();return BE(async()=>{if(y.current||(p(!1),_(null)),s&&n&&!l){try{y.current||p(!0);let E=await _Pe.default.createCameraVideoTrack(t);y.current||d(E)}catch(E){console.error(E),y.current||_(new oc("IAgoraRTC.createCameraVideoTrack",E))}y.current||p(!1)}!s&&!y.current&&d(null)},[s,n]),{localCameraTrack:l,isLoading:u,error:g}}function EPe(n,t){let i=ff(t),[s,l]=k.useState([]),d=Bp(),u=k.useRef([]),[p,g]=k.useState(!1),[_,y]=k.useState(null),E=Bv();return BE(async()=>{if(E.current||y(null),!Array.isArray(n)||!d)return;let b=async O=>{if(!O.audioTrack&&n.some(({uid:D})=>O.uid===D)){try{E.current||g(!0),await i.subscribe(O,"audio")}catch(D){console.error(D),E.current||y(new oc("IAgoraRTCClient.subscribe",D))}O.audioTrack&&!u.current.some(D=>D.getUserId()===O.uid)&&u.current.push(O.audioTrack),u.current=u.current.map(D=>O.audioTrack&&D.getUserId()===O.uid&&D.getTrackId()!==O.audioTrack.getTrackId()?O.audioTrack:D),E.current||(l([...u.current]),g(!1))}},A=async O=>{if(n.some(({uid:D})=>O.uid===D)){E.current||(u.current=u.current.filter(D=>D.getUserId()!==O.uid),l([...u.current]));try{E.current||g(!0),await i.unsubscribe(O,"audio")}catch(D){console.error(D),E.current||y(new oc("IAgoraRTCClient.unsubscribe",D))}E.current||g(!1)}};n.map(O=>{!O.audioTrack&&O.hasAudio&&b(O)});let N=[];for(let O=0;OP.uid===D.getUserId())){let P=i.remoteUsers.find(j=>j.uid===D.getUserId());P&&N.push({user:P,mediaType:"audio"}),u.current.splice(O,1),O--}}if(N.length>0){try{E.current||g(!0),await i.massUnsubscribe(N)}catch(O){console.error(O),E.current||y(new oc("IAgoraRTCClient.massUnsubscribe",O))}E.current||(l(u.current.slice()),g(!1))}return FE([El(i,"user-published",(O,D)=>{n.find(P=>P.uid===O.uid)&&D==="audio"&&b(O)}),El(i,"user-unpublished",(O,D)=>{n.find(P=>P.uid===O.uid)&&D==="audio"&&A(O)})])},[d,i,n]),{audioTracks:s,isLoading:p,error:_}}function wPe(n,t){let i=ff(t),[s,l]=k.useState([]),d=Bp(),u=k.useRef([]),[p,g]=k.useState(!1),[_,y]=k.useState(null),E=Bv();return BE(async()=>{if(E.current||y(null),!Array.isArray(n)||!d)return;let b=async O=>{if(!O.videoTrack&&n.some(({uid:D})=>O.uid===D)){try{E.current||g(!0),await i.subscribe(O,"video")}catch(D){console.error(D),E.current||y(new oc("IAgoraRTCClient.subscribe",D))}O.videoTrack&&!u.current.some(D=>D.getUserId()===O.uid)&&u.current.push(O.videoTrack),u.current=u.current.map(D=>O.videoTrack&&D.getUserId()===O.uid&&D.getTrackId()!==O.videoTrack.getTrackId()?O.videoTrack:D),E.current||(l([...u.current]),g(!1))}},A=async O=>{if(n.some(({uid:D})=>O.uid===D)){E.current||(u.current=u.current.filter(D=>D.getUserId()!==O.uid),l([...u.current]));try{E.current||g(!0),await i.unsubscribe(O,"video")}catch(D){console.error(D),E.current||y(new oc("IAgoraRTCClient.unsubscribe",D))}E.current||g(!1)}};n.map(O=>{!O.videoTrack&&O.hasVideo&&b(O)});let N=[];for(let O=0;OP.uid===D.getUserId())){let P=i.remoteUsers.find(j=>j.uid===D.getUserId());P&&N.push({user:P,mediaType:"video"}),u.current.splice(O,1),O--}}if(N.length>0){try{E.current||g(!0),await i.massUnsubscribe(N)}catch(O){console.error(O),E.current||y(new oc("IAgoraRTCClient.massUnsubscribe",O))}E.current||(l(u.current.slice()),g(!1))}return FE([El(i,"user-published",(O,D)=>{n.find(P=>P.uid===O.uid)&&D==="video"&&b(O)}),El(i,"user-unpublished",(O,D)=>{n.find(P=>P.uid===O.uid)&&D==="video"&&A(O)})])},[d,i,n]),{videoTracks:s,isLoading:p,error:_}}function yq(n,t,i){let s=ff(i),l=t==="audio"?"audioTrack":"videoTrack",[d,u]=k.useState(n&&n[l]),p=Bp(),g=k.useRef(),[_,y]=k.useState(!1),[E,b]=k.useState(null);return k.useEffect(()=>{if(!n||!p)return;let A=!1;A||b(null);let N=t==="audio"?"hasAudio":"hasVideo",O=n.uid,D=async(M,V)=>{if(M[l]&&s.remoteUsers.some(({uid:H})=>M.uid===H))try{A||y(!0),await s.unsubscribe(M,V)}catch(H){A||b(new oc("IAgoraRTCClient.unsubscribe",H)),console.error(H)}A||(u(void 0),y(!1))},P=async(M,V)=>{try{!M[l]&&s.remoteUsers.some(({uid:H})=>M.uid===H)&&(A||y(!0),await s.subscribe(M,V)),A||u(M[l])}catch(H){A||b(new oc("IAgoraRTCClient.subscribe",H)),console.error(H)}A||y(!1)},j=g.current||(g.current=GJ());return!n[l]&&n[N]?j.run(()=>P(n,t)):u(n[l]),FE([()=>{A=!0,j.dispose()},El(s,"user-published",(M,V)=>{M.uid===O&&V===t&&j.run(()=>P(M,t))}),El(s,"user-unpublished",(M,V)=>{M.uid===O&&V===t&&j.run(()=>D(M,t))})])},[p,s,n,t,l]),{track:d,isLoading:_,error:E}}function SPe(n){let t=ff(n),[i,s]=k.useState(t?t.remoteUsers:[]);return k.useEffect(()=>{if(t){let l=()=>s(t.remoteUsers.slice());return FE([El(t,"user-joined",l),El(t,"user-left",l),El(t,"user-published",l),El(t,"user-unpublished",l)])}},[t]),i}var bPe=jE(UE());function CPe(n=!0,t,i,s){let l=Bp(s),[d,u]=k.useState(null),[p,g]=k.useState(!1),[_,y]=k.useState(null),E=Bv();return BE(async()=>{if(E.current||(g(!1),y(null)),l&&n&&!d){try{E.current||g(!0);let b=await bPe.default.createScreenVideoTrack(t,i);E.current||u(b)}catch(b){console.error(b),E.current||y(new oc("IAgoraRTC.createScreenVideoTrack",b))}E.current||g(!1)}(!l||!n)&&!E.current&&u(null)},[l,n]),{screenTrack:d,isLoading:p,error:_}}function TPe(){let n=new Map,t=1500;return{onMount:i=>{let s=n.get(i);s&&(s(),n.delete(i))},onUnmount:i=>{let s=n.get(i);s&&s(),n.set(i,Zj(()=>{i.isPlaying&&i.stop(),n.delete(i)},t))},dispose:()=>{for(let[i,s]of n)i.isPlaying&&i.stop(),s&&s();n.clear()}}}var WJ=k.createContext(void 0);function RPe({children:n}){let[t]=k.useState(TPe);return k.useEffect(()=>t.dispose,[t]),h.jsx(WJ.Provider,{value:t,children:n})}function $J(n,t,i,s){let l=k.useContext(WJ);k.useEffect(()=>{if(n)return s&&t?n.play(s,i||void 0):n.stop(),l?(l.onMount(n),()=>l.onUnmount(n)):()=>{n.isPlaying&&n.stop()}},[n,s,t,l,i])}function KJ(n,t){let i=k.useContext(WJ);eU(()=>{if(n)return t?n.play():n.stop(),i?(i.onMount(n),()=>i.onUnmount(n)):()=>{n.isPlaying&&n.stop()}},[n,t,i])}function b0e({track:n,play:t=!1,volume:i,disabled:s,muted:l,children:d}){let u=m0e(n);return KJ(u,t),k.useEffect(()=>{u&&i!=null&&u.setVolume(i)},[u,i]),k.useEffect(()=>{u&&s!=null&&u.setEnabled(!s).catch(console.warn)},[s,u]),k.useEffect(()=>{u&&l!=null&&u.setMuted(l).catch(console.warn)},[l,u]),d?h.jsx(h.Fragment,{children:d}):null}var C0e={position:"relative",width:"100%",height:"100%",overflow:"hidden",background:"#000"},T0e={width:"100%",height:"100%"},qJ={position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",zIndex:2},tU=(n,t)=>k.useMemo(()=>({...n,...t}),[n,t]);function R0e({track:n,play:t,disabled:i,muted:s,style:l,videoPlayerConfig:d,...u}){let p=tU(T0e,l),[g,_]=k.useState(null),y=m0e(n);return $J(y,t,d,g),k.useEffect(()=>{y&&i!=null&&y.setEnabled(!i).catch(console.warn)},[i,y]),k.useEffect(()=>{y&&s!=null&&y.setMuted(s).catch(console.warn)},[s,y]),h.jsx("div",{...u,ref:_,style:p})}var xPe={width:"100%",height:"100%",background:"#1a1e21 center/cover no-repeat",filter:"blur(16px) brightness(0.4)"},APe={position:"absolute",top:"50%",left:"50%",maxWidth:"50%",maxHeight:"50%",aspectRatio:"1",transform:"translate(-50%, -50%)",borderRadius:"50%",overflow:"hidden",objectFit:"cover"};function x0e({cover:n}){return h.jsx("div",{style:qJ,children:typeof n=="string"?h.jsxs(h.Fragment,{children:[h.jsx("div",{style:{...xPe,backgroundImage:`url(${n})`}}),h.jsx("img",{src:n,style:APe})]}):n()})}function A0e({micOn:n,cameraOn:t,audioTrack:i,videoTrack:s,playAudio:l,playVideo:d,volume:u,cover:p,children:g,style:_,...y}){let E=tU(C0e,_);return d=d??!!t,l=l??!!n,h.jsxs("div",{...y,style:E,children:[h.jsx(R0e,{disabled:!t,play:d,track:s}),h.jsx(b0e,{disabled:!n,play:l,track:i,volume:u}),p&&!t&&h.jsx(x0e,{cover:p}),h.jsx("div",{style:qJ,children:g})]})}function I0e({track:n,play:t=!1,playbackDeviceId:i,volume:s,children:l}){return KJ(n,t),k.useEffect(()=>{n&&i!=null&&n.setPlaybackDevice(i).catch(console.warn)},[n,i]),k.useEffect(()=>{n&&s!=null&&n.setVolume(s)},[n,s]),l?h.jsx(h.Fragment,{children:l}):null}function N0e({track:n,play:t,style:i,videoPlayerConfig:s,...l}){let d=tU(T0e,i),[u,p]=k.useState(null);return $J(n,t,s,u),h.jsx("div",{...l,ref:p,style:d})}function IPe({user:n,playVideo:t,playAudio:i,playbackDeviceId:s,volume:l,cover:d,style:u,children:p,videoPlayerConfig:g,..._}){let y=tU(C0e,u),{track:E}=yq(n,"video"),{track:b}=yq(n,"audio");return t=t??(n==null?void 0:n.hasVideo),i=i??(n==null?void 0:n.hasAudio),h.jsxs("div",{..._,style:y,children:[h.jsx(N0e,{play:t,track:E,videoPlayerConfig:g}),h.jsx(I0e,{play:i,playbackDeviceId:s,track:b,volume:l}),d&&!t&&h.jsx(x0e,{cover:d}),h.jsx("div",{style:qJ,children:p})]})}var NPe=jE(UE()),OPe=class{constructor(){sn(this,"appType",1001);NPe.default.setAppType(this.appType)}};new OPe;var PPe="2.2.0";tPe(p0e,jE(UE()));var O0e=nPe.default;/** + * @remix-run/router v1.15.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function j4(){return j4=Object.assign?Object.assign.bind():function(n){for(var t=1;t"u")throw new Error(t)}function YJ(n,t){if(!n){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function DPe(){return Math.random().toString(36).substr(2,8)}function uue(n,t){return{usr:n.state,key:n.key,idx:t}}function _q(n,t,i,s){return i===void 0&&(i=null),j4({pathname:typeof n=="string"?n:n.pathname,search:"",hash:""},typeof t=="string"?GR(t):t,{state:i,key:t&&t.key||s||DPe()})}function l7(n){let{pathname:t="/",search:i="",hash:s=""}=n;return i&&i!=="?"&&(t+=i.charAt(0)==="?"?i:"?"+i),s&&s!=="#"&&(t+=s.charAt(0)==="#"?s:"#"+s),t}function GR(n){let t={};if(n){let i=n.indexOf("#");i>=0&&(t.hash=n.substr(i),n=n.substr(0,i));let s=n.indexOf("?");s>=0&&(t.search=n.substr(s),n=n.substr(0,s)),n&&(t.pathname=n)}return t}function kPe(n,t,i,s){s===void 0&&(s={});let{window:l=document.defaultView,v5Compat:d=!1}=s,u=l.history,p=fv.Pop,g=null,_=y();_==null&&(_=0,u.replaceState(j4({},u.state,{idx:_}),""));function y(){return(u.state||{idx:null}).idx}function E(){p=fv.Pop;let D=y(),P=D==null?null:D-_;_=D,g&&g({action:p,location:O.location,delta:P})}function b(D,P){p=fv.Push;let j=_q(O.location,D,P);i&&i(j,D),_=y()+1;let M=uue(j,_),V=O.createHref(j);try{u.pushState(M,"",V)}catch(H){if(H instanceof DOMException&&H.name==="DataCloneError")throw H;l.location.assign(V)}d&&g&&g({action:p,location:O.location,delta:1})}function A(D,P){p=fv.Replace;let j=_q(O.location,D,P);i&&i(j,D),_=y();let M=uue(j,_),V=O.createHref(j);u.replaceState(M,"",V),d&&g&&g({action:p,location:O.location,delta:0})}function N(D){let P=l.location.origin!=="null"?l.location.origin:l.location.href,j=typeof D=="string"?D:l7(D);return pa(P,"No window.location.(origin|href) available to create URL for href: "+j),new URL(j,P)}let O={get action(){return p},get location(){return n(l,u)},listen(D){if(g)throw new Error("A history only accepts one active listener");return l.addEventListener(due,E),g=D,()=>{l.removeEventListener(due,E),g=null}},createHref(D){return t(l,D)},createURL:N,encodeLocation(D){let P=N(D);return{pathname:P.pathname,search:P.search,hash:P.hash}},push:b,replace:A,go(D){return u.go(D)}};return O}var hue;(function(n){n.data="data",n.deferred="deferred",n.redirect="redirect",n.error="error"})(hue||(hue={}));function MPe(n,t,i){i===void 0&&(i="/");let s=typeof t=="string"?GR(t):t,l=XJ(s.pathname||"/",i);if(l==null)return null;let d=P0e(n);jPe(d);let u=null;for(let p=0;u==null&&p{let g={relativePath:p===void 0?d.path||"":p,caseSensitive:d.caseSensitive===!0,childrenIndex:u,route:d};g.relativePath.startsWith("/")&&(pa(g.relativePath.startsWith(s),'Absolute route path "'+g.relativePath+'" nested under path '+('"'+s+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),g.relativePath=g.relativePath.slice(s.length));let _=Rv([s,g.relativePath]),y=i.concat(g);d.children&&d.children.length>0&&(pa(d.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+_+'".')),P0e(d.children,t,y,_)),!(d.path==null&&!d.index)&&t.push({path:_,score:GPe(_,d.index),routesMeta:y})};return n.forEach((d,u)=>{var p;if(d.path===""||!((p=d.path)!=null&&p.includes("?")))l(d,u);else for(let g of L0e(d.path))l(d,u,g)}),t}function L0e(n){let t=n.split("/");if(t.length===0)return[];let[i,...s]=t,l=i.endsWith("?"),d=i.replace(/\?$/,"");if(s.length===0)return l?[d,""]:[d];let u=L0e(s.join("/")),p=[];return p.push(...u.map(g=>g===""?d:[d,g].join("/"))),l&&p.push(...u),p.map(g=>n.startsWith("/")&&g===""?"/":g)}function jPe(n){n.sort((t,i)=>t.score!==i.score?i.score-t.score:WPe(t.routesMeta.map(s=>s.childrenIndex),i.routesMeta.map(s=>s.childrenIndex)))}const UPe=/^:[\w-]+$/,FPe=3,BPe=2,VPe=1,zPe=10,HPe=-2,fue=n=>n==="*";function GPe(n,t){let i=n.split("/"),s=i.length;return i.some(fue)&&(s+=HPe),t&&(s+=BPe),i.filter(l=>!fue(l)).reduce((l,d)=>l+(UPe.test(d)?FPe:d===""?VPe:zPe),s)}function WPe(n,t){return n.length===t.length&&n.slice(0,-1).every((s,l)=>s===t[l])?n[n.length-1]-t[t.length-1]:0}function $Pe(n,t){let{routesMeta:i}=n,s={},l="/",d=[];for(let u=0;u{let{paramName:b,isOptional:A}=y;if(b==="*"){let O=p[E]||"";u=d.slice(0,d.length-O.length).replace(/(.)\/+$/,"$1")}const N=p[E];return A&&!N?_[b]=void 0:_[b]=XPe(N||"",b),_},{}),pathname:d,pathnameBase:u,pattern:n}}function qPe(n,t,i){t===void 0&&(t=!1),i===void 0&&(i=!0),YJ(n==="*"||!n.endsWith("*")||n.endsWith("/*"),'Route path "'+n+'" will be treated as if it were '+('"'+n.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+n.replace(/\*$/,"/*")+'".'));let s=[],l="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(u,p,g)=>(s.push({paramName:p,isOptional:g!=null}),g?"/?([^\\/]+)?":"/([^\\/]+)"));return n.endsWith("*")?(s.push({paramName:"*"}),l+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):i?l+="\\/*$":n!==""&&n!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),s]}function YPe(n){try{return decodeURI(n)}catch(t){return YJ(!1,'The URL path "'+n+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),n}}function XPe(n,t){try{return decodeURIComponent(n)}catch(i){return YJ(!1,'The value for the URL param "'+t+'" will not be decoded because'+(' the string "'+n+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+i+").")),n}}function XJ(n,t){if(t==="/")return n;if(!n.toLowerCase().startsWith(t.toLowerCase()))return null;let i=t.endsWith("/")?t.length-1:t.length,s=n.charAt(i);return s&&s!=="/"?null:n.slice(i)||"/"}function JPe(n,t){t===void 0&&(t="/");let{pathname:i,search:s="",hash:l=""}=typeof n=="string"?GR(n):n;return{pathname:i?i.startsWith("/")?i:QPe(i,t):t,search:t6e(s),hash:n6e(l)}}function QPe(n,t){let i=t.replace(/\/+$/,"").split("/");return n.split("/").forEach(l=>{l===".."?i.length>1&&i.pop():l!=="."&&i.push(l)}),i.length>1?i.join("/"):"/"}function T$(n,t,i,s){return"Cannot include a '"+n+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(s)+"]. Please separate it out to the ")+("`to."+i+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function ZPe(n){return n.filter((t,i)=>i===0||t.route.path&&t.route.path.length>0)}function JJ(n,t){let i=ZPe(n);return t?i.map((s,l)=>l===n.length-1?s.pathname:s.pathnameBase):i.map(s=>s.pathnameBase)}function QJ(n,t,i,s){s===void 0&&(s=!1);let l;typeof n=="string"?l=GR(n):(l=j4({},n),pa(!l.pathname||!l.pathname.includes("?"),T$("?","pathname","search",l)),pa(!l.pathname||!l.pathname.includes("#"),T$("#","pathname","hash",l)),pa(!l.search||!l.search.includes("#"),T$("#","search","hash",l)));let d=n===""||l.pathname==="",u=d?"/":l.pathname,p;if(u==null)p=i;else{let E=t.length-1;if(!s&&u.startsWith("..")){let b=u.split("/");for(;b[0]==="..";)b.shift(),E-=1;l.pathname=b.join("/")}p=E>=0?t[E]:"/"}let g=JPe(l,p),_=u&&u!=="/"&&u.endsWith("/"),y=(d||u===".")&&i.endsWith("/");return!g.pathname.endsWith("/")&&(_||y)&&(g.pathname+="/"),g}const Rv=n=>n.join("/").replace(/\/\/+/g,"/"),e6e=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),t6e=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,n6e=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n;function i6e(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}const D0e=["post","put","patch","delete"];new Set(D0e);const r6e=["get",...D0e];new Set(r6e);/** + * React Router v6.22.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function U4(){return U4=Object.assign?Object.assign.bind():function(n){for(var t=1;t{p.current=!0}),k.useCallback(function(_,y){if(y===void 0&&(y={}),!p.current)return;if(typeof _=="number"){s.go(_);return}let E=QJ(_,JSON.parse(u),d,y.relative==="path");n==null&&t!=="/"&&(E.pathname=E.pathname==="/"?t:Rv([t,E.pathname])),(y.replace?s.replace:s.push)(E,y.state,y)},[t,s,u,d,n])}const l6e=k.createContext(null);function c6e(n){let t=k.useContext(Vp).outlet;return t&&k.createElement(l6e.Provider,{value:n},t)}function iU(){let{matches:n}=k.useContext(Vp),t=n[n.length-1];return t?t.params:{}}function j0e(n,t){let{relative:i}=t===void 0?{}:t,{future:s}=k.useContext(Vv),{matches:l}=k.useContext(Vp),{pathname:d}=Xo(),u=JSON.stringify(JJ(l,s.v7_relativeSplatPath));return k.useMemo(()=>QJ(n,JSON.parse(u),d,i==="path"),[n,u,d,i])}function d6e(n,t){return u6e(n,t)}function u6e(n,t,i,s){WR()||pa(!1);let{navigator:l}=k.useContext(Vv),{matches:d}=k.useContext(Vp),u=d[d.length-1],p=u?u.params:{};u&&u.pathname;let g=u?u.pathnameBase:"/";u&&u.route;let _=Xo(),y;if(t){var E;let D=typeof t=="string"?GR(t):t;g==="/"||(E=D.pathname)!=null&&E.startsWith(g)||pa(!1),y=D}else y=_;let b=y.pathname||"/",A=g==="/"?b:b.slice(g.length)||"/",N=MPe(n,{pathname:A}),O=g6e(N&&N.map(D=>Object.assign({},D,{params:Object.assign({},p,D.params),pathname:Rv([g,l.encodeLocation?l.encodeLocation(D.pathname).pathname:D.pathname]),pathnameBase:D.pathnameBase==="/"?g:Rv([g,l.encodeLocation?l.encodeLocation(D.pathnameBase).pathname:D.pathnameBase])})),d,i,s);return t&&O?k.createElement(nU.Provider,{value:{location:U4({pathname:"/",search:"",hash:"",state:null,key:"default"},y),navigationType:fv.Pop}},O):O}function h6e(){let n=E6e(),t=i6e(n)?n.status+" "+n.statusText:n instanceof Error?n.message:JSON.stringify(n),i=n instanceof Error?n.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return k.createElement(k.Fragment,null,k.createElement("h2",null,"Unexpected Application Error!"),k.createElement("h3",{style:{fontStyle:"italic"}},t),i?k.createElement("pre",{style:l},i):null,null)}const f6e=k.createElement(h6e,null);class p6e extends k.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,i){return i.location!==t.location||i.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:i.error,location:i.location,revalidation:t.revalidation||i.revalidation}}componentDidCatch(t,i){console.error("React Router caught the following error during render",t,i)}render(){return this.state.error!==void 0?k.createElement(Vp.Provider,{value:this.props.routeContext},k.createElement(k0e.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function m6e(n){let{routeContext:t,match:i,children:s}=n,l=k.useContext(ZJ);return l&&l.static&&l.staticContext&&(i.route.errorElement||i.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=i.route.id),k.createElement(Vp.Provider,{value:t},s)}function g6e(n,t,i,s){var l;if(t===void 0&&(t=[]),i===void 0&&(i=null),s===void 0&&(s=null),n==null){var d;if((d=i)!=null&&d.errors)n=i.matches;else return null}let u=n,p=(l=i)==null?void 0:l.errors;if(p!=null){let y=u.findIndex(E=>E.route.id&&(p==null?void 0:p[E.route.id]));y>=0||pa(!1),u=u.slice(0,Math.min(u.length,y+1))}let g=!1,_=-1;if(i&&s&&s.v7_partialHydration)for(let y=0;y=0?u=u.slice(0,_+1):u=[u[0]];break}}}return u.reduceRight((y,E,b)=>{let A,N=!1,O=null,D=null;i&&(A=p&&E.route.id?p[E.route.id]:void 0,O=E.route.errorElement||f6e,g&&(_<0&&b===0?(S6e("route-fallback",!1),N=!0,D=null):_===b&&(N=!0,D=E.route.hydrateFallbackElement||null)));let P=t.concat(u.slice(0,b+1)),j=()=>{let M;return A?M=O:N?M=D:E.route.Component?M=k.createElement(E.route.Component,null):E.route.element?M=E.route.element:M=y,k.createElement(m6e,{match:E,routeContext:{outlet:y,matches:P,isDataRoute:i!=null},children:M})};return i&&(E.route.ErrorBoundary||E.route.errorElement||b===0)?k.createElement(p6e,{location:i.location,revalidation:i.revalidation,component:O,error:A,children:j(),routeContext:{outlet:null,matches:P,isDataRoute:!0}}):j()},null)}var U0e=function(n){return n.UseBlocker="useBlocker",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n}(U0e||{}),c7=function(n){return n.UseBlocker="useBlocker",n.UseLoaderData="useLoaderData",n.UseActionData="useActionData",n.UseRouteError="useRouteError",n.UseNavigation="useNavigation",n.UseRouteLoaderData="useRouteLoaderData",n.UseMatches="useMatches",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n.UseRouteId="useRouteId",n}(c7||{});function v6e(n){let t=k.useContext(ZJ);return t||pa(!1),t}function y6e(n){let t=k.useContext(s6e);return t||pa(!1),t}function _6e(n){let t=k.useContext(Vp);return t||pa(!1),t}function F0e(n){let t=_6e(),i=t.matches[t.matches.length-1];return i.route.id||pa(!1),i.route.id}function E6e(){var n;let t=k.useContext(k0e),i=y6e(c7.UseRouteError),s=F0e(c7.UseRouteError);return t!==void 0?t:(n=i.errors)==null?void 0:n[s]}function w6e(){let{router:n}=v6e(U0e.UseNavigateStable),t=F0e(c7.UseNavigateStable),i=k.useRef(!1);return M0e(()=>{i.current=!0}),k.useCallback(function(l,d){d===void 0&&(d={}),i.current&&(typeof l=="number"?n.navigate(l):n.navigate(l,U4({fromRouteId:t},d)))},[n,t])}const pue={};function S6e(n,t,i){!t&&!pue[n]&&(pue[n]=!0)}function B0e(n){let{to:t,replace:i,state:s,relative:l}=n;WR()||pa(!1);let{future:d,static:u}=k.useContext(Vv),{matches:p}=k.useContext(Vp),{pathname:g}=Xo(),_=Ii(),y=QJ(t,JJ(p,d.v7_relativeSplatPath),g,l==="path"),E=JSON.stringify(y);return k.useEffect(()=>_(JSON.parse(E),{replace:i,state:s,relative:l}),[_,E,l,i,s]),null}function b6e(n){return c6e(n.context)}function mi(n){pa(!1)}function C6e(n){let{basename:t="/",children:i=null,location:s,navigationType:l=fv.Pop,navigator:d,static:u=!1,future:p}=n;WR()&&pa(!1);let g=t.replace(/^\/*/,"/"),_=k.useMemo(()=>({basename:g,navigator:d,static:u,future:U4({v7_relativeSplatPath:!1},p)}),[g,p,d,u]);typeof s=="string"&&(s=GR(s));let{pathname:y="/",search:E="",hash:b="",state:A=null,key:N="default"}=s,O=k.useMemo(()=>{let D=XJ(y,g);return D==null?null:{location:{pathname:D,search:E,hash:b,state:A,key:N},navigationType:l}},[g,y,E,b,A,N,l]);return O==null?null:k.createElement(Vv.Provider,{value:_},k.createElement(nU.Provider,{children:i,value:O}))}function T6e(n){let{children:t,location:i}=n;return d6e(Eq(t),i)}new Promise(()=>{});function Eq(n,t){t===void 0&&(t=[]);let i=[];return k.Children.forEach(n,(s,l)=>{if(!k.isValidElement(s))return;let d=[...t,l];if(s.type===k.Fragment){i.push.apply(i,Eq(s.props.children,d));return}s.type!==mi&&pa(!1),!s.props.index||!s.props.children||pa(!1);let u={id:s.props.id||d.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,loader:s.props.loader,action:s.props.action,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(u.children=Eq(s.props.children,d)),i.push(u)}),i}/** + * React Router DOM v6.22.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function wq(){return wq=Object.assign?Object.assign.bind():function(n){for(var t=1;t=0)&&(i[l]=n[l]);return i}function x6e(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function A6e(n,t){return n.button===0&&(!t||t==="_self")&&!x6e(n)}const I6e=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],N6e="6";try{window.__reactRouterVersion=N6e}catch{}const O6e="startTransition",mue=RNe[O6e];function P6e(n){let{basename:t,children:i,future:s,window:l}=n,d=k.useRef();d.current==null&&(d.current=LPe({window:l,v5Compat:!0}));let u=d.current,[p,g]=k.useState({action:u.action,location:u.location}),{v7_startTransition:_}=s||{},y=k.useCallback(E=>{_&&mue?mue(()=>g(E)):g(E)},[g,_]);return k.useLayoutEffect(()=>u.listen(y),[u,y]),k.createElement(C6e,{basename:t,children:i,location:p.location,navigationType:p.action,navigator:u,future:s})}const L6e=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",D6e=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Yu=k.forwardRef(function(t,i){let{onClick:s,relative:l,reloadDocument:d,replace:u,state:p,target:g,to:_,preventScrollReset:y,unstable_viewTransition:E}=t,b=R6e(t,I6e),{basename:A}=k.useContext(Vv),N,O=!1;if(typeof _=="string"&&D6e.test(_)&&(N=_,L6e))try{let M=new URL(window.location.href),V=_.startsWith("//")?new URL(M.protocol+_):new URL(_),H=XJ(V.pathname,A);V.origin===M.origin&&H!=null?_=H+V.search+V.hash:O=!0}catch{}let D=a6e(_,{relative:l}),P=k6e(_,{replace:u,state:p,target:g,preventScrollReset:y,relative:l,unstable_viewTransition:E});function j(M){s&&s(M),M.defaultPrevented||P(M)}return k.createElement("a",wq({},b,{href:N||D,onClick:O||d?s:j,ref:i,target:g}))});var gue;(function(n){n.UseScrollRestoration="useScrollRestoration",n.UseSubmit="useSubmit",n.UseSubmitFetcher="useSubmitFetcher",n.UseFetcher="useFetcher",n.useViewTransitionState="useViewTransitionState"})(gue||(gue={}));var vue;(function(n){n.UseFetcher="useFetcher",n.UseFetchers="useFetchers",n.UseScrollRestoration="useScrollRestoration"})(vue||(vue={}));function k6e(n,t){let{target:i,replace:s,state:l,preventScrollReset:d,relative:u,unstable_viewTransition:p}=t===void 0?{}:t,g=Ii(),_=Xo(),y=j0e(n,{relative:u});return k.useCallback(E=>{if(A6e(E,i)){E.preventDefault();let b=s!==void 0?s:l7(_)===l7(y);g(n,{replace:b,state:l,preventScrollReset:d,relative:u,unstable_viewTransition:p})}},[_,g,y,s,l,i,n,d,u,p])}function V0e(n){var t,i,s="";if(typeof n=="string"||typeof n=="number")s+=n;else if(typeof n=="object")if(Array.isArray(n)){var l=n.length;for(t=0;ttypeof n=="number"&&!isNaN(n),fE=n=>typeof n=="string",Wd=n=>typeof n=="function",Yk=n=>fE(n)||Wd(n)?n:null,Sq=n=>k.isValidElement(n)||fE(n)||Wd(n)||F4(n);function M6e(n,t,i){i===void 0&&(i=300);const{scrollHeight:s,style:l}=n;requestAnimationFrame(()=>{l.minHeight="initial",l.height=s+"px",l.transition=`all ${i}ms`,requestAnimationFrame(()=>{l.height="0",l.padding="0",l.margin="0",setTimeout(t,i)})})}function rU(n){let{enter:t,exit:i,appendPosition:s=!1,collapse:l=!0,collapseDuration:d=300}=n;return function(u){let{children:p,position:g,preventExitTransition:_,done:y,nodeRef:E,isIn:b,playToast:A}=u;const N=s?`${t}--${g}`:t,O=s?`${i}--${g}`:i,D=k.useRef(0);return k.useLayoutEffect(()=>{const P=E.current,j=N.split(" "),M=V=>{V.target===E.current&&(A(),P.removeEventListener("animationend",M),P.removeEventListener("animationcancel",M),D.current===0&&V.type!=="animationcancel"&&P.classList.remove(...j))};P.classList.add(...j),P.addEventListener("animationend",M),P.addEventListener("animationcancel",M)},[]),k.useEffect(()=>{const P=E.current,j=()=>{P.removeEventListener("animationend",j),l?M6e(P,y,d):y()};b||(_?j():(D.current=1,P.className+=` ${O}`,P.addEventListener("animationend",j)))},[b]),dn.createElement(dn.Fragment,null,p)}}function yue(n,t){return n!=null?{content:n.content,containerId:n.props.containerId,id:n.props.toastId,theme:n.props.theme,type:n.props.type,data:n.props.data||{},isLoading:n.props.isLoading,icon:n.props.icon,status:t}:{}}const sc=new Map;let B4=[];const bq=new Set,j6e=n=>bq.forEach(t=>t(n)),z0e=()=>sc.size>0;function H0e(n,t){var i;if(t)return!((i=sc.get(t))==null||!i.isToastActive(n));let s=!1;return sc.forEach(l=>{l.isToastActive(n)&&(s=!0)}),s}function G0e(n,t){Sq(n)&&(z0e()||B4.push({content:n,options:t}),sc.forEach(i=>{i.buildToast(n,t)}))}function _ue(n,t){sc.forEach(i=>{t!=null&&t!=null&&t.containerId?(t==null?void 0:t.containerId)===i.id&&i.toggle(n,t==null?void 0:t.id):i.toggle(n,t==null?void 0:t.id)})}function U6e(n){const{subscribe:t,getSnapshot:i,setProps:s}=k.useRef(function(d){const u=d.containerId||1;return{subscribe(p){const g=function(y,E,b){let A=1,N=0,O=[],D=[],P=[],j=E;const M=new Map,V=new Set,H=()=>{P=Array.from(M.values()),V.forEach(Y=>Y())},$=Y=>{D=Y==null?[]:D.filter(le=>le!==Y),H()},Q=Y=>{const{toastId:le,onOpen:ae,updateId:te,children:de}=Y.props,G=te==null;Y.staleId&&M.delete(Y.staleId),M.set(le,Y),D=[...D,Y.props.toastId].filter(ie=>ie!==Y.staleId),H(),b(yue(Y,G?"added":"updated")),G&&Wd(ae)&&ae(k.isValidElement(de)&&de.props)};return{id:y,props:j,observe:Y=>(V.add(Y),()=>V.delete(Y)),toggle:(Y,le)=>{M.forEach(ae=>{le!=null&&le!==ae.props.toastId||Wd(ae.toggle)&&ae.toggle(Y)})},removeToast:$,toasts:M,clearQueue:()=>{N-=O.length,O=[]},buildToast:(Y,le)=>{if((je=>{let{containerId:Ve,toastId:Re,updateId:Be}=je;const Xe=Ve?Ve!==y:y!==1,we=M.has(Re)&&Be==null;return Xe||we})(le))return;const{toastId:ae,updateId:te,data:de,staleId:G,delay:ie}=le,_e=()=>{$(ae)},he=te==null;he&&N++;const Ce={...j,style:j.toastStyle,key:A++,...Object.fromEntries(Object.entries(le).filter(je=>{let[Ve,Re]=je;return Re!=null})),toastId:ae,updateId:te,data:de,closeToast:_e,isIn:!1,className:Yk(le.className||j.toastClassName),bodyClassName:Yk(le.bodyClassName||j.bodyClassName),progressClassName:Yk(le.progressClassName||j.progressClassName),autoClose:!le.isLoading&&(fe=le.autoClose,me=j.autoClose,fe===!1||F4(fe)&&fe>0?fe:me),deleteToast(){const je=M.get(ae),{onClose:Ve,children:Re}=je.props;Wd(Ve)&&Ve(k.isValidElement(Re)&&Re.props),b(yue(je,"removed")),M.delete(ae),N--,N<0&&(N=0),O.length>0?Q(O.shift()):H()}};var fe,me;Ce.closeButton=j.closeButton,le.closeButton===!1||Sq(le.closeButton)?Ce.closeButton=le.closeButton:le.closeButton===!0&&(Ce.closeButton=!Sq(j.closeButton)||j.closeButton);let Ne=Y;k.isValidElement(Y)&&!fE(Y.type)?Ne=k.cloneElement(Y,{closeToast:_e,toastProps:Ce,data:de}):Wd(Y)&&(Ne=Y({closeToast:_e,toastProps:Ce,data:de}));const Fe={content:Ne,props:Ce,staleId:G};j.limit&&j.limit>0&&N>j.limit&&he?O.push(Fe):F4(ie)?setTimeout(()=>{Q(Fe)},ie):Q(Fe)},setProps(Y){j=Y},setToggle:(Y,le)=>{M.get(Y).toggle=le},isToastActive:Y=>D.some(le=>le===Y),getSnapshot:()=>j.newestOnTop?P.reverse():P}}(u,d,j6e);sc.set(u,g);const _=g.observe(p);return B4.forEach(y=>G0e(y.content,y.options)),B4=[],()=>{_(),sc.delete(u)}},setProps(p){var g;(g=sc.get(u))==null||g.setProps(p)},getSnapshot(){var p;return(p=sc.get(u))==null?void 0:p.getSnapshot()}}}(n)).current;s(n);const l=k.useSyncExternalStore(t,i,i);return{getToastToRender:function(d){if(!l)return[];const u=new Map;return l.forEach(p=>{const{position:g}=p.props;u.has(g)||u.set(g,[]),u.get(g).push(p)}),Array.from(u,p=>d(p[0],p[1]))},isToastActive:H0e,count:l==null?void 0:l.length}}function F6e(n){const[t,i]=k.useState(!1),[s,l]=k.useState(!1),d=k.useRef(null),u=k.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:p,pauseOnHover:g,closeToast:_,onClick:y,closeOnClick:E}=n;var b,A;function N(){i(!0)}function O(){i(!1)}function D(M){const V=d.current;u.canDrag&&V&&(u.didMove=!0,t&&O(),u.delta=n.draggableDirection==="x"?M.clientX-u.start:M.clientY-u.start,u.start!==M.clientX&&(u.canCloseOnClick=!1),V.style.transform=`translate3d(${n.draggableDirection==="x"?`${u.delta}px, var(--y)`:`0, calc(${u.delta}px + var(--y))`},0)`,V.style.opacity=""+(1-Math.abs(u.delta/u.removalDistance)))}function P(){document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",P);const M=d.current;if(u.canDrag&&u.didMove&&M){if(u.canDrag=!1,Math.abs(u.delta)>u.removalDistance)return l(!0),n.closeToast(),void n.collapseAll();M.style.transition="transform 0.2s, opacity 0.2s",M.style.removeProperty("transform"),M.style.removeProperty("opacity")}}(A=sc.get((b={id:n.toastId,containerId:n.containerId,fn:i}).containerId||1))==null||A.setToggle(b.id,b.fn),k.useEffect(()=>{if(n.pauseOnFocusLoss)return document.hasFocus()||O(),window.addEventListener("focus",N),window.addEventListener("blur",O),()=>{window.removeEventListener("focus",N),window.removeEventListener("blur",O)}},[n.pauseOnFocusLoss]);const j={onPointerDown:function(M){if(n.draggable===!0||n.draggable===M.pointerType){u.didMove=!1,document.addEventListener("pointermove",D),document.addEventListener("pointerup",P);const V=d.current;u.canCloseOnClick=!0,u.canDrag=!0,V.style.transition="none",n.draggableDirection==="x"?(u.start=M.clientX,u.removalDistance=V.offsetWidth*(n.draggablePercent/100)):(u.start=M.clientY,u.removalDistance=V.offsetHeight*(n.draggablePercent===80?1.5*n.draggablePercent:n.draggablePercent)/100)}},onPointerUp:function(M){const{top:V,bottom:H,left:$,right:Q}=d.current.getBoundingClientRect();M.nativeEvent.type!=="touchend"&&n.pauseOnHover&&M.clientX>=$&&M.clientX<=Q&&M.clientY>=V&&M.clientY<=H?O():N()}};return p&&g&&(j.onMouseEnter=O,n.stacked||(j.onMouseLeave=N)),E&&(j.onClick=M=>{y&&y(M),u.canCloseOnClick&&_()}),{playToast:N,pauseToast:O,isRunning:t,preventExitTransition:s,toastRef:d,eventHandlers:j}}function B6e(n){let{delay:t,isRunning:i,closeToast:s,type:l="default",hide:d,className:u,style:p,controlledProgress:g,progress:_,rtl:y,isIn:E,theme:b}=n;const A=d||g&&_===0,N={...p,animationDuration:`${t}ms`,animationPlayState:i?"running":"paused"};g&&(N.transform=`scaleX(${_})`);const O=pv("Toastify__progress-bar",g?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${b}`,`Toastify__progress-bar--${l}`,{"Toastify__progress-bar--rtl":y}),D=Wd(u)?u({rtl:y,type:l,defaultClassName:O}):pv(O,u),P={[g&&_>=1?"onTransitionEnd":"onAnimationEnd"]:g&&_<1?null:()=>{E&&s()}};return dn.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":A},dn.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${b} Toastify__progress-bar--${l}`}),dn.createElement("div",{role:"progressbar","aria-hidden":A?"true":"false","aria-label":"notification timer",className:D,style:N,...P}))}let V6e=1;const W0e=()=>""+V6e++;function z6e(n){return n&&(fE(n.toastId)||F4(n.toastId))?n.toastId:W0e()}function f4(n,t){return G0e(n,t),t.toastId}function d7(n,t){return{...t,type:t&&t.type||n,toastId:z6e(t)}}function vk(n){return(t,i)=>f4(t,d7(n,i))}function Qr(n,t){return f4(n,d7("default",t))}Qr.loading=(n,t)=>f4(n,d7("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),Qr.promise=function(n,t,i){let s,{pending:l,error:d,success:u}=t;l&&(s=fE(l)?Qr.loading(l,i):Qr.loading(l.render,{...i,...l}));const p={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},g=(y,E,b)=>{if(E==null)return void Qr.dismiss(s);const A={type:y,...p,...i,data:b},N=fE(E)?{render:E}:E;return s?Qr.update(s,{...A,...N}):Qr(N.render,{...A,...N}),b},_=Wd(n)?n():n;return _.then(y=>g("success",u,y)).catch(y=>g("error",d,y)),_},Qr.success=vk("success"),Qr.info=vk("info"),Qr.error=vk("error"),Qr.warning=vk("warning"),Qr.warn=Qr.warning,Qr.dark=(n,t)=>f4(n,d7("default",{theme:"dark",...t})),Qr.dismiss=function(n){(function(t){var i;if(z0e()){if(t==null||fE(i=t)||F4(i))sc.forEach(l=>{l.removeToast(t)});else if(t&&("containerId"in t||"id"in t)){var s;(s=sc.get(t.containerId))!=null&&s.removeToast(t.id)||sc.forEach(l=>{l.removeToast(t.id)})}}else B4=B4.filter(l=>t!=null&&l.options.toastId!==t)})(n)},Qr.clearWaitingQueue=function(n){n===void 0&&(n={}),sc.forEach(t=>{!t.props.limit||n.containerId&&t.id!==n.containerId||t.clearQueue()})},Qr.isActive=H0e,Qr.update=function(n,t){t===void 0&&(t={});const i=((s,l)=>{var d;let{containerId:u}=l;return(d=sc.get(u||1))==null?void 0:d.toasts.get(s)})(n,t);if(i){const{props:s,content:l}=i,d={delay:100,...s,...t,toastId:t.toastId||n,updateId:W0e()};d.toastId!==n&&(d.staleId=n);const u=d.render||l;delete d.render,f4(u,d)}},Qr.done=n=>{Qr.update(n,{progress:1})},Qr.onChange=function(n){return bq.add(n),()=>{bq.delete(n)}},Qr.play=n=>_ue(!0,n),Qr.pause=n=>_ue(!1,n);const H6e=typeof window<"u"?k.useLayoutEffect:k.useEffect,yk=n=>{let{theme:t,type:i,isLoading:s,...l}=n;return dn.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:t==="colored"?"currentColor":`var(--toastify-icon-color-${i})`,...l})},R$={info:function(n){return dn.createElement(yk,{...n},dn.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(n){return dn.createElement(yk,{...n},dn.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(n){return dn.createElement(yk,{...n},dn.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(n){return dn.createElement(yk,{...n},dn.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return dn.createElement("div",{className:"Toastify__spinner"})}},G6e=n=>{const{isRunning:t,preventExitTransition:i,toastRef:s,eventHandlers:l,playToast:d}=F6e(n),{closeButton:u,children:p,autoClose:g,onClick:_,type:y,hideProgressBar:E,closeToast:b,transition:A,position:N,className:O,style:D,bodyClassName:P,bodyStyle:j,progressClassName:M,progressStyle:V,updateId:H,role:$,progress:Q,rtl:Y,toastId:le,deleteToast:ae,isIn:te,isLoading:de,closeOnClick:G,theme:ie}=n,_e=pv("Toastify__toast",`Toastify__toast-theme--${ie}`,`Toastify__toast--${y}`,{"Toastify__toast--rtl":Y},{"Toastify__toast--close-on-click":G}),he=Wd(O)?O({rtl:Y,position:N,type:y,defaultClassName:_e}):pv(_e,O),Ce=function(Fe){let{theme:je,type:Ve,isLoading:Re,icon:Be}=Fe,Xe=null;const we={theme:je,type:Ve};return Be===!1||(Wd(Be)?Xe=Be({...we,isLoading:Re}):k.isValidElement(Be)?Xe=k.cloneElement(Be,we):Re?Xe=R$.spinner():(Ge=>Ge in R$)(Ve)&&(Xe=R$[Ve](we))),Xe}(n),fe=!!Q||!g,me={closeToast:b,type:y,theme:ie};let Ne=null;return u===!1||(Ne=Wd(u)?u(me):k.isValidElement(u)?k.cloneElement(u,me):function(Fe){let{closeToast:je,theme:Ve,ariaLabel:Re="close"}=Fe;return dn.createElement("button",{className:`Toastify__close-button Toastify__close-button--${Ve}`,type:"button",onClick:Be=>{Be.stopPropagation(),je(Be)},"aria-label":Re},dn.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},dn.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}(me)),dn.createElement(A,{isIn:te,done:ae,position:N,preventExitTransition:i,nodeRef:s,playToast:d},dn.createElement("div",{id:le,onClick:_,"data-in":te,className:he,...l,style:D,ref:s},dn.createElement("div",{...te&&{role:$},className:Wd(P)?P({type:y}):pv("Toastify__toast-body",P),style:j},Ce!=null&&dn.createElement("div",{className:pv("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!de})},Ce),dn.createElement("div",null,p)),Ne,dn.createElement(B6e,{...H&&!fe?{key:`pb-${H}`}:{},rtl:Y,theme:ie,delay:g,isRunning:t,isIn:te,closeToast:b,hide:E,type:y,style:V,className:M,controlledProgress:fe,progress:Q||0})))},sU=function(n,t){return t===void 0&&(t=!1),{enter:`Toastify--animate Toastify__${n}-enter`,exit:`Toastify--animate Toastify__${n}-exit`,appendPosition:t}},W6e=rU(sU("bounce",!0)),$6e=rU(sU("slide",!0));rU(sU("zoom"));rU(sU("flip"));const K6e={position:"top-right",transition:W6e,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};function q6e(n){let t={...K6e,...n};const i=n.stacked,[s,l]=k.useState(!0),d=k.useRef(null),{getToastToRender:u,isToastActive:p,count:g}=U6e(t),{className:_,style:y,rtl:E,containerId:b}=t;function A(O){const D=pv("Toastify__toast-container",`Toastify__toast-container--${O}`,{"Toastify__toast-container--rtl":E});return Wd(_)?_({position:O,rtl:E,defaultClassName:D}):pv(D,Yk(_))}function N(){i&&(l(!0),Qr.play())}return H6e(()=>{if(i){var O;const D=d.current.querySelectorAll('[data-in="true"]'),P=12,j=(O=t.position)==null?void 0:O.includes("top");let M=0,V=0;Array.from(D).reverse().forEach((H,$)=>{const Q=H;Q.classList.add("Toastify__toast--stacked"),$>0&&(Q.dataset.collapsed=`${s}`),Q.dataset.pos||(Q.dataset.pos=j?"top":"bot");const Y=M*(s?.2:1)+(s?0:P*$);Q.style.setProperty("--y",`${j?Y:-1*Y}px`),Q.style.setProperty("--g",`${P}`),Q.style.setProperty("--s",""+(1-(s?V:0))),M+=Q.offsetHeight,V+=.025})}},[s,g,i]),dn.createElement("div",{ref:d,className:"Toastify",id:b,onMouseEnter:()=>{i&&(l(!1),Qr.pause())},onMouseLeave:N},u((O,D)=>{const P=D.length?{...y}:{...y,pointerEvents:"none"};return dn.createElement("div",{className:A(O),style:P,key:`container-${O}`},D.map(j=>{let{content:M,props:V}=j;return dn.createElement(G6e,{...V,stacked:i,collapseAll:N,isIn:p(V.toastId,V.containerId),style:V.style,key:`toast-${V.key}`},M)}))}))}const Qt=(n="Default message!",t="info")=>{t==="success"&&Qr.success(n,{}),t==="error"&&Qr.error(n,{}),t==="info"&&Qr.info(n,{})},Y6e=(n,t)=>{n==="dark"?document.body.classList.add("dark_theme"):document.body.classList.remove("dark_theme"),t(n),localStorage.setItem("theme",n)};function $R(n){return n.charAt(0).toUpperCase()+n.slice(1)}function Pv(n="Guest",t="User",i=""){const s=`${n&&n} ${i&&i} ${t&&t}`;return!n&&!i&&!t?"Guest User":s}function X6e(n){const t=[{id:"dashboard",title:""},{id:"profile",title:"Profile"},{id:"change-password",title:"Change Password"},{id:"quick-actions",title:"Quick Actions"},{id:"notifications",title:"Notifications"},{id:"appreciations",title:"Appreciations"},{id:"badges",title:"Badges"},{id:"rewards",title:"Rewards"},{id:"metric-reports",title:"Metric Reports"},{id:"approve-reject-form-submission",title:"Approve or Reject Form Submission"},{id:"quick-actions-content",title:"Quick Actions Content"},{id:"magazines",title:"Magazines"},{id:"magazine-details",title:"Magazine Details"},{id:"messages",title:"Messages"},{id:"messages-details",title:"Messages Details"},{id:"contests",title:"Detailing Contests"},{id:"contest-details",title:"Contest Details"},{id:"upload-response",title:"Upload Response"},{id:"evaluate",title:"Evaluate"},{id:"competition-contests",title:"Contests"}];let i="";return t.forEach(s=>{(s==null?void 0:s.id.toLowerCase())===n.toLowerCase()&&(i=s==null?void 0:s.title)}),i}function J6e(n){let t="image2",i="media-image";switch(n?n.toLowerCase():"image"){case"video":t="play1",i="media-video";break;case"audio":t="consult1",i="media-audio";break;case"pdf":t="pdf2",i="media-doc";break;case"image":t="image2",i="media-image";break;case"gallery":t="image3",i="media-image";break;case"survey":t="survey1",i="media-survey";break;case"form":t="form1",i="media-form";break;case"quiz":t="quiz2",i="media-quiz";break;case"external":t="link2",i="media-link";break;default:t="consult1"}return{mediaIcon:t,mediaIconClass:i}}function eQ(n,t){return[parseInt(n/60/60),parseInt(n/60%60),parseInt(n%60)].join(t||":").replace(/\b(\d)\b/g,"0$1").replace(/^00\:/,"")}const pE=n=>{const t=`${Math.floor(n/60)}`.padStart(2,"0"),i=`${n-t*60}`.padStart(2,"0");return`${t>0?`${t}:${i} min`:`${i} sec`}`},Q6e=(n,t)=>t.split(".").reduce((i,s)=>i&&i[s],n),FO=(n,t,i)=>{if(!t.trim())return n;const s=t.toLowerCase().split(" ").filter(Boolean);return n.filter(l=>s.some(d=>i.some(u=>{const p=Q6e(l,u);return p==null?void 0:p.toLowerCase().includes(d)})))},Z6e=n=>{if(n==null)return 0;const t=String(n).trim();return!t||t.toLowerCase()==="null"||t.toLowerCase()==="undefined"?0:/^-?\d+(\.\d+)?$/.test(t)?Number(t):t};function $0e(n,t){return function(){return n.apply(t,arguments)}}const{toString:eLe}=Object.prototype,{getPrototypeOf:tQ}=Object,aU=(n=>t=>{const i=eLe.call(t);return n[i]||(n[i]=i.slice(8,-1).toLowerCase())})(Object.create(null)),pf=n=>(n=n.toLowerCase(),t=>aU(t)===n),oU=n=>t=>typeof t===n,{isArray:KR}=Array,V4=oU("undefined");function tLe(n){return n!==null&&!V4(n)&&n.constructor!==null&&!V4(n.constructor)&&Yd(n.constructor.isBuffer)&&n.constructor.isBuffer(n)}const K0e=pf("ArrayBuffer");function nLe(n){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(n):t=n&&n.buffer&&K0e(n.buffer),t}const iLe=oU("string"),Yd=oU("function"),q0e=oU("number"),lU=n=>n!==null&&typeof n=="object",rLe=n=>n===!0||n===!1,Xk=n=>{if(aU(n)!=="object")return!1;const t=tQ(n);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in n)&&!(Symbol.iterator in n)},sLe=pf("Date"),aLe=pf("File"),oLe=pf("Blob"),lLe=pf("FileList"),cLe=n=>lU(n)&&Yd(n.pipe),dLe=n=>{let t;return n&&(typeof FormData=="function"&&n instanceof FormData||Yd(n.append)&&((t=aU(n))==="formdata"||t==="object"&&Yd(n.toString)&&n.toString()==="[object FormData]"))},uLe=pf("URLSearchParams"),[hLe,fLe,pLe,mLe]=["ReadableStream","Request","Response","Headers"].map(pf),gLe=n=>n.trim?n.trim():n.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function BO(n,t,{allOwnKeys:i=!1}={}){if(n===null||typeof n>"u")return;let s,l;if(typeof n!="object"&&(n=[n]),KR(n))for(s=0,l=n.length;s0;)if(l=i[s],t===l.toLowerCase())return l;return null}const D_=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Wo,X0e=n=>!V4(n)&&n!==D_;function Cq(){const{caseless:n}=X0e(this)&&this||{},t={},i=(s,l)=>{const d=n&&Y0e(t,l)||l;Xk(t[d])&&Xk(s)?t[d]=Cq(t[d],s):Xk(s)?t[d]=Cq({},s):KR(s)?t[d]=s.slice():t[d]=s};for(let s=0,l=arguments.length;s(BO(t,(l,d)=>{i&&Yd(l)?n[d]=$0e(l,i):n[d]=l},{allOwnKeys:s}),n),yLe=n=>(n.charCodeAt(0)===65279&&(n=n.slice(1)),n),_Le=(n,t,i,s)=>{n.prototype=Object.create(t.prototype,s),n.prototype.constructor=n,Object.defineProperty(n,"super",{value:t.prototype}),i&&Object.assign(n.prototype,i)},ELe=(n,t,i,s)=>{let l,d,u;const p={};if(t=t||{},n==null)return t;do{for(l=Object.getOwnPropertyNames(n),d=l.length;d-- >0;)u=l[d],(!s||s(u,n,t))&&!p[u]&&(t[u]=n[u],p[u]=!0);n=i!==!1&&tQ(n)}while(n&&(!i||i(n,t))&&n!==Object.prototype);return t},wLe=(n,t,i)=>{n=String(n),(i===void 0||i>n.length)&&(i=n.length),i-=t.length;const s=n.indexOf(t,i);return s!==-1&&s===i},SLe=n=>{if(!n)return null;if(KR(n))return n;let t=n.length;if(!q0e(t))return null;const i=new Array(t);for(;t-- >0;)i[t]=n[t];return i},bLe=(n=>t=>n&&t instanceof n)(typeof Uint8Array<"u"&&tQ(Uint8Array)),CLe=(n,t)=>{const s=(n&&n[Symbol.iterator]).call(n);let l;for(;(l=s.next())&&!l.done;){const d=l.value;t.call(n,d[0],d[1])}},TLe=(n,t)=>{let i;const s=[];for(;(i=n.exec(t))!==null;)s.push(i);return s},RLe=pf("HTMLFormElement"),xLe=n=>n.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(i,s,l){return s.toUpperCase()+l}),Eue=(({hasOwnProperty:n})=>(t,i)=>n.call(t,i))(Object.prototype),ALe=pf("RegExp"),J0e=(n,t)=>{const i=Object.getOwnPropertyDescriptors(n),s={};BO(i,(l,d)=>{let u;(u=t(l,d,n))!==!1&&(s[d]=u||l)}),Object.defineProperties(n,s)},ILe=n=>{J0e(n,(t,i)=>{if(Yd(n)&&["arguments","caller","callee"].indexOf(i)!==-1)return!1;const s=n[i];if(Yd(s)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+i+"'")})}})},NLe=(n,t)=>{const i={},s=l=>{l.forEach(d=>{i[d]=!0})};return KR(n)?s(n):s(String(n).split(t)),i},OLe=()=>{},PLe=(n,t)=>n!=null&&Number.isFinite(n=+n)?n:t,x$="abcdefghijklmnopqrstuvwxyz",wue="0123456789",Q0e={DIGIT:wue,ALPHA:x$,ALPHA_DIGIT:x$+x$.toUpperCase()+wue},LLe=(n=16,t=Q0e.ALPHA_DIGIT)=>{let i="";const{length:s}=t;for(;n--;)i+=t[Math.random()*s|0];return i};function DLe(n){return!!(n&&Yd(n.append)&&n[Symbol.toStringTag]==="FormData"&&n[Symbol.iterator])}const kLe=n=>{const t=new Array(10),i=(s,l)=>{if(lU(s)){if(t.indexOf(s)>=0)return;if(!("toJSON"in s)){t[l]=s;const d=KR(s)?[]:{};return BO(s,(u,p)=>{const g=i(u,l+1);!V4(g)&&(d[p]=g)}),t[l]=void 0,d}}return s};return i(n,0)},MLe=pf("AsyncFunction"),jLe=n=>n&&(lU(n)||Yd(n))&&Yd(n.then)&&Yd(n.catch),Z0e=((n,t)=>n?setImmediate:t?((i,s)=>(D_.addEventListener("message",({source:l,data:d})=>{l===D_&&d===i&&s.length&&s.shift()()},!1),l=>{s.push(l),D_.postMessage(i,"*")}))(`axios@${Math.random()}`,[]):i=>setTimeout(i))(typeof setImmediate=="function",Yd(D_.postMessage)),ULe=typeof queueMicrotask<"u"?queueMicrotask.bind(D_):typeof ic<"u"&&ic.nextTick||Z0e,At={isArray:KR,isArrayBuffer:K0e,isBuffer:tLe,isFormData:dLe,isArrayBufferView:nLe,isString:iLe,isNumber:q0e,isBoolean:rLe,isObject:lU,isPlainObject:Xk,isReadableStream:hLe,isRequest:fLe,isResponse:pLe,isHeaders:mLe,isUndefined:V4,isDate:sLe,isFile:aLe,isBlob:oLe,isRegExp:ALe,isFunction:Yd,isStream:cLe,isURLSearchParams:uLe,isTypedArray:bLe,isFileList:lLe,forEach:BO,merge:Cq,extend:vLe,trim:gLe,stripBOM:yLe,inherits:_Le,toFlatObject:ELe,kindOf:aU,kindOfTest:pf,endsWith:wLe,toArray:SLe,forEachEntry:CLe,matchAll:TLe,isHTMLForm:RLe,hasOwnProperty:Eue,hasOwnProp:Eue,reduceDescriptors:J0e,freezeMethods:ILe,toObjectSet:NLe,toCamelCase:xLe,noop:OLe,toFiniteNumber:PLe,findKey:Y0e,global:D_,isContextDefined:X0e,ALPHABET:Q0e,generateString:LLe,isSpecCompliantForm:DLe,toJSONObject:kLe,isAsyncFn:MLe,isThenable:jLe,setImmediate:Z0e,asap:ULe};function xi(n,t,i,s,l){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=n,this.name="AxiosError",t&&(this.code=t),i&&(this.config=i),s&&(this.request=s),l&&(this.response=l)}At.inherits(xi,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:At.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const e1e=xi.prototype,t1e={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(n=>{t1e[n]={value:n}});Object.defineProperties(xi,t1e);Object.defineProperty(e1e,"isAxiosError",{value:!0});xi.from=(n,t,i,s,l,d)=>{const u=Object.create(e1e);return At.toFlatObject(n,u,function(g){return g!==Error.prototype},p=>p!=="isAxiosError"),xi.call(u,n.message,t,i,s,l),u.cause=n,u.name=n.name,d&&Object.assign(u,d),u};const FLe=null;function Tq(n){return At.isPlainObject(n)||At.isArray(n)}function n1e(n){return At.endsWith(n,"[]")?n.slice(0,-2):n}function Sue(n,t,i){return n?n.concat(t).map(function(l,d){return l=n1e(l),!i&&d?"["+l+"]":l}).join(i?".":""):t}function BLe(n){return At.isArray(n)&&!n.some(Tq)}const VLe=At.toFlatObject(At,{},null,function(t){return/^is[A-Z]/.test(t)});function cU(n,t,i){if(!At.isObject(n))throw new TypeError("target must be an object");t=t||new FormData,i=At.toFlatObject(i,{metaTokens:!0,dots:!1,indexes:!1},!1,function(O,D){return!At.isUndefined(D[O])});const s=i.metaTokens,l=i.visitor||y,d=i.dots,u=i.indexes,g=(i.Blob||typeof Blob<"u"&&Blob)&&At.isSpecCompliantForm(t);if(!At.isFunction(l))throw new TypeError("visitor must be a function");function _(N){if(N===null)return"";if(At.isDate(N))return N.toISOString();if(!g&&At.isBlob(N))throw new xi("Blob is not supported. Use a Buffer instead.");return At.isArrayBuffer(N)||At.isTypedArray(N)?g&&typeof Blob=="function"?new Blob([N]):o7.from(N):N}function y(N,O,D){let P=N;if(N&&!D&&typeof N=="object"){if(At.endsWith(O,"{}"))O=s?O:O.slice(0,-2),N=JSON.stringify(N);else if(At.isArray(N)&&BLe(N)||(At.isFileList(N)||At.endsWith(O,"[]"))&&(P=At.toArray(N)))return O=n1e(O),P.forEach(function(M,V){!(At.isUndefined(M)||M===null)&&t.append(u===!0?Sue([O],V,d):u===null?O:O+"[]",_(M))}),!1}return Tq(N)?!0:(t.append(Sue(D,O,d),_(N)),!1)}const E=[],b=Object.assign(VLe,{defaultVisitor:y,convertValue:_,isVisitable:Tq});function A(N,O){if(!At.isUndefined(N)){if(E.indexOf(N)!==-1)throw Error("Circular reference detected in "+O.join("."));E.push(N),At.forEach(N,function(P,j){(!(At.isUndefined(P)||P===null)&&l.call(t,P,At.isString(j)?j.trim():j,O,b))===!0&&A(P,O?O.concat(j):[j])}),E.pop()}}if(!At.isObject(n))throw new TypeError("data must be an object");return A(n),t}function bue(n){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(n).replace(/[!'()~]|%20|%00/g,function(s){return t[s]})}function nQ(n,t){this._pairs=[],n&&cU(n,this,t)}const i1e=nQ.prototype;i1e.append=function(t,i){this._pairs.push([t,i])};i1e.toString=function(t){const i=t?function(s){return t.call(this,s,bue)}:bue;return this._pairs.map(function(l){return i(l[0])+"="+i(l[1])},"").join("&")};function zLe(n){return encodeURIComponent(n).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function r1e(n,t,i){if(!t)return n;const s=i&&i.encode||zLe,l=i&&i.serialize;let d;if(l?d=l(t,i):d=At.isURLSearchParams(t)?t.toString():new nQ(t,i).toString(s),d){const u=n.indexOf("#");u!==-1&&(n=n.slice(0,u)),n+=(n.indexOf("?")===-1?"?":"&")+d}return n}class Cue{constructor(){this.handlers=[]}use(t,i,s){return this.handlers.push({fulfilled:t,rejected:i,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){At.forEach(this.handlers,function(s){s!==null&&t(s)})}}const s1e={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},HLe=typeof URLSearchParams<"u"?URLSearchParams:nQ,GLe=typeof FormData<"u"?FormData:null,WLe=typeof Blob<"u"?Blob:null,$Le={isBrowser:!0,classes:{URLSearchParams:HLe,FormData:GLe,Blob:WLe},protocols:["http","https","file","blob","url","data"]},iQ=typeof window<"u"&&typeof document<"u",KLe=(n=>iQ&&["ReactNative","NativeScript","NS"].indexOf(n)<0)(typeof navigator<"u"&&navigator.product),qLe=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",YLe=iQ&&window.location.href||"http://localhost",XLe=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:iQ,hasStandardBrowserEnv:KLe,hasStandardBrowserWebWorkerEnv:qLe,origin:YLe},Symbol.toStringTag,{value:"Module"})),cf={...XLe,...$Le};function JLe(n,t){return cU(n,new cf.classes.URLSearchParams,Object.assign({visitor:function(i,s,l,d){return cf.isNode&&At.isBuffer(i)?(this.append(s,i.toString("base64")),!1):d.defaultVisitor.apply(this,arguments)}},t))}function QLe(n){return At.matchAll(/\w+|\[(\w*)]/g,n).map(t=>t[0]==="[]"?"":t[1]||t[0])}function ZLe(n){const t={},i=Object.keys(n);let s;const l=i.length;let d;for(s=0;s=i.length;return u=!u&&At.isArray(l)?l.length:u,g?(At.hasOwnProp(l,u)?l[u]=[l[u],s]:l[u]=s,!p):((!l[u]||!At.isObject(l[u]))&&(l[u]=[]),t(i,s,l[u],d)&&At.isArray(l[u])&&(l[u]=ZLe(l[u])),!p)}if(At.isFormData(n)&&At.isFunction(n.entries)){const i={};return At.forEachEntry(n,(s,l)=>{t(QLe(s),l,i,0)}),i}return null}function e8e(n,t,i){if(At.isString(n))try{return(t||JSON.parse)(n),At.trim(n)}catch(s){if(s.name!=="SyntaxError")throw s}return(i||JSON.stringify)(n)}const rQ={transitional:s1e,adapter:["xhr","http","fetch"],transformRequest:[function(t,i){const s=i.getContentType()||"",l=s.indexOf("application/json")>-1,d=At.isObject(t);if(d&&At.isHTMLForm(t)&&(t=new FormData(t)),At.isFormData(t))return l?JSON.stringify(a1e(t)):t;if(At.isArrayBuffer(t)||At.isBuffer(t)||At.isStream(t)||At.isFile(t)||At.isBlob(t)||At.isReadableStream(t))return t;if(At.isArrayBufferView(t))return t.buffer;if(At.isURLSearchParams(t))return i.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let p;if(d){if(s.indexOf("application/x-www-form-urlencoded")>-1)return JLe(t,this.formSerializer).toString();if((p=At.isFileList(t))||s.indexOf("multipart/form-data")>-1){const g=this.env&&this.env.FormData;return cU(p?{"files[]":t}:t,g&&new g,this.formSerializer)}}return d||l?(i.setContentType("application/json",!1),e8e(t)):t}],transformResponse:[function(t){const i=this.transitional||rQ.transitional,s=i&&i.forcedJSONParsing,l=this.responseType==="json";if(At.isResponse(t)||At.isReadableStream(t))return t;if(t&&At.isString(t)&&(s&&!this.responseType||l)){const u=!(i&&i.silentJSONParsing)&&l;try{return JSON.parse(t)}catch(p){if(u)throw p.name==="SyntaxError"?xi.from(p,xi.ERR_BAD_RESPONSE,this,null,this.response):p}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:cf.classes.FormData,Blob:cf.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};At.forEach(["delete","get","head","post","put","patch"],n=>{rQ.headers[n]={}});const sQ=rQ,t8e=At.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),n8e=n=>{const t={};let i,s,l;return n&&n.split(` +`).forEach(function(u){l=u.indexOf(":"),i=u.substring(0,l).trim().toLowerCase(),s=u.substring(l+1).trim(),!(!i||t[i]&&t8e[i])&&(i==="set-cookie"?t[i]?t[i].push(s):t[i]=[s]:t[i]=t[i]?t[i]+", "+s:s)}),t},Tue=Symbol("internals");function fI(n){return n&&String(n).trim().toLowerCase()}function Jk(n){return n===!1||n==null?n:At.isArray(n)?n.map(Jk):String(n)}function i8e(n){const t=Object.create(null),i=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=i.exec(n);)t[s[1]]=s[2];return t}const r8e=n=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(n.trim());function A$(n,t,i,s,l){if(At.isFunction(s))return s.call(this,t,i);if(l&&(t=i),!!At.isString(t)){if(At.isString(s))return t.indexOf(s)!==-1;if(At.isRegExp(s))return s.test(t)}}function s8e(n){return n.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,i,s)=>i.toUpperCase()+s)}function a8e(n,t){const i=At.toCamelCase(" "+t);["get","set","has"].forEach(s=>{Object.defineProperty(n,s+i,{value:function(l,d,u){return this[s].call(this,t,l,d,u)},configurable:!0})})}class dU{constructor(t){t&&this.set(t)}set(t,i,s){const l=this;function d(p,g,_){const y=fI(g);if(!y)throw new Error("header name must be a non-empty string");const E=At.findKey(l,y);(!E||l[E]===void 0||_===!0||_===void 0&&l[E]!==!1)&&(l[E||g]=Jk(p))}const u=(p,g)=>At.forEach(p,(_,y)=>d(_,y,g));if(At.isPlainObject(t)||t instanceof this.constructor)u(t,i);else if(At.isString(t)&&(t=t.trim())&&!r8e(t))u(n8e(t),i);else if(At.isHeaders(t))for(const[p,g]of t.entries())d(g,p,s);else t!=null&&d(i,t,s);return this}get(t,i){if(t=fI(t),t){const s=At.findKey(this,t);if(s){const l=this[s];if(!i)return l;if(i===!0)return i8e(l);if(At.isFunction(i))return i.call(this,l,s);if(At.isRegExp(i))return i.exec(l);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,i){if(t=fI(t),t){const s=At.findKey(this,t);return!!(s&&this[s]!==void 0&&(!i||A$(this,this[s],s,i)))}return!1}delete(t,i){const s=this;let l=!1;function d(u){if(u=fI(u),u){const p=At.findKey(s,u);p&&(!i||A$(s,s[p],p,i))&&(delete s[p],l=!0)}}return At.isArray(t)?t.forEach(d):d(t),l}clear(t){const i=Object.keys(this);let s=i.length,l=!1;for(;s--;){const d=i[s];(!t||A$(this,this[d],d,t,!0))&&(delete this[d],l=!0)}return l}normalize(t){const i=this,s={};return At.forEach(this,(l,d)=>{const u=At.findKey(s,d);if(u){i[u]=Jk(l),delete i[d];return}const p=t?s8e(d):String(d).trim();p!==d&&delete i[d],i[p]=Jk(l),s[p]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const i=Object.create(null);return At.forEach(this,(s,l)=>{s!=null&&s!==!1&&(i[l]=t&&At.isArray(s)?s.join(", "):s)}),i}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,i])=>t+": "+i).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...i){const s=new this(t);return i.forEach(l=>s.set(l)),s}static accessor(t){const s=(this[Tue]=this[Tue]={accessors:{}}).accessors,l=this.prototype;function d(u){const p=fI(u);s[p]||(a8e(l,u),s[p]=!0)}return At.isArray(t)?t.forEach(d):d(t),this}}dU.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);At.reduceDescriptors(dU.prototype,({value:n},t)=>{let i=t[0].toUpperCase()+t.slice(1);return{get:()=>n,set(s){this[i]=s}}});At.freezeMethods(dU);const df=dU;function I$(n,t){const i=this||sQ,s=t||i,l=df.from(s.headers);let d=s.data;return At.forEach(n,function(p){d=p.call(i,d,l.normalize(),t?t.status:void 0)}),l.normalize(),d}function o1e(n){return!!(n&&n.__CANCEL__)}function qR(n,t,i){xi.call(this,n??"canceled",xi.ERR_CANCELED,t,i),this.name="CanceledError"}At.inherits(qR,xi,{__CANCEL__:!0});function l1e(n,t,i){const s=i.config.validateStatus;!i.status||!s||s(i.status)?n(i):t(new xi("Request failed with status code "+i.status,[xi.ERR_BAD_REQUEST,xi.ERR_BAD_RESPONSE][Math.floor(i.status/100)-4],i.config,i.request,i))}function o8e(n){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(n);return t&&t[1]||""}function l8e(n,t){n=n||10;const i=new Array(n),s=new Array(n);let l=0,d=0,u;return t=t!==void 0?t:1e3,function(g){const _=Date.now(),y=s[d];u||(u=_),i[l]=g,s[l]=_;let E=d,b=0;for(;E!==l;)b+=i[E++],E=E%n;if(l=(l+1)%n,l===d&&(d=(d+1)%n),_-u{i=y,l=null,d&&(clearTimeout(d),d=null),n.apply(null,_)};return[(..._)=>{const y=Date.now(),E=y-i;E>=s?u(_,y):(l=_,d||(d=setTimeout(()=>{d=null,u(l)},s-E)))},()=>l&&u(l)]}const u7=(n,t,i=3)=>{let s=0;const l=l8e(50,250);return c8e(d=>{const u=d.loaded,p=d.lengthComputable?d.total:void 0,g=u-s,_=l(g),y=u<=p;s=u;const E={loaded:u,total:p,progress:p?u/p:void 0,bytes:g,rate:_||void 0,estimated:_&&p&&y?(p-u)/_:void 0,event:d,lengthComputable:p!=null,[t?"download":"upload"]:!0};n(E)},i)},Rue=(n,t)=>{const i=n!=null;return[s=>t[0]({lengthComputable:i,total:n,loaded:s}),t[1]]},xue=n=>(...t)=>At.asap(()=>n(...t)),d8e=cf.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");let s;function l(d){let u=d;return t&&(i.setAttribute("href",u),u=i.href),i.setAttribute("href",u),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:i.pathname.charAt(0)==="/"?i.pathname:"/"+i.pathname}}return s=l(window.location.href),function(u){const p=At.isString(u)?l(u):u;return p.protocol===s.protocol&&p.host===s.host}}():function(){return function(){return!0}}(),u8e=cf.hasStandardBrowserEnv?{write(n,t,i,s,l,d){const u=[n+"="+encodeURIComponent(t)];At.isNumber(i)&&u.push("expires="+new Date(i).toGMTString()),At.isString(s)&&u.push("path="+s),At.isString(l)&&u.push("domain="+l),d===!0&&u.push("secure"),document.cookie=u.join("; ")},read(n){const t=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(n){this.write(n,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function h8e(n){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(n)}function f8e(n,t){return t?n.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):n}function c1e(n,t){return n&&!h8e(t)?f8e(n,t):t}const Aue=n=>n instanceof df?{...n}:n;function CE(n,t){t=t||{};const i={};function s(_,y,E){return At.isPlainObject(_)&&At.isPlainObject(y)?At.merge.call({caseless:E},_,y):At.isPlainObject(y)?At.merge({},y):At.isArray(y)?y.slice():y}function l(_,y,E){if(At.isUndefined(y)){if(!At.isUndefined(_))return s(void 0,_,E)}else return s(_,y,E)}function d(_,y){if(!At.isUndefined(y))return s(void 0,y)}function u(_,y){if(At.isUndefined(y)){if(!At.isUndefined(_))return s(void 0,_)}else return s(void 0,y)}function p(_,y,E){if(E in t)return s(_,y);if(E in n)return s(void 0,_)}const g={url:d,method:d,data:d,baseURL:u,transformRequest:u,transformResponse:u,paramsSerializer:u,timeout:u,timeoutMessage:u,withCredentials:u,withXSRFToken:u,adapter:u,responseType:u,xsrfCookieName:u,xsrfHeaderName:u,onUploadProgress:u,onDownloadProgress:u,decompress:u,maxContentLength:u,maxBodyLength:u,beforeRedirect:u,transport:u,httpAgent:u,httpsAgent:u,cancelToken:u,socketPath:u,responseEncoding:u,validateStatus:p,headers:(_,y)=>l(Aue(_),Aue(y),!0)};return At.forEach(Object.keys(Object.assign({},n,t)),function(y){const E=g[y]||l,b=E(n[y],t[y],y);At.isUndefined(b)&&E!==p||(i[y]=b)}),i}const d1e=n=>{const t=CE({},n);let{data:i,withXSRFToken:s,xsrfHeaderName:l,xsrfCookieName:d,headers:u,auth:p}=t;t.headers=u=df.from(u),t.url=r1e(c1e(t.baseURL,t.url),n.params,n.paramsSerializer),p&&u.set("Authorization","Basic "+btoa((p.username||"")+":"+(p.password?unescape(encodeURIComponent(p.password)):"")));let g;if(At.isFormData(i)){if(cf.hasStandardBrowserEnv||cf.hasStandardBrowserWebWorkerEnv)u.setContentType(void 0);else if((g=u.getContentType())!==!1){const[_,...y]=g?g.split(";").map(E=>E.trim()).filter(Boolean):[];u.setContentType([_||"multipart/form-data",...y].join("; "))}}if(cf.hasStandardBrowserEnv&&(s&&At.isFunction(s)&&(s=s(t)),s||s!==!1&&d8e(t.url))){const _=l&&d&&u8e.read(d);_&&u.set(l,_)}return t},p8e=typeof XMLHttpRequest<"u",m8e=p8e&&function(n){return new Promise(function(i,s){const l=d1e(n);let d=l.data;const u=df.from(l.headers).normalize();let{responseType:p,onUploadProgress:g,onDownloadProgress:_}=l,y,E,b,A,N;function O(){A&&A(),N&&N(),l.cancelToken&&l.cancelToken.unsubscribe(y),l.signal&&l.signal.removeEventListener("abort",y)}let D=new XMLHttpRequest;D.open(l.method.toUpperCase(),l.url,!0),D.timeout=l.timeout;function P(){if(!D)return;const M=df.from("getAllResponseHeaders"in D&&D.getAllResponseHeaders()),H={data:!p||p==="text"||p==="json"?D.responseText:D.response,status:D.status,statusText:D.statusText,headers:M,config:n,request:D};l1e(function(Q){i(Q),O()},function(Q){s(Q),O()},H),D=null}"onloadend"in D?D.onloadend=P:D.onreadystatechange=function(){!D||D.readyState!==4||D.status===0&&!(D.responseURL&&D.responseURL.indexOf("file:")===0)||setTimeout(P)},D.onabort=function(){D&&(s(new xi("Request aborted",xi.ECONNABORTED,n,D)),D=null)},D.onerror=function(){s(new xi("Network Error",xi.ERR_NETWORK,n,D)),D=null},D.ontimeout=function(){let V=l.timeout?"timeout of "+l.timeout+"ms exceeded":"timeout exceeded";const H=l.transitional||s1e;l.timeoutErrorMessage&&(V=l.timeoutErrorMessage),s(new xi(V,H.clarifyTimeoutError?xi.ETIMEDOUT:xi.ECONNABORTED,n,D)),D=null},d===void 0&&u.setContentType(null),"setRequestHeader"in D&&At.forEach(u.toJSON(),function(V,H){D.setRequestHeader(H,V)}),At.isUndefined(l.withCredentials)||(D.withCredentials=!!l.withCredentials),p&&p!=="json"&&(D.responseType=l.responseType),_&&([b,N]=u7(_,!0),D.addEventListener("progress",b)),g&&D.upload&&([E,A]=u7(g),D.upload.addEventListener("progress",E),D.upload.addEventListener("loadend",A)),(l.cancelToken||l.signal)&&(y=M=>{D&&(s(!M||M.type?new qR(null,n,D):M),D.abort(),D=null)},l.cancelToken&&l.cancelToken.subscribe(y),l.signal&&(l.signal.aborted?y():l.signal.addEventListener("abort",y)));const j=o8e(l.url);if(j&&cf.protocols.indexOf(j)===-1){s(new xi("Unsupported protocol "+j+":",xi.ERR_BAD_REQUEST,n));return}D.send(d||null)})},g8e=(n,t)=>{let i=new AbortController,s;const l=function(g){if(!s){s=!0,u();const _=g instanceof Error?g:this.reason;i.abort(_ instanceof xi?_:new qR(_ instanceof Error?_.message:_))}};let d=t&&setTimeout(()=>{l(new xi(`timeout ${t} of ms exceeded`,xi.ETIMEDOUT))},t);const u=()=>{n&&(d&&clearTimeout(d),d=null,n.forEach(g=>{g&&(g.removeEventListener?g.removeEventListener("abort",l):g.unsubscribe(l))}),n=null)};n.forEach(g=>g&&g.addEventListener&&g.addEventListener("abort",l));const{signal:p}=i;return p.unsubscribe=u,[p,()=>{d&&clearTimeout(d),d=null}]},v8e=function*(n,t){let i=n.byteLength;if(!t||i{const d=y8e(n,t,l);let u=0,p,g=_=>{p||(p=!0,s&&s(_))};return new ReadableStream({async pull(_){try{const{done:y,value:E}=await d.next();if(y){g(),_.close();return}let b=E.byteLength;if(i){let A=u+=b;i(A)}_.enqueue(new Uint8Array(E))}catch(y){throw g(y),y}},cancel(_){return g(_),d.return()}},{highWaterMark:2})},uU=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",u1e=uU&&typeof ReadableStream=="function",Rq=uU&&(typeof TextEncoder=="function"?(n=>t=>n.encode(t))(new TextEncoder):async n=>new Uint8Array(await new Response(n).arrayBuffer())),h1e=(n,...t)=>{try{return!!n(...t)}catch{return!1}},_8e=u1e&&h1e(()=>{let n=!1;const t=new Request(cf.origin,{body:new ReadableStream,method:"POST",get duplex(){return n=!0,"half"}}).headers.has("Content-Type");return n&&!t}),Nue=64*1024,xq=u1e&&h1e(()=>At.isReadableStream(new Response("").body)),h7={stream:xq&&(n=>n.body)};uU&&(n=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!h7[t]&&(h7[t]=At.isFunction(n[t])?i=>i[t]():(i,s)=>{throw new xi(`Response type '${t}' is not supported`,xi.ERR_NOT_SUPPORT,s)})})})(new Response);const E8e=async n=>{if(n==null)return 0;if(At.isBlob(n))return n.size;if(At.isSpecCompliantForm(n))return(await new Request(n).arrayBuffer()).byteLength;if(At.isArrayBufferView(n)||At.isArrayBuffer(n))return n.byteLength;if(At.isURLSearchParams(n)&&(n=n+""),At.isString(n))return(await Rq(n)).byteLength},w8e=async(n,t)=>{const i=At.toFiniteNumber(n.getContentLength());return i??E8e(t)},S8e=uU&&(async n=>{let{url:t,method:i,data:s,signal:l,cancelToken:d,timeout:u,onDownloadProgress:p,onUploadProgress:g,responseType:_,headers:y,withCredentials:E="same-origin",fetchOptions:b}=d1e(n);_=_?(_+"").toLowerCase():"text";let[A,N]=l||d||u?g8e([l,d],u):[],O,D;const P=()=>{!O&&setTimeout(()=>{A&&A.unsubscribe()}),O=!0};let j;try{if(g&&_8e&&i!=="get"&&i!=="head"&&(j=await w8e(y,s))!==0){let $=new Request(t,{method:"POST",body:s,duplex:"half"}),Q;if(At.isFormData(s)&&(Q=$.headers.get("content-type"))&&y.setContentType(Q),$.body){const[Y,le]=Rue(j,u7(xue(g)));s=Iue($.body,Nue,Y,le,Rq)}}At.isString(E)||(E=E?"include":"omit"),D=new Request(t,{...b,signal:A,method:i.toUpperCase(),headers:y.normalize().toJSON(),body:s,duplex:"half",credentials:E});let M=await fetch(D);const V=xq&&(_==="stream"||_==="response");if(xq&&(p||V)){const $={};["status","statusText","headers"].forEach(ae=>{$[ae]=M[ae]});const Q=At.toFiniteNumber(M.headers.get("content-length")),[Y,le]=p&&Rue(Q,u7(xue(p),!0))||[];M=new Response(Iue(M.body,Nue,Y,()=>{le&&le(),V&&P()},Rq),$)}_=_||"text";let H=await h7[At.findKey(h7,_)||"text"](M,n);return!V&&P(),N&&N(),await new Promise(($,Q)=>{l1e($,Q,{data:H,headers:df.from(M.headers),status:M.status,statusText:M.statusText,config:n,request:D})})}catch(M){throw P(),M&&M.name==="TypeError"&&/fetch/i.test(M.message)?Object.assign(new xi("Network Error",xi.ERR_NETWORK,n,D),{cause:M.cause||M}):xi.from(M,M&&M.code,n,D)}}),Aq={http:FLe,xhr:m8e,fetch:S8e};At.forEach(Aq,(n,t)=>{if(n){try{Object.defineProperty(n,"name",{value:t})}catch{}Object.defineProperty(n,"adapterName",{value:t})}});const Oue=n=>`- ${n}`,b8e=n=>At.isFunction(n)||n===null||n===!1,f1e={getAdapter:n=>{n=At.isArray(n)?n:[n];const{length:t}=n;let i,s;const l={};for(let d=0;d`adapter ${p} `+(g===!1?"is not supported by the environment":"is not available in the build"));let u=t?d.length>1?`since : +`+d.map(Oue).join(` +`):" "+Oue(d[0]):"as no adapter specified";throw new xi("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return s},adapters:Aq};function N$(n){if(n.cancelToken&&n.cancelToken.throwIfRequested(),n.signal&&n.signal.aborted)throw new qR(null,n)}function Pue(n){return N$(n),n.headers=df.from(n.headers),n.data=I$.call(n,n.transformRequest),["post","put","patch"].indexOf(n.method)!==-1&&n.headers.setContentType("application/x-www-form-urlencoded",!1),f1e.getAdapter(n.adapter||sQ.adapter)(n).then(function(s){return N$(n),s.data=I$.call(n,n.transformResponse,s),s.headers=df.from(s.headers),s},function(s){return o1e(s)||(N$(n),s&&s.response&&(s.response.data=I$.call(n,n.transformResponse,s.response),s.response.headers=df.from(s.response.headers))),Promise.reject(s)})}const p1e="1.7.3",aQ={};["object","boolean","number","function","string","symbol"].forEach((n,t)=>{aQ[n]=function(s){return typeof s===n||"a"+(t<1?"n ":" ")+n}});const Lue={};aQ.transitional=function(t,i,s){function l(d,u){return"[Axios v"+p1e+"] Transitional option '"+d+"'"+u+(s?". "+s:"")}return(d,u,p)=>{if(t===!1)throw new xi(l(u," has been removed"+(i?" in "+i:"")),xi.ERR_DEPRECATED);return i&&!Lue[u]&&(Lue[u]=!0,console.warn(l(u," has been deprecated since v"+i+" and will be removed in the near future"))),t?t(d,u,p):!0}};function C8e(n,t,i){if(typeof n!="object")throw new xi("options must be an object",xi.ERR_BAD_OPTION_VALUE);const s=Object.keys(n);let l=s.length;for(;l-- >0;){const d=s[l],u=t[d];if(u){const p=n[d],g=p===void 0||u(p,d,n);if(g!==!0)throw new xi("option "+d+" must be "+g,xi.ERR_BAD_OPTION_VALUE);continue}if(i!==!0)throw new xi("Unknown option "+d,xi.ERR_BAD_OPTION)}}const Iq={assertOptions:C8e,validators:aQ},Q0=Iq.validators;class f7{constructor(t){this.defaults=t,this.interceptors={request:new Cue,response:new Cue}}async request(t,i){try{return await this._request(t,i)}catch(s){if(s instanceof Error){let l;Error.captureStackTrace?Error.captureStackTrace(l={}):l=new Error;const d=l.stack?l.stack.replace(/^.+\n/,""):"";try{s.stack?d&&!String(s.stack).endsWith(d.replace(/^.+\n.+\n/,""))&&(s.stack+=` +`+d):s.stack=d}catch{}}throw s}}_request(t,i){typeof t=="string"?(i=i||{},i.url=t):i=t||{},i=CE(this.defaults,i);const{transitional:s,paramsSerializer:l,headers:d}=i;s!==void 0&&Iq.assertOptions(s,{silentJSONParsing:Q0.transitional(Q0.boolean),forcedJSONParsing:Q0.transitional(Q0.boolean),clarifyTimeoutError:Q0.transitional(Q0.boolean)},!1),l!=null&&(At.isFunction(l)?i.paramsSerializer={serialize:l}:Iq.assertOptions(l,{encode:Q0.function,serialize:Q0.function},!0)),i.method=(i.method||this.defaults.method||"get").toLowerCase();let u=d&&At.merge(d.common,d[i.method]);d&&At.forEach(["delete","get","head","post","put","patch","common"],N=>{delete d[N]}),i.headers=df.concat(u,d);const p=[];let g=!0;this.interceptors.request.forEach(function(O){typeof O.runWhen=="function"&&O.runWhen(i)===!1||(g=g&&O.synchronous,p.unshift(O.fulfilled,O.rejected))});const _=[];this.interceptors.response.forEach(function(O){_.push(O.fulfilled,O.rejected)});let y,E=0,b;if(!g){const N=[Pue.bind(this),void 0];for(N.unshift.apply(N,p),N.push.apply(N,_),b=N.length,y=Promise.resolve(i);E{if(!s._listeners)return;let d=s._listeners.length;for(;d-- >0;)s._listeners[d](l);s._listeners=null}),this.promise.then=l=>{let d;const u=new Promise(p=>{s.subscribe(p),d=p}).then(l);return u.cancel=function(){s.unsubscribe(d)},u},t(function(d,u,p){s.reason||(s.reason=new qR(d,u,p),i(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const i=this._listeners.indexOf(t);i!==-1&&this._listeners.splice(i,1)}static source(){let t;return{token:new oQ(function(l){t=l}),cancel:t}}}const T8e=oQ;function R8e(n){return function(i){return n.apply(null,i)}}function x8e(n){return At.isObject(n)&&n.isAxiosError===!0}const Nq={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Nq).forEach(([n,t])=>{Nq[t]=n});const A8e=Nq;function m1e(n){const t=new Qk(n),i=$0e(Qk.prototype.request,t);return At.extend(i,Qk.prototype,t,{allOwnKeys:!0}),At.extend(i,t,null,{allOwnKeys:!0}),i.create=function(l){return m1e(CE(n,l))},i}const zr=m1e(sQ);zr.Axios=Qk;zr.CanceledError=qR;zr.CancelToken=T8e;zr.isCancel=o1e;zr.VERSION=p1e;zr.toFormData=cU;zr.AxiosError=xi;zr.Cancel=zr.CanceledError;zr.all=function(t){return Promise.all(t)};zr.spread=R8e;zr.isAxiosError=x8e;zr.mergeConfig=CE;zr.AxiosHeaders=df;zr.formToJSON=n=>a1e(At.isHTMLForm(n)?new FormData(n):n);zr.getAdapter=f1e.getAdapter;zr.HttpStatusCode=A8e;zr.default=zr;var g1e={baseUrl:"https://rapportapi.click/"};const On=zr.create({baseURL:g1e.baseUrl,validateStatus:function(n){return n>=200&&n<500},timeout:3e4}),I8e=["ums/auth/login","ums/auth/verify","ums/auth/reverify","ums/auth/register","ums/auth/forgot_password_otp","ums/auth/forgot_password","mag/magazine/crest_verfication"],N8e=async()=>{var t,i,s,l;const n=localStorage.getItem("refresh_token");try{const d=await zr.post(`${g1e.baseUrl}ums/auth/reverify`,{refresh_token:n},{headers:{"Content-Type":"application/json"}});if(((t=d.data)==null?void 0:t.status)==="success"&&((i=d.data)==null?void 0:i.statusCode)===200){const{access_token:u,refresh_token:p,user:g,permissions:_,expiresin:y}=(s=d.data)==null?void 0:s.data;return localStorage.setItem("auth_token",u),localStorage.setItem("refresh_token",p),localStorage.setItem("auth_user",JSON.stringify(g)),localStorage.setItem("permissions",JSON.stringify(_)),localStorage.setItem("expiresin",y),u}else throw localStorage.clear(),new Error(((l=d==null?void 0:d.data)==null?void 0:l.message)||"Session expired")}catch(d){throw console.log("reVerifyAuth err - ",d),localStorage.clear(),Qt("Session expired. Please log in again.","error"),d}};On.interceptors.request.use(async n=>{if(!I8e.includes(n.url)){let t=localStorage.getItem("auth_token")?localStorage.getItem("auth_token"):null;const i=parseInt(localStorage.getItem("expiresin")||"0");let s=Date.now()>i;if(!t||s)try{t=await N8e()}catch(l){return console.error("Failed to refresh token",l),Promise.reject(l)}t&&(n.headers.authorization=t)}return n},n=>(window.location.href="/",localStorage.clear(),Promise.reject(n)));const lQ={getFormApprovalInfo:async n=>(console.log("Inside Service getFormApprovalInfo() ...",n),await On.post("form/formentity/approval",n)),approveForm:async n=>(console.log("Inside Service approveForm() ...",n),await On.post("form/formentity/approvereject",n)),rejectForm:async n=>(console.log("Inside Service approveForm() ...",n),await On.post("form/formentity/approvereject",n))},Due="form_approval",O8e="form_approved",P8e="form_reject",L8e="form_submitted",D8e="target_achieved",v1e=n=>{console.log("handleNotificationClick called with payload = ",n);const t=n==null?void 0:n.type,i=n!=null&&n.entity_id?n==null?void 0:n.entity_id:n!=null&&n.contest_id?n==null?void 0:n.contest_id:"";let s="/dashboard";switch(t){case"form_approval":s=`/approve-reject-form-submission/${i}`;break;case"form_reminder":s="/quick-actions";break;case"form_approved":case"form_reject":case"form_submitted":case"target_achieved":console.log("Nothing to do...");break;case"broadcast_created":case"broadcast_liked":case"broadcast_comment":s=`/messages/${i}`;break;case"magazine_created":case"magazine_media_created":s=`/magazines/${i}`;break;case"appreciation_recieved":s="/appreciations";break;case"badge_recieved":s="/badges";break;case"detailing_contest_created":case"detailing_contest_upload_response":case"detailing_contest_evaluated":s=`/contests/${i}`;break;default:console.log("No payload type matched...")}return s},Ai={login:async n=>(console.log("In Login Data =",n),await On.post("ums/auth/login",n)),changePassword:async n=>(console.log("In Login Service Data =",n),await On.post("ums/auth/change_password",n)),getToken:()=>localStorage.getItem("auth_token"),getRefreshToken:()=>localStorage.getItem("refresh_token"),getTokenExpiry:()=>localStorage.getItem("expiresin"),setToken:n=>{localStorage.setItem("auth_token",n.access_token),localStorage.setItem("refresh_token",n.refresh_token),localStorage.setItem("auth_user",JSON.stringify(n.user)),localStorage.setItem("permissions",JSON.stringify(n.permissions)),localStorage.setItem("expiresin",n.expiresin)},getLoginSchemeFromLocal:()=>localStorage.getItem("login_scheme"),setLoginSchemeToLocal:n=>{console.log("setLoginSchemeToLocal = ",n,typeof n),localStorage.setItem("login_scheme",n)},setAuthUser:n=>{console.log("setAuthUSer = ",n);const i={...JSON.parse(localStorage.getItem("auth_user")),...n};localStorage.setItem("auth_user",JSON.stringify(i))},logout:()=>{localStorage.clear(),window.location.href="/"},verifyAuth:async n=>(console.log("In Verify Auth: ",n),await On.post("ums/auth/verify",n)),reVerifyAuth:async n=>await On.post("ums/auth/reverify",n),forgotPasswordOTP:async n=>await On.post("ums/auth/forgot_password_otp",n),forgotPassword:async n=>await On.post("ums/auth/forgot_password",n),getAuthUser:()=>localStorage.getItem("auth_user"),getDeviceInfo:()=>JSON.parse(localStorage.getItem("deviceInfo")),getDevicePlatform:()=>{const n=JSON.parse(localStorage.getItem("deviceInfo"));return n==null?void 0:n.platform},getDeviceID:()=>localStorage.getItem("deviceID"),getAppID:()=>localStorage.getItem("appID"),getAppCurrentVersion:()=>localStorage.getItem("appCurrentVersion"),getNotificationToken:()=>localStorage.getItem("notificationToken"),appInfoFromServer:async n=>(console.log("data in appInfoFromServer = ",JSON.stringify(n)),await On.post("detailing/app/appversion",n)),registerDeviceForPushNotification:async()=>{console.log("-- ** registerDeviceForPushNotification() service called... ** --");const n=Ai.getDeviceInfo();console.log("deviceInfo from registerDeviceForPushNotification service = ",n);const t={device:Ai.getDeviceID(),platform:n.platform,package_name:Ai.getAppID(),token:Ai.getNotificationToken(),manufacturer:n.manufacturer,device_model:n.model,app_version:Ai.getAppCurrentVersion(),version:n.osVersion};return console.log("registerDeviceForPushNotification service tempData =",t),await On.post("ums/notification/registertoken",t)}};var y1e={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(n){(function(){var t={}.hasOwnProperty;function i(){for(var d="",u=0;u1?y-1:0),b=1;b=19?n.props.ref:n.ref}const XR=!!(typeof window<"u"&&window.document&&window.document.createElement);var Oq=!1,Pq=!1;try{var O$={get passive(){return Oq=!0},get once(){return Pq=Oq=!0}};XR&&(window.addEventListener("test",O$,O$),window.removeEventListener("test",O$,!0))}catch{}function A1e(n,t,i,s){if(s&&typeof s!="boolean"&&!Pq){var l=s.once,d=s.capture,u=i;!Pq&&l&&(u=i.__once||function p(g){this.removeEventListener(t,p,d),i.call(this,g)},i.__once=u),n.addEventListener(t,u,Oq?s:d)}n.addEventListener(t,i,s)}function Lq(n,t,i,s){var l=s&&typeof s!="boolean"?s.capture:s;n.removeEventListener(t,i,l),i.__once&&n.removeEventListener(t,i.__once,l)}function m7(n,t,i,s){return A1e(n,t,i,s),function(){Lq(n,t,i,s)}}function rDe(n,t,i,s){if(i===void 0&&(i=!1),s===void 0&&(s=!0),n){var l=document.createEvent("HTMLEvents");l.initEvent(t,i,s),n.dispatchEvent(l)}}function sDe(n){var t=Ag(n,"transitionDuration")||"",i=t.indexOf("ms")===-1?1e3:1;return parseFloat(t)*i}function aDe(n,t,i){i===void 0&&(i=5);var s=!1,l=setTimeout(function(){s||rDe(n,"transitionend",!0)},t+i),d=m7(n,"transitionend",function(){s=!0},{once:!0});return function(){clearTimeout(l),d()}}function I1e(n,t,i,s){i==null&&(i=sDe(n)||0);var l=aDe(n,i,s),d=m7(n,"transitionend",t);return function(){l(),d()}}function jue(n,t){const i=Ag(n,t)||"",s=i.indexOf("ms")===-1?1e3:1;return parseFloat(i)*s}function hQ(n,t){const i=jue(n,"transitionDuration"),s=jue(n,"transitionDelay"),l=I1e(n,d=>{d.target===n&&(l(),t(d))},i+s)}function pI(...n){return n.filter(t=>t!=null).reduce((t,i)=>{if(typeof i!="function")throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return t===null?i:function(...l){t.apply(this,l),i.apply(this,l)}},null)}function N1e(n){n.offsetHeight}const Uue=n=>!n||typeof n=="function"?n:t=>{n.current=t};function oDe(n,t){const i=Uue(n),s=Uue(t);return l=>{i&&i(l),s&&s(l)}}function O1e(n,t){return k.useMemo(()=>oDe(n,t),[n,t])}function lDe(n){return n&&"setState"in n?dC.findDOMNode(n):n??null}const P1e=dn.forwardRef(({onEnter:n,onEntering:t,onEntered:i,onExit:s,onExiting:l,onExited:d,addEndListener:u,children:p,childRef:g,..._},y)=>{const E=k.useRef(null),b=O1e(E,g),A=$=>{b(lDe($))},N=$=>Q=>{$&&E.current&&$(E.current,Q)},O=k.useCallback(N(n),[n]),D=k.useCallback(N(t),[t]),P=k.useCallback(N(i),[i]),j=k.useCallback(N(s),[s]),M=k.useCallback(N(l),[l]),V=k.useCallback(N(d),[d]),H=k.useCallback(N(u),[u]);return h.jsx(tDe,{ref:y,..._,onEnter:O,onEntered:P,onEntering:D,onExit:j,onExited:V,onExiting:M,addEndListener:H,nodeRef:E,children:typeof p=="function"?($,Q)=>p($,{...Q,ref:A}):dn.cloneElement(p,{ref:A})})});P1e.displayName="TransitionWrapper";const fQ=P1e,cDe={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]};function dDe(n,t){const i=`offset${n[0].toUpperCase()}${n.slice(1)}`,s=t[i],l=cDe[n];return s+parseInt(Ag(t,l[0]),10)+parseInt(Ag(t,l[1]),10)}const uDe={[s1]:"collapse",[z4]:"collapsing",[sf]:"collapsing",[Eg]:"collapse show"},L1e=dn.forwardRef(({onEnter:n,onEntering:t,onEntered:i,onExit:s,onExiting:l,className:d,children:u,dimension:p="height",in:g=!1,timeout:_=300,mountOnEnter:y=!1,unmountOnExit:E=!1,appear:b=!1,getDimensionValue:A=dDe,...N},O)=>{const D=typeof p=="function"?p():p,P=k.useMemo(()=>pI($=>{$.style[D]="0"},n),[D,n]),j=k.useMemo(()=>pI($=>{const Q=`scroll${D[0].toUpperCase()}${D.slice(1)}`;$.style[D]=`${$[Q]}px`},t),[D,t]),M=k.useMemo(()=>pI($=>{$.style[D]=null},i),[D,i]),V=k.useMemo(()=>pI($=>{$.style[D]=`${A(D,$)}px`,N1e($)},s),[s,A,D]),H=k.useMemo(()=>pI($=>{$.style[D]=null},l),[D,l]);return h.jsx(fQ,{ref:O,addEndListener:hQ,...N,"aria-expanded":N.role?g:null,onEnter:P,onEntering:j,onEntered:M,onExit:V,onExiting:H,childRef:YR(u),in:g,timeout:_,mountOnEnter:y,unmountOnExit:E,appear:b,children:($,Q)=>dn.cloneElement(u,{...Q,className:Un(d,u.props.className,uDe[$],D==="width"&&"collapse-horizontal")})})});L1e.displayName="Collapse";const pQ=L1e;function hDe(n){const t=k.useRef(n);return k.useEffect(()=>{t.current=n},[n]),t}function IR(n){const t=hDe(n);return k.useCallback(function(...i){return t.current&&t.current(...i)},[t])}const pU=n=>k.forwardRef((t,i)=>h.jsx("div",{...t,ref:i,className:Un(t.className,n)}));function fDe(n){const t=k.useRef(n);return k.useEffect(()=>{t.current=n},[n]),t}function wg(n){const t=fDe(n);return k.useCallback(function(...i){return t.current&&t.current(...i)},[t])}function pDe(){const n=k.useRef(!0),t=k.useRef(()=>n.current);return k.useEffect(()=>(n.current=!0,()=>{n.current=!1}),[]),t.current}function mDe(n){const t=k.useRef(null);return k.useEffect(()=>{t.current=n}),t.current}const gDe=typeof Wo<"u"&&Wo.navigator&&Wo.navigator.product==="ReactNative",vDe=typeof document<"u",Fue=vDe||gDe?k.useLayoutEffect:k.useEffect,yDe=["as","disabled"];function _De(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}function EDe(n){return!n||n.trim()==="#"}function mQ({tagName:n,disabled:t,href:i,target:s,rel:l,role:d,onClick:u,tabIndex:p=0,type:g}){n||(i!=null||s!=null||l!=null?n="a":n="button");const _={tagName:n};if(n==="button")return[{type:g||"button",disabled:t},_];const y=b=>{if((t||n==="a"&&EDe(i))&&b.preventDefault(),t){b.stopPropagation();return}u==null||u(b)},E=b=>{b.key===" "&&(b.preventDefault(),y(b))};return n==="a"&&(i||(i="#"),t&&(i=void 0)),[{role:d??"button",disabled:void 0,tabIndex:t?void 0:p,href:i,target:n==="a"?s:void 0,"aria-disabled":t||void 0,rel:n==="a"?l:void 0,onClick:y,onKeyDown:E},_]}const D1e=k.forwardRef((n,t)=>{let{as:i,disabled:s}=n,l=_De(n,yDe);const[d,{tagName:u}]=mQ(Object.assign({tagName:i,disabled:s},l));return h.jsx(u,Object.assign({},l,d,{ref:t}))});D1e.displayName="Button";const wDe=["onKeyDown"];function SDe(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}function bDe(n){return!n||n.trim()==="#"}const k1e=k.forwardRef((n,t)=>{let{onKeyDown:i}=n,s=SDe(n,wDe);const[l]=mQ(Object.assign({tagName:"a"},s)),d=wg(u=>{l.onKeyDown(u),i==null||i(u)});return bDe(s.href)||s.role==="button"?h.jsx("a",Object.assign({ref:t},s,l,{onKeyDown:d})):h.jsx("a",Object.assign({ref:t},s,{onKeyDown:i}))});k1e.displayName="Anchor";const CDe=k1e,TDe={[sf]:"show",[Eg]:"show"},M1e=k.forwardRef(({className:n,children:t,transitionClasses:i={},onEnter:s,...l},d)=>{const u={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,...l},p=k.useCallback((g,_)=>{N1e(g),s==null||s(g,_)},[s]);return h.jsx(fQ,{ref:d,addEndListener:hQ,...u,onEnter:p,childRef:YR(t),children:(g,_)=>k.cloneElement(t,{..._,className:Un("fade",n,t.props.className,TDe[g],i[g])})})});M1e.displayName="Fade";const zO=M1e,RDe={"aria-label":yl.string,onClick:yl.func,variant:yl.oneOf(["white"])},gQ=k.forwardRef(({className:n,variant:t,"aria-label":i="Close",...s},l)=>h.jsx("button",{ref:l,type:"button",className:Un("btn-close",t&&`btn-close-${t}`,n),"aria-label":i,...s}));gQ.displayName="CloseButton";gQ.propTypes=RDe;const xDe=gQ,j1e=k.forwardRef(({as:n,bsPrefix:t,variant:i="primary",size:s,active:l=!1,disabled:d=!1,className:u,...p},g)=>{const _=ii(t,"btn"),[y,{tagName:E}]=mQ({tagName:n,disabled:d,...p}),b=E;return h.jsx(b,{...y,...p,ref:g,disabled:d,className:Un(u,_,l&&"active",i&&`${_}-${i}`,s&&`${_}-${s}`,p.href&&d&&"disabled")})});j1e.displayName="Button";const Pt=j1e,U1e=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"card-body"),h.jsx(i,{ref:l,className:Un(n,t),...s})));U1e.displayName="CardBody";const F1e=U1e,B1e=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"card-footer"),h.jsx(i,{ref:l,className:Un(n,t),...s})));B1e.displayName="CardFooter";const ADe=B1e,V1e=k.createContext(null);V1e.displayName="CardHeaderContext";const z1e=V1e,H1e=k.forwardRef(({bsPrefix:n,className:t,as:i="div",...s},l)=>{const d=ii(n,"card-header"),u=k.useMemo(()=>({cardHeaderBsPrefix:d}),[d]);return h.jsx(z1e.Provider,{value:u,children:h.jsx(i,{ref:l,...s,className:Un(t,d)})})});H1e.displayName="CardHeader";const IDe=H1e,G1e=k.forwardRef(({bsPrefix:n,className:t,variant:i,as:s="img",...l},d)=>{const u=ii(n,"card-img");return h.jsx(s,{ref:d,className:Un(i?`${u}-${i}`:u,t),...l})});G1e.displayName="CardImg";const NDe=G1e,W1e=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"card-img-overlay"),h.jsx(i,{ref:l,className:Un(n,t),...s})));W1e.displayName="CardImgOverlay";const ODe=W1e,$1e=k.forwardRef(({className:n,bsPrefix:t,as:i="a",...s},l)=>(t=ii(t,"card-link"),h.jsx(i,{ref:l,className:Un(n,t),...s})));$1e.displayName="CardLink";const PDe=$1e,LDe=pU("h6"),K1e=k.forwardRef(({className:n,bsPrefix:t,as:i=LDe,...s},l)=>(t=ii(t,"card-subtitle"),h.jsx(i,{ref:l,className:Un(n,t),...s})));K1e.displayName="CardSubtitle";const DDe=K1e,q1e=k.forwardRef(({className:n,bsPrefix:t,as:i="p",...s},l)=>(t=ii(t,"card-text"),h.jsx(i,{ref:l,className:Un(n,t),...s})));q1e.displayName="CardText";const kDe=q1e,MDe=pU("h5"),Y1e=k.forwardRef(({className:n,bsPrefix:t,as:i=MDe,...s},l)=>(t=ii(t,"card-title"),h.jsx(i,{ref:l,className:Un(n,t),...s})));Y1e.displayName="CardTitle";const jDe=Y1e,X1e=k.forwardRef(({bsPrefix:n,className:t,bg:i,text:s,border:l,body:d=!1,children:u,as:p="div",...g},_)=>{const y=ii(n,"card");return h.jsx(p,{ref:_,...g,className:Un(t,y,i&&`bg-${i}`,s&&`text-${s}`,l&&`border-${l}`),children:d?h.jsx(F1e,{children:u}):u})});X1e.displayName="Card";const et=Object.assign(X1e,{Img:NDe,Title:jDe,Subtitle:DDe,Body:F1e,Link:PDe,Text:kDe,Header:IDe,Footer:ADe,ImgOverlay:ODe});function UDe(n){const t=k.useRef(n);return t.current=n,t}function FDe(n){const t=UDe(n);k.useEffect(()=>()=>t.current(),[])}function Dq(n,t){let i=0;return k.Children.map(n,s=>k.isValidElement(s)?t(s,i++):s)}function BDe(n,t){let i=0;k.Children.forEach(n,s=>{k.isValidElement(s)&&t(s,i++)})}function VDe(n,t){return k.Children.toArray(n).some(i=>k.isValidElement(i)&&i.type===t)}function J1e({as:n,bsPrefix:t,className:i,...s}){t=ii(t,"col");const l=S1e(),d=b1e(),u=[],p=[];return l.forEach(g=>{const _=s[g];delete s[g];let y,E,b;typeof _=="object"&&_!=null?{span:y,offset:E,order:b}=_:y=_;const A=g!==d?`-${g}`:"";y&&u.push(y===!0?`${t}${A}`:`${t}${A}-${y}`),b!=null&&p.push(`order${A}-${b}`),E!=null&&p.push(`offset${A}-${E}`)}),[{...s,className:Un(i,...u,...p)},{as:n,bsPrefix:t,spans:u}]}const Q1e=k.forwardRef((n,t)=>{const[{className:i,...s},{as:l="div",bsPrefix:d,spans:u}]=J1e(n);return h.jsx(l,{...s,ref:t,className:Un(i,!u.length&&d)})});Q1e.displayName="Col";const Gt=Q1e,Z1e=k.forwardRef(({bsPrefix:n,fluid:t=!1,as:i="div",className:s,...l},d)=>{const u=ii(n,"container"),p=typeof t=="string"?`-${t}`:"-fluid";return h.jsx(i,{ref:d,...l,className:Un(s,t?`${u}${p}`:u)})});Z1e.displayName="Container";const Yn=Z1e;var zDe=Function.prototype.bind.call(Function.prototype.call,[].slice);function y_(n,t){return zDe(n.querySelectorAll(t))}function HDe(n,t,i){const s=k.useRef(n!==void 0),[l,d]=k.useState(t),u=n!==void 0,p=s.current;return s.current=u,!u&&p&&l!==t&&d(t),[u?n:l,k.useCallback((...g)=>{const[_,...y]=g;let E=i==null?void 0:i(_,...y);return d(_),E},[i])]}function GDe(){const[,n]=k.useReducer(t=>t+1,0);return n}function Bue(n,t){if(n.contains)return n.contains(t);if(n.compareDocumentPosition)return n===t||!!(n.compareDocumentPosition(t)&16)}const g7={prefix:String(Math.round(Math.random()*1e10)),current:0},eve=dn.createContext(g7),WDe=dn.createContext(!1);let $De=!!(typeof window<"u"&&window.document&&window.document.createElement),P$=new WeakMap;function KDe(n=!1){let t=k.useContext(eve),i=k.useRef(null);if(i.current===null&&!n){var s,l;let d=(l=dn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||l===void 0||(s=l.ReactCurrentOwner)===null||s===void 0?void 0:s.current;if(d){let u=P$.get(d);u==null?P$.set(d,{id:t.current,state:d.memoizedState}):d.memoizedState!==u.state&&(t.current=u.id,P$.delete(d))}i.current=++t.current}return i.current}function qDe(n){let t=k.useContext(eve),i=KDe(!!n),s=`react-aria${t.prefix}`;return n||`${s}-${i}`}function YDe(n){let t=dn.useId(),[i]=k.useState(eke()),s=i?"react-aria":`react-aria${g7.prefix}`;return n||`${s}-${t}`}const XDe=typeof dn.useId=="function"?YDe:qDe;function JDe(){return!1}function QDe(){return!0}function ZDe(n){return()=>{}}function eke(){return typeof dn.useSyncExternalStore=="function"?dn.useSyncExternalStore(ZDe,JDe,QDe):k.useContext(WDe)}const tke=k.createContext(null),H4=(n,t=null)=>n!=null?String(n):t||null,TE=tke,tve=k.createContext(null);tve.displayName="NavContext";const nve=tve,nke="data-rr-ui-",ike="rrUi";function mU(n){return`${nke}${n}`}function rke(n){return`${ike}${n}`}const ive=k.createContext(XR?window:void 0);ive.Provider;function vQ(){return k.useContext(ive)}const ske=typeof Wo<"u"&&Wo.navigator&&Wo.navigator.product==="ReactNative",ake=typeof document<"u",oke=ake||ske?k.useLayoutEffect:k.useEffect,rve=k.createContext(null);rve.displayName="NavbarContext";const HO=rve,lke={type:yl.string,tooltip:yl.bool,as:yl.elementType},yQ=k.forwardRef(({as:n="div",className:t,type:i="valid",tooltip:s=!1,...l},d)=>h.jsx(n,{...l,ref:d,className:Un(t,`${i}-${s?"tooltip":"feedback"}`)}));yQ.displayName="Feedback";yQ.propTypes=lke;const sve=yQ,cke=k.createContext({}),Lg=cke,ave=k.forwardRef(({id:n,bsPrefix:t,className:i,type:s="checkbox",isValid:l=!1,isInvalid:d=!1,as:u="input",...p},g)=>{const{controlId:_}=k.useContext(Lg);return t=ii(t,"form-check-input"),h.jsx(u,{...p,ref:g,type:s,id:n||_,className:Un(i,t,l&&"is-valid",d&&"is-invalid")})});ave.displayName="FormCheckInput";const ove=ave,lve=k.forwardRef(({bsPrefix:n,className:t,htmlFor:i,...s},l)=>{const{controlId:d}=k.useContext(Lg);return n=ii(n,"form-check-label"),h.jsx("label",{...s,ref:l,htmlFor:i||d,className:Un(t,n)})});lve.displayName="FormCheckLabel";const kq=lve,cve=k.forwardRef(({id:n,bsPrefix:t,bsSwitchPrefix:i,inline:s=!1,reverse:l=!1,disabled:d=!1,isValid:u=!1,isInvalid:p=!1,feedbackTooltip:g=!1,feedback:_,feedbackType:y,className:E,style:b,title:A="",type:N="checkbox",label:O,children:D,as:P="input",...j},M)=>{t=ii(t,"form-check"),i=ii(i,"form-switch");const{controlId:V}=k.useContext(Lg),H=k.useMemo(()=>({controlId:n||V}),[V,n]),$=!D&&O!=null&&O!==!1||VDe(D,kq),Q=h.jsx(ove,{...j,type:N==="switch"?"checkbox":N,ref:M,isValid:u,isInvalid:p,disabled:d,as:P});return h.jsx(Lg.Provider,{value:H,children:h.jsx("div",{style:b,className:Un(E,$&&t,s&&`${t}-inline`,l&&`${t}-reverse`,N==="switch"&&i),children:D||h.jsxs(h.Fragment,{children:[Q,$&&h.jsx(kq,{title:A,children:O}),_&&h.jsx(sve,{type:y,tooltip:g,children:_})]})})})});cve.displayName="FormCheck";const v7=Object.assign(cve,{Input:ove,Label:kq}),dve=k.forwardRef(({bsPrefix:n,type:t,size:i,htmlSize:s,id:l,className:d,isValid:u=!1,isInvalid:p=!1,plaintext:g,readOnly:_,as:y="input",...E},b)=>{const{controlId:A}=k.useContext(Lg);return n=ii(n,"form-control"),h.jsx(y,{...E,type:t,size:s,ref:b,readOnly:_,id:l||A,className:Un(d,g?`${n}-plaintext`:n,i&&`${n}-${i}`,t==="color"&&`${n}-color`,u&&"is-valid",p&&"is-invalid")})});dve.displayName="FormControl";const dke=Object.assign(dve,{Feedback:sve}),uve=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"form-floating"),h.jsx(i,{ref:l,className:Un(n,t),...s})));uve.displayName="FormFloating";const uke=uve,hve=k.forwardRef(({controlId:n,as:t="div",...i},s)=>{const l=k.useMemo(()=>({controlId:n}),[n]);return h.jsx(Lg.Provider,{value:l,children:h.jsx(t,{...i,ref:s})})});hve.displayName="FormGroup";const fve=hve,pve=k.forwardRef(({as:n="label",bsPrefix:t,column:i=!1,visuallyHidden:s=!1,className:l,htmlFor:d,...u},p)=>{const{controlId:g}=k.useContext(Lg);t=ii(t,"form-label");let _="col-form-label";typeof i=="string"&&(_=`${_} ${_}-${i}`);const y=Un(l,t,s&&"visually-hidden",i&&_);return d=d||g,i?h.jsx(Gt,{ref:p,as:"label",className:y,htmlFor:d,...u}):h.jsx(n,{ref:p,className:y,htmlFor:d,...u})});pve.displayName="FormLabel";const hke=pve,mve=k.forwardRef(({bsPrefix:n,className:t,id:i,...s},l)=>{const{controlId:d}=k.useContext(Lg);return n=ii(n,"form-range"),h.jsx("input",{...s,type:"range",ref:l,className:Un(t,n),id:i||d})});mve.displayName="FormRange";const fke=mve,gve=k.forwardRef(({bsPrefix:n,size:t,htmlSize:i,className:s,isValid:l=!1,isInvalid:d=!1,id:u,...p},g)=>{const{controlId:_}=k.useContext(Lg);return n=ii(n,"form-select"),h.jsx("select",{...p,size:i,ref:g,className:Un(s,n,t&&`${n}-${t}`,l&&"is-valid",d&&"is-invalid"),id:u||_})});gve.displayName="FormSelect";const pke=gve,vve=k.forwardRef(({bsPrefix:n,className:t,as:i="small",muted:s,...l},d)=>(n=ii(n,"form-text"),h.jsx(i,{...l,ref:d,className:Un(t,n,s&&"text-muted")})));vve.displayName="FormText";const mke=vve,yve=k.forwardRef((n,t)=>h.jsx(v7,{...n,ref:t,type:"switch"}));yve.displayName="Switch";const gke=Object.assign(yve,{Input:v7.Input,Label:v7.Label}),_ve=k.forwardRef(({bsPrefix:n,className:t,children:i,controlId:s,label:l,...d},u)=>(n=ii(n,"form-floating"),h.jsxs(fve,{ref:u,className:Un(t,n),controlId:s,...d,children:[i,h.jsx("label",{htmlFor:s,children:l})]})));_ve.displayName="FloatingLabel";const vke=_ve,yke={_ref:yl.any,validated:yl.bool,as:yl.elementType},_Q=k.forwardRef(({className:n,validated:t,as:i="form",...s},l)=>h.jsx(i,{...s,ref:l,className:Un(n,t&&"was-validated")}));_Q.displayName="Form";_Q.propTypes=yke;const kt=Object.assign(_Q,{Group:fve,Control:dke,Floating:uke,Check:v7,Switch:gke,Label:hke,Text:mke,Range:fke,Select:pke,FloatingLabel:vke}),Vue=n=>!n||typeof n=="function"?n:t=>{n.current=t};function _ke(n,t){const i=Vue(n),s=Vue(t);return l=>{i&&i(l),s&&s(l)}}function gU(n,t){return k.useMemo(()=>_ke(n,t),[n,t])}const Eke=k.createContext(null),JR=Eke,wke=["as","active","eventKey"];function Ske(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}function Eve({key:n,onClick:t,active:i,id:s,role:l,disabled:d}){const u=k.useContext(TE),p=k.useContext(nve),g=k.useContext(JR);let _=i;const y={role:l};if(p){!l&&p.role==="tablist"&&(y.role="tab");const E=p.getControllerId(n??null),b=p.getControlledId(n??null);y[mU("event-key")]=n,y.id=E||s,_=i==null&&n!=null?p.activeKey===n:i,(_||!(g!=null&&g.unmountOnExit)&&!(g!=null&&g.mountOnEnter))&&(y["aria-controls"]=b)}return y.role==="tab"&&(y["aria-selected"]=_,_||(y.tabIndex=-1),d&&(y.tabIndex=-1,y["aria-disabled"]=!0)),y.onClick=wg(E=>{d||(t==null||t(E),n!=null&&u&&!E.isPropagationStopped()&&u(n,E))}),[y,{isActive:_}]}const wve=k.forwardRef((n,t)=>{let{as:i=D1e,active:s,eventKey:l}=n,d=Ske(n,wke);const[u,p]=Eve(Object.assign({key:H4(l,d.href),active:s},d));return u[mU("active")]=p.isActive,h.jsx(i,Object.assign({},d,u,{ref:t}))});wve.displayName="NavItem";const bke=wve,Cke=["as","onSelect","activeKey","role","onKeyDown"];function Tke(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}const zue=()=>{},Hue=mU("event-key"),Sve=k.forwardRef((n,t)=>{let{as:i="div",onSelect:s,activeKey:l,role:d,onKeyDown:u}=n,p=Tke(n,Cke);const g=GDe(),_=k.useRef(!1),y=k.useContext(TE),E=k.useContext(JR);let b,A;E&&(d=d||"tablist",l=E.activeKey,b=E.getControlledId,A=E.getControllerId);const N=k.useRef(null),O=M=>{const V=N.current;if(!V)return null;const H=y_(V,`[${Hue}]:not([aria-disabled=true])`),$=V.querySelector("[aria-selected=true]");if(!$||$!==document.activeElement)return null;const Q=H.indexOf($);if(Q===-1)return null;let Y=Q+M;return Y>=H.length&&(Y=0),Y<0&&(Y=H.length-1),H[Y]},D=(M,V)=>{M!=null&&(s==null||s(M,V),y==null||y(M,V))},P=M=>{if(u==null||u(M),!E)return;let V;switch(M.key){case"ArrowLeft":case"ArrowUp":V=O(-1);break;case"ArrowRight":case"ArrowDown":V=O(1);break;default:return}V&&(M.preventDefault(),D(V.dataset[rke("EventKey")]||null,M),_.current=!0,g())};k.useEffect(()=>{if(N.current&&_.current){const M=N.current.querySelector(`[${Hue}][aria-selected=true]`);M==null||M.focus()}_.current=!1});const j=gU(t,N);return h.jsx(TE.Provider,{value:D,children:h.jsx(nve.Provider,{value:{role:d,activeKey:H4(l),getControlledId:b||zue,getControllerId:A||zue},children:h.jsx(i,Object.assign({},p,{onKeyDown:P,ref:j,role:d}))})})});Sve.displayName="Nav";const Rke=Object.assign(Sve,{Item:bke});var Ek;function G4(n){if((!Ek&&Ek!==0||n)&&XR){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),Ek=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return Ek}function xke(){return k.useState(null)}function L$(n){n===void 0&&(n=fU());try{var t=n.activeElement;return!t||!t.nodeName?null:t}catch{return n.body}}function Ake(n){const t=k.useRef(n);return t.current=n,t}function Ike(n){const t=Ake(n);k.useEffect(()=>()=>t.current(),[])}function Nke(n=document){const t=n.defaultView;return Math.abs(t.innerWidth-n.documentElement.clientWidth)}const Gue=mU("modal-open");class Oke{constructor({ownerDocument:t,handleContainerOverflow:i=!0,isRTL:s=!1}={}){this.handleContainerOverflow=i,this.isRTL=s,this.modals=[],this.ownerDocument=t}getScrollbarWidth(){return Nke(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(t){}removeModalAttributes(t){}setContainerStyle(t){const i={overflow:"hidden"},s=this.isRTL?"paddingLeft":"paddingRight",l=this.getElement();t.style={overflow:l.style.overflow,[s]:l.style[s]},t.scrollBarWidth&&(i[s]=`${parseInt(Ag(l,s)||"0",10)+t.scrollBarWidth}px`),l.setAttribute(Gue,""),Ag(l,i)}reset(){[...this.modals].forEach(t=>this.remove(t))}removeContainerStyle(t){const i=this.getElement();i.removeAttribute(Gue),Object.assign(i.style,t.style)}add(t){let i=this.modals.indexOf(t);return i!==-1||(i=this.modals.length,this.modals.push(t),this.setModalAttributes(t),i!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),i}remove(t){const i=this.modals.indexOf(t);i!==-1&&(this.modals.splice(i,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(t))}isTopModal(t){return!!this.modals.length&&this.modals[this.modals.length-1]===t}}const EQ=Oke,D$=(n,t)=>XR?n==null?(t||fU()).body:(typeof n=="function"&&(n=n()),n&&"current"in n&&(n=n.current),n&&("nodeType"in n||n.getBoundingClientRect)?n:null):null;function Pke(n,t){const i=vQ(),[s,l]=k.useState(()=>D$(n,i==null?void 0:i.document));if(!s){const d=D$(n);d&&l(d)}return k.useEffect(()=>{t&&s&&t(s)},[t,s]),k.useEffect(()=>{const d=D$(n);d!==s&&l(d)},[n,s]),s}function wQ({children:n,in:t,onExited:i,mountOnEnter:s,unmountOnExit:l}){const d=k.useRef(null),u=k.useRef(t),p=wg(i);k.useEffect(()=>{t?u.current=!0:p(d.current)},[t,p]);const g=gU(d,YR(n)),_=k.cloneElement(n,{ref:g});return t?_:l||!u.current&&s?null:_}const Lke=["onEnter","onEntering","onEntered","onExit","onExiting","onExited","addEndListener","children"];function Dke(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}function kke(n){let{onEnter:t,onEntering:i,onEntered:s,onExit:l,onExiting:d,onExited:u,addEndListener:p,children:g}=n,_=Dke(n,Lke);const y=k.useRef(null),E=gU(y,YR(g)),b=V=>H=>{V&&y.current&&V(y.current,H)},A=k.useCallback(b(t),[t]),N=k.useCallback(b(i),[i]),O=k.useCallback(b(s),[s]),D=k.useCallback(b(l),[l]),P=k.useCallback(b(d),[d]),j=k.useCallback(b(u),[u]),M=k.useCallback(b(p),[p]);return Object.assign({},_,{nodeRef:y},t&&{onEnter:A},i&&{onEntering:N},s&&{onEntered:O},l&&{onExit:D},d&&{onExiting:P},u&&{onExited:j},p&&{addEndListener:M},{children:typeof g=="function"?(V,H)=>g(V,Object.assign({},H,{ref:E})):k.cloneElement(g,{ref:E})})}const Mke=["component"];function jke(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}const Uke=k.forwardRef((n,t)=>{let{component:i}=n,s=jke(n,Mke);const l=kke(s);return h.jsx(i,Object.assign({ref:t},l))}),Fke=Uke;function Bke({in:n,onTransition:t}){const i=k.useRef(null),s=k.useRef(!0),l=wg(t);return Fue(()=>{if(!i.current)return;let d=!1;return l({in:n,element:i.current,initial:s.current,isStale:()=>d}),()=>{d=!0}},[n,l]),Fue(()=>(s.current=!1,()=>{s.current=!0}),[]),i}function Vke({children:n,in:t,onExited:i,onEntered:s,transition:l}){const[d,u]=k.useState(!t);t&&d&&u(!1);const p=Bke({in:!!t,onTransition:_=>{const y=()=>{_.isStale()||(_.in?s==null||s(_.element,_.initial):(u(!0),i==null||i(_.element)))};Promise.resolve(l(_)).then(y,E=>{throw _.in||u(!0),E})}}),g=gU(p,YR(n));return d&&!t?null:k.cloneElement(n,{ref:g})}function Wue(n,t,i){return n?h.jsx(Fke,Object.assign({},i,{component:n})):t?h.jsx(Vke,Object.assign({},i,{transition:t})):h.jsx(wQ,Object.assign({},i))}const zke=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function Hke(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}let k$;function Gke(n){return k$||(k$=new EQ({ownerDocument:n==null?void 0:n.document})),k$}function Wke(n){const t=vQ(),i=n||Gke(t),s=k.useRef({dialog:null,backdrop:null});return Object.assign(s.current,{add:()=>i.add(s.current),remove:()=>i.remove(s.current),isTopModal:()=>i.isTopModal(s.current),setDialogRef:k.useCallback(l=>{s.current.dialog=l},[]),setBackdropRef:k.useCallback(l=>{s.current.backdrop=l},[])})}const bve=k.forwardRef((n,t)=>{let{show:i=!1,role:s="dialog",className:l,style:d,children:u,backdrop:p=!0,keyboard:g=!0,onBackdropClick:_,onEscapeKeyDown:y,transition:E,runTransition:b,backdropTransition:A,runBackdropTransition:N,autoFocus:O=!0,enforceFocus:D=!0,restoreFocus:P=!0,restoreFocusOptions:j,renderDialog:M,renderBackdrop:V=Ht=>h.jsx("div",Object.assign({},Ht)),manager:H,container:$,onShow:Q,onHide:Y=()=>{},onExit:le,onExited:ae,onExiting:te,onEnter:de,onEntering:G,onEntered:ie}=n,_e=Hke(n,zke);const he=vQ(),Ce=Pke($),fe=Wke(H),me=pDe(),Ne=mDe(i),[Fe,je]=k.useState(!i),Ve=k.useRef(null);k.useImperativeHandle(t,()=>fe,[fe]),XR&&!Ne&&i&&(Ve.current=L$(he==null?void 0:he.document)),i&&Fe&&je(!1);const Re=wg(()=>{if(fe.add(),pt.current=m7(document,"keydown",Ge),rt.current=m7(document,"focus",()=>setTimeout(Xe),!0),Q&&Q(),O){var Ht,gn;const It=L$((Ht=(gn=fe.dialog)==null?void 0:gn.ownerDocument)!=null?Ht:he==null?void 0:he.document);fe.dialog&&It&&!Bue(fe.dialog,It)&&(Ve.current=It,fe.dialog.focus())}}),Be=wg(()=>{if(fe.remove(),pt.current==null||pt.current(),rt.current==null||rt.current(),P){var Ht;(Ht=Ve.current)==null||Ht.focus==null||Ht.focus(j),Ve.current=null}});k.useEffect(()=>{!i||!Ce||Re()},[i,Ce,Re]),k.useEffect(()=>{Fe&&Be()},[Fe,Be]),Ike(()=>{Be()});const Xe=wg(()=>{if(!D||!me()||!fe.isTopModal())return;const Ht=L$(he==null?void 0:he.document);fe.dialog&&Ht&&!Bue(fe.dialog,Ht)&&fe.dialog.focus()}),we=wg(Ht=>{Ht.target===Ht.currentTarget&&(_==null||_(Ht),p===!0&&Y())}),Ge=wg(Ht=>{g&&nDe(Ht)&&fe.isTopModal()&&(y==null||y(Ht),Ht.defaultPrevented||Y())}),rt=k.useRef(),pt=k.useRef(),Ze=(...Ht)=>{je(!0),ae==null||ae(...Ht)};if(!Ce)return null;const Je=Object.assign({role:s,ref:fe.setDialogRef,"aria-modal":s==="dialog"?!0:void 0},_e,{style:d,className:l,tabIndex:-1});let _t=M?M(Je):h.jsx("div",Object.assign({},Je,{children:k.cloneElement(u,{role:"document"})}));_t=Wue(E,b,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!i,onExit:le,onExiting:te,onExited:Ze,onEnter:de,onEntering:G,onEntered:ie,children:_t});let Xt=null;return p&&(Xt=V({ref:fe.setBackdropRef,onClick:we}),Xt=Wue(A,N,{in:!!i,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:Xt})),h.jsx(h.Fragment,{children:dC.createPortal(h.jsxs(h.Fragment,{children:[Xt,_t]}),Ce)})});bve.displayName="Modal";const Cve=Object.assign(bve,{Manager:EQ});function $ke(n,t){return n.classList?!!t&&n.classList.contains(t):(" "+(n.className.baseVal||n.className)+" ").indexOf(" "+t+" ")!==-1}function Kke(n,t){n.classList?n.classList.add(t):$ke(n,t)||(typeof n.className=="string"?n.className=n.className+" "+t:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+t))}function $ue(n,t){return n.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function qke(n,t){n.classList?n.classList.remove(t):typeof n.className=="string"?n.className=$ue(n.className,t):n.setAttribute("class",$ue(n.className&&n.className.baseVal||"",t))}const Ib={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class Tve extends EQ{adjustAndStore(t,i,s){const l=i.style[t];i.dataset[t]=l,Ag(i,{[t]:`${parseFloat(Ag(i,t))+s}px`})}restore(t,i){const s=i.dataset[t];s!==void 0&&(delete i.dataset[t],Ag(i,{[t]:s}))}setContainerStyle(t){super.setContainerStyle(t);const i=this.getElement();if(Kke(i,"modal-open"),!t.scrollBarWidth)return;const s=this.isRTL?"paddingLeft":"paddingRight",l=this.isRTL?"marginLeft":"marginRight";y_(i,Ib.FIXED_CONTENT).forEach(d=>this.adjustAndStore(s,d,t.scrollBarWidth)),y_(i,Ib.STICKY_CONTENT).forEach(d=>this.adjustAndStore(l,d,-t.scrollBarWidth)),y_(i,Ib.NAVBAR_TOGGLER).forEach(d=>this.adjustAndStore(l,d,t.scrollBarWidth))}removeContainerStyle(t){super.removeContainerStyle(t);const i=this.getElement();qke(i,"modal-open");const s=this.isRTL?"paddingLeft":"paddingRight",l=this.isRTL?"marginLeft":"marginRight";y_(i,Ib.FIXED_CONTENT).forEach(d=>this.restore(s,d)),y_(i,Ib.STICKY_CONTENT).forEach(d=>this.restore(l,d)),y_(i,Ib.NAVBAR_TOGGLER).forEach(d=>this.restore(l,d))}}let M$;function Rve(n){return M$||(M$=new Tve(n)),M$}const xve=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"modal-body"),h.jsx(i,{ref:l,className:Un(n,t),...s})));xve.displayName="ModalBody";const Yke=xve,Xke=k.createContext({onHide(){}}),SQ=Xke,Ave=k.forwardRef(({bsPrefix:n,className:t,contentClassName:i,centered:s,size:l,fullscreen:d,children:u,scrollable:p,...g},_)=>{n=ii(n,"modal");const y=`${n}-dialog`,E=typeof d=="string"?`${n}-fullscreen-${d}`:`${n}-fullscreen`;return h.jsx("div",{...g,ref:_,className:Un(y,t,l&&`${n}-${l}`,s&&`${y}-centered`,p&&`${y}-scrollable`,d&&E),children:h.jsx("div",{className:Un(`${n}-content`,i),children:u})})});Ave.displayName="ModalDialog";const Ive=Ave,Nve=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"modal-footer"),h.jsx(i,{ref:l,className:Un(n,t),...s})));Nve.displayName="ModalFooter";const Jke=Nve,Ove=k.forwardRef(({closeLabel:n="Close",closeVariant:t,closeButton:i=!1,onHide:s,children:l,...d},u)=>{const p=k.useContext(SQ),g=IR(()=>{p==null||p.onHide(),s==null||s()});return h.jsxs("div",{ref:u,...d,children:[l,i&&h.jsx(xDe,{"aria-label":n,variant:t,onClick:g})]})});Ove.displayName="AbstractModalHeader";const Pve=Ove,Lve=k.forwardRef(({bsPrefix:n,className:t,closeLabel:i="Close",closeButton:s=!1,...l},d)=>(n=ii(n,"modal-header"),h.jsx(Pve,{ref:d,...l,className:Un(t,n),closeLabel:i,closeButton:s})));Lve.displayName="ModalHeader";const Qke=Lve,Zke=pU("h4"),Dve=k.forwardRef(({className:n,bsPrefix:t,as:i=Zke,...s},l)=>(t=ii(t,"modal-title"),h.jsx(i,{ref:l,className:Un(n,t),...s})));Dve.displayName="ModalTitle";const eMe=Dve;function tMe(n){return h.jsx(zO,{...n,timeout:null})}function nMe(n){return h.jsx(zO,{...n,timeout:null})}const kve=k.forwardRef(({bsPrefix:n,className:t,style:i,dialogClassName:s,contentClassName:l,children:d,dialogAs:u=Ive,"data-bs-theme":p,"aria-labelledby":g,"aria-describedby":_,"aria-label":y,show:E=!1,animation:b=!0,backdrop:A=!0,keyboard:N=!0,onEscapeKeyDown:O,onShow:D,onHide:P,container:j,autoFocus:M=!0,enforceFocus:V=!0,restoreFocus:H=!0,restoreFocusOptions:$,onEntered:Q,onExit:Y,onExiting:le,onEnter:ae,onEntering:te,onExited:de,backdropClassName:G,manager:ie,..._e},he)=>{const[Ce,fe]=k.useState({}),[me,Ne]=k.useState(!1),Fe=k.useRef(!1),je=k.useRef(!1),Ve=k.useRef(null),[Re,Be]=xke(),Xe=O1e(he,Be),we=IR(P),Ge=z8e();n=ii(n,"modal");const rt=k.useMemo(()=>({onHide:we}),[we]);function pt(){return ie||Rve({isRTL:Ge})}function Ze(Lt){if(!XR)return;const tn=pt().getScrollbarWidth()>0,un=Lt.scrollHeight>fU(Lt).documentElement.clientHeight;fe({paddingRight:tn&&!un?G4():void 0,paddingLeft:!tn&&un?G4():void 0})}const Je=IR(()=>{Re&&Ze(Re.dialog)});FDe(()=>{Lq(window,"resize",Je),Ve.current==null||Ve.current()});const _t=()=>{Fe.current=!0},Xt=Lt=>{Fe.current&&Re&&Lt.target===Re.dialog&&(je.current=!0),Fe.current=!1},Ht=()=>{Ne(!0),Ve.current=I1e(Re.dialog,()=>{Ne(!1)})},gn=Lt=>{Lt.target===Lt.currentTarget&&Ht()},It=Lt=>{if(A==="static"){gn(Lt);return}if(je.current||Lt.target!==Lt.currentTarget){je.current=!1;return}P==null||P()},xt=Lt=>{N?O==null||O(Lt):(Lt.preventDefault(),A==="static"&&Ht())},mt=(Lt,tn)=>{Lt&&Ze(Lt),ae==null||ae(Lt,tn)},dt=Lt=>{Ve.current==null||Ve.current(),Y==null||Y(Lt)},it=(Lt,tn)=>{te==null||te(Lt,tn),A1e(window,"resize",Je)},Me=Lt=>{Lt&&(Lt.style.display=""),de==null||de(Lt),Lq(window,"resize",Je)},We=k.useCallback(Lt=>h.jsx("div",{...Lt,className:Un(`${n}-backdrop`,G,!b&&"show")}),[b,G,n]),bt={...i,...Ce};bt.display="block";const St=Lt=>h.jsx("div",{role:"dialog",...Lt,style:bt,className:Un(t,n,me&&`${n}-static`,!b&&"show"),onClick:A?It:void 0,onMouseUp:Xt,"data-bs-theme":p,"aria-label":y,"aria-labelledby":g,"aria-describedby":_,children:h.jsx(u,{..._e,onMouseDown:_t,className:s,contentClassName:l,children:d})});return h.jsx(SQ.Provider,{value:rt,children:h.jsx(Cve,{show:E,ref:Xe,backdrop:A,container:j,keyboard:!0,autoFocus:M,enforceFocus:V,restoreFocus:H,restoreFocusOptions:$,onEscapeKeyDown:xt,onShow:D,onHide:P,onEnter:mt,onEntering:it,onEntered:Q,onExit:dt,onExiting:le,onExited:Me,manager:pt(),transition:b?tMe:void 0,backdropTransition:b?nMe:void 0,renderBackdrop:We,renderDialog:St})})});kve.displayName="Modal";const vn=Object.assign(kve,{Body:Yke,Header:Qke,Title:eMe,Footer:Jke,Dialog:Ive,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150}),Mve=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"nav-item"),h.jsx(i,{ref:l,className:Un(n,t),...s})));Mve.displayName="NavItem";const jve=Mve,Uve=k.forwardRef(({bsPrefix:n,className:t,as:i=CDe,active:s,eventKey:l,disabled:d=!1,...u},p)=>{n=ii(n,"nav-link");const[g,_]=Eve({key:H4(l,u.href),active:s,disabled:d,...u});return h.jsx(i,{...u,...g,ref:p,disabled:d,className:Un(t,n,d&&"disabled",_.isActive&&"active")})});Uve.displayName="NavLink";const Fve=Uve,Bve=k.forwardRef((n,t)=>{const{as:i="div",bsPrefix:s,variant:l,fill:d=!1,justify:u=!1,navbar:p,navbarScroll:g,className:_,activeKey:y,...E}=dQ(n,{activeKey:"onSelect"}),b=ii(s,"nav");let A,N,O=!1;const D=k.useContext(HO),P=k.useContext(z1e);return D?(A=D.bsPrefix,O=p??!0):P&&({cardHeaderBsPrefix:N}=P),h.jsx(Rke,{as:i,ref:t,activeKey:y,className:Un(_,{[b]:!O,[`${A}-nav`]:O,[`${A}-nav-scroll`]:O&&g,[`${N}-${l}`]:!!N,[`${b}-${l}`]:!!l,[`${b}-fill`]:d,[`${b}-justified`]:u}),...E})});Bve.displayName="Nav";const jn=Object.assign(Bve,{Item:jve,Link:Fve}),Vve=k.forwardRef(({bsPrefix:n,className:t,as:i,...s},l)=>{n=ii(n,"navbar-brand");const d=i||(s.href?"a":"span");return h.jsx(d,{...s,ref:l,className:Un(t,n)})});Vve.displayName="NavbarBrand";const iMe=Vve,zve=k.forwardRef(({children:n,bsPrefix:t,...i},s)=>{t=ii(t,"navbar-collapse");const l=k.useContext(HO);return h.jsx(pQ,{in:!!(l&&l.expanded),...i,children:h.jsx("div",{ref:s,className:t,children:n})})});zve.displayName="NavbarCollapse";const rMe=zve,Hve=k.forwardRef(({bsPrefix:n,className:t,children:i,label:s="Toggle navigation",as:l="button",onClick:d,...u},p)=>{n=ii(n,"navbar-toggler");const{onToggle:g,expanded:_}=k.useContext(HO)||{},y=IR(E=>{d&&d(E),g&&g()});return l==="button"&&(u.type="button"),h.jsx(l,{...u,ref:p,onClick:y,"aria-label":s,className:Un(t,n,!_&&"collapsed"),children:i||h.jsx("span",{className:`${n}-icon`})})});Hve.displayName="NavbarToggle";const sMe=Hve,Mq=new WeakMap,Kue=(n,t)=>{if(!n||!t)return;const i=Mq.get(t)||new Map;Mq.set(t,i);let s=i.get(n);return s||(s=t.matchMedia(n),s.refCount=0,i.set(s.media,s)),s};function aMe(n,t=typeof window>"u"?void 0:window){const i=Kue(n,t),[s,l]=k.useState(()=>i?i.matches:!1);return oke(()=>{let d=Kue(n,t);if(!d)return l(!1);let u=Mq.get(t);const p=()=>{l(d.matches)};return d.refCount++,d.addListener(p),p(),()=>{d.removeListener(p),d.refCount--,d.refCount<=0&&(u==null||u.delete(d.media)),d=void 0}},[n]),s}function oMe(n){const t=Object.keys(n);function i(p,g){return p===g?g:p?`${p} and ${g}`:g}function s(p){return t[Math.min(t.indexOf(p)+1,t.length-1)]}function l(p){const g=s(p);let _=n[g];return typeof _=="number"?_=`${_-.2}px`:_=`calc(${_} - 0.2px)`,`(max-width: ${_})`}function d(p){let g=n[p];return typeof g=="number"&&(g=`${g}px`),`(min-width: ${g})`}function u(p,g,_){let y;typeof p=="object"?(y=p,_=g,g=!0):(g=g||!0,y={[p]:g});let E=k.useMemo(()=>Object.entries(y).reduce((b,[A,N])=>((N==="up"||N===!0)&&(b=i(b,d(A))),(N==="down"||N===!0)&&(b=i(b,l(A))),b),""),[JSON.stringify(y)]);return aMe(E,_)}return u}const lMe=oMe({xs:0,sm:576,md:768,lg:992,xl:1200,xxl:1400}),Gve=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"offcanvas-body"),h.jsx(i,{ref:l,className:Un(n,t),...s})));Gve.displayName="OffcanvasBody";const cMe=Gve,dMe={[sf]:"show",[Eg]:"show"},Wve=k.forwardRef(({bsPrefix:n,className:t,children:i,in:s=!1,mountOnEnter:l=!1,unmountOnExit:d=!1,appear:u=!1,...p},g)=>(n=ii(n,"offcanvas"),h.jsx(fQ,{ref:g,addEndListener:hQ,in:s,mountOnEnter:l,unmountOnExit:d,appear:u,...p,childRef:YR(i),children:(_,y)=>k.cloneElement(i,{...y,className:Un(t,i.props.className,(_===sf||_===z4)&&`${n}-toggling`,dMe[_])})})));Wve.displayName="OffcanvasToggling";const uMe=Wve,$ve=k.forwardRef(({bsPrefix:n,className:t,closeLabel:i="Close",closeButton:s=!1,...l},d)=>(n=ii(n,"offcanvas-header"),h.jsx(Pve,{ref:d,...l,className:Un(t,n),closeLabel:i,closeButton:s})));$ve.displayName="OffcanvasHeader";const hMe=$ve,fMe=pU("h5"),Kve=k.forwardRef(({className:n,bsPrefix:t,as:i=fMe,...s},l)=>(t=ii(t,"offcanvas-title"),h.jsx(i,{ref:l,className:Un(n,t),...s})));Kve.displayName="OffcanvasTitle";const pMe=Kve;function mMe(n){return h.jsx(uMe,{...n})}function gMe(n){return h.jsx(zO,{...n})}const qve=k.forwardRef(({bsPrefix:n,className:t,children:i,"aria-labelledby":s,placement:l="start",responsive:d,show:u=!1,backdrop:p=!0,keyboard:g=!0,scroll:_=!1,onEscapeKeyDown:y,onShow:E,onHide:b,container:A,autoFocus:N=!0,enforceFocus:O=!0,restoreFocus:D=!0,restoreFocusOptions:P,onEntered:j,onExit:M,onExiting:V,onEnter:H,onEntering:$,onExited:Q,backdropClassName:Y,manager:le,renderStaticNode:ae=!1,...te},de)=>{const G=k.useRef();n=ii(n,"offcanvas");const[ie,_e]=k.useState(!1),he=IR(b),Ce=lMe(d||"xs","up");k.useEffect(()=>{_e(d?u&&!Ce:u)},[u,d,Ce]);const fe=k.useMemo(()=>({onHide:he}),[he]);function me(){return le||(_?(G.current||(G.current=new Tve({handleContainerOverflow:!1})),G.current):Rve())}const Ne=(Re,...Be)=>{Re&&(Re.style.visibility="visible"),H==null||H(Re,...Be)},Fe=(Re,...Be)=>{Re&&(Re.style.visibility=""),Q==null||Q(...Be)},je=k.useCallback(Re=>h.jsx("div",{...Re,className:Un(`${n}-backdrop`,Y)}),[Y,n]),Ve=Re=>h.jsx("div",{...Re,...te,className:Un(t,d?`${n}-${d}`:n,`${n}-${l}`),"aria-labelledby":s,children:i});return h.jsxs(h.Fragment,{children:[!ie&&(d||ae)&&Ve({}),h.jsx(SQ.Provider,{value:fe,children:h.jsx(Cve,{show:ie,ref:de,backdrop:p,container:A,keyboard:g,autoFocus:N,enforceFocus:O&&!_,restoreFocus:D,restoreFocusOptions:P,onEscapeKeyDown:y,onShow:E,onHide:he,onEnter:Ne,onEntering:$,onEntered:j,onExit:M,onExiting:V,onExited:Fe,manager:me(),transition:mMe,backdropTransition:gMe,renderBackdrop:je,renderDialog:Ve})})]})});qve.displayName="Offcanvas";const OI=Object.assign(qve,{Body:cMe,Header:hMe,Title:pMe}),Yve=k.forwardRef(({onHide:n,...t},i)=>{const s=k.useContext(HO),l=IR(()=>{s==null||s.onToggle==null||s.onToggle(),n==null||n()});return h.jsx(OI,{ref:i,show:!!(s!=null&&s.expanded),...t,renderStaticNode:!0,onHide:l})});Yve.displayName="NavbarOffcanvas";const vMe=Yve,Xve=k.forwardRef(({className:n,bsPrefix:t,as:i="span",...s},l)=>(t=ii(t,"navbar-text"),h.jsx(i,{ref:l,className:Un(n,t),...s})));Xve.displayName="NavbarText";const yMe=Xve,Jve=k.forwardRef((n,t)=>{const{bsPrefix:i,expand:s=!0,variant:l="light",bg:d,fixed:u,sticky:p,className:g,as:_="nav",expanded:y,onToggle:E,onSelect:b,collapseOnSelect:A=!1,...N}=dQ(n,{expanded:"onToggle"}),O=ii(i,"navbar"),D=k.useCallback((...M)=>{b==null||b(...M),A&&y&&(E==null||E(!1))},[b,A,y,E]);N.role===void 0&&_!=="nav"&&(N.role="navigation");let P=`${O}-expand`;typeof s=="string"&&(P=`${P}-${s}`);const j=k.useMemo(()=>({onToggle:()=>E==null?void 0:E(!y),bsPrefix:O,expanded:!!y,expand:s}),[O,y,s,E]);return h.jsx(HO.Provider,{value:j,children:h.jsx(TE.Provider,{value:D,children:h.jsx(_,{ref:t,...N,className:Un(g,O,s&&P,l&&`${O}-${l}`,d&&`bg-${d}`,p&&`sticky-${p}`,u&&`fixed-${u}`)})})})});Jve.displayName="Navbar";const Qve=Object.assign(Jve,{Brand:iMe,Collapse:rMe,Offcanvas:vMe,Text:yMe,Toggle:sMe});function Zve({animation:n,bg:t,bsPrefix:i,size:s,...l}){i=ii(i,"placeholder");const[{className:d,...u}]=J1e(l);return{...u,className:Un(d,n?`${i}-${n}`:i,s&&`${i}-${s}`,t&&`bg-${t}`)}}const eye=k.forwardRef((n,t)=>{const i=Zve(n);return h.jsx(Pt,{...i,ref:t,disabled:!0,tabIndex:-1})});eye.displayName="PlaceholderButton";const _Me=eye,tye=k.forwardRef(({as:n="span",...t},i)=>{const s=Zve(t);return h.jsx(n,{...s,ref:i})});tye.displayName="Placeholder";const cn=Object.assign(tye,{Button:_Me}),que=1e3;function EMe(n,t,i){const s=(n-t)/(i-t)*100;return Math.round(s*que)/que}function Yue({min:n,now:t,max:i,label:s,visuallyHidden:l,striped:d,animated:u,className:p,style:g,variant:_,bsPrefix:y,...E},b){return h.jsx("div",{ref:b,...E,role:"progressbar",className:Un(p,`${y}-bar`,{[`bg-${_}`]:_,[`${y}-bar-animated`]:u,[`${y}-bar-striped`]:u||d}),style:{width:`${EMe(t,n,i)}%`,...g},"aria-valuenow":t,"aria-valuemin":n,"aria-valuemax":i,children:l?h.jsx("span",{className:"visually-hidden",children:s}):s})}const nye=k.forwardRef(({isChild:n=!1,...t},i)=>{const s={min:0,max:100,animated:!1,visuallyHidden:!1,striped:!1,...t};if(s.bsPrefix=ii(s.bsPrefix,"progress"),n)return Yue(s,i);const{min:l,now:d,max:u,label:p,visuallyHidden:g,striped:_,animated:y,bsPrefix:E,variant:b,className:A,children:N,...O}=s;return h.jsx("div",{ref:i,...O,className:Un(A,E),children:N?Dq(N,D=>k.cloneElement(D,{isChild:!0})):Yue({min:l,now:d,max:u,label:p,visuallyHidden:g,striped:_,animated:y,bsPrefix:E,variant:b},i)})});nye.displayName="ProgressBar";const bQ=nye;function wMe(n){return n<=0?"100%":n<1?`${n*100}%`:`${n}%`}const iye=k.forwardRef(({bsPrefix:n,className:t,children:i,aspectRatio:s="1x1",style:l,...d},u)=>{n=ii(n,"ratio");const p=typeof s=="number";return h.jsx("div",{ref:u,...d,style:{...l,...p&&{"--bs-aspect-ratio":wMe(s)}},className:Un(n,t,!p&&`${n}-${s}`),children:k.Children.only(i)})});iye.displayName="Ratio";const Jd=iye,rye=k.forwardRef(({bsPrefix:n,className:t,as:i="div",...s},l)=>{const d=ii(n,"row"),u=S1e(),p=b1e(),g=`${d}-cols`,_=[];return u.forEach(y=>{const E=s[y];delete s[y];let b;E!=null&&typeof E=="object"?{cols:b}=E:b=E;const A=y!==p?`-${y}`:"";b!=null&&_.push(`${g}${A}-${b}`)}),h.jsx(i,{ref:l,...s,className:Un(t,d,..._)})});rye.displayName="Row";const fn=rye,sye=k.forwardRef(({bsPrefix:n,variant:t,animation:i="border",size:s,as:l="div",className:d,...u},p)=>{n=ii(n,"spinner");const g=`${n}-${i}`;return h.jsx(l,{ref:p,...u,className:Un(d,g,s&&`${g}-${s}`,t&&`text-${t}`)})});sye.displayName="Spinner";const Ji=sye,SMe=["active","eventKey","mountOnEnter","transition","unmountOnExit","role","onEnter","onEntering","onEntered","onExit","onExiting","onExited"],bMe=["activeKey","getControlledId","getControllerId"],CMe=["as"];function jq(n,t){if(n==null)return{};var i={};for(var s in n)if({}.hasOwnProperty.call(n,s)){if(t.indexOf(s)>=0)continue;i[s]=n[s]}return i}function aye(n){let{active:t,eventKey:i,mountOnEnter:s,transition:l,unmountOnExit:d,role:u="tabpanel",onEnter:p,onEntering:g,onEntered:_,onExit:y,onExiting:E,onExited:b}=n,A=jq(n,SMe);const N=k.useContext(JR);if(!N)return[Object.assign({},A,{role:u}),{eventKey:i,isActive:t,mountOnEnter:s,transition:l,unmountOnExit:d,onEnter:p,onEntering:g,onEntered:_,onExit:y,onExiting:E,onExited:b}];const{activeKey:O,getControlledId:D,getControllerId:P}=N,j=jq(N,bMe),M=H4(i);return[Object.assign({},A,{role:u,id:D(i),"aria-labelledby":P(i)}),{eventKey:i,isActive:t==null&&M!=null?H4(O)===M:t,transition:l||j.transition,mountOnEnter:s??j.mountOnEnter,unmountOnExit:d??j.unmountOnExit,onEnter:p,onEntering:g,onEntered:_,onExit:y,onExiting:E,onExited:b}]}const oye=k.forwardRef((n,t)=>{let{as:i="div"}=n,s=jq(n,CMe);const[l,{isActive:d,onEnter:u,onEntering:p,onEntered:g,onExit:_,onExiting:y,onExited:E,mountOnEnter:b,unmountOnExit:A,transition:N=wQ}]=aye(s);return h.jsx(JR.Provider,{value:null,children:h.jsx(TE.Provider,{value:null,children:h.jsx(N,{in:d,onEnter:u,onEntering:p,onEntered:g,onExit:_,onExiting:y,onExited:E,mountOnEnter:b,unmountOnExit:A,children:h.jsx(i,Object.assign({},l,{ref:t,hidden:!d,"aria-hidden":!d}))})})})});oye.displayName="TabPanel";const lye=n=>{const{id:t,generateChildId:i,onSelect:s,activeKey:l,defaultActiveKey:d,transition:u,mountOnEnter:p,unmountOnExit:g,children:_}=n,[y,E]=HDe(l,d,s),b=XDe(t),A=k.useMemo(()=>i||((O,D)=>b?`${b}-${D}-${O}`:null),[b,i]),N=k.useMemo(()=>({onSelect:E,activeKey:y,transition:u,mountOnEnter:p||!1,unmountOnExit:g||!1,getControlledId:O=>A(O,"tabpane"),getControllerId:O=>A(O,"tab")}),[E,y,u,p,g,A]);return h.jsx(JR.Provider,{value:N,children:h.jsx(TE.Provider,{value:E||null,children:_})})};lye.Panel=oye;const cye=lye;function CQ(n){return typeof n=="boolean"?n?zO:wQ:n}const dye=({transition:n,...t})=>h.jsx(cye,{...t,transition:CQ(n)});dye.displayName="TabContainer";const TMe=dye,uye=k.forwardRef(({className:n,bsPrefix:t,as:i="div",...s},l)=>(t=ii(t,"tab-content"),h.jsx(i,{ref:l,className:Un(n,t),...s})));uye.displayName="TabContent";const hye=uye,fye=k.forwardRef(({bsPrefix:n,transition:t,...i},s)=>{const[{className:l,as:d="div",...u},{isActive:p,onEnter:g,onEntering:_,onEntered:y,onExit:E,onExiting:b,onExited:A,mountOnEnter:N,unmountOnExit:O,transition:D=zO}]=aye({...i,transition:CQ(t)}),P=ii(n,"tab-pane");return h.jsx(JR.Provider,{value:null,children:h.jsx(TE.Provider,{value:null,children:h.jsx(D,{in:p,onEnter:g,onEntering:_,onEntered:y,onExit:E,onExiting:b,onExited:A,mountOnEnter:N,unmountOnExit:O,children:h.jsx(d,{...u,ref:s,className:Un(l,P,p&&"active")})})})})});fye.displayName="TabPane";const pye=fye,RMe={eventKey:yl.oneOfType([yl.string,yl.number]),title:yl.node.isRequired,disabled:yl.bool,tabClassName:yl.string,tabAttrs:yl.object},mye=()=>{throw new Error("ReactBootstrap: The `Tab` component is not meant to be rendered! It's an abstract component that is only valid as a direct Child of the `Tabs` Component. For custom tabs components use TabPane and TabsContainer directly")};mye.propTypes=RMe;const Zn=Object.assign(mye,{Container:TMe,Content:hye,Pane:pye}),gye=k.forwardRef(({bsPrefix:n,className:t,striped:i,bordered:s,borderless:l,hover:d,size:u,variant:p,responsive:g,..._},y)=>{const E=ii(n,"table"),b=Un(t,E,p&&`${E}-${p}`,u&&`${E}-${u}`,i&&`${E}-${typeof i=="string"?`striped-${i}`:"striped"}`,s&&`${E}-bordered`,l&&`${E}-borderless`,d&&`${E}-hover`),A=h.jsx("table",{..._,className:b,ref:y});if(g){let N=`${E}-responsive`;return typeof g=="string"&&(N=`${N}-${g}`),h.jsx("div",{className:N,children:A})}return A});gye.displayName="Table";const xMe=gye;function AMe(n){let t;return BDe(n,i=>{t==null&&(t=i.props.eventKey)}),t}function IMe(n){const{title:t,eventKey:i,disabled:s,tabClassName:l,tabAttrs:d,id:u}=n.props;return t==null?null:h.jsx(jve,{as:"li",role:"presentation",children:h.jsx(Fve,{as:"button",type:"button",eventKey:i,disabled:s,id:u,className:l,...d,children:t})})}const vye=n=>{const{id:t,onSelect:i,transition:s,mountOnEnter:l=!1,unmountOnExit:d=!1,variant:u="tabs",children:p,activeKey:g=AMe(p),..._}=dQ(n,{activeKey:"onSelect"});return h.jsxs(cye,{id:t,activeKey:g,onSelect:i,transition:CQ(s),mountOnEnter:l,unmountOnExit:d,children:[h.jsx(jn,{id:t,..._,role:"tablist",as:"ul",variant:u,children:Dq(p,IMe)}),h.jsx(hye,{children:Dq(p,y=>{const E={...y.props};return delete E.title,delete E.disabled,delete E.tabClassName,delete E.tabAttrs,h.jsx(pye,{...E})})})]})};vye.displayName="Tabs";const vU=vye;var yye={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Xue=dn.createContext&&dn.createContext(yye),NMe=["attr","size","title"];function OMe(n,t){if(n==null)return{};var i=PMe(n,t),s,l;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(n);for(l=0;l=0)&&Object.prototype.propertyIsEnumerable.call(n,s)&&(i[s]=n[s])}return i}function PMe(n,t){if(n==null)return{};var i={},s=Object.keys(n),l,d;for(d=0;d=0)&&(i[l]=n[l]);return i}function y7(){return y7=Object.assign?Object.assign.bind():function(n){for(var t=1;tdn.createElement(t.tag,_7({key:i},t.attr),_ye(t.child)))}function Le(n){return t=>dn.createElement(MMe,y7({attr:_7({},n.attr)},t),_ye(n.child))}function MMe(n){var t=i=>{var{attr:s,size:l,title:d}=n,u=OMe(n,NMe),p=l||i.size||"1em",g;return i.className&&(g=i.className),n.className&&(g=(g?g+" ":"")+n.className),dn.createElement("svg",y7({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},i.attr,s,u,{className:g,style:_7(_7({color:n.color||i.color},i.style),n.style),height:p,width:p,xmlns:"http://www.w3.org/2000/svg"}),d&&dn.createElement("title",null,d),n.children)};return Xue!==void 0?dn.createElement(Xue.Consumer,null,i=>t(i)):t(yye)}function jMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 0 0-282.5 117 397.47 397.47 0 0 0-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 0 0 155.6 31.5 398.57 398.57 0 0 0 282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0 0 31.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 0 0 588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z"},child:[]}]})(n)}function UMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z"},child:[]}]})(n)}function FMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 0 0-11.3 0l-189 189.6a7.87 7.87 0 0 0-2.3 5.6V720c0 4.4 3.6 8 8 8z"},child:[]}]})(n)}function BMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"},child:[]}]})(n)}function VMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"},child:[]}]})(n)}function zMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z"},child:[]}]})(n)}function HMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z"},child:[]}]})(n)}function GMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"},child:[]}]})(n)}function WMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 0 1-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0 1 65.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z"},child:[]}]})(n)}function $Me(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"},child:[]}]})(n)}function KMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 0 1-112.7 75.9A352.8 352.8 0 0 1 512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 0 1-112.7-75.9 353.28 353.28 0 0 1-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z"},child:[]}]})(n)}function qMe(n){return Le({tag:"svg",attr:{t:"1569683371420",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"defs",attr:{},child:[]},{tag:"path",attr:{d:"M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298c-14.2-35.2-48.7-60-89-60-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM451.7 313.7l172.5 136.2c6.3 5.1 15.8 0.5 15.8-7.7V344h264c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H640v-98.2c0-8.1-9.4-12.8-15.8-7.7L451.7 298.3c-4.9 3.9-4.9 11.5 0 15.4z"},child:[]}]})(n)}function YMe(n){return Le({tag:"svg",attr:{t:"1569683374330",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"defs",attr:{},child:[]},{tag:"path",attr:{d:"M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298c-14.2-35.2-48.7-60-89-60-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM456 344h264v98.2c0 8.1 9.5 12.8 15.8 7.7l172.5-136.2c5-3.9 5-11.4 0-15.3L735.8 162.1c-6.4-5.1-15.8-0.5-15.8 7.7V268H456c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8z"},child:[]}]})(n)}function XMe(n){return Le({tag:"svg",attr:{t:"1569683635191",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"defs",attr:{},child:[]},{tag:"path",attr:{d:"M843.5 737.4c-12.4-75.2-79.2-129.1-155.3-125.4S550.9 676 546 752c-153.5-4.8-208-40.7-199.1-113.7 3.3-27.3 19.8-41.9 50.1-49 18.4-4.3 38.8-4.9 57.3-3.2 1.7 0.2 3.5 0.3 5.2 0.5 11.3 2.7 22.8 5 34.3 6.8 34.1 5.6 68.8 8.4 101.8 6.6 92.8-5 156-45.9 159.2-132.7 3.1-84.1-54.7-143.7-147.9-183.6-29.9-12.8-61.6-22.7-93.3-30.2-14.3-3.4-26.3-5.7-35.2-7.2-7.9-75.9-71.5-133.8-147.8-134.4-76.3-0.6-140.9 56.1-150.1 131.9s40 146.3 114.2 163.9c74.2 17.6 149.9-23.3 175.7-95.1 9.4 1.7 18.7 3.6 28 5.8 28.2 6.6 56.4 15.4 82.4 26.6 70.7 30.2 109.3 70.1 107.5 119.9-1.6 44.6-33.6 65.2-96.2 68.6-27.5 1.5-57.6-0.9-87.3-5.8-8.3-1.4-15.9-2.8-22.6-4.3-3.9-0.8-6.6-1.5-7.8-1.8l-3.1-0.6c-2.2-0.3-5.9-0.8-10.7-1.3-25-2.3-52.1-1.5-78.5 4.6-55.2 12.9-93.9 47.2-101.1 105.8-15.7 126.2 78.6 184.7 276 188.9 29.1 70.4 106.4 107.9 179.6 87 73.3-20.9 119.3-93.4 106.9-168.6zM329.1 345.2c-46 0-83.3-37.3-83.3-83.3s37.3-83.3 83.3-83.3 83.3 37.3 83.3 83.3-37.3 83.3-83.3 83.3zM695.6 845c-46 0-83.3-37.3-83.3-83.3s37.3-83.3 83.3-83.3 83.3 37.3 83.3 83.3-37.3 83.3-83.3 83.3z"},child:[]}]})(n)}function JMe(n){return Le({tag:"svg",attr:{t:"1569683632175",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"defs",attr:{},child:[]},{tag:"path",attr:{d:"M640.6 429.8h257.1c7.9 0 14.3-6.4 14.3-14.3V158.3c0-7.9-6.4-14.3-14.3-14.3H640.6c-7.9 0-14.3 6.4-14.3 14.3v92.9H490.6c-3.9 0-7.1 3.2-7.1 7.1v221.5h-85.7v-96.5c0-7.9-6.4-14.3-14.3-14.3H126.3c-7.9 0-14.3 6.4-14.3 14.3v257.2c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3V544h85.7v221.5c0 3.9 3.2 7.1 7.1 7.1h135.7v92.9c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3v-257c0-7.9-6.4-14.3-14.3-14.3h-257c-7.9 0-14.3 6.4-14.3 14.3v100h-78.6v-393h78.6v100c0 7.9 6.4 14.3 14.3 14.3z m53.5-217.9h150V362h-150V211.9zM329.9 587h-150V437h150v150z m364.2 75.1h150v150.1h-150V662.1z"},child:[]}]})(n)}function QMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552a398.46 398.46 0 0 0 117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952a398.46 398.46 0 0 0 282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z"},child:[]}]})(n)}function ZMe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8Z"},child:[]},{tag:"path",attr:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8Z"},child:[]}]})(n)}function e7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z"},child:[]}]})(n)}function t7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"},child:[]}]})(n)}function n7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z"},child:[]}]})(n)}function i7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 0 0-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 1 0 0 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 0 0-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 0 0-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6z"},child:[]}]})(n)}function r7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z"},child:[]}]})(n)}function s7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z"},child:[]}]})(n)}function a7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"},child:[]}]})(n)}function o7e(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 0 1 755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 0 1 512.1 856a342.24 342.24 0 0 1-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 0 0-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 0 0-8-8.2z"},child:[]}]})(n)}function l7e(n){return Le({tag:"svg",attr:{t:"1569683921137",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"defs",attr:{},child:[]},{tag:"path",attr:{d:"M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-0.4 0.2-0.7 0.3-0.9 0.4-44.7 18.9-84.8 46-119.3 80.6-34.5 34.5-61.5 74.7-80.4 119.5C146.9 780.5 137 827 136 874.8c-0.1 4.5 3.5 8.2 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zM616 728h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1c1.1-1.4 1.7-3.2 1.7-4.9 0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8 0.1 17.7 14.4 32 32.1 32zM856 792H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1c-1.1 1.4-1.7 3.2-1.7 4.9 0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-0.1-17.7-14.4-32-32.1-32z"},child:[]}]})(n)}function c7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"},child:[]}]})(n)}function d7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"},child:[]}]})(n)}function u7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"},child:[]}]})(n)}function h7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M10.5 8a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0z"},child:[]},{tag:"path",attr:{d:"M0 8s3-5.5 8-5.5S16 8 16 8s-3 5.5-8 5.5S0 8 0 8zm8 3.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"},child:[]}]})(n)}function f7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"m10.79 12.912-1.614-1.615a3.5 3.5 0 0 1-4.474-4.474l-2.06-2.06C.938 6.278 0 8 0 8s3 5.5 8 5.5a7.029 7.029 0 0 0 2.79-.588zM5.21 3.088A7.028 7.028 0 0 1 8 2.5c5 0 8 5.5 8 5.5s-.939 1.721-2.641 3.238l-2.062-2.062a3.5 3.5 0 0 0-4.474-4.474L5.21 3.089z"},child:[]},{tag:"path",attr:{d:"M5.525 7.646a2.5 2.5 0 0 0 2.829 2.829l-2.83-2.829zm4.95.708-2.829-2.83a2.5 2.5 0 0 1 2.829 2.829zm3.171 6-12-12 .708-.708 12 12-.708.708z"},child:[]}]})(n)}function p7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"},child:[]}]})(n)}function m7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M7 14s-1 0-1-1 1-4 5-4 5 3 5 4-1 1-1 1H7Zm4-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm-5.784 6A2.238 2.238 0 0 1 5 13c0-1.355.68-2.75 1.936-3.72A6.325 6.325 0 0 0 5 9c-4 0-5 3-5 4s1 1 1 1h4.216ZM4.5 8a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"},child:[]}]})(n)}function g7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"},child:[]}]})(n)}function v7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"},child:[]}]})(n)}function y7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"},child:[]}]})(n)}function _7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M2.5 1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1H3v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V4h.5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1H2.5zm3 4a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5zM8 5a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7A.5.5 0 0 1 8 5zm3 .5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 1 0z"},child:[]}]})(n)}function E7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M11.182.008C11.148-.03 9.923.023 8.857 1.18c-1.066 1.156-.902 2.482-.878 2.516.024.034 1.52.087 2.475-1.258.955-1.345.762-2.391.728-2.43Zm3.314 11.733c-.048-.096-2.325-1.234-2.113-3.422.212-2.189 1.675-2.789 1.698-2.854.023-.065-.597-.79-1.254-1.157a3.692 3.692 0 0 0-1.563-.434c-.108-.003-.483-.095-1.254.116-.508.139-1.653.589-1.968.607-.316.018-1.256-.522-2.267-.665-.647-.125-1.333.131-1.824.328-.49.196-1.422.754-2.074 2.237-.652 1.482-.311 3.83-.067 4.56.244.729.625 1.924 1.273 2.796.576.984 1.34 1.667 1.659 1.899.319.232 1.219.386 1.843.067.502-.308 1.408-.485 1.766-.472.357.013 1.061.154 1.782.539.571.197 1.111.115 1.652-.105.541-.221 1.324-1.059 2.238-2.758.347-.79.505-1.217.473-1.282Z"},child:[]},{tag:"path",attr:{d:"M11.182.008C11.148-.03 9.923.023 8.857 1.18c-1.066 1.156-.902 2.482-.878 2.516.024.034 1.52.087 2.475-1.258.955-1.345.762-2.391.728-2.43Zm3.314 11.733c-.048-.096-2.325-1.234-2.113-3.422.212-2.189 1.675-2.789 1.698-2.854.023-.065-.597-.79-1.254-1.157a3.692 3.692 0 0 0-1.563-.434c-.108-.003-.483-.095-1.254.116-.508.139-1.653.589-1.968.607-.316.018-1.256-.522-2.267-.665-.647-.125-1.333.131-1.824.328-.49.196-1.422.754-2.074 2.237-.652 1.482-.311 3.83-.067 4.56.244.729.625 1.924 1.273 2.796.576.984 1.34 1.667 1.659 1.899.319.232 1.219.386 1.843.067.502-.308 1.408-.485 1.766-.472.357.013 1.061.154 1.782.539.571.197 1.111.115 1.652-.105.541-.221 1.324-1.059 2.238-2.758.347-.79.505-1.217.473-1.282Z"},child:[]}]})(n)}function w7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M1 11.5a.5.5 0 0 0 .5.5h11.793l-3.147 3.146a.5.5 0 0 0 .708.708l4-4a.5.5 0 0 0 0-.708l-4-4a.5.5 0 0 0-.708.708L13.293 11H1.5a.5.5 0 0 0-.5.5zm14-7a.5.5 0 0 1-.5.5H2.707l3.147 3.146a.5.5 0 1 1-.708.708l-4-4a.5.5 0 0 1 0-.708l4-4a.5.5 0 1 1 .708.708L2.707 4H14.5a.5.5 0 0 1 .5.5z"},child:[]}]})(n)}function S7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8.277.084a.5.5 0 0 0-.554 0l-7.5 5A.5.5 0 0 0 .5 6h1.875v7H1.5a.5.5 0 0 0 0 1h13a.5.5 0 1 0 0-1h-.875V6H15.5a.5.5 0 0 0 .277-.916l-7.5-5zM12.375 6v7h-1.25V6h1.25zm-2.5 0v7h-1.25V6h1.25zm-2.5 0v7h-1.25V6h1.25zm-2.5 0v7h-1.25V6h1.25zM8 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM.5 15a.5.5 0 0 0 0 1h15a.5.5 0 1 0 0-1H.5z"},child:[]}]})(n)}function b7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 16a2 2 0 0 0 2-2H6a2 2 0 0 0 2 2zm.995-14.901a1 1 0 1 0-1.99 0A5.002 5.002 0 0 0 3 6c0 1.098-.5 6-2 7h14c-1.5-1-2-5.902-2-7 0-2.42-1.72-4.44-4.005-4.901z"},child:[]}]})(n)}function C7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.5a1 1 0 0 0-.8.4l-1.9 2.533a1 1 0 0 1-1.6 0L5.3 12.4a1 1 0 0 0-.8-.4H2a2 2 0 0 1-2-2V2zm3.5 1a.5.5 0 0 0 0 1h9a.5.5 0 0 0 0-1h-9zm0 2.5a.5.5 0 0 0 0 1h9a.5.5 0 0 0 0-1h-9zm0 2.5a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5z"},child:[]}]})(n)}function T7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"},child:[]}]})(n)}function R7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"},child:[]}]})(n)}function x7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"},child:[]}]})(n)}function A7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8.515 1.019A7 7 0 0 0 8 1V0a8 8 0 0 1 .589.022l-.074.997zm2.004.45a7.003 7.003 0 0 0-.985-.299l.219-.976c.383.086.76.2 1.126.342l-.36.933zm1.37.71a7.01 7.01 0 0 0-.439-.27l.493-.87a8.025 8.025 0 0 1 .979.654l-.615.789a6.996 6.996 0 0 0-.418-.302zm1.834 1.79a6.99 6.99 0 0 0-.653-.796l.724-.69c.27.285.52.59.747.91l-.818.576zm.744 1.352a7.08 7.08 0 0 0-.214-.468l.893-.45a7.976 7.976 0 0 1 .45 1.088l-.95.313a7.023 7.023 0 0 0-.179-.483zm.53 2.507a6.991 6.991 0 0 0-.1-1.025l.985-.17c.067.386.106.778.116 1.17l-1 .025zm-.131 1.538c.033-.17.06-.339.081-.51l.993.123a7.957 7.957 0 0 1-.23 1.155l-.964-.267c.046-.165.086-.332.12-.501zm-.952 2.379c.184-.29.346-.594.486-.908l.914.405c-.16.36-.345.706-.555 1.038l-.845-.535zm-.964 1.205c.122-.122.239-.248.35-.378l.758.653a8.073 8.073 0 0 1-.401.432l-.707-.707z"},child:[]},{tag:"path",attr:{d:"M8 1a7 7 0 1 0 4.95 11.95l.707.707A8.001 8.001 0 1 1 8 0v1z"},child:[]},{tag:"path",attr:{d:"M7.5 3a.5.5 0 0 1 .5.5v5.21l3.248 1.856a.5.5 0 0 1-.496.868l-3.5-2A.5.5 0 0 1 7 9V3.5a.5.5 0 0 1 .5-.5z"},child:[]}]})(n)}function I7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 1v3H1V1h5zM1 0a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1H1zm14 12v3h-5v-3h5zm-5-1a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-5zM6 8v7H1V8h5zM1 7a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H1zm14-6v7h-5V1h5zm-5-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1h-5z"},child:[]}]})(n)}function N7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M6 3.5A1.5 1.5 0 0 1 7.5 2h1A1.5 1.5 0 0 1 10 3.5v1A1.5 1.5 0 0 1 8.5 6v1H14a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-1 0V8h-5v.5a.5.5 0 0 1-1 0V8h-5v.5a.5.5 0 0 1-1 0v-1A.5.5 0 0 1 2 7h5.5V6A1.5 1.5 0 0 1 6 4.5v-1zM8.5 5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1zM0 11.5A1.5 1.5 0 0 1 1.5 10h1A1.5 1.5 0 0 1 4 11.5v1A1.5 1.5 0 0 1 2.5 14h-1A1.5 1.5 0 0 1 0 12.5v-1zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1zm4.5.5A1.5 1.5 0 0 1 7.5 10h1a1.5 1.5 0 0 1 1.5 1.5v1A1.5 1.5 0 0 1 8.5 14h-1A1.5 1.5 0 0 1 6 12.5v-1zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1zm4.5.5a1.5 1.5 0 0 1 1.5-1.5h1a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1-1.5 1.5h-1a1.5 1.5 0 0 1-1.5-1.5v-1zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1z"},child:[]}]})(n)}function O7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2Zm13 2.383-4.708 2.825L15 11.105V5.383Zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741ZM1 11.105l4.708-2.897L1 5.383v5.722Z"},child:[]}]})(n)}function GO(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"},child:[]},{tag:"path",attr:{d:"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z"},child:[]}]})(n)}function P7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.6 11.85H0v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173.203-.117.358-.275.463-.474a1.42 1.42 0 0 0 .161-.677c0-.25-.053-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38.574.574 0 0 1-.238.241.794.794 0 0 1-.375.082H.788V12.48h.66c.218 0 .389.06.512.181.123.122.185.296.185.522Zm1.217-1.333v3.999h1.46c.401 0 .734-.08.998-.237a1.45 1.45 0 0 0 .595-.689c.13-.3.196-.662.196-1.084 0-.42-.065-.778-.196-1.075a1.426 1.426 0 0 0-.589-.68c-.264-.156-.599-.234-1.005-.234H3.362Zm.791.645h.563c.248 0 .45.05.609.152a.89.89 0 0 1 .354.454c.079.201.118.452.118.753a2.3 2.3 0 0 1-.068.592 1.14 1.14 0 0 1-.196.422.8.8 0 0 1-.334.252 1.298 1.298 0 0 1-.483.082h-.563v-2.707Zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638H7.896Z"},child:[]}]})(n)}function L7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"},child:[]}]})(n)}function D7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M1.5 1.5A.5.5 0 0 1 2 1h12a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.128.334L10 8.692V13.5a.5.5 0 0 1-.342.474l-3 1A.5.5 0 0 1 6 14.5V8.692L1.628 3.834A.5.5 0 0 1 1.5 3.5v-2z"},child:[]}]})(n)}function k7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z"},child:[]}]})(n)}function M7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492zM5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0z"},child:[]},{tag:"path",attr:{d:"M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52l-.094-.319zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115l.094-.319z"},child:[]}]})(n)}function j7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A31.493 31.493 0 0 1 8 14.58a31.481 31.481 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94zM8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10z"},child:[]},{tag:"path",attr:{d:"M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"},child:[]}]})(n)}function U7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 3a5 5 0 0 0-5 5v1h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a6 6 0 1 1 12 0v5a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1V8a5 5 0 0 0-5-5z"},child:[]}]})(n)}function F7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 1a5 5 0 0 0-5 5v1h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a6 6 0 1 1 12 0v6a2.5 2.5 0 0 1-2.5 2.5H9.366a1 1 0 0 1-.866.5h-1a1 1 0 1 1 0-2h1a1 1 0 0 1 .866.5H11.5A1.5 1.5 0 0 0 13 12h-1a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h1V6a5 5 0 0 0-5-5z"},child:[]}]})(n)}function B7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6.002 5.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"},child:[]},{tag:"path",attr:{d:"M2.002 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2h-12zm12 1a1 1 0 0 1 1 1v6.5l-3.777-1.947a.5.5 0 0 0-.577.093l-3.71 3.71-2.66-1.772a.5.5 0 0 0-.63.062L1.002 12V3a1 1 0 0 1 1-1h12z"},child:[]}]})(n)}function V7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M4.502 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"},child:[]},{tag:"path",attr:{d:"M14.002 13a2 2 0 0 1-2 2h-10a2 2 0 0 1-2-2V5A2 2 0 0 1 2 3a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v8a2 2 0 0 1-1.998 2zM14 2H4a1 1 0 0 0-1 1h9.002a2 2 0 0 1 2 2v7A1 1 0 0 0 15 11V3a1 1 0 0 0-1-1zM2.002 4a1 1 0 0 0-1 1v8l2.646-2.354a.5.5 0 0 1 .63-.062l2.66 1.773 3.71-3.71a.5.5 0 0 1 .577-.094l1.777 1.947V5a1 1 0 0 0-1-1h-10z"},child:[]}]})(n)}function z7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"},child:[]},{tag:"path",attr:{d:"m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"},child:[]}]})(n)}function H7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"},child:[]},{tag:"path",attr:{d:"M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"},child:[]}]})(n)}function G7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M5.933.87a2.89 2.89 0 0 1 4.134 0l.622.638.89-.011a2.89 2.89 0 0 1 2.924 2.924l-.01.89.636.622a2.89 2.89 0 0 1 0 4.134l-.637.622.011.89a2.89 2.89 0 0 1-2.924 2.924l-.89-.01-.622.636a2.89 2.89 0 0 1-4.134 0l-.622-.637-.89.011a2.89 2.89 0 0 1-2.924-2.924l.01-.89-.636-.622a2.89 2.89 0 0 1 0-4.134l.637-.622-.011-.89a2.89 2.89 0 0 1 2.924-2.924l.89.01.622-.636zM7.002 11a1 1 0 1 0 2 0 1 1 0 0 0-2 0zm1.602-2.027c.04-.534.198-.815.846-1.26.674-.475 1.05-1.09 1.05-1.986 0-1.325-.92-2.227-2.262-2.227-1.02 0-1.792.492-2.1 1.29A1.71 1.71 0 0 0 6 5.48c0 .393.203.64.545.64.272 0 .455-.147.564-.51.158-.592.525-.915 1.074-.915.61 0 1.03.446 1.03 1.084 0 .563-.208.885-.822 1.325-.619.433-.926.914-.926 1.64v.111c0 .428.208.745.585.745.336 0 .504-.24.554-.627z"},child:[]}]})(n)}function W7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8.05 9.6c.336 0 .504-.24.554-.627.04-.534.198-.815.847-1.26.673-.475 1.049-1.09 1.049-1.986 0-1.325-.92-2.227-2.262-2.227-1.02 0-1.792.492-2.1 1.29A1.71 1.71 0 0 0 6 5.48c0 .393.203.64.545.64.272 0 .455-.147.564-.51.158-.592.525-.915 1.074-.915.61 0 1.03.446 1.03 1.084 0 .563-.208.885-.822 1.325-.619.433-.926.914-.926 1.64v.111c0 .428.208.745.585.745z"},child:[]},{tag:"path",attr:{d:"m10.273 2.513-.921-.944.715-.698.622.637.89-.011a2.89 2.89 0 0 1 2.924 2.924l-.01.89.636.622a2.89 2.89 0 0 1 0 4.134l-.637.622.011.89a2.89 2.89 0 0 1-2.924 2.924l-.89-.01-.622.636a2.89 2.89 0 0 1-4.134 0l-.622-.637-.89.011a2.89 2.89 0 0 1-2.924-2.924l.01-.89-.636-.622a2.89 2.89 0 0 1 0-4.134l.637-.622-.011-.89a2.89 2.89 0 0 1 2.924-2.924l.89.01.622-.636a2.89 2.89 0 0 1 4.134 0l-.715.698a1.89 1.89 0 0 0-2.704 0l-.92.944-1.32-.016a1.89 1.89 0 0 0-1.911 1.912l.016 1.318-.944.921a1.89 1.89 0 0 0 0 2.704l.944.92-.016 1.32a1.89 1.89 0 0 0 1.912 1.911l1.318-.016.921.944a1.89 1.89 0 0 0 2.704 0l.92-.944 1.32.016a1.89 1.89 0 0 0 1.911-1.912l-.016-1.318.944-.921a1.89 1.89 0 0 0 0-2.704l-.944-.92.016-1.32a1.89 1.89 0 0 0-1.912-1.911l-1.318.016z"},child:[]},{tag:"path",attr:{d:"M7.001 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0z"},child:[]}]})(n)}function $7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z"},child:[]}]})(n)}function K7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"},child:[]},{tag:"path",attr:{fillRule:"evenodd",d:"M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"},child:[]}]})(n)}function q7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"},child:[]}]})(n)}function Y7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M15 14s1 0 1-1-1-4-5-4-5 3-5 4 1 1 1 1h8Zm-7.978-1A.261.261 0 0 1 7 12.996c.001-.264.167-1.03.76-1.72C8.312 10.629 9.282 10 11 10c1.717 0 2.687.63 3.24 1.276.593.69.758 1.457.76 1.72l-.008.002a.274.274 0 0 1-.014.002H7.022ZM11 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm3-2a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM6.936 9.28a5.88 5.88 0 0 0-1.23-.247A7.35 7.35 0 0 0 5 9c-4 0-5 3-5 4 0 .667.333 1 1 1h4.216A2.238 2.238 0 0 1 5 13c0-1.01.377-2.042 1.09-2.904.243-.294.526-.569.846-.816ZM4.92 10A5.493 5.493 0 0 0 4 13H1c0-.26.164-1.03.76-1.724.545-.636 1.492-1.256 3.16-1.275ZM1.5 5.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm3-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"},child:[]}]})(n)}function X7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6.5 2a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"},child:[]},{tag:"path",attr:{d:"M4.5 0A2.5 2.5 0 0 0 2 2.5V14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2.5A2.5 2.5 0 0 0 11.5 0h-7zM3 2.5A1.5 1.5 0 0 1 4.5 1h7A1.5 1.5 0 0 1 13 2.5v10.795a4.2 4.2 0 0 0-.776-.492C11.392 12.387 10.063 12 8 12s-3.392.387-4.224.803a4.2 4.2 0 0 0-.776.492V2.5z"},child:[]}]})(n)}function J7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M12.5 16a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm1.679-4.493-1.335 2.226a.75.75 0 0 1-1.174.144l-.774-.773a.5.5 0 0 1 .708-.708l.547.548 1.17-1.951a.5.5 0 1 1 .858.514ZM11 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM8 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"},child:[]},{tag:"path",attr:{d:"M8.256 14a4.474 4.474 0 0 1-.229-1.004H3c.001-.246.154-.986.832-1.664C4.484 10.68 5.711 10 8 10c.26 0 .507.009.74.025.226-.341.496-.65.804-.918C9.077 9.038 8.564 9 8 9c-5 0-6 3-6 4s1 1 1 1h5.256Z"},child:[]}]})(n)}function Q7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-5 6s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H1zM11 3.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5zm.5 2.5a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4zm2 3a.5.5 0 0 0 0 1h2a.5.5 0 0 0 0-1h-2zm0 3a.5.5 0 0 0 0 1h2a.5.5 0 0 0 0-1h-2z"},child:[]}]})(n)}function Z7e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 9.05a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"},child:[]},{tag:"path",attr:{d:"M1 1a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h.5a.5.5 0 0 0 .5-.5.5.5 0 0 1 1 0 .5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5.5.5 0 0 1 1 0 .5.5 0 0 0 .5.5h.5a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H6.707L6 1.293A1 1 0 0 0 5.293 1H1Zm0 1h4.293L6 2.707A1 1 0 0 0 6.707 3H15v10h-.085a1.5 1.5 0 0 0-2.4-.63C11.885 11.223 10.554 10 8 10c-2.555 0-3.886 1.224-4.514 2.37a1.5 1.5 0 0 0-2.4.63H1V2Z"},child:[]}]})(n)}function e9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"},child:[]},{tag:"path",attr:{d:"M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm12 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1v-1c0-1-1-4-6-4s-6 3-6 4v1a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12z"},child:[]}]})(n)}function t9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M4 16s-1 0-1-1 1-4 5-4 5 3 5 4-1 1-1 1H4Zm4-5.95a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"},child:[]},{tag:"path",attr:{d:"M2 1a2 2 0 0 0-2 2v9.5A1.5 1.5 0 0 0 1.5 14h.653a5.373 5.373 0 0 1 1.066-2H1V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v9h-2.219c.554.654.89 1.373 1.066 2h.653a1.5 1.5 0 0 0 1.5-1.5V3a2 2 0 0 0-2-2H2Z"},child:[]}]})(n)}function n9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z"},child:[]}]})(n)}function i9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M0 12V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm6.79-6.907A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814l-3.5-2.5z"},child:[]}]})(n)}function r9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6.79 5.093A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814l-3.5-2.5z"},child:[]},{tag:"path",attr:{d:"M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z"},child:[]}]})(n)}function s9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM6.79 5.093A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814l-3.5-2.5z"},child:[]}]})(n)}function a9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"},child:[]}]})(n)}function o9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"},child:[]},{tag:"path",attr:{d:"M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z"},child:[]}]})(n)}function l9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z"},child:[]}]})(n)}function c9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.302 1.256a1.5 1.5 0 0 0-2.604 0l-1.704 2.98a.5.5 0 0 0 .869.497l1.703-2.981a.5.5 0 0 1 .868 0l2.54 4.444-1.256-.337a.5.5 0 1 0-.26.966l2.415.647a.5.5 0 0 0 .613-.353l.647-2.415a.5.5 0 1 0-.966-.259l-.333 1.242-2.532-4.431zM2.973 7.773l-1.255.337a.5.5 0 1 1-.26-.966l2.416-.647a.5.5 0 0 1 .612.353l.647 2.415a.5.5 0 0 1-.966.259l-.333-1.242-2.545 4.454a.5.5 0 0 0 .434.748H5a.5.5 0 0 1 0 1H1.723A1.5 1.5 0 0 1 .421 12.24l2.552-4.467zm10.89 1.463a.5.5 0 1 0-.868.496l1.716 3.004a.5.5 0 0 1-.434.748h-5.57l.647-.646a.5.5 0 1 0-.708-.707l-1.5 1.5a.498.498 0 0 0 0 .707l1.5 1.5a.5.5 0 1 0 .708-.707l-.647-.647h5.57a1.5 1.5 0 0 0 1.302-2.244l-1.716-3.004z"},child:[]}]})(n)}function d9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"},child:[]}]})(n)}function u9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M13.5 1a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM11 2.5a2.5 2.5 0 1 1 .603 1.628l-6.718 3.12a2.499 2.499 0 0 1 0 1.504l6.718 3.12a2.5 2.5 0 1 1-.488.876l-6.718-3.12a2.5 2.5 0 1 1 0-3.256l6.718-3.12A2.5 2.5 0 0 1 11 2.5zm-8.5 4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm11 5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"},child:[]}]})(n)}function h9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"},child:[]}]})(n)}function f9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"},child:[]}]})(n)}function p9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"},child:[]}]})(n)}function m9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M2.5.5A.5.5 0 0 1 3 0h10a.5.5 0 0 1 .5.5c0 .538-.012 1.05-.034 1.536a3 3 0 1 1-1.133 5.89c-.79 1.865-1.878 2.777-2.833 3.011v2.173l1.425.356c.194.048.377.135.537.255L13.3 15.1a.5.5 0 0 1-.3.9H3a.5.5 0 0 1-.3-.9l1.838-1.379c.16-.12.343-.207.537-.255L6.5 13.11v-2.173c-.955-.234-2.043-1.146-2.833-3.012a3 3 0 1 1-1.132-5.89A33.076 33.076 0 0 1 2.5.5zm.099 2.54a2 2 0 0 0 .72 3.935c-.333-1.05-.588-2.346-.72-3.935zm10.083 3.935a2 2 0 0 0 .72-3.935c-.133 1.59-.388 2.885-.72 3.935zM3.504 1c.007.517.026 1.006.056 1.469.13 2.028.457 3.546.87 4.667C5.294 9.48 6.484 10 7 10a.5.5 0 0 1 .5.5v2.61a1 1 0 0 1-.757.97l-1.426.356a.5.5 0 0 0-.179.085L4.5 15h7l-.638-.479a.501.501 0 0 0-.18-.085l-1.425-.356a1 1 0 0 1-.757-.97V10.5A.5.5 0 0 1 9 10c.516 0 1.706-.52 2.57-2.864.413-1.12.74-2.64.87-4.667.03-.463.049-.952.056-1.469H3.504z"},child:[]}]})(n)}function g9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"m2.244 13.081.943-2.803H6.66l.944 2.803H8.86L5.54 3.75H4.322L1 13.081h1.244zm2.7-7.923L6.34 9.314H3.51l1.4-4.156h.034zm9.146 7.027h.035v.896h1.128V8.125c0-1.51-1.114-2.345-2.646-2.345-1.736 0-2.59.916-2.666 2.174h1.108c.068-.718.595-1.19 1.517-1.19.971 0 1.518.52 1.518 1.464v.731H12.19c-1.647.007-2.522.8-2.522 2.058 0 1.319.957 2.18 2.345 2.18 1.06 0 1.716-.43 2.078-1.011zm-1.763.035c-.752 0-1.456-.397-1.456-1.244 0-.65.424-1.115 1.408-1.115h1.805v.834c0 .896-.752 1.525-1.757 1.525z"},child:[]}]})(n)}function v9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M2.273 9.53a2.273 2.273 0 1 0 0-4.546 2.273 2.273 0 0 0 0 4.547Zm9.467-4.984a2.273 2.273 0 1 0 0-4.546 2.273 2.273 0 0 0 0 4.546ZM7.4 13.108a5.535 5.535 0 0 1-3.775-2.88 3.273 3.273 0 0 1-1.944.24 7.4 7.4 0 0 0 5.328 4.465c.53.113 1.072.169 1.614.166a3.253 3.253 0 0 1-.666-1.9 5.639 5.639 0 0 1-.557-.091Zm3.828 2.285a2.273 2.273 0 1 0 0-4.546 2.273 2.273 0 0 0 0 4.546Zm3.163-3.108a7.436 7.436 0 0 0 .373-8.726 3.276 3.276 0 0 1-1.278 1.498 5.573 5.573 0 0 1-.183 5.535 3.26 3.26 0 0 1 1.088 1.693ZM2.098 3.998a3.28 3.28 0 0 1 1.897.486 5.544 5.544 0 0 1 4.464-2.388c.037-.67.277-1.313.69-1.843a7.472 7.472 0 0 0-7.051 3.745Z"},child:[]}]})(n)}function y9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z"},child:[]}]})(n)}function _9e(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"},child:[]},{tag:"path",attr:{d:"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"},child:[]}]})(n)}function VE(n){return Le({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"},child:[]}]})(n)}function E9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 1c3.681 0 7 2.565 7 6v4.539c0 .642.189 1.269.545 1.803l2.2 3.298A1.517 1.517 0 0 1 20.482 19H15.5a3.5 3.5 0 1 1-7 0H3.519a1.518 1.518 0 0 1-1.265-2.359l2.2-3.299A3.25 3.25 0 0 0 5 11.539V7c0-3.435 3.318-6 7-6ZM6.5 7v4.539a4.75 4.75 0 0 1-.797 2.635l-2.2 3.298-.003.01.001.007.004.006.006.004.007.001h16.964l.007-.001.006-.004.004-.006.001-.006a.017.017 0 0 0-.003-.01l-2.199-3.299a4.753 4.753 0 0 1-.798-2.635V7c0-2.364-2.383-4.5-5.5-4.5S6.5 4.636 6.5 7ZM14 19h-4a2 2 0 1 0 4 0Z"},child:[]}]})(n)}function w9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M6 8a6 6 0 1 1 12 0v2.917c0 .703.228 1.387.65 1.95L20.7 15.6a1.5 1.5 0 0 1-1.2 2.4h-15a1.5 1.5 0 0 1-1.2-2.4l2.05-2.733a3.25 3.25 0 0 0 .65-1.95Zm6 13.5A3.502 3.502 0 0 1 8.645 19h6.71A3.502 3.502 0 0 1 12 21.5Z"},child:[]}]})(n)}function S9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M0 3.75A.75.75 0 0 1 .75 3h7.497c1.566 0 2.945.8 3.751 2.014A4.495 4.495 0 0 1 15.75 3h7.5a.75.75 0 0 1 .75.75v15.063a.752.752 0 0 1-.755.75l-7.682-.052a3 3 0 0 0-2.142.878l-.89.891a.75.75 0 0 1-1.061 0l-.902-.901a2.996 2.996 0 0 0-2.121-.879H.75a.75.75 0 0 1-.75-.75Zm12.75 15.232a4.503 4.503 0 0 1 2.823-.971l6.927.047V4.5h-6.75a3 3 0 0 0-3 3ZM11.247 7.497a3 3 0 0 0-3-2.997H1.5V18h6.947c1.018 0 2.006.346 2.803.98Z"},child:[]}]})(n)}function b9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0Zm-1.5 0a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"},child:[]},{tag:"path",attr:{d:"M12 1c.266 0 .532.009.797.028.763.055 1.345.617 1.512 1.304l.352 1.45c.019.078.09.171.225.221.247.089.49.19.728.302.13.061.246.044.315.002l1.275-.776c.603-.368 1.411-.353 1.99.147.402.349.78.726 1.128 1.129.501.578.515 1.386.147 1.99l-.776 1.274c-.042.069-.058.185.002.315.112.238.213.481.303.728.048.135.142.205.22.225l1.45.352c.687.167 1.249.749 1.303 1.512.038.531.038 1.063 0 1.594-.054.763-.616 1.345-1.303 1.512l-1.45.352c-.078.019-.171.09-.221.225-.089.248-.19.491-.302.728-.061.13-.044.246-.002.315l.776 1.275c.368.603.353 1.411-.147 1.99-.349.402-.726.78-1.129 1.128-.578.501-1.386.515-1.99.147l-1.274-.776c-.069-.042-.185-.058-.314.002a8.606 8.606 0 0 1-.729.303c-.135.048-.205.142-.225.22l-.352 1.45c-.167.687-.749 1.249-1.512 1.303-.531.038-1.063.038-1.594 0-.763-.054-1.345-.616-1.512-1.303l-.352-1.45c-.019-.078-.09-.171-.225-.221a8.138 8.138 0 0 1-.728-.302c-.13-.061-.246-.044-.315-.002l-1.275.776c-.603.368-1.411.353-1.99-.147-.402-.349-.78-.726-1.128-1.129-.501-.578-.515-1.386-.147-1.99l.776-1.274c.042-.069.058-.185-.002-.314a8.606 8.606 0 0 1-.303-.729c-.048-.135-.142-.205-.22-.225l-1.45-.352c-.687-.167-1.249-.749-1.304-1.512a11.158 11.158 0 0 1 0-1.594c.055-.763.617-1.345 1.304-1.512l1.45-.352c.078-.019.171-.09.221-.225.089-.248.19-.491.302-.728.061-.13.044-.246.002-.315l-.776-1.275c-.368-.603-.353-1.411.147-1.99.349-.402.726-.78 1.129-1.128.578-.501 1.386-.515 1.99-.147l1.274.776c.069.042.185.058.315-.002.238-.112.481-.213.728-.303.135-.048.205-.142.225-.22l.352-1.45c.167-.687.749-1.249 1.512-1.304C11.466 1.01 11.732 1 12 1Zm-.69 1.525c-.055.004-.135.05-.161.161l-.353 1.45a1.832 1.832 0 0 1-1.172 1.277 7.147 7.147 0 0 0-.6.249 1.833 1.833 0 0 1-1.734-.074l-1.274-.776c-.098-.06-.186-.036-.228 0a9.774 9.774 0 0 0-.976.976c-.036.042-.06.131 0 .228l.776 1.274c.314.529.342 1.18.074 1.734a7.147 7.147 0 0 0-.249.6 1.831 1.831 0 0 1-1.278 1.173l-1.45.351c-.11.027-.156.107-.16.162a9.63 9.63 0 0 0 0 1.38c.004.055.05.135.161.161l1.45.353a1.832 1.832 0 0 1 1.277 1.172c.074.204.157.404.249.6.268.553.24 1.204-.074 1.733l-.776 1.275c-.06.098-.036.186 0 .228.301.348.628.675.976.976.042.036.131.06.228 0l1.274-.776a1.83 1.83 0 0 1 1.734-.075c.196.093.396.176.6.25a1.831 1.831 0 0 1 1.173 1.278l.351 1.45c.027.11.107.156.162.16a9.63 9.63 0 0 0 1.38 0c.055-.004.135-.05.161-.161l.353-1.45a1.834 1.834 0 0 1 1.172-1.278 6.82 6.82 0 0 0 .6-.248 1.831 1.831 0 0 1 1.733.074l1.275.776c.098.06.186.036.228 0 .348-.301.675-.628.976-.976.036-.042.06-.131 0-.228l-.776-1.275a1.834 1.834 0 0 1-.075-1.733c.093-.196.176-.396.25-.6a1.831 1.831 0 0 1 1.278-1.173l1.45-.351c.11-.027.156-.107.16-.162a9.63 9.63 0 0 0 0-1.38c-.004-.055-.05-.135-.161-.161l-1.45-.353c-.626-.152-1.08-.625-1.278-1.172a6.576 6.576 0 0 0-.248-.6 1.833 1.833 0 0 1 .074-1.734l.776-1.274c.06-.098.036-.186 0-.228a9.774 9.774 0 0 0-.976-.976c-.042-.036-.131-.06-.228 0l-1.275.776a1.831 1.831 0 0 1-1.733.074 6.88 6.88 0 0 0-.6-.249 1.835 1.835 0 0 1-1.173-1.278l-.351-1.45c-.027-.11-.107-.156-.162-.16a9.63 9.63 0 0 0-1.38 0Z"},child:[]}]})(n)}function C9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M14 20.408c-.492.308-.903.546-1.192.709-.153.086-.308.17-.463.252h-.002a.75.75 0 0 1-.686 0 16.709 16.709 0 0 1-.465-.252 31.147 31.147 0 0 1-4.803-3.34C3.8 15.572 1 12.331 1 8.513 1 5.052 3.829 2.5 6.736 2.5 9.03 2.5 10.881 3.726 12 5.605 13.12 3.726 14.97 2.5 17.264 2.5 20.17 2.5 23 5.052 23 8.514c0 3.818-2.801 7.06-5.389 9.262A31.146 31.146 0 0 1 14 20.408Z"},child:[]}]})(n)}function T9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 2.5c-3.81 0-6.5 2.743-6.5 6.119 0 1.536.632 2.572 1.425 3.56.172.215.347.422.527.635l.096.112c.21.25.427.508.63.774.404.531.783 1.128.995 1.834a.75.75 0 0 1-1.436.432c-.138-.46-.397-.89-.753-1.357a18.111 18.111 0 0 0-.582-.714l-.092-.11c-.18-.212-.37-.436-.555-.667C4.87 12.016 4 10.651 4 8.618 4 4.363 7.415 1 12 1s8 3.362 8 7.619c0 2.032-.87 3.397-1.755 4.5-.185.23-.375.454-.555.667l-.092.109c-.21.248-.405.481-.582.714-.356.467-.615.898-.753 1.357a.751.751 0 0 1-1.437-.432c.213-.706.592-1.303.997-1.834.202-.266.419-.524.63-.774l.095-.112c.18-.213.355-.42.527-.634.793-.99 1.425-2.025 1.425-3.561C18.5 5.243 15.81 2.5 12 2.5ZM8.75 18h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5Zm.75 3.75a.75.75 0 0 1 .75-.75h3.5a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1-.75-.75Z"},child:[]}]})(n)}function R9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M0 4.75C0 3.784.784 3 1.75 3h20.5c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0 1 22.25 21H1.75A1.75 1.75 0 0 1 0 19.25Zm1.75-.25a.25.25 0 0 0-.25.25v14.5c0 .138.112.25.25.25h20.5a.25.25 0 0 0 .25-.25V4.75a.25.25 0 0 0-.25-.25Z"},child:[]},{tag:"path",attr:{d:"M5 8.75A.75.75 0 0 1 5.75 8h11.5a.75.75 0 0 1 0 1.5H5.75A.75.75 0 0 1 5 8.75Zm0 4a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75Z"},child:[]}]})(n)}function x9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m12.672.668 3.059 6.197 6.838.993a.75.75 0 0 1 .416 1.28l-4.948 4.823 1.168 6.812a.75.75 0 0 1-1.088.79L12 18.347l-6.116 3.216a.75.75 0 0 1-1.088-.791l1.168-6.811-4.948-4.823a.749.749 0 0 1 .416-1.279l6.838-.994L11.327.668a.75.75 0 0 1 1.345 0Z"},child:[]}]})(n)}function A9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M3.38 8A9.502 9.502 0 0 1 12 2.5a9.502 9.502 0 0 1 9.215 7.182.75.75 0 1 0 1.456-.364C21.473 4.539 17.15 1 12 1a10.995 10.995 0 0 0-9.5 5.452V4.75a.75.75 0 0 0-1.5 0V8.5a1 1 0 0 0 1 1h3.75a.75.75 0 0 0 0-1.5H3.38Zm-.595 6.318a.75.75 0 0 0-1.455.364C2.527 19.461 6.85 23 12 23c4.052 0 7.592-2.191 9.5-5.451v1.701a.75.75 0 0 0 1.5 0V15.5a1 1 0 0 0-1-1h-3.75a.75.75 0 0 0 0 1.5h2.37A9.502 9.502 0 0 1 12 21.5c-4.446 0-8.181-3.055-9.215-7.182Z"},child:[]}]})(n)}function I9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16 1.75V3h5.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H8V1.75C8 .784 8.784 0 9.75 0h4.5C15.216 0 16 .784 16 1.75Zm-6.5 0V3h5V1.75a.25.25 0 0 0-.25-.25h-4.5a.25.25 0 0 0-.25.25ZM4.997 6.178a.75.75 0 1 0-1.493.144L4.916 20.92a1.75 1.75 0 0 0 1.742 1.58h10.684a1.75 1.75 0 0 0 1.742-1.581l1.413-14.597a.75.75 0 0 0-1.494-.144l-1.412 14.596a.25.25 0 0 1-.249.226H6.658a.25.25 0 0 1-.249-.226L4.997 6.178Z"},child:[]},{tag:"path",attr:{d:"M9.206 7.501a.75.75 0 0 1 .793.705l.5 8.5A.75.75 0 1 1 9 16.794l-.5-8.5a.75.75 0 0 1 .705-.793Zm6.293.793A.75.75 0 1 0 14 8.206l-.5 8.5a.75.75 0 0 0 1.498.088l.5-8.5Z"},child:[]}]})(n)}function N9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M5.09 10.121A5.251 5.251 0 0 1 1 5V3.75C1 2.784 1.784 2 2.75 2h2.364c.236-.586.81-1 1.48-1h10.812c.67 0 1.244.414 1.48 1h2.489c.966 0 1.75.784 1.75 1.75V5a5.252 5.252 0 0 1-4.219 5.149 7.01 7.01 0 0 1-4.644 5.478l.231 3.003a.5.5 0 0 0 .034.031c.079.065.303.203.836.282.838.124 1.637.81 1.637 1.807v.75h2.25a.75.75 0 0 1 0 1.5H4.75a.75.75 0 0 1 0-1.5H7v-.75c0-.996.8-1.683 1.637-1.807.533-.08.757-.217.836-.282a.5.5 0 0 0 .034-.031l.231-3.003A7.012 7.012 0 0 1 5.09 10.12ZM6.5 2.594V9a5.5 5.5 0 1 0 11 0V2.594a.094.094 0 0 0-.094-.094H6.594a.094.094 0 0 0-.094.094Zm4.717 13.363-.215 2.793-.001.021-.003.043a1.212 1.212 0 0 1-.022.147c-.05.237-.194.567-.553.86-.348.286-.853.5-1.566.605a.478.478 0 0 0-.274.136.264.264 0 0 0-.083.188v.75h7v-.75a.264.264 0 0 0-.083-.188.478.478 0 0 0-.274-.136c-.713-.105-1.218-.32-1.567-.604-.358-.294-.502-.624-.552-.86a1.22 1.22 0 0 1-.025-.19l-.001-.022-.215-2.793a7.069 7.069 0 0 1-1.566 0ZM19 8.578A3.751 3.751 0 0 0 21.625 5V3.75a.25.25 0 0 0-.25-.25H19ZM5 3.5H2.75a.25.25 0 0 0-.25.25V5A3.752 3.752 0 0 0 5 8.537Z"},child:[]}]})(n)}function O9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M1.75 4.5a.25.25 0 0 0-.25.25v.852l10.36 7a.25.25 0 0 0 .28 0l5.69-3.845A.75.75 0 0 1 18.67 10l-5.69 3.845c-.592.4-1.368.4-1.96 0L1.5 7.412V19.25c0 .138.112.25.25.25h20.5a.25.25 0 0 0 .25-.25v-8.5a.75.75 0 0 1 1.5 0v8.5A1.75 1.75 0 0 1 22.25 21H1.75A1.75 1.75 0 0 1 0 19.25V4.75C0 3.784.784 3 1.75 3h15.5a.75.75 0 0 1 0 1.5H1.75Z"},child:[]},{tag:"path",attr:{d:"M24 5.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z"},child:[]}]})(n)}function P9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13 16.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm-2.517-7.665c.112-.223.268-.424.488-.57C11.186 8.12 11.506 8 12 8c.384 0 .766.118 1.034.319a.953.953 0 0 1 .403.806c0 .48-.218.81-.62 1.186a9.293 9.293 0 0 1-.409.354 19.8 19.8 0 0 0-.294.249c-.246.213-.524.474-.738.795l-.126.19V13.5a.75.75 0 0 0 1.5 0v-1.12c.09-.1.203-.208.347-.333.063-.055.14-.119.222-.187.166-.14.358-.3.52-.452.536-.5 1.098-1.2 1.098-2.283a2.45 2.45 0 0 0-1.003-2.006C13.37 6.695 12.658 6.5 12 6.5c-.756 0-1.373.191-1.861.517a2.944 2.944 0 0 0-.997 1.148.75.75 0 0 0 1.341.67Z"},child:[]},{tag:"path",attr:{d:"M9.864 1.2a3.61 3.61 0 0 1 4.272 0l1.375 1.01c.274.2.593.333.929.384l1.686.259a3.61 3.61 0 0 1 3.021 3.02l.259 1.687c.051.336.183.655.384.929l1.01 1.375a3.61 3.61 0 0 1 0 4.272l-1.01 1.375a2.106 2.106 0 0 0-.384.929l-.259 1.686a3.61 3.61 0 0 1-3.02 3.021l-1.687.259a2.106 2.106 0 0 0-.929.384l-1.375 1.01a3.61 3.61 0 0 1-4.272 0l-1.375-1.01a2.106 2.106 0 0 0-.929-.384l-1.686-.259a3.61 3.61 0 0 1-3.021-3.02l-.259-1.687a2.106 2.106 0 0 0-.384-.929L1.2 14.136a3.61 3.61 0 0 1 0-4.272l1.01-1.375c.201-.274.333-.593.384-.929l.259-1.686a3.61 3.61 0 0 1 3.02-3.021l1.687-.259c.336-.051.655-.183.929-.384Zm3.384 1.209a2.11 2.11 0 0 0-2.496 0l-1.376 1.01a3.61 3.61 0 0 1-1.589.658l-1.686.258a2.111 2.111 0 0 0-1.766 1.766l-.258 1.686a3.614 3.614 0 0 1-.658 1.59l-1.01 1.375a2.11 2.11 0 0 0 0 2.496l1.01 1.376a3.61 3.61 0 0 1 .658 1.589l.258 1.686a2.11 2.11 0 0 0 1.766 1.765l1.686.26a3.613 3.613 0 0 1 1.59.657l1.375 1.01a2.11 2.11 0 0 0 2.496 0l1.376-1.01a3.61 3.61 0 0 1 1.589-.658l1.686-.258a2.11 2.11 0 0 0 1.765-1.766l.26-1.686a3.613 3.613 0 0 1 .657-1.59l1.01-1.375a2.11 2.11 0 0 0 0-2.496l-1.01-1.376a3.61 3.61 0 0 1-.658-1.589l-.258-1.686a2.111 2.111 0 0 0-1.766-1.766l-1.686-.258a3.614 3.614 0 0 1-1.59-.658Z"},child:[]}]})(n)}function L9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M241.063 54.406c-2.31.008-4.61.032-6.907.094-1.805.05-3.61.106-5.406.188-8.814 1.567-12.884 5.426-15.094 9.843-2.435 4.87-2.34 11.423.375 17.25 2.717 5.83 7.7 10.596 14.657 12.376 6.958 1.78 16.536.86 29.125-7.187l10.063 15.75c-15.818 10.11-31.124 12.777-43.813 9.53-12.688-3.247-22.103-12.123-26.968-22.563-4.584-9.836-5.426-21.376-1.03-31.624-42.917 6.94-81.777 23.398-111.626 46.562-9.81 10.688-10.77 23.11-6.47 31.594 4.83 9.526 16.21 16.48 38.97 9.28l5.656 17.813c-28.58 9.04-52.137-.588-61.28-18.625-2.23-4.397-3.592-9.156-4.127-14.063-4.814 5.712-9.16 11.658-13 17.844l.126.06c-8.614 19.616-8.81 33.203-5.376 42.032 3.436 8.83 10.635 14.44 21.72 17.532 22.168 6.18 58.065-1.277 83.343-20.156 10.82-8.08 21.077-27.677 21.97-42.875.445-7.6-1.165-13.604-4.345-17.438-3.18-3.834-8.272-6.703-18.813-6.594l-.187-18.686c14.487-.15 26.25 4.754 33.375 13.344 7.124 8.59 9.26 19.652 8.625 30.468-1.27 21.633-12.595 44.172-29.438 56.75-29.876 22.314-69.336 31.606-99.53 23.188-13.988-3.9-26.37-12.386-32.75-25.53-9.546 45.446 4.323 87.66 30.718 116.874 3.45 3.82 7.122 7.43 10.97 10.78-2.754-7.887-4.016-16.1-3.72-24.093.53-14.325 6.082-28.346 17.22-38.03 9.134-7.946 21.752-12.53 36.843-12.5 1.006 0 2.034.018 3.062.06 2.35.1 4.763.304 7.22.626l-2.44 18.532c-15.588-2.048-25.705 1.522-32.436 7.375-6.73 5.854-10.443 14.614-10.813 24.625-.74 20.024 12.07 43.406 39.69 50.188l-.032.188c27.192 5.19 57.536.372 88-18.22.018-.012.043-.017.062-.03 6.34-4.45 9.755-8.808 11.438-12.563 1.985-4.432 1.943-8.292.53-12.438-2.824-8.29-12.94-16.812-22.218-19.187-15.002-3.84-24.532 1.436-29 7.72-4.468 6.28-4.74 12.45 2.156 17.81l-11.47 14.75c-14.187-11.033-15.092-30.487-5.905-43.405 6.892-9.688 18.985-16.326 33.564-16.75.607-.018 1.228-.036 1.844-.03 4.306.03 8.79.622 13.437 1.81 15.505 3.97 29.84 15.277 35.28 31.25 1.416 4.155 2.09 8.69 1.876 13.314 16.71-8.538 34.332-16.12 52.282-21.814 30.156-13.78 43.23-37.938 42.72-58.28-.515-20.493-13.187-37.74-42.376-40.626l1.844-18.594c36.666 3.626 58.462 29.848 59.188 58.75.422 16.84-5.754 34.363-18.188 49.28 16.072-1.8 32.044-1.495 47.53 1.627-3.152-6.472-4.68-13.478-4.467-20.438.677-22.036 19.42-42.593 48.875-42.906 1.963-.022 3.974.053 6.03.218l-1.5 18.625c-24.927-1.998-34.3 11.086-34.718 24.656-.412 13.42 8.545 28.442 34.22 30.436 28.3.25 48.588-15.098 58.53-37.906 13.31-30.536 6.997-76.317-34.844-118.188-.792-.793-1.578-1.593-2.375-2.375-.444 3.792-1.424 7.443-2.842 10.844-7.25 17.39-24.233 29.128-41.875 32.407-24.335 4.522-44.29-5.347-53.5-20.406-9.21-15.057-6.792-36.35 9.78-47.56l10.47 15.5c-8.913 6.028-9.28 14.19-4.313 22.31 4.967 8.122 16.17 15.156 34.156 11.814 11.306-2.102 23.896-11.33 28.03-21.25 2.07-4.96 2.47-9.862.408-15.47-1.675-4.555-5.187-9.764-11.72-15.25l-.187-.155c-27.316-20.587-56.338-35.393-85.75-45.157.018.032.045.06.063.093 6.684 12.22 7.18 26.082 3.063 38.344-8.233 24.525-34.07 43.848-66.032 42.78-6.948-.23-13.56 3.12-19.186 9.657-5.627 6.537-9.735 16.113-10.688 26.313-1.905 20.4 6.923 42.886 41.344 54L277 258.28c-41.083-13.264-56.83-45.546-54.22-73.5 1.307-13.975 6.706-26.962 15.157-36.78 8.452-9.818 20.475-16.603 33.97-16.156 24.04.802 42.323-14.084 47.687-30.063 2.682-7.988 2.335-15.937-1.75-23.405-3.968-7.252-11.83-14.423-25.906-19.656-17.114-2.967-34.16-4.367-50.875-4.314zM342.28 306.344c-41.915 3.41-87.366 23.4-125.28 46.562-55.98 34.198-114.89 26.733-156.688-4.28 16.444 58.844 74.712 70.788 135.5 55.905 6.083-2.285 12.06-6.538 17.157-12.03 7.057-7.607 12.17-17.47 13.78-25.625l18.344 3.625c-2.445 12.383-9.078 24.666-18.406 34.72-8.95 9.645-20.61 17.35-34.094 19.374-6.766 15.07-12.334 29.68-14.594 39.906-3.55 16.06 14.206 22.225 22.156 6.03 19.022-38.743 45.87-73.23 79.406-102.967 26.064-17.153 48.406-38.303 62.72-61.22z"},child:[]}]})(n)}function D9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M196.38 16.29l12.018 214.677-69.382-213.75h-19.65l70.52 217.25c-17.16-18.22-34.434-44.74-52.243-80.246 18.864 62.058 35.573 139.067 40.552 192.04L19.38 62.393v38.277l144.89 258.98c-33.493-21.316-67.86-56.375-97.918-92.87 26.712 52.73 55.26 104.847 73.076 160.54L19.378 289.453v28.46l107.997 124.026C99 434.69 70.625 422.05 42.25 408.165c38.03 26.607 62.036 50.897 84.234 85.82H230.84l-6.785-91.082H197.77c0-44.845 2.87-108.728 40.767-115.86-6.993-8.433-11.533-20.27-11.533-33.523 0-23.93 14.228-43.758 32.45-46.127h.005c.303-.038.61-.056.923-.063.934-.02 1.895.063 2.83.063 19.957 0 36.205 20.602 36.205 46.128 0 12.928-4.304 24.595-10.996 32.99 41.4 6.42 40.496 71.424 40.496 116.394h-24.94l-6.003 91.082h90.96c19.418-30.77 60.864-56.727 96.524-75.234-38.585 10.67-75.927 17.602-109.66 21.02l117.97-86.97v-23.218l-125.78 92.728c24.4-49.363 55.902-88.075 90.164-122.648-40.56 27.323-73.25 37.7-107.027 43.785L493.77 158.7v-30.58L339.297 328.19c1.19-51.24 16.946-114.427 39.156-171.047-17.383 25.054-33.876 46.073-49.713 62.742l56.406-202.668h-19.398l-53.412 191.906 3.832-192.834h-119.79z"},child:[]}]})(n)}function k9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M115.703 19.684C74.03 56.01 47.746 108.598 47.746 167.047c0 59.615 27.327 113.03 70.47 149.428-2.24-9.474-3.615-19.306-4.03-29.4-29.71-31.86-47.75-73.932-47.75-120.028 0-60.944 31.49-114.743 79.876-147.363h-30.61zm245.98 0c48.38 32.614 79.874 86.417 79.874 147.363 0 44.114-16.52 84.543-43.98 115.863-.15 10.162-1.272 20.075-3.272 29.645 40.52-36.26 65.94-88.003 65.94-145.508 0-58.446-26.263-111.034-67.93-147.363h-30.633zM259.616 21.13c-1.22.046-2.1.16-2.627.16-22.966 0-42.474 13.933-54.28 34.743 5.434-2.258 11.378-3.512 17.602-3.512 2.635 0 5.216.238 7.733.667 8.205-8.343 18.363-13.208 28.945-13.208 2.87 0 4.478-.11 4.53-.103l.09.014.09.012c8.883 1.155 17.385 5.918 24.452 13.31 2.568-.448 5.204-.69 7.895-.69 6.14 0 12.004 1.224 17.377 3.423-10.47-18.69-27.132-31.908-47.215-34.556-1.847-.27-3.393-.303-4.593-.26zm-58.758.925C139.302 43.72 95.366 100.54 95.366 167.23c0 26.838 7.12 52.075 19.633 74.07 4.785-43.393 27.372-81.088 59.895-104.857-4.985-11.973-7.76-25.238-7.76-39.2 0-30.428 13.17-57.555 33.724-75.188zm112.966.884c19.968 17.648 32.7 44.38 32.7 74.304 0 14.4-2.955 28.06-8.24 40.324 31.91 23.98 53.94 61.508 58.454 104.57 12.815-22.19 20.12-47.727 20.12-74.908 0-65.8-42.768-121.992-103.034-144.29zm-93.514 48.27c-15.31 0-27.52 12.21-27.52 27.522 0 15.31 12.21 27.522 27.52 27.522 15.31 0 27.524-12.21 27.524-27.522 0-15.31-12.213-27.523-27.524-27.523zm73.735 0c-15.31 0-27.522 12.21-27.522 27.522 0 15.31 12.21 27.522 27.522 27.522 15.31 0 27.523-12.21 27.523-27.522 0-15.31-12.212-27.523-27.523-27.523zm-96.818 67.495c1.458 3.72 3.135 7.29 5.014 10.688-28.76 10.036-47.118 36.23-56.088 67.806-10.313 36.304-9.78 80.714-1.82 123.044l1.432 7.617h38.28l.354 5.406.04 4.084.23-.002 9.09 137.91h122.584l10.408-139.71.385.003.038-5.708.148-1.98h40.32l1.543-7.446c9.072-43.706 8.052-87.865-3.38-123.508-9.866-30.763-28.282-55.794-54.945-66.185 2.144-3.686 4.042-7.593 5.68-11.678-6.67 3.75-14.344 5.898-22.498 5.898-.516 0-1.025-.03-1.537-.047-1.22 1.83-2.504 3.576-3.858 5.21l-10.125 12.212 15.59 2.934c25.758 4.847 43.76 25.75 53.9 57.363 9.523 29.697 11.076 68.077 4.198 106.557h-24.893l.64-91.475-18.687-.13-.78 111.488L299 476.568h-33.332V342.19H246.98V476.57h-35.72l-8.174-124.025-1.133-115.002-18.69.185.903 91.447h-22.713c-6.188-37.77-5.89-76.687 2.682-106.865 9.15-32.208 26.076-53.426 54.59-57.848l15.91-2.47L224.6 149.4c-1.133-1.42-2.22-2.92-3.256-4.488-.345.008-.685.03-1.03.03-8.396 0-16.28-2.28-23.085-6.237z"},child:[]}]})(n)}function M9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M272.95 16.707c-151.29 47.714 57.322 110.88-26.536 131.344C190.7 161.648 137.3 96.283 192.947 45.313c-90.766 32.524-66.292 89.67-12.396 113.25 34.31 15.01 31.884 61.38 8.643 64.637 46.37-54.285-116.637-44.737-86.03-147.47-126.44 158.063 132.535 163.37 51.6 273.194 16.4-51.26-51.074-33.42-65.52-77.88-48.557 115.975 86.87 96.047 107.81 222.95h36.394l-7.375-108.703H196.93c0-49.724 3.178-108.336 45.2-116.245-7.75-9.352-12.786-24.51-12.786-39.207 0-26.536 15.774-48.523 35.98-51.15h.002c1.348-.17 2.78 0 4.164 0 22.13 0 40.145 22.846 40.145 51.15 0 14.334-4.772 29.304-12.192 38.613 45.905 7.12 44.903 66.976 44.903 116.84H314.69l-6.524 108.704h36.752c14.29-138.24 137.056-121.245 77.576-235.742 9.728 46.034-32.646 93.67-53.514 52.13-19.04-37.903 125.515-105.092 70.21-215.175 4.588 81.484-114.155 120.303-118.663 65.824 52.768 23.022 73.61-45.905 30.02-71.985-40.69-24.346-116.444-36.76-77.596-72.338zm69.488 20.635c44.895 15.685 63.888 78.675 48.73 110.674 18.238-3.568 70.807-106.98-48.73-110.674z"},child:[]}]})(n)}function j9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M250.9 18.9c-23.9 2.99-45.3 30.65-45.3 66.99 0 19.91 6.8 37.41 16.8 49.61l12.2 14.5-18.7 3.5c-13 2.5-22.6 9.5-30.7 20.8-8.5 11.5-14.8 26.9-19.1 45.2-8 32.7-9.9 72.7-9.9 108.2h43.6l11.7 160.5c30.4 7 63.1 6.5 92.3 0l10.7-160.5H356c0-35.7-.5-76.4-7.8-109.7-3.9-17.9-10-33.7-18.2-45.1-8.2-11.1-18.5-17.8-33.3-20.1l-18.9-3 11.9-14.9c9.9-12.1 16.4-29.6 16.4-49.01 0-38.54-24-66.99-50.3-66.99h-4.9zm145 3.59v41.85h-41.8v50.16h41.8v41.6h49.9v-41.6h41.9V64.34h-41.9V22.49h-49.9zM52.92 62.89v30.58H22.39v36.63h30.53v30.4h36.4v-30.4h30.58V93.47H89.32V62.89h-36.4zM92.63 199.7v21.8H70.75v26.3h21.88v21.9h26.27v-21.9h21.8v-26.3h-21.8v-21.8H92.63zm355.07 62.4v21.8h-21.9v26.3h21.9v21.9H474v-21.9h21.8v-26.3H474v-21.8h-26.3zm-307.5 99.4v15h-15v18h15v15h18.1v-15h15v-18h-15v-15h-18.1zm230 45.8v15h-15v18h15v15h18v-15h15v-18h-15v-15h-18zM49.32 431.8v15h-15v18h15v15h18.01v-15h15v-18h-15v-15H49.32z"},child:[]}]})(n)}function U9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M54.53 118.73c-15.623 74.884 20.42 123.6 64.126 150.56-33.063-7.81-65.052-19.483-98.25-36.845 25.5 77.488 81.165 95.816 129.906 90.75-26.933 14.252-55.392 25.302-83.937 32.782 69.446 43.143 120.11 16.458 148.27-21.317a586.15 586.15 0 0 0-6.217-5.498c-5.193-3.697-10.128-7.95-14.778-12.71-5.968-5.095-12.045-10.295-18.173-15.73-33.648-29.837-67.978-65.614-69.43-112.83-.002-.05 0-.1-.002-.15-19.147-22.057-36.472-45.304-51.514-69.013zm402.94 0c-15.04 23.705-32.368 46.943-51.515 68.993 0 .026.003.05.004.078 1.388 45.967-33.476 82.66-67.968 113.386-13.87 12.355-27.86 23.824-39.904 34.44 28.298 37.26 78.683 63.125 147.54 20.35-28.543-7.48-56.98-18.53-83.91-32.78 48.737 5.056 104.38-13.28 129.876-90.75-33.197 17.363-65.187 29.036-98.25 36.845 43.705-26.962 79.75-75.675 64.125-150.56zm-132.42 3.977c-22.146.17-45.395 11.85-61.025 38.36l-7.783 13.2-7.736-13.228c-19.473-33.286-54.394-43.623-82.15-35.75h-.01c-24.486 6.947-43.386 26.957-42.307 62.048 1.187 38.61 30.602 70.852 63.38 99.918 16.39 14.533 33.36 28.123 47.412 41.52 8.357 7.968 15.777 15.842 21.332 24.142 5.568-7.718 12.923-15.143 21.217-22.86 14.382-13.384 31.856-27.363 48.64-42.314 33.567-29.9 63.045-63.115 61.95-99.398-1.118-36.974-22.723-58.38-48.618-64.127a63.71 63.71 0 0 0-14.303-1.513z"},child:[]}]})(n)}function F9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M480.25 156.355c0 161.24-224.25 324.43-224.25 324.43S31.75 317.595 31.75 156.355c0-91.41 70.63-125.13 107.77-125.13 77.65 0 116.48 65.72 116.48 65.72s38.83-65.73 116.48-65.73c37.14.01 107.77 33.72 107.77 125.14z"},child:[]}]})(n)}function B9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M262.82 18.514c-1.538-.042-3.118.125-4.656.125-32.843 0-59.586 33.905-59.586 75.917 0 21.273 7.083 40.47 18.096 54.287-7.947 1.232-15.16 3.625-21.688 7.004l-.066-.465c-21.085 10.394-34.678 31.075-42.815 58.777-4.388 14.94-6.894 31.782-7.736 49.553-.034.657-.06 1.32-.087 1.978-.037.938-.092 1.866-.12 2.808l.013-.016c-.013.397-.022.795-.033 1.192l-.014-.004c-.01.333-.01.67-.017 1.004-.565 22.66 1.55 46.508 5.914 69.724h23.56L172.57 237.02l1.785-1.98 16.883-.165 1.248 126.938 8.74 132.626h46.895V318.847h18.69v175.59h44.32l11.475-154.04h.055l1.035-105.523 15.606.154 3.05 3.376-1 101.992h24.51c16.256-78.303.03-158.175-47.17-183.627l-.13-.073v.002c-6.087-3.265-12.68-5.636-19.79-6.973 11.508-13.88 18.98-33.36 18.98-55.17 0-39.388-23.415-72.02-53.406-75.918h-.002c-.5-.076-1.01-.112-1.522-.126zm-138.877.062l21.733 94.787 26.586 34.713c5.16-4.086 10.777-7.594 16.855-10.437-5.548-13.12-8.664-27.926-8.664-43.45 0-1.243.037-2.476.076-3.71l-56.587-71.904zm265.782 0l-53.29 67.72c.18 2.61.29 5.237.29 7.893 0 16.542-3.534 32.27-9.786 46.005 4.808 2.61 9.335 5.635 13.568 9.05l27.484-35.886 21.733-94.784zM64.037 81.902l46.19 76.31 37.8 18.202c3.21-5.437 6.79-10.53 10.748-15.215l-32.15-41.975-62.588-37.323zm385.594 0l-62.59 37.325-33.08 43.19c3.828 4.506 7.336 9.376 10.52 14.556l38.96-18.762 46.19-76.308zm-420.86 78.46l53.515 42.034 51.88 6.526.01-.027c1.59-5.413 3.44-10.67 5.54-15.74L93.58 170.936 28.77 160.36zm456.128 0l-64.814 10.577-46.938 22.603c2.152 4.86 4.08 9.896 5.776 15.074.04.12.076.243.115.363l52.346-6.584 53.515-42.035zM80.305 220.98l-59.866 11.48 76.238 27.143 28.87 4.44c.554-12.688 1.93-25.047 4.212-36.84l-49.455-6.223zm353.058 0l-49.36 6.21c2.63 11.738 4.363 24.043 5.257 36.677l27.734-4.266 76.236-27.143-59.867-11.478zm-339.418 57.11l-74.814 52.72 87.286-.964 20.588-18.703c-.95-9.458-1.526-18.897-1.693-28.23l-31.365-4.823zm325.778 0l-29.746 4.574c.063 10.024-.368 20.174-1.262 30.342l18.537 16.84 87.285.964-74.814-52.72zm-334.01 78.01l-51.61 58.302 75.004-20.424 22.9-37.56-46.294-.318zm341.746 0l-46.294.318 22.898 37.56 75.004 20.424-51.61-58.302zM159.49 400.455L121.346 419.7l-11.664 69.577 50.79-48.36-.98-40.462zm194.186 0l-.977 40.46 50.788 48.362-11.664-69.578-38.146-19.245z"},child:[]}]})(n)}function V9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M51.34 23.63l-6.68 16.72 80.04 32.01 6.6-16.72-79.96-32.01zm409.36.01l-80 32 6.6 16.72 80-32-6.6-16.72zM256 25c-29 0-50 14.08-64.7 34.29C176.6 79.51 169 106 169 128c0 13 7 27.8 14.5 39s14.9 18.6 14.9 18.6l1.5 1.5 9.3 27.9H228L194.7 98.07 256 118.5l61.3-20.43L284 215h18.8l9.3-27.9 1.5-1.5s7.4-7.4 14.9-18.6c7.5-11.2 14.5-26 14.5-39 0-22-7.6-48.49-22.3-68.71C306 39.08 285 25 256 25zm128 94v18h96v-18h-96zm-352 .1v18h96v-18H32zm189.3 6.8l25.5 89.1h18.4l25.5-89.1-34.7 11.6-34.7-11.6zm166 57.7l-6.6 16.8 80 32 6.6-16.8-80-32zm-262.6.1l-80.04 32 6.68 16.8 79.96-32-6.6-16.8zM217 233v14h78v-14h-78zm0 32v14h78v-14h-78zm-46.9 2.6c-27.1.5-52.6 5-66.9 11.1L29.8 484.1c71.1-14.1 143.9-26 217.2-.9V297h-48v-28.3c-7.9-.7-16-1.1-23.9-1.1h-5zm166.8 0c-7.9 0-16 .4-23.9 1.1V297h-48v186.2c73.3-25.1 146.1-13.2 217.2.9l-73.4-205.4c-14.3-6.1-39.8-10.6-66.9-11.1h-5z"},child:[]}]})(n)}function z9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M282.063 20.938c-18.876 0-33.875 15.56-33.875 34.437 0 18.877 15 33.875 33.875 33.875s33.875-14.998 33.875-33.875c0-18.875-15-34.438-33.875-34.438zM129.905 82.094c-18.875 0-33.875 15.59-33.875 34.47 0 18.876 15 33.874 33.876 33.874 18.875 0 33.875-14.998 33.875-33.875 0-18.876-15-34.47-33.874-34.47zm284.281 22.656c-18.875 0-33.875 15.59-33.875 34.47 0 18.876 15 33.874 33.875 33.874 18.876 0 33.875-14.998 33.875-33.875 0-18.877-15-34.47-33.875-34.47zm-162.25 57.563c-3.24-.003-6.51.42-9.718 1.28-25.657 6.875-39.12 39.755-30.095 73.438 3.502 13.072 9.883 24.315 17.875 32.814-19.225 4.532-34.137 13.467-40.5 24.5l-.406-.094-41.594 64.438-50.688-21.938c-29.376-16.12-61.575 24-30.624 41.688l94.468 44.062 38.03-50.063c21.493 38.735 15.748 77.484-25.124 116.25H342.75c-39.82-38.2-42.438-76.424-23.28-114.625l36.81 48.438 94.47-44.063c11.635-6.65 14.334-16.47 11.625-25.28-8.184 5.26-17.915 8.343-28.344 8.343-14.224 0-27.118-5.72-36.592-14.938l-28 12.125-41.594-64.437h-.03c-5.48-9.417-17.226-17.278-32.533-22.188 11.58-14.222 15.924-36.9 9.75-59.937-7.896-29.473-30.4-49.798-53.092-49.813zm-164.125 61.03c-18.875 0-33.874 15.56-33.874 34.438 0 18.88 15 33.876 33.874 33.876 18.876 0 33.876-14.997 33.876-33.875 0-18.874-15-34.436-33.876-34.436zm346.22 51.126c-18.876 0-33.876 15.59-33.876 34.467 0 18.878 15 33.875 33.875 33.875 18.876 0 33.876-14.997 33.876-33.875 0-18.875-15-34.468-33.875-34.468z"},child:[]}]})(n)}function H9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M263.375 19.375c-11.768 0-22.676 6.137-31.156 17.22-7.267 9.494-12.397 22.54-13.72 37.25 11.14-4.926 22.473-7.91 33.813-9V83.25c-10.965 1.377-22.008 5.008-33.157 11.03 1.968 12.487 6.703 23.502 13.063 31.814 8.48 11.082 19.387 17.22 31.155 17.22s22.707-6.138 31.188-17.22c6.167-8.06 10.783-18.667 12.843-30.688-12.07-6.832-24.194-10.997-36.406-12.344V64.75c12.676 1.087 25.22 4.516 37.344 10.188-1.155-15.158-6.336-28.614-13.78-38.344-8.482-11.082-19.42-17.22-31.19-17.22zm-46.594 117.25c-10.442 4.8-18.39 11.182-22.593 18.47l-.375-.095-41.625 64.438-50.656-21.97c-29.375-16.118-61.574 24-30.624 41.688l94.47 44.063 38.03-50.064c18.7 33.703 16.77 67.43-10.97 101.156-8.344-.642-16.37-.958-23.967-.906-40.312.278-68.942 10.254-73.907 28.78l.03.002c-4.44 16.58 10.992 36.67 39.126 55.28 55.675 29.297 95.38 38.468 156.968 42.344h1.562l.438.125c.424.026.823.07 1.25.094l-.032.314 92.063 28.72-22.19-53.72L183.595 375.5l5.875-17.72 71.81 23.845 71.845-23.844L339 375.5l-48.094 15.97 94.438 31.374c33.494-20.046 52.528-42.468 47.656-60.656-5.95-22.21-45.925-32.107-99.25-27.782-26.392-33.215-26.196-66.41-9.53-99.625L361 283.22l94.47-44.064c30.95-17.687-1.25-57.806-30.626-41.687l-50.688 21.968L332.562 155h-.062c-4.217-7.246-12.135-13.596-22.53-18.375-.2.27-.392.547-.595.813-11.268 14.725-27.633 24.562-46 24.562s-34.732-9.837-46-24.563c-.203-.265-.394-.543-.594-.812zm-63.686 311l-16.72 40.5 69.876-21.78c-17.624-4.574-34.93-10.634-53.156-18.72z"},child:[]}]})(n)}function G9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 28l-32 128c-32-16-64-48-96-96 0 48 0 96 32 128-32 17-64 0-96-32 0 32 0 80 48 112-32 16-64 0-80-32 0 48 16 96 48 128-16 16-48 0-64-16 0 64 48 112 112 144h76.8l16.7-68.6-17.2-86.1-97.9 5s20.3-75.2 34.9-103.7c5-9.6 7.2-18 20-18.3 11.3 0 20.4 9.8 20.4 21.9 0 12-9.1 21.8-20.4 21.8-2.3 0-4.6-.5-6.6-1.3l-5.1 46.8c29.6-8.9 56.9-18.8 84-30.9 0-.1-.1-.2-.1-.3-6.2-8.8-10.4-21.5-10.4-35.7 0-14.1 4.1-26.8 10.4-35.7 6.1-8.9 14.1-13.7 22.5-13.7 8.5 0 16.5 4.8 22.6 13.7 6.2 8.9 10.2 21.6 10.2 35.7 0 14.2-4 26.9-10.2 35.7-.1.3-.5.7-.6.9 27.3 12.1 56.1 20.6 84.3 30.3l-5-46.8c-2.2.8-4.3 1.3-6.7 1.3-11.2 0-20.3-9.8-20.3-21.8 0-12.1 9.1-21.9 20.3-21.9 12.8.3 15.2 8.7 20 18.3 14.8 28.5 35 103.7 35 103.7l-97.9-5-17.2 86.1 16.7 68.6H384c64-32 112-80 112-144-16 16-48 32-64 16 32-32 48-80 48-128-16 32-48 48-80 32 48-32 48-80 48-112-32 32-64 48-96 32 32-32 32-80 32-128-32 48-64 80-96 96z"},child:[]}]})(n)}function W9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M206.28 20.75l40.75 18.406v95.625l11 17.907 12.75-17.906V39.157l40.75-18.406H206.28zm-81.874 32.28L49.97 127.438l41.843-15.78 67.624 67.624 21.657 3.657-4.875-20.468-67.626-67.595 15.812-41.844zm264.281 0l15.782 41.845-67.626 67.594-4.875 20.468 21.686-3.657 67.594-67.624 41.844 15.78-74.406-74.405zM258.281 167.47c-18.774 0-35.987 9.647-49 26.28-13.01 16.633-21.374 40.158-21.374 66.313 0 27.096 9.278 51.387 23.188 68.156l10.125 12.217-15.595 2.938c-39.857 7.504-58.408 22.664-69.28 48.25-10.143 23.866-12.33 58.635-12.595 103.094h270.406c-.04-44.852-.605-80.457-9.812-104.626-9.865-25.894-27.82-41.064-71.28-47.906l-15.845-2.5 10-12.563c13.226-16.583 21.436-40.478 21.436-67.063 0-26.153-8.363-49.68-21.375-66.312-13.01-16.633-30.224-26.28-49-26.28zM35.407 206.78V312l18.438-40.75h95.594l17.906-12.72-17.906-11H53.844l-18.438-40.75zm446.97 0l-18.407 40.75h-95.626l-17.906 11 17.906 12.72h95.625L482.374 312V206.78z"},child:[]}]})(n)}function $9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M253.813 15.625c-132.32 0-239.782 107.46-239.782 239.78s107.463 239.782 239.782 239.782c132.32 0 239.782-107.46 239.782-239.78S386.132 15.624 253.814 15.624zm0 17.906c122.653 0 221.906 99.223 221.906 221.876 0 30.738-6.26 59.99-17.533 86.594l-42.343-34.72c-49.613 13.98-110.337 9.033-138.906-60.874l-41.97 152.938c-8.837-45.53-23.35-81.28-47.905-115.22-19.71 13.855-32.352 32.63-39.72 50.97L88.94 237.03c-17.85 27.32-33.77 56.565-45.032 90.47-7.744-22.6-11.968-46.852-11.968-72.094 0-26.013 4.484-50.973 12.687-74.156 2.752 6.608 9.27 11.25 16.875 11.25 10.093 0 18.28-8.157 18.28-18.25s-8.187-18.28-18.28-18.28c-2.385 0-4.66.48-6.75 1.31 27.537-55.83 77.83-98.368 138.844-115.5-.558 1.938-.844 3.98-.844 6.095 0 12.146 9.823 22 21.97 22 12.144 0 22-9.854 22-22 0-4.99-1.67-9.59-4.47-13.28 7.092-.683 14.29-1.064 21.563-1.064zm18.75 27.657c-6.444 0-11.657 5.213-11.657 11.657 0 6.443 5.213 11.687 11.656 11.687 6.444 0 11.688-5.243 11.688-11.686 0-6.444-5.244-11.656-11.688-11.656zM198.03 90.22c-6.02.06-12.132.868-18.218 2.5-38.945 10.434-62.06 50.46-51.625 89.405 10.436 38.946 50.463 62.06 89.407 51.625 21.712-5.818 38.48-20.85 47.28-39.75-6.835 7.36-15.737 12.958-26.155 15.75-29.504 7.905-59.846-9.59-67.75-39.094-7.907-29.504 9.62-59.813 39.124-67.72 10.41-2.788 20.906-2.417 30.5.533-12.28-8.598-27.116-13.405-42.563-13.25zm155.282.81c-9.408 0-17.03 7.624-17.03 17.032 0 9.41 7.622 17.032 17.03 17.032 9.41 0 17.032-7.623 17.032-17.03 0-9.41-7.623-17.033-17.03-17.033zm-248.937 27.376c-6.443 0-11.656 5.244-11.656 11.688 0 6.443 5.212 11.656 11.655 11.656s11.656-5.213 11.656-11.656c0-6.444-5.212-11.688-11.655-11.688zm275.688 40.813l-.625 29.843-28.22 9.812 28.22 9.813.625 29.843 18.03-23.78 28.563 8.625-17.03-24.5 17.03-24.53L398.094 183l-18.03-23.78zm-72.094 11.593c-6.445 0-11.658 5.212-11.658 11.656 0 6.442 5.213 11.686 11.657 11.686 6.442 0 11.686-5.244 11.686-11.687 0-6.445-5.244-11.657-11.687-11.657zm139 74.75c-6.445 0-11.658 5.244-11.658 11.687s5.213 11.656 11.657 11.656c6.442 0 11.686-5.213 11.686-11.656 0-6.443-5.244-11.688-11.687-11.688zm-127.314 3.5c-6.443 0-11.656 5.244-11.656 11.687s5.213 11.656 11.656 11.656c6.444 0 11.656-5.213 11.656-11.656 0-6.443-5.212-11.688-11.656-11.688z"},child:[]}]})(n)}function K9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M294.8 26.57L238 60.37l7.8 13.17L281 52.59 270.8 118l6.3 10.6L336 93.53l-7.8-13.17-37.3 22.14L301 37.12l-6.2-10.55zM147.1 60.55A224 224 0 0 0 32 256a224 224 0 0 0 224 224 224 224 0 0 0 214.9-161.2A208 208 0 0 1 320 384a208 208 0 0 1-208-208 208 208 0 0 1 35.1-115.45zm244.5 52.05l-6.9 16.5 44.1 18.4-68.3 35.9-5.5 13.2 73.7 30.8 6.9-16.5-46.7-19.5 68.3-35.9 5.5-13.2-71.1-29.7zm-115 64l-97.8 35 8.1 22.7 60.6-21.7-35.4 97.9 6.5 18.1L320 292.4l-8.1-22.7-64.2 23 35.4-97.9-6.5-18.2z"},child:[]}]})(n)}function q9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256.25 20.656c-32.78 0-64.03 6.79-92.438 19-8.182-10.618-20.994-17.468-35.437-17.468-24.716 0-44.78 20.033-44.78 44.75 0 8.356 2.324 16.18 6.31 22.874-42.638 42.655-69.093 101.49-69.093 166.282 0 129.617 105.823 234.72 235.438 234.72 129.615-.002 234.72-105.103 234.72-234.72 0-129.618-105.105-235.438-234.72-235.438zm0 19.313c119.515 0 216.094 96.607 216.094 216.124s-96.58 216.094-216.094 216.094c-119.515 0-216.813-96.577-216.813-216.094 0-59.568 24.176-113.438 63.22-152.5 7.273 5.113 16.15 8.094 25.718 8.094 24.716 0 44.75-20.034 44.75-44.75 0-3.453-.385-6.804-1.125-10.032C197.91 46 226.396 39.97 256.25 39.97zm-.125 51.81c-91.3 0-165.875 74.575-165.875 165.876 0 91.3 74.576 165.406 165.875 165.406 35.12 0 67.708-10.965 94.5-29.656 7.13 4.23 15.45 6.656 24.344 6.656 26.396 0 47.81-21.384 47.81-47.78 0-12.763-5.005-24.366-13.155-32.938 7.677-19.067 11.906-39.884 11.906-61.688 0-91.3-74.106-165.875-165.405-165.875zm0 19.126c81.2 0 146.78 65.55 146.78 146.75 0 17.833-3.172 34.924-8.967 50.72-5.81-2.513-12.237-3.907-18.97-3.907-26.396 0-47.78 21.414-47.78 47.81 0 10.59 3.454 20.362 9.28 28.283-23.065 15.084-50.66 23.843-80.343 23.843-81.2 0-147.22-65.55-147.22-146.75s66.02-146.75 147.22-146.75zm-1.063 19.625c-7.462 31.99-21.767 62.112-42.906 83.25-21.14 21.14-48.73 32.913-80.72 40.376 31.99 7.462 62.112 21.736 83.25 42.875 21.14 21.14 32.914 48.764 40.376 80.75 7.463-31.986 19.204-59.61 40.344-80.75 21.14-21.138 51.262-35.412 83.25-42.874-32.236-7.428-59.455-19.11-80.72-40.375-21.262-21.263-35.446-51.013-42.873-83.25zm.094 86.564c20.498 0 37.125 16.627 37.125 37.125 0 20.496-16.626 37.124-37.124 37.124-20.497 0-37.125-16.628-37.125-37.125 0-20.5 16.63-37.126 37.126-37.126z"},child:[]}]})(n)}function Y9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M122.7 23.32l1.7 21.87-16.7 14.25 21.4 5.17 8.4 20.25L149 66.18l21.8-1.75-14.2-16.71 5.1-21.32-20.3 8.35-18.7-11.43zM464 32a16 16 0 0 0-16 16 16 16 0 0 0 16 16 16 16 0 0 0 16-16 16 16 0 0 0-16-16zM239.8 42.5a16 16 0 0 0-16 16 16 16 0 0 0 16 16 16 16 0 0 0 16-16 16 16 0 0 0-16-16zm183.9 6.84c-9.2 1.74-17.7 7.18-25.9 14.28-7.6 6.53-14.7 14.66-20.7 23.45-18.8 3.01-37.6 10.67-50.2 21.13-16.1 13.2-30.4 35.8-38.2 59.1-7.4 3.1-14.4 6.8-20.1 10.8-15.5 10.9-23.5 31.8-29.4 50-5.9 18.3-8.8 34.3-8.8 34.3l17.8 3.2s2.7-15 8.1-31.9c5.5-16.9 14.8-35.3 22.7-40.8 1.3-.9 3-1.9 4.5-2.8-.6 5.7-.6 11.4.3 16.8 1.8 11.4 8 22.3 19 28.2 7.8 4.2 16.6 3.2 24 .2 7.4-3.1 14-8.2 19.7-14.2 5.7-6 10.4-13.1 13.2-20.6 2.8-7.5 3.8-16 .2-23.9h-.1c-3.9-8.4-11.4-13.8-19.4-16.1-8-2.3-16.6-2.2-25.2-.9-1.5.2-2.9.7-4.4 1 7.4-15.8 18-30.7 27.5-38.6 6.2-5.1 16.6-10 27.7-13.6-1.4 3.8-2.5 7.6-3 11.5-1.6 10.5.7 21.9 9.1 29.7 6.1 5.6 14.3 6.5 21.5 5.3 7.1-1.2 14-4.4 20.2-8.5 6.2-4.2 11.7-9.4 15.6-15.5 3.9-6.1 6.5-13.9 4-21.7v-.1c-3.3-10.07-11.5-16.99-20.6-20.27-3.9-1.4-8-2.19-12.2-2.66 2.9-3.26 5.9-6.31 8.9-8.92 6.8-5.84 13.7-9.5 17.6-10.23l-3.4-17.68zM174.8 84.39l-15.2 9.56 34.5 55.25-56.4 2.9 26.5 57.8 16.4-7.6-15.5-33.6 60.6-3.1-50.9-81.21zm216.4 19.31c6.1-.1 11.5.6 15.5 2.1 5.4 1.9 8.1 4.3 9.5 8.8.4 1.1.2 3.3-1.9 6.6-2.2 3.4-6.1 7.2-10.5 10.2-4.5 3-9.5 5.1-13.2 5.7-3.8.7-5.5 0-6.3-.7-3.5-3.2-4.5-7.2-3.5-13.9.8-5.4 3.3-11.9 7-18.6 1.2 0 2.3-.2 3.4-.2zM94.99 123a16 16 0 0 0-16 16 16 16 0 0 0 16 16A16 16 0 0 0 111 139a16 16 0 0 0-16.01-16zm356.11 37.2l-14.4 16.6-21.8-1.8 11.4 18.8-8.5 20.2 21.4-5 16.6 14.3 1.9-21.9 18.7-11.4-20.2-8.5-5.1-21.3zm-123.5 16.5c2.9.1 5.6.5 7.7 1.1 4.3 1.2 6.6 3 8.2 6.4.9 1.9 1 5.4-.7 10-1.7 4.7-5.2 10.1-9.4 14.6s-9.3 8.1-13.5 9.8c-4.2 1.7-6.8 1.6-8.5.7h-.1c-5.8-3.2-8.6-7.8-9.7-15.2-1-6.3-.3-14.3 1.8-22.9 4.9-1.7 9.8-3.1 14.5-3.8 3.5-.5 6.7-.7 9.7-.7zm-202.4 51.9c-7.2-.2-11.7 1.5-14.5 4.3-2.8 2.8-4.5 7.3-4.3 14.5.2 7.3 2.6 16.9 7.2 27.6 9.2 21.5 27.3 47.4 51.6 71.8 24.3 24.3 50.3 42.3 71.8 51.5 10.6 4.6 20.2 7 27.5 7.2 7.3.3 11.7-1.5 14.5-4.3 2.8-2.8 4.6-7.2 4.3-14.5-.2-7.3-2.6-16.9-7.2-27.6-9.2-21.4-27.2-47.4-51.5-71.7-24.3-24.4-50.3-42.4-71.8-51.6-10.7-4.6-20.3-7-27.6-7.2zm232 31.3l-33 54-29.1-27.9-12.4 13 45.1 43.3 33.8-55.2 38.7 32.3 89.3-38.2-7-16.6-79.3 34-46.1-38.7zM93.43 272.6l-17.64 57.9c41.41 49.1 89.71 76.7 142.11 94.7l21.6-6.6c-3.1-1.1-6.4-2.4-9.7-3.8-24.4-10.4-51.7-29.6-77.3-55.3-25.7-25.7-44.9-53-55.34-77.4-1.41-3.2-2.65-6.4-3.73-9.5zm-23.82 78.2l-14.01 46c28.89 27 59 39.2 90.6 50.2l43.4-13.2c-43.2-17.6-84-43.3-119.99-83zM368 352a16 16 0 0 0-16 16 16 16 0 0 0 16 16 16 16 0 0 0 16-16 16 16 0 0 0-16-16zM49.81 415.9l-20.29 66.6 88.28-26.9c-22.77-9.1-45.78-20.7-67.99-39.7z"},child:[]}]})(n)}function X9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M486 203.652H310.111L256 37.113l-54.111 166.539H26l142.22 103.623-54.462 167.612L256 371.24l142.242 103.646-54.473-167.612zm-85.995 28.008l-65.335 47.596-15.46-47.596h80.795zM256 127.708l24.658 75.91H231.33zM111.995 231.66h80.795l-15.45 47.596zm55.097 169.713l24.932-76.743 40.194 29.29zm34.041-104.762l21.1-64.951h67.524l21.099 64.95-54.867 39.977zm143.731 104.762l-65.082-47.454 40.194-29.29zm-37.983-264.359l-10.424-32.092a183.269 183.269 0 0 1 114.322 81.21H376.43a155.293 155.293 0 0 0-69.55-49.118zM129 371.328l-10.413 32.049a182.425 182.425 0 0 1-43.918-142.581l26.684 19.435v2.847A153.804 153.804 0 0 0 129 371.284zm177.104 58.108l26.64 19.413a182.447 182.447 0 0 1-153.51 0l26.64-19.413a154.79 154.79 0 0 0 100.23 0zM135.569 186.133h-34.348a183.269 183.269 0 0 1 114.322-81.21l-10.424 32.091a155.293 155.293 0 0 0-69.55 49.119zm303.12 96.955a181.922 181.922 0 0 1-45.276 120.245L383 371.285a153.804 153.804 0 0 0 27.68-88.197v-2.846l26.683-19.446a183.685 183.685 0 0 1 1.325 22.292z"},child:[]}]})(n)}function J9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M255.9 19.77C241.5 109.6 229.4 163 196.2 196.2c-33.2 33.2-86.6 45.3-176.43 59.7C109.6 270.3 163 282.4 196.2 315.7c33.2 33.2 45.3 86.6 59.7 176.5 14.4-89.9 26.5-143.3 59.7-176.6 33.3-33.2 86.7-45.3 176.6-59.7-89.9-14.4-143.3-26.5-176.5-59.7-33.3-33.2-45.4-86.6-59.8-176.43zM423 89c-45.8 33.1-81 56.9-112.4 70.2 5.1 9.4 11 17.4 17.8 24.2 6.8 6.8 14.8 12.7 24.3 17.9 13.4-31.4 37.2-66.6 70.3-112.3zm-333.94.06C122.2 134.8 145.9 169.9 159.2 201.2c9.4-5.1 17.4-11 24.2-17.8 6.8-6.8 12.7-14.8 17.8-24.2-31.3-13.3-66.4-37-112.14-70.14zM352.7 310.5c-9.5 5.2-17.5 11.1-24.3 17.9-6.8 6.8-12.7 14.8-17.9 24.3C342 366 377.2 389.8 423 423c-33.2-45.8-57-81-70.3-112.5zm-193.5.1C145.9 342 122.1 377.2 89 423c45.7-33.1 80.9-56.9 112.3-70.3-5.2-9.5-11.1-17.5-17.9-24.3-6.8-6.8-14.8-12.7-24.2-17.8z"},child:[]}]})(n)}function Q9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M65.125 18.344C47.11 49.844 36.72 86.262 36.72 125.124c0 80.293 43.973 150.497 109.124 187.75.403-6.904.92-13.833 1.625-20.75-55.33-34.965-92.064-96.676-92.064-167 0-39.426 11.63-75.964 31.563-106.78H65.124zm69.03 0c-25.61 28.273-41.374 65.635-41.374 106.78 0 51.08 24.052 96.656 61.44 125.97l.06-.25c1.612-6.61 3.473-13.008 5.69-19.125-29.73-25.896-48.5-64.026-48.5-106.595 0-42.848 19.254-80.837 49.436-106.78h-26.75zm210.532 0c30.125 25.95 49.438 64.003 49.438 106.78 0 41.152-17.546 78.157-45.563 103.97 2.26 6.282 4.116 12.876 5.657 19.687 35.748-29.366 58.592-73.883 58.592-123.655 0-41.123-15.81-78.5-41.406-106.78h-26.72zm73.407 0c20.06 30.867 32.094 67.387 32.094 106.78 0 69.457-35.82 130.505-90 165.69.545 7.037.933 14.107 1.187 21.123 64.267-37.483 107.53-107.18 107.53-186.812 0-38.925-10.745-75.328-28.874-106.78h-21.936zm-165.313 2.28c-57.625 0-104.53 46.906-104.53 104.532 0 28.606 11.56 54.573 30.25 73.47 4.13-4.712 8.84-8.817 14.094-12.19-15.844-15.56-25.656-37.237-25.656-61.28 0-47.527 38.316-85.844 85.843-85.844 47.528 0 85.845 38.317 85.845 85.844 0 23.16-9.108 44.114-23.938 59.53 5.488 3.14 10.394 7.033 14.688 11.533 17.327-18.666 27.938-43.657 27.938-71.064 0-57.626-46.905-104.53-104.532-104.53zm-4.186 55.564c-21.622 2.8-40.97 27.91-40.97 60.28 0 17.846 6.173 33.653 15.282 44.595l10.188 12.218-15.656 2.94c-11.884 2.226-20.62 8.512-28.032 18.655-7.41 10.143-13.023 24.216-16.97 40.406-7.188 29.5-8.736 65.498-8.967 97.126h38.999l.655 8.656 9.906 132.5h83.69l8.75-132.437.592-8.72h37.125c-.02-32-.39-68.49-6.906-98.217-3.57-16.297-8.992-30.34-16.5-40.375-7.505-10.035-16.654-16.288-29.967-18.344L273.875 193l10.094-12.625c8.713-10.89 14.592-26.495 14.592-43.906 0-34.515-21.658-60.22-45.468-60.22-2.672 0-4.275-.092-4.5-.063z"},child:[]}]})(n)}function Z9e(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 23.545c-33.5 0-63.525 15.197-83.55 39.053L92.7 38.313l60.85 56.867c-2.134 5.82-3.785 11.872-4.905 18.105L18.498 132.592 148.635 151.9c1.118 6.238 2.768 12.293 4.902 18.118L92.7 226.873l78.898-24.025c1.62-2.674 3.35-5.246 5.203-7.702 2.154-2.85 4.502-5.53 7.02-8.027-11.435-15.14-18.21-34.01-18.21-54.503 0-50.03 40.357-90.39 90.39-90.39 50.03 0 90.39 40.36 90.39 90.39 0 20.494-6.774 39.36-18.208 54.5 2.518 2.497 4.868 5.177 7.02 8.03 1.855 2.455 3.585 5.028 5.204 7.703l78.895 24.023-60.837-56.857c2.133-5.824 3.784-11.88 4.902-18.116l130.137-19.308-130.147-19.307c-1.12-6.232-2.77-12.283-4.906-18.103l60.85-56.87-79.75 24.286C319.52 38.743 289.5 23.545 256 23.545zm.002 45.182c-23.1 0-42.257 23.548-45.89 54.412h36.544v18.686H209.85c1.698 19.243 9.403 35.878 20.408 46.133H219.94c-11.947 2.392-20.787 8.595-28.223 18.446-7.56 10.013-13.304 23.86-17.34 39.875-7.365 29.223-8.98 65.15-9.22 97.33h39.972l10.32 149.056h81.103l10.322-149.057h39.973c-.24-32.18-1.856-68.107-9.22-97.33-4.037-16.014-9.782-29.86-17.34-39.874-7.437-9.85-16.278-16.054-28.226-18.447h-10.316c11.005-10.256 18.71-26.89 20.408-46.134h-36.81V123.14h36.547c-3.633-30.865-22.79-54.413-45.888-54.413z"},child:[]}]})(n)}function eje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M418.176 280.486c21.38-30.735 42.538-61.17 64.123-92.267-30.341-4.086-59.886-8.048-89.888-12.134 13.6-39.089 26.955-77.509 40.735-117.15-41.247 23.546-81.281 46.413-121.716 69.462-10.34-34.333-20.703-68.359-31.223-103.298-18.23 32.498-35.798 63.965-53.603 95.676-33.719-32.262-66.83-64.029-101.163-96.841 7.803 45.31 15.426 89.155 22.986 133.733-43.964-7.009-86.833-13.655-130.986-20.553 31.892 37.199 63.052 73.548 94.4 110.197-27.932 25.67-55.681 51.161-84.029 77.383 36.648 8.173 71.958 16.16 108.18 24.332-13.236 29.451-26.221 58.358-39.577 88.061 23.718-6.284 26.68-7.016 49.303-13.118 0 0 22.35-68.463 32.866-84.747 4.806-7.29 5.267-13.96 3.675-22.182-6.668-34.118-12.749-68.32-19.108-102.447-.39-1.934-.47-3.335 1.543-4.647 23.978-16.689 36.344-21.244 73.797-47.78 17.295 19.699 34.47 39.477 51.997 59.647a2368.384 2368.384 0 0 0-17.837 16.364c-.46.46-1.622.69-2.324.46-6.52-1.943-13.03-3.876-19.588-5.968-7.708-7.292-13.68-15.293-19.808-21.482-1.703 6.36-3.456 12.327-4.887 18.457 8.984 10.945 11.236 14.184 16.904 19.77 1.162 1.17 1.861 3.024 1.861 4.576 1.549 31.612.61 62.646 2.134 89.81 3.374.932 6.439 1.703 10.196 2.795-.773-34.13-1.353-67.71-2.244-101.52 2.053 0 3.995 1.012 5.618 3.877 19.688 32.305 37.333 64.041 54.95 93.455 2.944-1.712 5.858-3.415 8.843-5.127-1.513 4.573-6.594 10.905-9.314 14.822-9.388 14.727-25.093 22.027-37.995 30.863-15.624 24.762-28.247 50.076-38.257 67.658l14.789 37.443c.37.118 26.19-39.152 38.908-59.09 21.19 18.717 41.987 37.136 63.39 56.035 1.55-41.042 3.196-80.801 4.692-121.048 44.704 3.844 88.763 7.623 134.04 11.53-26.01-32.444-51.169-63.604-76.383-95.007zm-164.443-117.08c12.948-8.062 25.587-15.822 38.506-23.725 6.389 11.007 12.479 21.863 18.646 32.878-10.625 6.59-21.17 13.189-32.107 19.849-8.181-9.614-16.593-19.147-25.045-29.002zm51.184 59.027c-6.29-7.37-12.568-14.512-19.197-22.183 11.055-6.75 22.062-13.57 33.307-20.48 5.74 10.085 11.368 19.93 17.066 30.013-16.835 10.475-33.47 20.63-49.834 30.715-.11-.232-.23-.311-.459-.47 6.317-5.739 12.598-11.476 19.117-17.595zm-26.138 34.74c20.55-12.639 40.83-25.047 61.42-37.765 6.128 10.546 11.946 20.86 18.115 31.716-20.52 12.719-40.879 25.127-61.54 37.844-6.018-10.775-11.985-21.25-17.995-31.795zm40.479 71.033c-5.739-10.155-11.476-20.08-17.175-30.325 19.238-11.786 38.346-23.574 57.744-35.51 5.698 10.073 11.438 20.079 17.135 30.245-19.31 12.015-38.466 23.733-57.704 35.59z"},child:[]}]})(n)}function tje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M384 64a64 64 0 0 0-64 64 64 64 0 0 0 1.1 11.3l-146.3 73.2A64 64 0 0 0 128 192a64 64 0 0 0-64 64 64 64 0 0 0 64 64 64 64 0 0 0 46.8-20.5L321 372.7a64 64 0 0 0-1 11.3 64 64 0 0 0 64 64 64 64 0 0 0 64-64 64 64 0 0 0-64-64 64 64 0 0 0-46.8 20.5L191 267.4a64 64 0 0 0 1-11.4 64 64 0 0 0-1.1-11.4l146.3-73.1A64 64 0 0 0 384 192a64 64 0 0 0 64-64 64 64 0 0 0-64-64z"},child:[]}]})(n)}function nje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256.3 19.95c-41 0-74.1 32.7-74.1 73.27 0 22.98 8 33.78 16.8 47.78 5.9 9.3 12 20.1 15.5 35.6h83c3.5-15.9 9.6-26.8 15.5-36.2 8.9-14.1 16.8-24.7 16.8-47.18 0-40.57-32.8-73.27-73.5-73.27zm-142.1 7.7L81 35.4l81.2 40.25-48-48zm283.6 0l-48 48L431 35.4l-33.2-7.75zM210.5 79.2l45.5 22.7 45.5-22.7-20.8 83-17.4-4.4 11.2-45-18.5 9.3-18.5-9.3 11.2 45-17.4 4.4-20.8-83zM64 96.03v32.07l96-16.1-96-15.97zm384 0L352 112l96 16V96.03zM334.2 144.3l39.9 63.3 24.1-15.3-64-48zm-156.4.1l-64 48 24.1 15.3 39.9-63.3zM216 191v16h80v-16h-80zm34.4 28.3c-13.7 0-26.9.5-35.7 1-68.2 10.7-82.9 105.4-66.7 191.6h23.6l-1-105.4 18.6-.2c-1.4 63.7 1.6 126.6 5.5 189.7h51.4V390.3h18.7V496h50.4c4.5-65 5.9-131.5 6.5-189.7l18.7.2-1.1 105.4h24.6c18.3-88.5-4.8-178.9-67.1-190.6-9.4-1.4-24.9-2-40.6-2h-5.8z"},child:[]}]})(n)}function ije(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M257.65 19.033l-47.552 85.598c-51.53 16.016-91.8 57.678-105.877 110.026L33.407 252.25l69.276 38.486c5.942 26.33 18.456 50.18 35.722 69.737 5.63-7.952 12.438-15.05 20.547-21.162-19.19-22.513-30.794-51.682-30.794-83.51 0-71.074 57.838-128.488 128.912-128.488 71.077 0 128.49 57.412 128.49 128.49 0 30.006-10.234 57.65-27.408 79.583 8.525 5.88 15.612 12.795 21.413 20.592 15.176-18.532 26.235-40.563 31.77-64.692l70.263-39.035-71.826-38.13c-14.312-52.475-54.968-94.123-106.856-109.825L257.65 19.033zm.266 150.33c-17.56 0-33.686 9.02-45.902 24.647-12.217 15.626-20.09 37.754-20.09 62.373 0 26.12 9.218 49.343 22.846 65.148l10.14 11.76-15.14 3.452c-38.027 8.67-55.962 26.396-66.48 54.268-9.788 25.934-11.75 61.67-11.99 104.236h254.473c-.047-42.74-.66-79.348-9.683-105.814-9.693-28.432-27.11-46.38-67.99-54.38l-15.272-2.99 9.817-12.076c12.778-15.718 21.267-38.404 21.267-63.603 0-24.62-7.875-46.747-20.092-62.373-12.216-15.626-28.343-24.647-45.902-24.647h-.002z"},child:[]}]})(n)}function rje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M255.422 18.346c-111.086 0-204.14 76.375-229.615 179.533-11.867 70.7 11.228 143.745 60.048 194.24-5.034 28.402-5.687 61.755-5.687 100.54h18.687c0-57.013 2.106-100.723 14.88-130.744 12.776-30.02 34.883-47.983 81.394-56.728l15.61-2.934-10.148-12.22c-16.364-19.7-27.22-48.142-27.22-79.84 0-30.586 9.785-58.117 25.093-77.66 15.308-19.54 35.707-30.99 57.99-30.99s42.683 11.45 57.99 30.99c15.308 19.543 25.094 47.074 25.094 77.66 0 31.072-9.61 59.05-25.186 78.55l-10.036 12.565 15.885 2.497c50.69 7.97 72.17 25.994 83.77 56.398 11.598 30.404 11.513 75.137 11.513 132.455h18.69c0-30.09.238-57.06-1.506-81.117 36.888-41.708 59.28-96.54 59.28-156.668 0-130.742-105.786-236.53-236.528-236.53zm8.2 43.45c30.12.1 60.5 7.25 88.24 21.995 99.02 52.642 132.557 179.59 80.525 276.79-1.816 3.392-3.722 6.703-5.698 9.95-1.455-5.895-3.186-11.558-5.256-16.985-.896-2.347-1.872-4.636-2.913-6.877 43.444-87.576 12.394-199.683-75.432-246.373-24.95-13.264-52.307-19.685-79.436-19.775-59.683-.2-118.266 30.23-147.71 85.798-25.907 48.89-22.56 108.01 5.224 152.838-4.82 4.473-9.11 9.337-12.906 14.582-34-50.89-38.835-119.552-8.834-176.17 32.91-62.107 97.928-95.992 164.195-95.77zm86.657 98.9c37.642 37.22 50.227 94.933 32.638 145.548-5.115-3.25-10.7-6.19-16.773-8.81 10.177-31.69 6.895-66.347-8.112-95-.702-14.7-3.382-28.753-7.754-41.74zM158.92 173.642c-2.762 11.597-4.24 23.864-4.24 36.55 0 7.46.533 14.768 1.543 21.875-1.932 21.073 3.05 42.43 14.21 60.077-6.35 1.94-12.302 4.153-17.867 6.638-19.113-32.745-21.045-74.92-2.818-110.215 2.726-5.28 5.8-10.255 9.172-14.925zm60.45 29.34c-15.794.205-19.24 4.585-24.546 8.15 12.483 11.99 36.9 10.832 47.748 0-4.992-4.043-10.37-8.317-23.203-8.15zm74.69.177c-15.794.205-19.24 4.586-24.546 8.15 12.483 11.992 36.9 10.833 47.748 0-4.992-4.042-10.37-8.317-23.203-8.15z"},child:[]}]})(n)}function sje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 16c-48 0-80 32-80 64 0 48 16 80 32 96v16h96v-16c16-16 32-48 32-96 0-32-32-64-80-64zm-63.6 65.33L256 102.5l63.6-21.17-39.2 97.97-16.8-6.6 24.8-62-32.4 10.8-32.4-10.8 24.8 62-16.8 6.6-39.2-97.97zm-83.3 79.07c-23.4 3-44.6 30.5-44.6 65.9 0 19.6 6.8 36.9 16.7 48.9l11.9 14.2-18.3 3.4c-12.9 2.5-22.3 9.3-30.4 20.4-8.1 11.1-14.3 26.5-18.6 44.4C18 389.8 16.2 429.2 16 464h42.8l2.24 30H169.6l2-30h40.8c0-35.2-.4-75.1-7.5-107.7-4-17.9-9.9-33.3-18.1-44.3-8.2-11-18.1-17.8-32.6-20l-18.5-2.9 11.7-14.7c9.5-11.9 15.9-29 15.9-48.1 0-37.8-23.6-65.8-49.4-65.8l-4.8-.1zm283.6 0c-23.4 3-44.6 30.5-44.6 65.9 0 19.6 6.8 36.9 16.7 48.9l11.9 14.2-18.3 3.4c-12.9 2.5-22.3 9.3-30.4 20.4-8.1 11.1-14.3 26.5-18.6 44.4-7.8 32.2-9.6 71.6-9.8 106.4h42.8l2.2 30h108.6l2-30H496c0-35.2-.4-75.1-7.5-107.7-4-17.9-9.9-33.3-18.1-44.3-8.2-11-18.1-17.8-32.6-20l-18.5-2.9 11.7-14.7c9.5-11.9 15.9-29 15.9-48.1 0-37.8-23.6-65.8-49.4-65.8l-4.8-.1zM208 209v18h96v-18h-96zm16 34v18h64v-18h-64z"},child:[]}]})(n)}function aje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M249.334 22.717c-18.64 2.424-35.677 23.574-37.043 51.49v.02c-.057 1.186-.097 2.38-.097 3.59 0 16.362 5.658 30.827 13.942 40.818l10.127 12.213-15.592 2.933c-10.75 2.025-18.622 7.702-25.373 16.978-2.285 3.14-4.384 6.707-6.31 10.62-57.54-6.44-97.91-21.06-97.91-37.952 0-17.363 42.647-31.983 102.75-37.97-.213-2.51-.323-5.057-.323-7.636v-.002c0-.84.024-1.674.047-2.51-96.43 6.77-167.298 29.15-167.3 55.71-.002 25.33 64.462 46.86 154.074 54.67-.19.742-.394 1.465-.576 2.216-2.36 9.72-4.05 20.22-5.268 31.03-.01 0-.02 0-.03.002-.418 3.653-.78 7.34-1.095 11.046l.05-.005c-1.316 15.777-1.772 31.88-1.893 46.95h35.894l2.115 28.4c-68.24-4.994-118.444-21.004-118.444-39.843 0-13.243 24.83-24.89 63.27-32.33.3-4.056.66-8.115 1.076-12.162-76.42 9.353-129.17 29.168-129.172 52.086-.002 28.17 79.71 51.643 185.098 56.768l5.94 79.77c10.5 2.648 24.84 4.162 39.017 4.068 13.79-.092 27.235-1.71 36.45-4l5.263-79.846c105.308-5.14 184.935-28.605 184.935-56.76 0-23.013-53.196-42.895-130.13-52.2.304 4.02.557 8.047.755 12.07 38.883 7.43 63.965 19.17 63.965 32.536 0 18.84-49.804 34.85-117.908 39.844l1.87-28.402h34.18c-.012-15.113-.127-31.27-1.033-47.094.01 0 .02.002.032.004-.214-3.687-.472-7.352-.782-10.986l-.02-.002c-.94-11.157-2.367-21.984-4.546-31.967-.09-.405-.184-.803-.275-1.206 89.518-7.826 153.893-29.344 153.893-54.656 0-26.787-72.076-49.332-169.77-55.887.025.895.053 1.788.053 2.688 0 2.5-.104 4.97-.304 7.407 61.19 5.836 104.61 20.61 104.61 38.2 0 16.805-39.633 31.355-96.524 37.848-2.01-4.283-4.26-8.15-6.762-11.505-6.83-9.167-15.063-14.81-27.14-16.682l-15.913-2.47 10.037-12.59c6.928-8.69 11.912-20.715 13.057-34.268h.002c.163-1.95.25-3.93.25-5.938 0-.77-.022-1.532-.048-2.29-.015-.48-.033-.958-.057-1.434h-.002c-1.48-29.745-20.507-51.3-41.076-51.3-2.528 0-3.966-.087-4.03-.08h-.003zM194.54 355.822c-97.11 6.655-168.573 29.11-168.573 55.8 0 31.932 102.243 57.815 228.367 57.815S482.7 443.555 482.7 411.623c0-26.608-71.02-49.004-167.67-55.736l-.655 9.93c60.363 6.055 103.074 20.956 103.074 38.394 0 22.81-73.032 41.298-163.12 41.298-90.088 0-163.12-18.49-163.12-41.297 0-17.533 43.18-32.502 104.07-38.493l-.74-9.895z"},child:[]}]})(n)}function oje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M20.22 21.75v65.5l92 70.625-60.126 58.094 235.656 157.5-83.844-5.845 93.25 76.53-77.562 5.47 113.5 40.656-4.625-69.03h-21.783c0-37.79-.747-91.963 32.5-100-5.097-7.648-8.187-17.65-8.187-28.625 0-23.993 14.784-43.47 33-43.47s32.97 19.475 32.97 43.47c0 11.247-3.24 21.472-8.564 29.188 30.514 8.638 32.875 61.79 32.875 99.437h-22.967l-5.25 69.813 91.906-59.594-49.064 4.374 57.594-105.53-60.156 16.905 57.5-92.814-68.53 28.813 54.217-102.345-72.655 43.063 18.53-123.407-51.717 115.94-71.125-144.032 23 165.062-66.25-52.5 42.468 85.75-120.436-76.97 73.594-54.655L123.188 21.75H20.218z"},child:[]}]})(n)}function lje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M250.322 18.494c-25.06 3.26-47.158 32.267-47.158 69.346 0 20.453 7.06 38.57 17.502 51.166l10.123 12.213-15.59 2.932c-13.676 2.574-23.794 9.896-32.272 21.547-8.48 11.65-14.86 27.7-19.326 46.095-8.23 33.9-9.916 75.216-10.143 111.275h44.007l11.883 159.512h96.37l10.514-159.512h41.88c-.013-36.448-.353-78.316-7.81-112.48-4.042-18.524-10.176-34.575-18.777-46.12-8.6-11.543-19.21-18.81-34.482-21.18l-15.912-2.468 10.037-12.59c9.99-12.533 16.7-30.436 16.7-50.392 0-39.537-24.776-69.268-52.352-69.268-2.915 0-4.754-.135-5.196-.078zm178.608 1.078c-31.872-.534-61.166 26.473-71.084 63.49-4.575 17.073-4.83 35.29-.817 51.108-10.96 1.307-20.99 5.173-29.772 10.996 5.563 3.58 10.537 7.906 14.906 12.814 7.998-4.296 16.716-6.28 27.084-5.492l15.816 1.2-6.615-14.415c-5.86-12.764-7.33-33.55-2.554-51.377 8.122-30.308 31.484-49.75 52.75-49.61 1.416.008 2.825.104 4.22.29l.01.002c.263.037 1.817.567 4.44 1.27 23.73 6.36 38.404 37.853 29.168 72.324-4.66 17.392-15.965 34.567-27.02 42.73l-12.954 9.565 14.73 6.502c13.063 5.765 20.835 13.86 25.885 24.348 5.05 10.487 7.12 23.674 6.846 38.674-.5 27.368-8.862 60.148-17.2 91.362l-36.864-9.88-51.232 153.712-42.69.11-1.23 18.69 57.402-.146 49.914-149.758 37.946 10.166 2.42-9.025c9.022-33.677 19.603-71.135 20.22-104.89.31-16.876-1.89-32.994-8.693-47.124-5.016-10.417-12.696-19.57-23.065-26.622 10.814-11.607 19.228-27.125 23.637-43.58 11.288-42.13-6.228-85.52-42.38-95.21l-.003-.003c-1.106-.296-3.297-1.274-6.81-1.744h-.008l-2.838-.38-.295.146c-1.09-.082-2.185-.226-3.27-.244zm-349.32.46c-4.49.056-9.02.665-13.538 1.876-.095.026-.327.068-.44.094l-.575-.574-5.76 2.377h-.002C27.32 36.99 13.11 77.635 23.69 117.12c4.574 17.073 13.46 32.977 24.845 44.67-9.328 6.978-16.34 15.908-21.053 25.99-6.507 13.924-8.973 29.83-9.11 46.6-.27 33.543 8.753 71.01 17.82 104.845l2.42 9.027 40.02-10.727 51.11 149.454 60.46.153-1.39-18.694-45.7-.116-52.446-153.37-38.73 10.378c-8.028-30.892-15.098-63.467-14.875-90.8.122-14.997 2.417-28.276 7.354-38.84 4.937-10.56 12.24-18.566 23.865-24.15l14.298-6.87-12.94-9.176c-11.456-8.122-23.12-25.39-27.896-43.215-8.66-32.315 3.867-62.596 24.653-71.188l.025-.01c.244-.1 1.86-.42 4.486-1.12h.002l.002-.003c2.966-.796 6.005-1.18 9.072-1.175 21.47.027 44.263 19.06 52.344 49.223 4.66 17.392 3.46 37.92-2.035 50.517l-6.436 14.76 16.01-1.734c13.355-1.447 23.684 1.234 32.868 7.016 4.285-4.866 9.108-9.17 14.46-12.742-.73-.536-1.464-1.062-2.212-1.572-9.55-6.512-20.777-10.598-33.283-11.522 3.562-15.46 3.09-33.105-1.318-49.56-9.878-36.864-39.338-63.538-70.77-63.14z"},child:[]}]})(n)}function cje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4"},child:[]},{tag:"path",attr:{d:"M18 14v4h4"},child:[]},{tag:"path",attr:{d:"M18 18m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"},child:[]},{tag:"path",attr:{d:"M15 3v4"},child:[]},{tag:"path",attr:{d:"M7 3v4"},child:[]},{tag:"path",attr:{d:"M3 11h16"},child:[]}]})(n)}function dje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4"},child:[]},{tag:"path",attr:{d:"M18 18m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"},child:[]},{tag:"path",attr:{d:"M15 3v4"},child:[]},{tag:"path",attr:{d:"M7 3v4"},child:[]},{tag:"path",attr:{d:"M3 11h16"},child:[]},{tag:"path",attr:{d:"M18 16.496v1.504l1 1"},child:[]}]})(n)}function uje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M15.22 9.375a1 1 0 0 1 1.393 -.165l.094 .083l4 4a1 1 0 0 1 .284 .576l.009 .131v5a1 1 0 0 1 -.883 .993l-.117 .007h-16.022l-.11 -.009l-.11 -.02l-.107 -.034l-.105 -.046l-.1 -.059l-.094 -.07l-.06 -.055l-.072 -.082l-.064 -.089l-.054 -.096l-.016 -.035l-.04 -.103l-.027 -.106l-.015 -.108l-.004 -.11l.009 -.11l.019 -.105c.01 -.04 .022 -.077 .035 -.112l.046 -.105l.059 -.1l4 -6a1 1 0 0 1 1.165 -.39l.114 .05l3.277 1.638l3.495 -4.369z",strokeWidth:"0",fill:"currentColor"},child:[]},{tag:"path",attr:{d:"M15.232 3.36a1 1 0 0 1 1.382 -.15l.093 .083l4 4a1 1 0 0 1 -1.32 1.497l-.094 -.083l-3.226 -3.225l-4.299 5.158a1 1 0 0 1 -1.1 .303l-.115 -.049l-3.254 -1.626l-2.499 3.332a1 1 0 0 1 -1.295 .269l-.105 -.069a1 1 0 0 1 -.269 -1.295l.069 -.105l3 -4a1 1 0 0 1 1.137 -.341l.11 .047l3.291 1.645l4.494 -5.391z",strokeWidth:"0",fill:"currentColor"},child:[]}]})(n)}function hje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M3 3v18h18"},child:[]},{tag:"path",attr:{d:"M20 18v3"},child:[]},{tag:"path",attr:{d:"M16 16v5"},child:[]},{tag:"path",attr:{d:"M12 13v8"},child:[]},{tag:"path",attr:{d:"M8 16v5"},child:[]},{tag:"path",attr:{d:"M3 11c6 0 5 -5 9 -5s3 5 9 5"},child:[]}]})(n)}function fje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M14 3v4a1 1 0 0 0 1 1h4"},child:[]},{tag:"path",attr:{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"},child:[]},{tag:"path",attr:{d:"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"},child:[]},{tag:"path",attr:{d:"M17 18h2"},child:[]},{tag:"path",attr:{d:"M20 15h-3v6"},child:[]},{tag:"path",attr:{d:"M11 15v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1z"},child:[]}]})(n)}function pje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2"},child:[]}]})(n)}function mje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M11.013 12v9.754a13 13 0 0 1 -8.733 -9.754h8.734zm9.284 3.794a13 13 0 0 1 -7.283 5.951l-.001 -9.745h8.708a12.96 12.96 0 0 1 -1.424 3.794zm-9.283 -13.268l-.001 7.474h-8.986c-.068 -1.432 .101 -2.88 .514 -4.282a1 1 0 0 1 1.005 -.717a11 11 0 0 0 7.192 -2.256l.276 -.219zm1.999 7.474v-7.453l-.09 -.073a11 11 0 0 0 7.189 2.537l.342 -.01a1 1 0 0 1 1.005 .717c.413 1.403 .582 2.85 .514 4.282h-8.96z",strokeWidth:"0",fill:"currentColor"},child:[]}]})(n)}function gje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M12 3a12 12 0 0 0 8.5 3a12 12 0 0 1 -8.5 15a12 12 0 0 1 -8.5 -15a12 12 0 0 0 8.5 -3"},child:[]},{tag:"path",attr:{d:"M12 3v18"},child:[]},{tag:"path",attr:{d:"M12 11h8.9"},child:[]},{tag:"path",attr:{d:"M12 8h8.9"},child:[]},{tag:"path",attr:{d:"M12 5h3.1"},child:[]},{tag:"path",attr:{d:"M12 17h6.2"},child:[]},{tag:"path",attr:{d:"M12 14h8"},child:[]}]})(n)}function vje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},child:[]},{tag:"path",attr:{d:"M15 10v-5c0 -1.38 .62 -2 2 -2s2 .62 2 2v5m0 -3h-4"},child:[]},{tag:"path",attr:{d:"M19 21h-4l4 -7h-4"},child:[]},{tag:"path",attr:{d:"M4 15l3 3l3 -3"},child:[]},{tag:"path",attr:{d:"M7 6v12"},child:[]}]})(n)}function yje(n){return Le({tag:"svg",attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M10.895 16.553l-4-8c-.339-.678-1.45-.678-1.789 0l-4 8c-.247.494-.047 1.095.447 1.342.495.248 1.095.046 1.342-.447l.723-1.448h4.764l.724 1.447c.175.351.528.553.895.553.15 0 .303-.034.446-.105.494-.248.695-.848.448-1.342zm-6.277-2.553l1.382-2.764 1.382 2.764h-2.764zM22 18h-6c-.379 0-.725-.214-.895-.553s-.132-.744.095-1.047l4.8-6.4h-4c-.552 0-1-.448-1-1s.448-1 1-1h6c.379 0 .725.214.895.553s.132.744-.095 1.047l-4.8 6.4h4c.552 0 1 .448 1 1s-.448 1-1 1zM14 14h-2c-.552 0-1-.448-1-1s.448-1 1-1h2c.552 0 1 .448 1 1s-.448 1-1 1z"},child:[]}]})(n)}function _je(n){return Le({tag:"svg",attr:{version:"1.1",viewBox:"0 0 17 17"},child:[{tag:"g",attr:{},child:[]},{tag:"path",attr:{d:"M17 11.5v0.5h-6.168v-1h5.152c-0.112-1.692-0.789-3.231-1.842-4.434l-0.806 0.806-0.707-0.707 0.802-0.802c-1.202-1.053-2.74-1.726-4.431-1.839v2.976h-1v-2.976c-1.691 0.113-3.229 0.786-4.43 1.839l0.796 0.796-0.707 0.707-0.8-0.8c-1.053 1.203-1.731 2.742-1.842 4.434h5.171v1h-6.188v-0.5c0-4.687 3.813-8.5 8.5-8.5s8.5 3.813 8.5 8.5zM10.5 11.5c0 1.103-0.897 2-2 2s-2-0.897-2-2c0-0.644 0.311-1.21 0.784-1.577l-2.082-3.63 0.867-0.497 2.141 3.733c0.095-0.014 0.19-0.029 0.29-0.029 1.103 0 2 0.897 2 2zM9.5 11.5c0-0.551-0.449-1-1-1s-1 0.449-1 1 0.449 1 1 1 1-0.449 1-1z"},child:[]}]})(n)}function Eje(n){return Le({tag:"svg",attr:{version:"1.1",viewBox:"0 0 17 17"},child:[{tag:"g",attr:{},child:[]},{tag:"path",attr:{d:"M8.301 6.422c0.437 0 0.769-0.161 1.006-0.484 0.181-0.237 0.265-0.617 0.265-1.12v-1.66c0-0.503-0.084-0.873-0.265-1.11-0.238-0.321-0.57-0.483-1.006-0.483-0.428 0-0.76 0.161-0.995 0.483-0.181 0.238-0.266 0.608-0.266 1.111v1.66c0 0.503 0.085 0.873 0.266 1.12 0.235 0.322 0.567 0.483 0.995 0.483zM7.893 2.988c0-0.436 0.133-0.654 0.408-0.654 0.285 0 0.408 0.218 0.408 0.654v1.992c0 0.437-0.123 0.664-0.408 0.664-0.275 0-0.408-0.228-0.408-0.664v-1.992zM10.35 6.071c-0.048-0.143-0.075-0.37-0.075-0.711v-3.738h0.863v3.481c0 0.2 0 0.313 0.010 0.333 0.019 0.133 0.085 0.208 0.199 0.208 0.17 0 0.35-0.133 0.54-0.408v-3.614h0.863v4.734h-0.863v-0.522c-0.341 0.398-0.663 0.588-0.978 0.588-0.275 0-0.474-0.113-0.559-0.351zM13.633 11.811v0.436h-0.854v-0.436c0-0.427 0.143-0.646 0.427-0.646 0.284 0.001 0.427 0.219 0.427 0.646zM4.354 1.774c-0.208-0.588-0.416-1.186-0.617-1.774h1.007l0.673 2.495 0.645-2.495h0.968l-1.148 3.785v2.571h-0.948v-2.571c-0.086-0.465-0.276-1.129-0.58-2.011zM15.283 8.785c-0.171-0.75-0.788-1.3-1.518-1.385-1.746-0.19-3.511-0.19-5.266-0.19s-3.52 0-5.256 0.19c-0.738 0.085-1.346 0.635-1.526 1.385-0.237 1.062-0.247 2.22-0.247 3.32 0 1.091 0 2.257 0.247 3.32 0.171 0.75 0.788 1.3 1.518 1.376 1.745 0.199 3.51 0.199 5.265 0.199s3.52 0 5.266-0.199c0.729-0.076 1.337-0.626 1.518-1.376 0.237-1.062 0.247-2.229 0.247-3.32-0.001-1.1-0.001-2.258-0.248-3.32zM5.483 9.743h-1.014v5.398h-0.949v-5.398h-0.997v-0.892h2.96v0.892zM8.045 15.141h-0.845v-0.512c-0.342 0.389-0.664 0.579-0.968 0.579-0.274 0-0.474-0.114-0.55-0.351-0.048-0.142-0.076-0.361-0.076-0.692v-3.709h0.845v3.453c0 0.2 0 0.304 0.009 0.333 0.020 0.132 0.086 0.199 0.199 0.199 0.172 0 0.352-0.132 0.541-0.398v-3.586h0.845v4.684zM11.271 13.737c0 0.437-0.020 0.749-0.086 0.948-0.104 0.342-0.342 0.522-0.674 0.522-0.303 0-0.598-0.171-0.883-0.522v0.456h-0.843v-6.29h0.843v2.059c0.275-0.342 0.57-0.512 0.883-0.512 0.332 0 0.57 0.18 0.674 0.531 0.066 0.19 0.086 0.502 0.086 0.939v1.869zM14.477 12.959h-1.698v0.825c0 0.437 0.143 0.654 0.437 0.654 0.209 0 0.332-0.113 0.38-0.341 0.009-0.047 0.019-0.237 0.019-0.579h0.863v0.124c0 0.275 0 0.465-0.019 0.55-0.020 0.189-0.096 0.36-0.199 0.512-0.229 0.332-0.579 0.503-1.024 0.503-0.446 0-0.779-0.161-1.025-0.484-0.18-0.228-0.275-0.598-0.275-1.101v-1.641c0-0.503 0.086-0.863 0.266-1.101 0.247-0.323 0.579-0.484 1.016-0.484 0.428 0 0.759 0.161 1.005 0.484 0.172 0.237 0.257 0.597 0.257 1.101v0.978zM10.426 11.801v2.002c0 0.427-0.124 0.635-0.37 0.635-0.143 0-0.285-0.066-0.428-0.208v-2.855c0.143-0.143 0.285-0.209 0.428-0.209 0.246 0 0.37 0.218 0.37 0.635z"},child:[]}]})(n)}function wje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16 14h.5c.827 0 1.5-.673 1.5-1.5v-9c0-.827-.673-1.5-1.5-1.5h-13C2.673 2 2 2.673 2 3.5V18l5.333-4H16zm-9.333-2L4 14V4h12v8H6.667z"},child:[]},{tag:"path",attr:{d:"M20.5 8H20v6.001c0 1.1-.893 1.993-1.99 1.999H8v.5c0 .827.673 1.5 1.5 1.5h7.167L22 22V9.5c0-.827-.673-1.5-1.5-1.5z"},child:[]}]})(n)}function Sje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M20.56,3.34a1,1,0,0,0-1-.08l-17,8a1,1,0,0,0-.57.92,1,1,0,0,0,.6.9L8,15.45v6.72L13.84,18l4.76,2.08a.93.93,0,0,0,.4.09,1,1,0,0,0,.52-.15,1,1,0,0,0,.48-.79l1-15A1,1,0,0,0,20.56,3.34ZM18.1,17.68l-5.27-2.31L16,9.17,8.35,13.42,5.42,12.13,18.89,5.79Z"},child:[]}]})(n)}function bje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M21 6c0-1.654-1.346-3-3-3a2.993 2.993 0 0 0-2.815 2h-6.37A2.993 2.993 0 0 0 6 3C4.346 3 3 4.346 3 6c0 1.302.839 2.401 2 2.815v6.369A2.997 2.997 0 0 0 3 18c0 1.654 1.346 3 3 3a2.993 2.993 0 0 0 2.815-2h6.369a2.994 2.994 0 0 0 2.815 2c1.654 0 3-1.346 3-3a2.997 2.997 0 0 0-2-2.816V8.816A2.996 2.996 0 0 0 21 6zm-3-1a1.001 1.001 0 1 1-1 1c0-.551.448-1 1-1zm-2.815 12h-6.37A2.99 2.99 0 0 0 7 15.184V8.816A2.99 2.99 0 0 0 8.815 7h6.369A2.99 2.99 0 0 0 17 8.815v6.369A2.99 2.99 0 0 0 15.185 17zM6 5a1.001 1.001 0 1 1-1 1c0-.551.448-1 1-1zm0 14a1.001 1.001 0 0 1 0-2 1.001 1.001 0 0 1 0 2zm12 0a1.001 1.001 0 0 1 0-2 1.001 1.001 0 0 1 0 2z"},child:[]}]})(n)}function Cje(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 2C7.589 2 4 5.589 4 9.995 3.971 16.44 11.696 21.784 12 22c0 0 8.029-5.56 8-12 0-4.411-3.589-8-8-8zm0 12c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"},child:[]}]})(n)}function Tje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M217.9 256L345 129c9.4-9.4 9.4-24.6 0-33.9-9.4-9.4-24.6-9.3-34 0L167 239c-9.1 9.1-9.3 23.7-.7 33.1L310.9 417c4.7 4.7 10.9 7 17 7s12.3-2.3 17-7c9.4-9.4 9.4-24.6 0-33.9L217.9 256z"},child:[]}]})(n)}function Rje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 294.1L383 167c9.4-9.4 24.6-9.4 33.9 0s9.3 24.6 0 34L273 345c-9.1 9.1-23.7 9.3-33.1.7L95 201.1c-4.7-4.7-7-10.9-7-17s2.3-12.3 7-17c9.4-9.4 24.6-9.4 33.9 0l127.1 127z"},child:[]}]})(n)}function xje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z"},child:[]}]})(n)}function Aje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 217.9L383 345c9.4 9.4 24.6 9.4 33.9 0 9.4-9.4 9.3-24.6 0-34L273 167c-9.1-9.1-23.7-9.3-33.1-.7L95 310.9c-4.7 4.7-7 10.9-7 17s2.3 12.3 7 17c9.4 9.4 24.6 9.4 33.9 0l127.1-127z"},child:[]}]})(n)}function Ije(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M424 64H88c-22 0-40 18-40 40v304c0 22 18 40 40 40h336c22 0 40-18 40-40V104c0-22-18-40-40-40zm12 176c0 8.8-7.2 16-16 16h-86.8c-6.8 0-12.8 4.2-15.1 10.6C314 278.2 303.8 288 292 288h-72c-11.9 0-22.1-9.8-26.1-21.4-2.2-6.4-8.3-10.6-15.1-10.6H92c-8.8 0-16-7.2-16-16V108c0-8.8 7.2-16 16-16h328c8.8 0 16 7.2 16 16v132z"},child:[]},{tag:"path",attr:{d:"M386 156H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14zM386 220H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14z"},child:[]}]})(n)}function Nje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M260.062 32C138.605 32 40.134 129.701 40.134 250.232c0 41.23 11.532 79.79 31.559 112.687L32 480l121.764-38.682c31.508 17.285 67.745 27.146 106.298 27.146C381.535 468.464 480 370.749 480 250.232 480 129.701 381.535 32 260.062 32zm109.362 301.11c-5.174 12.827-28.574 24.533-38.899 25.072-10.314.547-10.608 7.994-66.84-16.434-56.225-24.434-90.052-83.844-92.719-87.67-2.669-3.812-21.78-31.047-20.749-58.455 1.038-27.413 16.047-40.346 21.404-45.725 5.351-5.387 11.486-6.352 15.232-6.413 4.428-.072 7.296-.132 10.573-.011 3.274.124 8.192-.685 12.45 10.639 4.256 11.323 14.443 39.153 15.746 41.989 1.302 2.839 2.108 6.126.102 9.771-2.012 3.653-3.042 5.935-5.961 9.083-2.935 3.148-6.174 7.042-8.792 9.449-2.92 2.665-5.97 5.572-2.9 11.269 3.068 5.693 13.653 24.356 29.779 39.736 20.725 19.771 38.598 26.329 44.098 29.317 5.515 3.004 8.806 2.67 12.226-.929 3.404-3.599 14.639-15.746 18.596-21.169 3.955-5.438 7.661-4.373 12.742-2.329 5.078 2.052 32.157 16.556 37.673 19.551 5.51 2.989 9.193 4.529 10.51 6.9 1.317 2.38.901 13.531-4.271 26.359z"},child:[]}]})(n)}function Oje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M448 248L288 96v85.334C138.666 202.667 85.333 309.334 64 416c53.333-74.666 117.333-108.802 224-108.802v87.469L448 248z"},child:[]}]})(n)}function Pje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M32 32v432a16 16 0 0 0 16 16h432"},child:[]},{tag:"rect",attr:{width:"80",height:"192",x:"96",y:"224",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",rx:"20",ry:"20"},child:[]},{tag:"rect",attr:{width:"80",height:"240",x:"240",y:"176",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",rx:"20",ry:"20"},child:[]},{tag:"rect",attr:{width:"80",height:"304",x:"383.64",y:"112",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",rx:"20",ry:"20"},child:[]}]})(n)}function Lje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{fill:"none",strokeMiterlimit:"10",strokeWidth:"32",d:"M451 374c-15.88-16-54.34-39.35-73-48.76-24.3-12.24-26.3-13.24-45.4.95-12.74 9.47-21.21 17.93-36.12 14.75s-47.31-21.11-75.68-49.39-47.34-61.62-50.53-76.48 5.41-23.23 14.79-36c13.22-18 12.22-21 .92-45.3-8.81-18.9-32.84-57-48.9-72.8C119.9 44 119.9 47 108.83 51.6A160.15 160.15 0 0 0 83 65.37C67 76 58.12 84.83 51.91 98.1s-9 44.38 23.07 102.64 54.57 88.05 101.14 134.49S258.5 406.64 310.85 436c64.76 36.27 89.6 29.2 102.91 23s22.18-15 32.83-31a159.09 159.09 0 0 0 13.8-25.8C465 391.17 468 391.17 451 374z"},child:[]}]})(n)}function Dje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"m479.66 268.7-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0 0 32 272v112a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V272a16.65 16.65 0 0 0-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 0 1-3.92 4.82H320a15.92 15.92 0 0 0-16 15.82 48 48 0 1 1-96 0A15.92 15.92 0 0 0 192 256H72.65a4 4 0 0 1-3.92-4.82z"},child:[]},{tag:"path",attr:{d:"M368 160H144a16 16 0 0 1 0-32h224a16 16 0 0 1 0 32zm16 64H128a16 16 0 0 1 0-32h256a16 16 0 0 1 0 32z"},child:[]}]})(n)}function kje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{fill:"none",strokeLinejoin:"round",strokeWidth:"32",d:"M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 0 0-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 1 1-32-32 32 32 0 0 1 32 32z"},child:[]}]})(n)}function Mje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 0 0-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 1 1-32-32 32 32 0 0 1 32 32z"},child:[]}]})(n)}function jje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32C167.67 32 96 96.51 96 176c0 128 160 304 160 304s160-176 160-304c0-79.49-71.67-144-160-144zm0 224a64 64 0 1 1 64-64 64.07 64.07 0 0 1-64 64z"},child:[]}]})(n)}function Uje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{fill:"none",strokeLinejoin:"round",strokeWidth:"32",d:"M384 368h24a40.12 40.12 0 0 0 40-40V168a40.12 40.12 0 0 0-40-40H104a40.12 40.12 0 0 0-40 40v160a40.12 40.12 0 0 0 40 40h24"},child:[]},{tag:"rect",attr:{width:"256",height:"208",x:"128",y:"240",fill:"none",strokeLinejoin:"round",strokeWidth:"32",rx:"24.32",ry:"24.32"},child:[]},{tag:"path",attr:{fill:"none",strokeLinejoin:"round",strokeWidth:"32",d:"M384 128v-24a40.12 40.12 0 0 0-40-40H168a40.12 40.12 0 0 0-40 40v24"},child:[]},{tag:"circle",attr:{cx:"392",cy:"184",r:"24"},child:[]}]})(n)}function Fje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M400 96V56a8 8 0 0 0-8-8H120a8 8 0 0 0-8 8v40"},child:[]},{tag:"rect",attr:{width:"208",height:"160",x:"152",y:"264",fill:"none",rx:"4",ry:"4"},child:[]},{tag:"rect",attr:{width:"208",height:"160",x:"152",y:"264",fill:"none",rx:"4",ry:"4"},child:[]},{tag:"path",attr:{d:"M408 112H104a56 56 0 0 0-56 56v208a8 8 0 0 0 8 8h56v72a8 8 0 0 0 8 8h272a8 8 0 0 0 8-8v-72h56a8 8 0 0 0 8-8V168a56 56 0 0 0-56-56zm-48 308a4 4 0 0 1-4 4H156a4 4 0 0 1-4-4V268a4 4 0 0 1 4-4h200a4 4 0 0 1 4 4zm34-212.08a24 24 0 1 1 22-22 24 24 0 0 1-22 22z"},child:[]}]})(n)}function Bje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M336 176 225.2 304 176 255.8"},child:[]},{tag:"path",attr:{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z"},child:[]}]})(n)}function Vje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M479.07 111.36a16 16 0 0 0-13.15-14.74c-86.5-15.52-122.61-26.74-203.33-63.2a16 16 0 0 0-13.18 0C168.69 69.88 132.58 81.1 46.08 96.62a16 16 0 0 0-13.15 14.74c-3.85 61.11 4.36 118.05 24.43 169.24A349.47 349.47 0 0 0 129 393.11c53.47 56.73 110.24 81.37 121.07 85.73a16 16 0 0 0 12 0c10.83-4.36 67.6-29 121.07-85.73a349.47 349.47 0 0 0 71.5-112.51c20.07-51.19 28.28-108.13 24.43-169.24zm-131 75.11-110.8 128a16 16 0 0 1-11.41 5.53h-.66a16 16 0 0 1-11.2-4.57l-49.2-48.2a16 16 0 1 1 22.4-22.86l37 36.29 99.7-115.13a16 16 0 0 1 24.2 20.94z"},child:[]}]})(n)}function zje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M48.9 112.37C138.32 96.33 175.29 84.45 256 48c80.71 36.45 117.68 48.33 207.1 64.37C479.3 369.13 271.42 457.79 256 464c-15.42-6.21-223.3-94.87-207.1-351.63z"},child:[]},{tag:"path",attr:{d:"M256 48c80.71 36.45 117.68 48.33 207.1 64.37C479.3 369.13 271.42 457.79 256 464z"},child:[]}]})(n)}function Hje(n){return Le({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"},child:[]}]})(n)}function Gje(n){return Le({tag:"svg",attr:{viewBox:"0 0 320 512"},child:[{tag:"path",attr:{d:"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"},child:[]}]})(n)}function Wje(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"},child:[]}]})(n)}function $je(n){return Le({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"},child:[]}]})(n)}function Kje(n){return Le({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"},child:[]}]})(n)}function qje(n){return Le({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"},child:[]}]})(n)}function Yje(n){return Le({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"},child:[]}]})(n)}function Xje(n){return Le({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"},child:[]}]})(n)}function Jje(n){return Le({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"},child:[]}]})(n)}function Qje(n){return Le({tag:"svg",attr:{viewBox:"0 0 544 512"},child:[{tag:"path",attr:{d:"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"},child:[]}]})(n)}function Zje(n){return Le({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"},child:[]}]})(n)}function eUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"},child:[]}]})(n)}function tUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"},child:[]}]})(n)}function nUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"},child:[]}]})(n)}function iUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"},child:[]}]})(n)}function rUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"},child:[]}]})(n)}function sUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"},child:[]}]})(n)}function aUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"},child:[]}]})(n)}function oUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"},child:[]}]})(n)}function lUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"},child:[]}]})(n)}function cUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"},child:[]}]})(n)}function dUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"},child:[]}]})(n)}function uUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"},child:[]}]})(n)}function hUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"},child:[]}]})(n)}function fUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z"},child:[]}]})(n)}function pUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"},child:[]}]})(n)}function mUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"},child:[]}]})(n)}function gUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"},child:[]}]})(n)}function vUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"},child:[]}]})(n)}function yUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"},child:[]}]})(n)}function _Ue(n){return Le({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152V424c0 48.6 39.4 88 88 88H360c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V424c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H88z"},child:[]}]})(n)}function EUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M400 255.4V240 208c0-8.8-7.2-16-16-16H352 336 289.5c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112h48 16 32c8.8 0 16-7.2 16-16V80 64.6L506 160 400 255.4zM336 240h16v48c0 17.7 14.3 32 32 32h3.7c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7V80H336 304 288c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4h2.5c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5l0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5H304h32zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z"},child:[]}]})(n)}function wUe(n){return Le({tag:"svg",attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},child:[]}]})(n)}function SUe(n){return Le({tag:"svg",attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"},child:[]}]})(n)}function bUe(n){return Le({tag:"svg",attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 14H5.236a2 2 0 01-1.789-2.894l3.5-7A2 2 0 018.736 3h4.018a2 2 0 01.485.06l3.76.94m-7 10v5a2 2 0 002 2h.096c.5 0 .905-.405.905-.904 0-.715.211-1.413.608-2.008L17 13V4m-7 10h2m5-10h2a2 2 0 012 2v6a2 2 0 01-2 2h-2.5"},child:[]}]})(n)}function CUe(n){return Le({tag:"svg",attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5"},child:[]}]})(n)}function TUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"},child:[]},{tag:"path",attr:{d:"M16 2v4"},child:[]},{tag:"path",attr:{d:"M8 2v4"},child:[]},{tag:"path",attr:{d:"M3 10h5"},child:[]},{tag:"path",attr:{d:"M17.5 17.5 16 16.25V14"},child:[]},{tag:"path",attr:{d:"M22 16a6 6 0 1 1-12 0 6 6 0 0 1 12 0Z"},child:[]}]})(n)}function RUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{width:"18",height:"18",x:"3",y:"4",rx:"2",ry:"2"},child:[]},{tag:"line",attr:{x1:"16",x2:"16",y1:"2",y2:"6"},child:[]},{tag:"line",attr:{x1:"8",x2:"8",y1:"2",y2:"6"},child:[]},{tag:"line",attr:{x1:"3",x2:"21",y1:"10",y2:"10"},child:[]},{tag:"path",attr:{d:"M8 14h.01"},child:[]},{tag:"path",attr:{d:"M12 14h.01"},child:[]},{tag:"path",attr:{d:"M16 14h.01"},child:[]},{tag:"path",attr:{d:"M8 18h.01"},child:[]},{tag:"path",attr:{d:"M12 18h.01"},child:[]},{tag:"path",attr:{d:"M16 18h.01"},child:[]}]})(n)}function xUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{width:"18",height:"18",x:"3",y:"4",rx:"2",ry:"2"},child:[]},{tag:"line",attr:{x1:"16",x2:"16",y1:"2",y2:"6"},child:[]},{tag:"line",attr:{x1:"8",x2:"8",y1:"2",y2:"6"},child:[]},{tag:"line",attr:{x1:"3",x2:"21",y1:"10",y2:"10"},child:[]},{tag:"path",attr:{d:"M17 14h-6"},child:[]},{tag:"path",attr:{d:"M13 18H7"},child:[]},{tag:"path",attr:{d:"M7 14h.01"},child:[]},{tag:"path",attr:{d:"M17 18h.01"},child:[]}]})(n)}function AUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{width:"7",height:"7",x:"3",y:"3",rx:"1"},child:[]},{tag:"rect",attr:{width:"7",height:"7",x:"3",y:"14",rx:"1"},child:[]},{tag:"path",attr:{d:"M14 4h7"},child:[]},{tag:"path",attr:{d:"M14 9h7"},child:[]},{tag:"path",attr:{d:"M14 15h7"},child:[]},{tag:"path",attr:{d:"M14 20h7"},child:[]}]})(n)}function IUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2"},child:[]},{tag:"path",attr:{d:"M18 14h-8"},child:[]},{tag:"path",attr:{d:"M15 18h-5"},child:[]},{tag:"path",attr:{d:"M10 6h8v4h-8V6Z"},child:[]}]})(n)}function NUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"},child:[]}]})(n)}function OUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 0 1 6 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"},child:[]}]})(n)}function PUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z"},child:[]}]})(n)}function LUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M14 19.88V22h2.12l5.17-5.17-2.12-2.12zM20 8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H12v-2.95l8-8V8zm-7 1V3.5L18.5 9H13zM22.71 14l-.71-.71a.996.996 0 0 0-1.41 0l-.71.71L22 16.12l.71-.71a.996.996 0 0 0 0-1.41z"},child:[]}]})(n)}function DUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"},child:[]}]})(n)}function kUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"},child:[]}]})(n)}function MUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7.5 21H2V9h5.5v12zm7.25-18h-5.5v18h5.5V3zM22 11h-5.5v10H22V11z"},child:[]}]})(n)}function jUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2 11.7V16h-4v-2.3C8.48 12.63 7 11.53 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.49-1.51 3.65-3 4.7z"},child:[]}]})(n)}function UUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"},child:[]}]})(n)}function FUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"},child:[]}]})(n)}function BUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"},child:[]}]})(n)}function VUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"},child:[]}]})(n)}function zUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"circle",attr:{cx:"9",cy:"9",r:"4"},child:[]},{tag:"path",attr:{d:"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z"},child:[]}]})(n)}function HUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm-2-1h8v-2H5v2zm11.5-9.5c0 3.82-2.66 5.86-3.77 6.5H5.27c-1.11-.64-3.77-2.68-3.77-6.5C1.5 5.36 4.86 2 9 2s7.5 3.36 7.5 7.5zm4.87-2.13L20 8l1.37.63L22 10l.63-1.37L24 8l-1.37-.63L22 6l-.63 1.37zM19 6l.94-2.06L22 3l-2.06-.94L19 0l-.94 2.06L16 3l2.06.94L19 6z"},child:[]}]})(n)}function GUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20.5 16.5c-.83 0-1.5-.67-1.5-1.5v-2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V15c0 .83-.67 1.5-1.5 1.5zM20 20h1v-1.54c1.69-.24 3-1.7 3-3.46h-1a2.5 2.5 0 0 1-5 0h-1c0 1.76 1.31 3.22 3 3.46V20zM9 12c-2.21 0-4-1.79-4-4a3.999 3.999 0 0 1 5.34-3.77A5.938 5.938 0 0 0 9 8c0 1.43.5 2.74 1.34 3.77-.42.15-.87.23-1.34.23zm-1.89 1.13A4.965 4.965 0 0 0 5 17.22V20H1v-2.78c0-1.12.61-2.15 1.61-2.66 1.24-.64 2.76-1.19 4.5-1.43zM11 8c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4-4-1.79-4-4zm7.32 12a4.997 4.997 0 0 1-2.82-4.5c0-.89.23-1.73.64-2.45-.37-.03-.75-.05-1.14-.05-2.53 0-4.71.7-6.39 1.56A2.97 2.97 0 0 0 7 17.22V20h11.32z"},child:[]}]})(n)}function WUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0zm0 0h24v24H0V0zm.75.75h22.5v22.5H.75z"},child:[]},{tag:"path",attr:{d:"M14.94 4.66h-4.72l2.36-2.36zm-4.69 14.71h4.66l-2.33 2.33zM6.1 6.27 1.6 17.73h1.84l.92-2.45h5.11l.92 2.45h1.84L7.74 6.27H6.1zm-1.13 7.37 1.94-5.18 1.94 5.18H4.97zm10.76 2.5h6.12v1.59h-8.53v-1.29l5.92-8.56h-5.88v-1.6h8.3v1.26l-5.93 8.6z"},child:[]}]})(n)}function $Ue(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M21 3H3c-1.1 0-2 .9-2 2v8h2V5h18v16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"},child:[]},{tag:"circle",attr:{cx:"9",cy:"10",r:"4"},child:[]},{tag:"path",attr:{d:"M15.39 16.56C13.71 15.7 11.53 15 9 15s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 1 19.22V22h16v-2.78c0-1.12-.61-2.15-1.61-2.66z"},child:[]}]})(n)}function KUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M19.1 17H22v-6c0-1.7-1.3-3-3-3h-9l9.1 9zm-.1-7c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-1-3V3H6v1.1L9 7zM1.2 1.8 0 3l4.9 5C3.3 8.1 2 9.4 2 11v6h4v4h11.9l3 3 1.3-1.3-21-20.9zM8 19v-5h2.9l5 5H8z"},child:[]}]})(n)}function qUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"},child:[]}]})(n)}function YUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2z"},child:[]},{tag:"path",attr:{d:"m15 9 .94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11 4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z"},child:[]}]})(n)}function Eye(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"},child:[]}]})(n)}function XUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6.43 9.57L12 15l-1.57-3.43L7 10l3.43-1.57L12 5l1.57 3.43L17 10l-3.43 1.57z"},child:[]}]})(n)}function JUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M14.06 9.94 12 9l2.06-.94L15 6l.94 2.06L18 9l-2.06.94L15 12l-.94-2.06zM4 14l.94-2.06L7 11l-2.06-.94L4 8l-.94 2.06L1 11l2.06.94L4 14zm4.5-5 1.09-2.41L12 5.5 9.59 4.41 8.5 2 7.41 4.41 5 5.5l2.41 1.09L8.5 9zm-4 11.5 6-6.01 4 4L23 8.93l-1.41-1.41-7.09 7.97-4-4L3 19l1.5 1.5z"},child:[]}]})(n)}function QUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M23 7V1h-6v2H7V1H1v6h2v10H1v6h6v-2h10v2h6v-6h-2V7h2zM3 3h2v2H3V3zm2 18H3v-2h2v2zm12-2H7v-2H5V7h2V5h10v2h2v10h-2v2zm4 2h-2v-2h2v2zM19 5V3h2v2h-2zm-5.27 9h-3.49l-.73 2H7.89l3.4-9h1.4l3.41 9h-1.63l-.74-2zm-3.04-1.26h2.61L12 8.91l-1.31 3.83z"},child:[]}]})(n)}function ZUe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M11 2v20c-5.07-.5-9-4.79-9-10s3.93-9.5 9-10zm2.03 0v8.99H22c-.47-4.74-4.24-8.52-8.97-8.99zm0 11.01V22c4.74-.47 8.5-4.25 8.97-8.99h-8.97z"},child:[]}]})(n)}function eFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"},child:[]},{tag:"path",attr:{d:"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-3.37 12.5-.8-2.3H12.2l-.82 2.3H9.81l3.38-9h1.61l3.38 9h-1.55z"},child:[]},{tag:"path",attr:{d:"m13.96 7.17-1.31 3.72h2.69l-1.3-3.72z"},child:[]}]})(n)}function tFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m19 9 1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z"},child:[]}]})(n)}function nFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7.5 5.6 10 7 8.6 4.5 10 2 7.5 3.4 5 2l1.4 2.5L5 7zm12 9.8L17 14l1.4 2.5L17 19l2.5-1.4L22 19l-1.4-2.5L22 14zM22 2l-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.996.996 0 0 0-1.41 0L1.29 18.96a.996.996 0 0 0 0 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05a.996.996 0 0 0 0-1.41l-2.33-2.35zm-1.03 5.49-2.12-2.12 2.44-2.44 2.12 2.12-2.44 2.44z"},child:[]}]})(n)}function iFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m10.1 15.9 1.42-1.42C8.79 12.05 7 10.41 7 8.85 7 7.8 7.8 7 8.85 7c1.11 0 1.54.65 2.68 2h.93c1.12-1.31 1.53-2 2.68-2 .87 0 1.55.54 1.77 1.32.35-.04.68-.06 1-.06.36 0 .7.03 1.03.08C18.7 6.43 17.13 5 15.15 5c-.12 0-.23.03-.35.04.12-.33.2-.67.2-1.04 0-1.66-1.34-3-3-3S9 2.34 9 4c0 .37.08.71.2 1.04-.12-.01-.23-.04-.35-.04C6.69 5 5 6.69 5 8.85c0 2.42 2.04 4.31 5.1 7.05z"},child:[]},{tag:"path",attr:{d:"M22.5 16.24c-.32-.18-.66-.29-1-.35.07-.1.15-.18.21-.28 1.08-1.87.46-4.18-1.41-5.26-2.09-1.21-4.76-.39-8.65.9l.52 1.94c3.47-1.14 5.79-1.88 7.14-1.1.91.53 1.2 1.61.68 2.53-.56.96-1.33 1-3.07 1.32l-.47.81c.58 1.62.97 2.33.39 3.32-.53.91-1.61 1.2-2.53.68-.06-.03-.11-.09-.17-.13-.3.67-.64 1.24-1.03 1.73.07.04.13.09.2.14 1.87 1.08 4.18.46 5.26-1.41.06-.1.09-.21.14-.32.22.27.48.51.8.69 1.43.83 3.27.34 4.1-1.1s.32-3.29-1.11-4.11z"},child:[]},{tag:"path",attr:{d:"M12.32 14.01c-.74 3.58-1.27 5.95-2.62 6.73-.91.53-2 .24-2.53-.68-.56-.96-.2-1.66.39-3.32l-.46-.81c-1.7-.31-2.5-.33-3.07-1.32-.53-.91-.24-2 .68-2.53.09-.05.19-.08.29-.11-.35-.56-.64-1.17-.82-1.85-.16.07-.32.14-.48.23-1.87 1.08-2.49 3.39-1.41 5.26.06.1.14.18.21.28-.34.06-.68.17-1 .35-1.43.83-1.93 2.66-1.1 4.1s2.66 1.93 4.1 1.1c.32-.18.58-.42.8-.69.05.11.08.22.14.32 1.08 1.87 3.39 2.49 5.26 1.41 2.09-1.21 2.71-3.93 3.55-7.94l-1.93-.53z"},child:[]}]})(n)}function rFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6.32 13.01c.96.02 1.85.5 2.45 1.34A3.961 3.961 0 0 0 12 16c1.29 0 2.5-.62 3.23-1.66.6-.84 1.49-1.32 2.45-1.34-.72-1.22-3.6-2-5.68-2-2.07 0-4.96.78-5.68 2.01zM4 13c1.66 0 3-1.34 3-3S5.66 7 4 7s-3 1.34-3 3 1.34 3 3 3zM20 13c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zM12 10c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z"},child:[]},{tag:"path",attr:{d:"M21 14h-3.27c-.77 0-1.35.45-1.68.92-.04.06-1.36 2.08-4.05 2.08-1.43 0-3.03-.64-4.05-2.08-.39-.55-1-.92-1.68-.92H3c-1.1 0-2 .9-2 2v4h7v-2.26c1.15.8 2.54 1.26 4 1.26s2.85-.46 4-1.26V20h7v-4c0-1.1-.9-2-2-2z"},child:[]}]})(n)}function sFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M10.27 12h3.46a1.5 1.5 0 0 0 1.48-1.75l-.3-1.79a2.951 2.951 0 0 0-5.82.01l-.3 1.79c-.15.91.55 1.74 1.48 1.74zM1.66 11.11c-.13.26-.18.57-.1.88.16.69.76 1.03 1.53 1h1.95c.83 0 1.51-.58 1.51-1.29 0-.14-.03-.27-.07-.4-.01-.03-.01-.05.01-.08.09-.16.14-.34.14-.53 0-.31-.14-.6-.36-.82-.03-.03-.03-.06-.02-.1.07-.2.07-.43.01-.65a1.12 1.12 0 0 0-.99-.74.09.09 0 0 1-.07-.03C5.03 8.14 4.72 8 4.37 8c-.3 0-.57.1-.75.26-.03.03-.06.03-.09.02a1.24 1.24 0 0 0-1.7 1.03c0 .02-.01.04-.03.06-.29.26-.46.65-.41 1.05.03.22.12.43.25.6.03.02.03.06.02.09zM16.24 13.65c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM1.22 14.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58zM22.78 14.58A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85zM22 11v-.5c0-1.1-.9-2-2-2h-2c-.42 0-.65.48-.39.81l.7.63c-.19.31-.31.67-.31 1.06 0 1.1.9 2 2 2s2-.9 2-2z"},child:[]}]})(n)}function aFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.24 13.65c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM1.22 14.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58zM22.78 14.58A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85zM12 12c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zM1.497 11 4 8.497 6.503 11 4 13.503zM20 9l-2.5 4h5z"},child:[]}]})(n)}function oFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73V18H6v-1.61c0-1.18.68-2.26 1.76-2.73 1.17-.52 2.61-.91 4.24-.91zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z"},child:[]}]})(n)}function lFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z"},child:[]}]})(n)}function cFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z"},child:[]}]})(n)}function dFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4zm2 2v2h3v3h2v-3h3v-2h-3V7h-2v3h-3zM1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4z"},child:[]}]})(n)}function uFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"},child:[]}]})(n)}function hFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19.94 9.06C19.5 5.73 16.57 3 13 3 9.47 3 6.57 5.61 6.08 9l-1.93 3.48c-.41.66.07 1.52.85 1.52h1v2c0 1.1.9 2 2 2h1v3h7v-4.68a7.016 7.016 0 0 0 3.94-7.26zM12.5 14c-.41 0-.74-.33-.74-.74s.33-.73.74-.73.73.32.73.73-.31.74-.73.74zm1.76-4.32c-.44.65-.86.85-1.09 1.27-.09.17-.13.28-.13.82h-1.06c0-.29-.04-.75.18-1.16.28-.51.83-.81 1.14-1.26.33-.47.15-1.36-.8-1.36-.62 0-.92.47-1.05.86l-.96-.4c.27-.78.97-1.45 2.01-1.45.86 0 1.45.39 1.75.88.26.43.41 1.22.01 1.8z"},child:[]}]})(n)}function fFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M13 8.57a1.43 1.43 0 1 0 0 2.86 1.43 1.43 0 0 0 0-2.86z"},child:[]},{tag:"path",attr:{d:"M13 3C9.25 3 6.2 5.94 6.02 9.64L4.1 12.2a.5.5 0 0 0 .4.8H6v3c0 1.1.9 2 2 2h1v3h7v-4.68A6.999 6.999 0 0 0 13 3zm3 7c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39a.19.19 0 0 1 .05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38a.2.2 0 0 1-.05.26l-.85.66c.03.12.04.25.04.39z"},child:[]}]})(n)}function pFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"6",r:"2"},child:[]},{tag:"path",attr:{d:"M21 16v-2c-2.24 0-4.16-.96-5.6-2.68l-1.34-1.6A1.98 1.98 0 0 0 12.53 9h-1.05c-.59 0-1.15.26-1.53.72l-1.34 1.6C7.16 13.04 5.24 14 3 14v2c2.77 0 5.19-1.17 7-3.25V15l-3.88 1.55c-.67.27-1.12.93-1.12 1.66C5 19.2 5.8 20 6.79 20H9v-.5a2.5 2.5 0 0 1 2.5-2.5h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.83 0-1.5.67-1.5 1.5v.5h7.21c.99 0 1.79-.8 1.79-1.79 0-.73-.45-1.39-1.12-1.66L14 15v-2.25c1.81 2.08 4.23 3.25 7 3.25z"},child:[]}]})(n)}function mFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"},child:[]},{tag:"path",attr:{d:"M14 17H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"},child:[]}]})(n)}function gFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M17 8H7c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-4 12.5h-2V19h2v1.5zm0-2.5h-2c0-1.5-2.5-3-2.5-5 0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5c0 2-2.5 3.5-2.5 5zm5-11.5H6C6 5.67 6.67 5 7.5 5h9c.83 0 1.5.67 1.5 1.5zm-1-3H7C7 2.67 7.67 2 8.5 2h7c.83 0 1.5.67 1.5 1.5z"},child:[]}]})(n)}function vFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2zm-7 5h5v5h-5z"},child:[]}]})(n)}function yFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M16.23 7h2.6c-.06-.47-.36-.94-.79-1.17L10.5 2 2.8 5.83c-.48.26-.8.81-.8 1.34V15c0 1.1.9 2 2 2V7.4L10.5 4l5.73 3z"},child:[]},{tag:"path",attr:{d:"M20 8H7c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm0 11H7v-7l6.5 3.33L20 12v7zm-6.5-5.67L7 10h13l-6.5 3.33z"},child:[]}]})(n)}function _Fe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm-2-1h8v-2H5v2zm11.5-9.5c0 3.82-2.66 5.86-3.77 6.5H5.27c-1.11-.64-3.77-2.68-3.77-6.5C1.5 5.36 4.86 2 9 2s7.5 3.36 7.5 7.5zm-2 0C14.5 6.47 12.03 4 9 4S3.5 6.47 3.5 9.5c0 2.47 1.49 3.89 2.35 4.5h6.3c.86-.61 2.35-2.03 2.35-4.5zm6.87-2.13L20 8l1.37.63L22 10l.63-1.37L24 8l-1.37-.63L22 6l-.63 1.37zM19 6l.94-2.06L22 3l-2.06-.94L19 0l-.94 2.06L16 3l2.06.94L19 6z"},child:[]}]})(n)}function EFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20.5 16.5c-.83 0-1.5-.67-1.5-1.5v-2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V15c0 .83-.67 1.5-1.5 1.5zM20 20h1v-1.54c1.69-.24 3-1.7 3-3.46h-1a2.5 2.5 0 0 1-5 0h-1c0 1.76 1.31 3.22 3 3.46V20zM9 12c-2.21 0-4-1.79-4-4a3.999 3.999 0 0 1 5.34-3.77A5.938 5.938 0 0 0 9 8c0 1.43.5 2.74 1.34 3.77-.42.15-.87.23-1.34.23zm-1.89 1.13A4.965 4.965 0 0 0 5 17.22V20H1v-2.78c0-1.12.61-2.15 1.61-2.66 1.24-.64 2.76-1.19 4.5-1.43zM11 8c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4-4-1.79-4-4zm2 0c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm2 7c-2.37 0-4.29.73-5.48 1.34-.32.16-.52.5-.52.88V18h7.17c.5.86 1.25 1.56 2.15 2H7v-2.78c0-1.12.61-2.15 1.61-2.66C10.29 13.7 12.47 13 15 13c.39 0 .77.02 1.14.05-.33.59-.55 1.26-.62 1.96-.17-.01-.34-.01-.52-.01z"},child:[]}]})(n)}function wFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M14.94 4.66h-4.72l2.36-2.36 2.36 2.36zm-4.69 14.71h4.66l-2.33 2.33-2.33-2.33zM6.1 6.27 1.6 17.73h1.84l.92-2.45h5.11l.92 2.45h1.84L7.74 6.27H6.1zm-1.13 7.37 1.94-5.18 1.94 5.18H4.97zm10.76 2.5h6.12v1.59h-8.53v-1.29l5.92-8.56h-5.88v-1.6h8.3v1.26l-5.93 8.6z"},child:[]}]})(n)}function SFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M21 3H3c-1.1 0-2 .9-2 2v8h2V5h18v16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"},child:[]},{tag:"path",attr:{d:"M13 10c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zm-6 0c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM15.39 16.56C13.71 15.7 11.53 15 9 15s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 1 19.22V22h16v-2.78c0-1.12-.61-2.15-1.61-2.66zM15 20H3c0-.72-.1-1.34.52-1.66C4.71 17.73 6.63 17 9 17c2.37 0 4.29.73 5.48 1.34.63.32.52.95.52 1.66z"},child:[]}]})(n)}function bFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z"},child:[]}]})(n)}function CFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M22 8.98V18c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2l.01-12c0-1.1.89-2 1.99-2h10.1c-.06.32-.1.66-.1 1s.04.68.1 1H4l8 5 3.67-2.29c.47.43 1.02.76 1.63.98L12 13 4 8v10h16V9.9c.74-.15 1.42-.48 2-.92zM16 5c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"},child:[]}]})(n)}function TFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zm-2 0v.01L12 13 4 8l8-4.68L19.99 8zM4 18v-7.66l8 5.02 7.99-4.99L20 18H4z"},child:[]}]})(n)}function RFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm1 7H5v-1h14v1zm-7.66-4.98c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95zm2.12-10.61L17 7.95l-4.95 4.95-3.54-3.54 4.95-4.95z"},child:[]}]})(n)}function xFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2z"},child:[]},{tag:"path",attr:{d:"m15 9 .94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11 4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z"},child:[]}]})(n)}function AFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0-8 4.99L4 6h16zm0 12H4V8l8 5 8-5v10z"},child:[]}]})(n)}function IFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 10h11v2H3v-2zm0-2h11V6H3v2zm0 8h7v-2H3v2zm15.01-3.13.71-.71a.996.996 0 0 1 1.41 0l.71.71c.39.39.39 1.02 0 1.41l-.71.71-2.12-2.12zm-.71.71-5.3 5.3V21h2.12l5.3-5.3-2.12-2.12z"},child:[]}]})(n)}function NFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M23 7V1h-6v2H7V1H1v6h2v10H1v6h6v-2h10v2h6v-6h-2V7h2zM3 3h2v2H3V3zm2 18H3v-2h2v2zm12-2H7v-2H5V7h2V5h10v2h2v10h-2v2zm4 2h-2v-2h2v2zM19 5V3h2v2h-2zm-5.27 9h-3.49l-.73 2H7.89l3.4-9h1.4l3.41 9h-1.63l-.74-2zm-3.04-1.26h2.61L12 8.91l-1.31 3.83z"},child:[]}]})(n)}function OFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6zm-2 16c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"},child:[]}]})(n)}function PFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m19 9 1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25zM11.5 9.5 9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zm-1.51 3.49L9 15.17l-.99-2.18L5.83 12l2.18-.99L9 8.83l.99 2.18 2.18.99-2.18.99z"},child:[]}]})(n)}function LFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"circle",attr:{cx:"4",cy:"14",r:"2"},child:[]},{tag:"path",attr:{d:"M1.22 17.58A2.01 2.01 0 0 0 0 19.43V21h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58z"},child:[]},{tag:"circle",attr:{cx:"20",cy:"14",r:"2"},child:[]},{tag:"path",attr:{d:"M22.78 17.58A6.95 6.95 0 0 0 20 17c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V21H24v-1.57c0-.81-.48-1.53-1.22-1.85zM16.24 16.65c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 19.39V21h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM8.07 19a.96.96 0 0 1 .49-.52c1.1-.49 2.26-.73 3.43-.73 1.18 0 2.33.25 3.43.73.23.1.4.29.49.52H8.07zM9 12c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3zm4 0c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1z"},child:[]},{tag:"path",attr:{d:"M2.48 10.86C2.17 10.1 2 9.36 2 8.6 2 6.02 4.02 4 6.6 4c2.68 0 3.82 1.74 5.4 3.59C13.57 5.76 14.7 4 17.4 4 19.98 4 22 6.02 22 8.6c0 .76-.17 1.5-.48 2.26.65.31 1.18.82 1.53 1.44.6-1.2.95-2.42.95-3.7C24 4.9 21.1 2 17.4 2c-2.09 0-4.09.97-5.4 2.51C10.69 2.97 8.69 2 6.6 2 2.9 2 0 4.9 0 8.6c0 1.28.35 2.5.96 3.7.35-.62.88-1.13 1.52-1.44z"},child:[]}]})(n)}function DFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M10.27 12h3.46a1.5 1.5 0 0 0 1.48-1.75l-.3-1.79a2.951 2.951 0 0 0-5.82.01l-.3 1.79c-.15.91.55 1.74 1.48 1.74zm.79-3.21c.08-.46.47-.79.94-.79s.86.33.94.79l.2 1.21h-2.28l.2-1.21zM1.66 11.11c-.13.26-.18.57-.1.88.16.69.76 1.03 1.53 1h1.95c.83 0 1.51-.58 1.51-1.29 0-.14-.03-.27-.07-.4-.01-.03-.01-.05.01-.08.09-.16.14-.34.14-.53 0-.31-.14-.6-.36-.82-.03-.03-.03-.06-.02-.1.07-.2.07-.43.01-.65a1.12 1.12 0 0 0-.99-.74.09.09 0 0 1-.07-.03C5.03 8.14 4.72 8 4.37 8c-.3 0-.57.1-.75.26-.03.03-.06.03-.09.02a1.24 1.24 0 0 0-1.7 1.03c0 .02-.01.04-.03.06-.29.26-.46.65-.41 1.05.03.22.12.43.25.6.03.02.03.06.02.09zM16.24 13.65c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM8.07 16a.96.96 0 0 1 .49-.52c1.1-.49 2.26-.73 3.43-.73 1.18 0 2.33.25 3.43.73.23.1.4.29.49.52H8.07zM1.22 14.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58zM22.78 14.58A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85zM22 11v-.5c0-1.1-.9-2-2-2h-2c-.42 0-.65.48-.39.81l.7.63c-.19.31-.31.67-.31 1.06 0 1.1.9 2 2 2s2-.9 2-2z"},child:[]}]})(n)}function kFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.24 13.65c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM8.07 16a.96.96 0 0 1 .49-.52c1.1-.49 2.26-.73 3.43-.73 1.18 0 2.33.25 3.43.73.23.1.4.29.49.52H8.07zM1.22 14.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58zM22.78 14.58A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85zM12 12c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM1.497 11 4 8.497 6.503 11 4 13.503zM20 9l-2.5 4h5z"},child:[]}]})(n)}function MFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zm-7.76-2.78c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM8.07 16c.09-.23.13-.39.91-.69.97-.38 1.99-.56 3.02-.56s2.05.18 3.02.56c.77.3.81.46.91.69H8.07zM12 8c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1m0-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"},child:[]}]})(n)}function jFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.67 13.13C18.04 14.06 19 15.32 19 17v3h4v-3c0-2.18-3.57-3.47-6.33-3.87zM15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4c-.47 0-.91.1-1.33.24a5.98 5.98 0 0 1 0 7.52c.42.14.86.24 1.33.24zM9 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM9 13c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4zm6 5H3v-.99C3.2 16.29 6.3 15 9 15s5.8 1.29 6 2v1z"},child:[]}]})(n)}function UFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M9 1V3H15V1H17V3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H7V1H9ZM20 11H4V19H20V11ZM8 14V16H6V14H8ZM18 14V16H10V14H18ZM7 5H4V9H20V5H17V7H15V5H9V7H7V5Z"},child:[]}]})(n)}function FFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11.8611 2.39057C12.8495 1.73163 14.1336 1.71797 15.1358 2.35573L19.291 4.99994H20.9998C21.5521 4.99994 21.9998 5.44766 21.9998 5.99994V14.9999C21.9998 15.5522 21.5521 15.9999 20.9998 15.9999H19.4801C19.5396 16.9472 19.0933 17.9102 18.1955 18.4489L13.1021 21.505C12.4591 21.8907 11.6609 21.8817 11.0314 21.4974C10.3311 22.1167 9.2531 22.1849 8.47104 21.5704L3.33028 17.5312C2.56387 16.9291 2.37006 15.9003 2.76579 15.0847C2.28248 14.7057 2 14.1254 2 13.5109V6C2 5.44772 2.44772 5 3 5H7.94693L11.8611 2.39057ZM4.17264 13.6452L4.86467 13.0397C6.09488 11.9632 7.96042 12.0698 9.06001 13.2794L11.7622 16.2518C12.6317 17.2083 12.7903 18.6135 12.1579 19.739L17.1665 16.7339C17.4479 16.5651 17.5497 16.2276 17.4448 15.9433L13.0177 9.74551C12.769 9.39736 12.3264 9.24598 11.9166 9.36892L9.43135 10.1145C8.37425 10.4316 7.22838 10.1427 6.44799 9.36235L6.15522 9.06958C5.58721 8.50157 5.44032 7.69318 5.67935 7H4V13.5109L4.17264 13.6452ZM14.0621 4.04306C13.728 3.83047 13.3 3.83502 12.9705 4.05467L7.56943 7.65537L7.8622 7.94814C8.12233 8.20827 8.50429 8.30456 8.85666 8.19885L11.3419 7.45327C12.5713 7.08445 13.8992 7.53859 14.6452 8.58303L18.5144 13.9999H19.9998V6.99994H19.291C18.9106 6.99994 18.5381 6.89148 18.2172 6.68727L14.0621 4.04306ZM6.18168 14.5448L4.56593 15.9586L9.70669 19.9978L10.4106 18.7659C10.6256 18.3897 10.5738 17.9178 10.2823 17.5971L7.58013 14.6247C7.2136 14.2215 6.59175 14.186 6.18168 14.5448Z"},child:[]}]})(n)}function BFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M3 4H21C21.5523 4 22 4.44772 22 5V19C22 19.5523 21.5523 20 21 20H3C2.44772 20 2 19.5523 2 19V5C2 4.44772 2.44772 4 3 4Z"},child:[]}]})(n)}function VFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M3 4H21C21.5523 4 22 4.44772 22 5V19C22 19.5523 21.5523 20 21 20H3C2.44772 20 2 19.5523 2 19V5C2 4.44772 2.44772 4 3 4ZM4 6V18H20V6H4Z"},child:[]}]})(n)}function zFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM12 5C13.018 5 13.9852 5.21731 14.8579 5.60806L13.2954 7.16944C12.8822 7.05892 12.448 7 12 7C9.23858 7 7 9.23858 7 12C7 13.3807 7.55964 14.6307 8.46447 15.5355L7.05025 16.9497L6.89445 16.7889C5.71957 15.5368 5 13.8525 5 12C5 8.13401 8.13401 5 12 5ZM18.3924 9.14312C18.7829 10.0155 19 10.9824 19 12C19 13.933 18.2165 15.683 16.9497 16.9497L15.5355 15.5355C16.4404 14.6307 17 13.3807 17 12C17 11.552 16.9411 11.1178 16.8306 10.7046L18.3924 9.14312ZM16.2426 6.34315L17.6569 7.75736L13.9325 11.483C13.9765 11.6479 14 11.8212 14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C12.1788 10 12.3521 10.0235 12.517 10.0675L16.2426 6.34315Z"},child:[]}]})(n)}function HFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM19 20V4H5V20H19ZM7 6H11V10H7V6ZM7 12H17V14H7V12ZM7 16H17V18H7V16ZM13 7H17V9H13V7Z"},child:[]}]})(n)}function GFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M6.9998 6V3C6.9998 2.44772 7.44752 2 7.9998 2H19.9998C20.5521 2 20.9998 2.44772 20.9998 3V17C20.9998 17.5523 20.5521 18 19.9998 18H16.9998V20.9991C16.9998 21.5519 16.5499 22 15.993 22H4.00666C3.45059 22 3 21.5554 3 20.9991L3.0026 7.00087C3.0027 6.44811 3.45264 6 4.00942 6H6.9998ZM5.00242 8L5.00019 20H14.9998V8H5.00242ZM8.9998 6H16.9998V16H18.9998V4H8.9998V6Z"},child:[]}]})(n)}function WFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M9.97308 18H14.0269C14.1589 16.7984 14.7721 15.8065 15.7676 14.7226C15.8797 14.6006 16.5988 13.8564 16.6841 13.7501C17.5318 12.6931 18 11.385 18 10C18 6.68629 15.3137 4 12 4C8.68629 4 6 6.68629 6 10C6 11.3843 6.46774 12.6917 7.31462 13.7484C7.40004 13.855 8.12081 14.6012 8.23154 14.7218C9.22766 15.8064 9.84103 16.7984 9.97308 18ZM14 20H10V21H14V20ZM5.75395 14.9992C4.65645 13.6297 4 11.8915 4 10C4 5.58172 7.58172 2 12 2C16.4183 2 20 5.58172 20 10C20 11.8925 19.3428 13.6315 18.2443 15.0014C17.624 15.7748 16 17 16 18.5V21C16 22.1046 15.1046 23 14 23H10C8.89543 23 8 22.1046 8 21V18.5C8 17 6.37458 15.7736 5.75395 14.9992ZM13 10.0048H15.5L11 16.0048V12.0048H8.5L13 6V10.0048Z"},child:[]}]})(n)}function $Fe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M10 6V8H5V19H16V14H18V20C18 20.5523 17.5523 21 17 21H4C3.44772 21 3 20.5523 3 20V7C3 6.44772 3.44772 6 4 6H10ZM21 3V11H19L18.9999 6.413L11.2071 14.2071L9.79289 12.7929L17.5849 5H13V3H21Z"},child:[]}]})(n)}function KFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M3.78307 2.82598L12 1L20.2169 2.82598C20.6745 2.92766 21 3.33347 21 3.80217V13.7889C21 15.795 19.9974 17.6684 18.3282 18.7812L12 23L5.6718 18.7812C4.00261 17.6684 3 15.795 3 13.7889V3.80217C3 3.33347 3.32553 2.92766 3.78307 2.82598ZM12 13.5L14.9389 15.0451L14.3776 11.7725L16.7553 9.45492L13.4695 8.97746L12 6L10.5305 8.97746L7.24472 9.45492L9.62236 11.7725L9.06107 15.0451L12 13.5Z"},child:[]}]})(n)}function qFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M5 4.60434V13.7889C5 15.1263 5.6684 16.3752 6.7812 17.1171L12 20.5963L17.2188 17.1171C18.3316 16.3752 19 15.1263 19 13.7889V4.60434L12 3.04879L5 4.60434ZM3.78307 2.82598L12 1L20.2169 2.82598C20.6745 2.92766 21 3.33347 21 3.80217V13.7889C21 15.795 19.9974 17.6684 18.3282 18.7812L12 23L5.6718 18.7812C4.00261 17.6684 3 15.795 3 13.7889V3.80217C3 3.33347 3.32553 2.92766 3.78307 2.82598ZM12 13.5L9.06107 15.0451L9.62236 11.7725L7.24472 9.45492L10.5305 8.97746L12 6L13.4695 8.97746L16.7553 9.45492L14.3776 11.7725L14.9389 15.0451L12 13.5Z"},child:[]}]})(n)}function YFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M3.78307 2.82598L12 1L20.2169 2.82598C20.6745 2.92766 21 3.33347 21 3.80217V13.7889C21 15.795 19.9974 17.6684 18.3282 18.7812L12 23L5.6718 18.7812C4.00261 17.6684 3 15.795 3 13.7889V3.80217C3 3.33347 3.32553 2.92766 3.78307 2.82598ZM12 11C13.3807 11 14.5 9.88071 14.5 8.5C14.5 7.11929 13.3807 6 12 6C10.6193 6 9.5 7.11929 9.5 8.5C9.5 9.88071 10.6193 11 12 11ZM7.52746 16H16.4725C16.2238 13.75 14.3163 12 12 12C9.68372 12 7.77619 13.75 7.52746 16Z"},child:[]}]})(n)}function XFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M3.78307 2.82598L12 1L20.2169 2.82598C20.6745 2.92766 21 3.33347 21 3.80217V13.7889C21 15.795 19.9974 17.6684 18.3282 18.7812L12 23L5.6718 18.7812C4.00261 17.6684 3 15.795 3 13.7889V3.80217C3 3.33347 3.32553 2.92766 3.78307 2.82598ZM5 4.60434V13.7889C5 15.1263 5.6684 16.3752 6.7812 17.1171L12 20.5963L17.2188 17.1171C18.3316 16.3752 19 15.1263 19 13.7889V4.60434L12 3.04879L5 4.60434ZM12 11C10.6193 11 9.5 9.88071 9.5 8.5C9.5 7.11929 10.6193 6 12 6C13.3807 6 14.5 7.11929 14.5 8.5C14.5 9.88071 13.3807 11 12 11ZM7.52746 16C7.77619 13.75 9.68372 12 12 12C14.3163 12 16.2238 13.75 16.4725 16H7.52746Z"},child:[]}]})(n)}function JFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M22 15H19V3H22C22.5523 3 23 3.44772 23 4V14C23 14.5523 22.5523 15 22 15ZM16.7071 16.2929L10.3066 22.6934C10.1307 22.8693 9.85214 22.8891 9.65308 22.7398L8.8005 22.1004C8.3158 21.7369 8.09739 21.1174 8.24686 20.5303L9.40017 16H3C1.89543 16 1 15.1046 1 14V11.8957C1 11.6344 1.05118 11.3757 1.15064 11.1342L4.24501 3.61925C4.3993 3.24455 4.76447 3 5.16969 3H16C16.5523 3 17 3.44772 17 4V15.5858C17 15.851 16.8946 16.1054 16.7071 16.2929Z"},child:[]}]})(n)}function QFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M2 8.99997H5V21H2C1.44772 21 1 20.5523 1 20V9.99997C1 9.44769 1.44772 8.99997 2 8.99997ZM7.29289 7.70708L13.6934 1.30661C13.8693 1.13066 14.1479 1.11087 14.3469 1.26016L15.1995 1.8996C15.6842 2.26312 15.9026 2.88253 15.7531 3.46966L14.5998 7.99997H21C22.1046 7.99997 23 8.8954 23 9.99997V12.1043C23 12.3656 22.9488 12.6243 22.8494 12.8658L19.755 20.3807C19.6007 20.7554 19.2355 21 18.8303 21H8C7.44772 21 7 20.5523 7 20V8.41419C7 8.14897 7.10536 7.89462 7.29289 7.70708Z"},child:[]}]})(n)}function ZFe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 14V16C8.68629 16 6 18.6863 6 22H4C4 17.5817 7.58172 14 12 14ZM12 13C8.685 13 6 10.315 6 7C6 3.685 8.685 1 12 1C15.315 1 18 3.685 18 7C18 10.315 15.315 13 12 13ZM12 11C14.21 11 16 9.21 16 7C16 4.79 14.21 3 12 3C9.79 3 8 4.79 8 7C8 9.21 9.79 11 12 11ZM18 21.5L15.0611 23.0451L15.6224 19.7725L13.2447 17.4549L16.5305 16.9775L18 14L19.4695 16.9775L22.7553 17.4549L20.3776 19.7725L20.9389 23.0451L18 21.5Z"},child:[]}]})(n)}function eBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M1023.31 473.28c-1.36-11.312-5.614-21.713-12.095-30.465h.16l-.88-.88c-3.28-4.32-7.12-8.128-11.408-11.504L831.935 262.047V158.783c0-17.68-14.32-32-32-32H698.607l-116.8-99.711c-36.223-36.224-99.504-36.289-135.776 0l-116.4 99.711H223.935c-17.68 0-32 14.32-32 32V264.16L28.815 427.28c-17.343 11.472-28.88 31.088-28.88 53.344v479.504c0 35.184 28.817 64 64 64h896c35.184 0 64-28.816 64-64v-478.24c.224-2.88-.064-5.76-.624-8.607zM268.865 725.503L63.937 915.582V544.686zm61.697 29.999a31.634 31.634 0 0 0 11.377-8.224c1.712-1.935 3.056-4.063 4.224-6.255l137.904-127.936c7.248-5.84 15.84-8.913 24.88-8.913 9.183 0 18.367 3.216 24.527 8l383.84 347.936H110.002zm427.777-25.776l201.6-178.896v361.632zm139.599-313.104h-.976l54.896 55.792-119.92 106.432V350.638zM491.283 72.318c6.064-6.032 14.095-9.376 22.623-9.376 8.56 0 16.592 3.344 22.656 9.376l64.624 54.464H426.754zm276.655 118.464V635.63l-57.312 50.88-136.32-123.568c-37.68-29.536-91.775-30.817-131.68 1.376l-126.624 117.44-60.064-53.008V190.782zM103.777 442.813l88.16-88.129V572.3L75.313 469.404l26.992-26.592h1.472z"},child:[]}]})(n)}function tBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M1023.46 232a31.629 31.629 0 0 0-2.48-18.271C1012.917 178.288 987.3 160 944.005 160h-832c-38.08 0-79.105 14-99.28 41.472-1.745 1.328-3.409 2.832-4.912 4.576-6.449 7.44-8.705 17.009-7.264 26.033-.288 2.592-.544 5.2-.544 7.92v512c0 53.024 58.992 112 112 112h832c53.024 0 80-58.976 80-112v-512c0-2.832-.368-5.313-.544-8.001zm-911.459-8l832.001-.001h.432L512.002 568.655 81.314 225.407C91.106 223.599 103.154 224 112 224zm832.001 575.999H112.003c-17.648 0-48-30.336-48-48V293.551l427.04 341.648c6.016 5.2 13.487 7.792 20.959 7.792a32.046 32.046 0 0 0 20.976-7.792l427.024-341.632v458.432c0 17.664 1.664 48-16 48z"},child:[]}]})(n)}function nBe(n){return Le({tag:"svg",attr:{version:"1.1",viewBox:"0 0 17 16"},child:[{tag:"path",attr:{d:"M16 15v-1h-1v-6h1v-1h-3v1h1v6h-3v-6h1v-1h-3v1h1v6h-3v-6h1v-1h-3v1h1v6h-3v-6h1v-1h-3v1h1v6h-1v1h-1v1h17v-1h-1z"},child:[]},{tag:"path",attr:{d:"M8 0h1l8 5v1h-17v-1l8-5z"},child:[]}]})(n)}function iBe(n){return Le({tag:"svg",attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M11 0c-2.761 0-5 2.239-5 5 0 0.313 0.029 0.619 0.084 0.916l-6.084 6.084v3c0 0.552 0.448 1 1 1h1v-1h2v-2h2v-2h2l1.298-1.298c0.531 0.192 1.105 0.298 1.702 0.298 2.761 0 5-2.239 5-5s-2.239-5-5-5zM12.498 5.002c-0.828 0-1.5-0.672-1.5-1.5s0.672-1.5 1.5-1.5 1.5 0.672 1.5 1.5-0.672 1.5-1.5 1.5z"},child:[]}]})(n)}function rBe(n){return Le({tag:"svg",attr:{version:"1.1",x:"0px",y:"0px",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"path",attr:{fill:"#FFC107",d:`M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12\r + c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24\r + c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z`},child:[]},{tag:"path",attr:{fill:"#FF3D00",d:`M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657\r + C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z`},child:[]},{tag:"path",attr:{fill:"#4CAF50",d:`M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36\r + c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z`},child:[]},{tag:"path",attr:{fill:"#1976D2",d:`M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571\r + c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z`},child:[]}]})(n)}function sBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M14.5 2H13V1h-1v1H4V1H3v1H1.5l-.5.5v12l.5.5h13l.5-.5v-12l-.5-.5zM14 14H2V5h12v9zm0-10H2V3h12v1zM4 8H3v1h1V8zm-1 2h1v1H3v-1zm1 2H3v1h1v-1zm2-4h1v1H6V8zm1 2H6v1h1v-1zm-1 2h1v1H6v-1zm1-6H6v1h1V6zm2 2h1v1H9V8zm1 2H9v1h1v-1zm-1 2h1v1H9v-1zm1-6H9v1h1V6zm2 2h1v1h-1V8zm1 2h-1v1h1v-1zm-1-4h1v1h-1V6z"},child:[]}]})(n)}function aBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M3.889 2.095a6.5 6.5 0 1 1 7.222 10.81A6.5 6.5 0 0 1 3.89 2.094zm.555 9.978A5.5 5.5 0 0 0 7.5 13 5.506 5.506 0 0 0 13 7.5a5.5 5.5 0 1 0-8.556 4.573zM10.294 4l.706.707-2.15 2.15a1.514 1.514 0 1 1-.707-.707L10.293 4zM7.221 7.916a.5.5 0 1 0 .556-.832.5.5 0 0 0-.556.832zm4.286-2.449l-.763.763c.166.403.253.834.255 1.27a3.463 3.463 0 0 1-.5 1.777l.735.735a4.477 4.477 0 0 0 .274-4.545h-.001zM8.733 4.242A3.373 3.373 0 0 0 7.5 4 3.5 3.5 0 0 0 4 7.5a3.46 3.46 0 0 0 .5 1.777l-.734.735A4.5 4.5 0 0 1 9.5 3.473l-.767.769z"},child:[]}]})(n)}function oBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M13.85 4.44l-3.28-3.3-.35-.14H2.5l-.5.5V7h1V2h6v3.5l.5.5H13v1h1V4.8l-.15-.36zM10 5V2l3 3h-3zM2.5 8l-.5.5v6l.5.5h11l.5-.5v-6l-.5-.5h-11zM13 13v1H3V9h10v4zm-8-1h-.32v1H4v-3h1.06c.75 0 1.13.36 1.13 1a.94.94 0 0 1-.32.72A1.33 1.33 0 0 1 5 12zm-.06-1.45h-.26v.93h.26c.36 0 .54-.16.54-.47 0-.31-.18-.46-.54-.46zM9 12.58a1.48 1.48 0 0 0 .44-1.12c0-1-.53-1.46-1.6-1.46H6.78v3h1.06A1.6 1.6 0 0 0 9 12.58zm-1.55-.13v-1.9h.33a.94.94 0 0 1 .7.25.91.91 0 0 1 .25.67 1 1 0 0 1-.25.72.94.94 0 0 1-.69.26h-.34zm4.45-.61h-.97V13h-.68v-3h1.74v.55h-1.06v.74h.97v.55z"},child:[]}]})(n)}function lBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M11.02 3.77v1.56l1-.99V2.5l-.5-.5h-9l-.5.5v.486L2 3v10.29l.36.46 5 1.72L8 15v-1h3.52l.5-.5v-1.81l-1-1V13H8V4.71l-.33-.46L4.036 3h6.984v.77zM7 14.28l-4-1.34V3.72l4 1.34v9.22zm6.52-5.8H8.55v-1h4.93l-1.6-1.6.71-.7 2.47 2.46v.71l-2.49 2.48-.7-.7 1.65-1.65z"},child:[]}]})(n)}function cBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M152,180a40.55,40.55,0,0,1-20,34.91A8,8,0,0,1,124,201.09a24.49,24.49,0,0,0,0-42.18A8,8,0,0,1,132,145.09,40.55,40.55,0,0,1,152,180ZM99.06,128.61a8,8,0,0,0-8.72,1.73L68.69,152H48a8,8,0,0,0-8,8v40a8,8,0,0,0,8,8H68.69l21.65,21.66A8,8,0,0,0,104,224V136A8,8,0,0,0,99.06,128.61ZM216,88V216a16,16,0,0,1-16,16H168a8,8,0,0,1,0-16h32V96H152a8,8,0,0,1-8-8V40H56v80a8,8,0,0,1-16,0V40A16,16,0,0,1,56,24h96a8,8,0,0,1,5.66,2.34l56,56A8,8,0,0,1,216,88Zm-56-8h28.69L160,51.31Z"},child:[]}]})(n)}function dBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M112,216a8,8,0,0,1-8,8H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h56a8,8,0,0,1,0,16H48V208h56A8,8,0,0,1,112,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L196.69,120H104a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,221.66,122.34Z"},child:[]}]})(n)}function uBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"13",r:"4"},child:[]}]})(n)}function hBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 32 32"},child:[{tag:"path",attr:{d:"M 6 3 L 6 29 L 26 29 L 26 3 Z M 8 5 L 24 5 L 24 27 L 8 27 Z M 16 9.71875 L 16 16.1875 C 15.683594 16.074219 15.351563 16 15 16 C 13.355469 16 12 17.355469 12 19 C 12 20.644531 13.355469 22 15 22 C 16.644531 22 18 20.644531 18 19 L 18 12.28125 L 20.75 12.96875 L 21.25 11.03125 Z M 15 18 C 15.5625 18 16 18.4375 16 19 C 16 19.5625 15.5625 20 15 20 C 14.4375 20 14 19.5625 14 19 C 14 18.4375 14.4375 18 15 18 Z"},child:[]}]})(n)}function fBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 32 32"},child:[{tag:"path",attr:{d:"M 6 3 L 6 29 L 26 29 L 26 9.59375 L 25.71875 9.28125 L 19.71875 3.28125 L 19.40625 3 Z M 8 5 L 18 5 L 18 11 L 24 11 L 24 27 L 8 27 Z M 20 6.4375 L 22.5625 9 L 20 9 Z M 21.09375 14 C 20.542969 14 20.09375 14.449219 20.09375 15 C 20.09375 15.550781 20.542969 16 21.09375 16 C 21.644531 16 22.09375 15.550781 22.09375 15 C 22.09375 14.449219 21.644531 14 21.09375 14 Z M 14 15.59375 L 13.28125 16.28125 L 9.28125 20.28125 L 10.71875 21.71875 L 14 18.4375 L 16.28125 20.71875 L 17 21.40625 L 17.71875 20.71875 L 19 19.4375 L 21.28125 21.71875 L 22.71875 20.28125 L 19.71875 17.28125 L 19 16.59375 L 18.28125 17.28125 L 17 18.5625 L 14.71875 16.28125 Z"},child:[]}]})(n)}function pBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 32 32"},child:[{tag:"path",attr:{d:"M 6 3 L 6 29 L 26 29 L 26 3 Z M 8 5 L 24 5 L 24 27 L 8 27 Z M 15.40625 10.34375 C 15.101563 10.339844 14.746094 10.449219 14.5 10.65625 C 14.246094 10.871094 14.132813 11.136719 14.0625 11.40625 C 13.925781 11.945313 13.964844 12.503906 14.09375 13.125 C 14.246094 13.851563 14.679688 14.726563 15.03125 15.5625 C 14.851563 16.324219 14.804688 17 14.53125 17.78125 C 14.296875 18.453125 13.996094 18.839844 13.71875 19.4375 C 13.089844 19.675781 12.339844 19.816406 11.84375 20.125 C 11.308594 20.457031 10.839844 20.824219 10.5625 21.34375 C 10.285156 21.863281 10.316406 22.597656 10.6875 23.125 C 10.871094 23.402344 11.113281 23.621094 11.4375 23.75 C 11.761719 23.878906 12.113281 23.882813 12.40625 23.78125 C 12.996094 23.578125 13.414063 23.125 13.8125 22.59375 C 14.183594 22.101563 14.445313 21.265625 14.78125 20.59375 C 15.285156 20.425781 15.648438 20.214844 16.1875 20.09375 C 16.75 19.96875 17.128906 20.027344 17.65625 19.96875 C 17.882813 20.226563 18.074219 20.640625 18.3125 20.84375 C 18.789063 21.257813 19.3125 21.585938 19.9375 21.625 C 20.5625 21.664063 21.1875 21.273438 21.53125 20.6875 L 21.5625 20.6875 L 21.5625 20.65625 C 21.714844 20.390625 21.820313 20.101563 21.8125 19.78125 C 21.804688 19.460938 21.644531 19.125 21.4375 18.90625 C 21.027344 18.46875 20.503906 18.355469 19.9375 18.28125 C 19.5 18.222656 18.890625 18.378906 18.375 18.40625 C 17.921875 17.808594 17.472656 17.359375 17.0625 16.59375 C 16.839844 16.179688 16.78125 15.828125 16.59375 15.40625 C 16.738281 14.726563 17.023438 13.96875 17.0625 13.375 C 17.109375 12.65625 17.082031 12.035156 16.875 11.46875 C 16.769531 11.183594 16.601563 10.902344 16.34375 10.6875 C 16.09375 10.480469 15.769531 10.351563 15.4375 10.34375 C 15.425781 10.34375 15.417969 10.34375 15.40625 10.34375 Z M 16.0625 17.75 C 16.242188 18.066406 16.464844 18.265625 16.65625 18.5625 C 16.375 18.613281 16.160156 18.5625 15.875 18.625 C 15.828125 18.636719 15.796875 18.675781 15.75 18.6875 C 15.808594 18.53125 15.882813 18.4375 15.9375 18.28125 C 16 18.097656 16.003906 17.933594 16.0625 17.75 Z M 19.75 19.78125 C 20.085938 19.824219 20.207031 19.886719 20.25 19.90625 C 20.242188 19.921875 20.261719 19.917969 20.25 19.9375 C 20.125 20.144531 20.113281 20.128906 20.03125 20.125 C 19.964844 20.121094 19.710938 19.984375 19.46875 19.8125 C 19.539063 19.816406 19.6875 19.773438 19.75 19.78125 Z M 12.75 21.34375 C 12.695313 21.425781 12.648438 21.617188 12.59375 21.6875 C 12.289063 22.09375 12.007813 22.28125 11.9375 22.3125 C 11.925781 22.296875 11.957031 22.3125 11.9375 22.28125 L 11.90625 22.28125 C 11.804688 22.136719 11.832031 22.195313 11.90625 22.0625 C 11.980469 21.929688 12.214844 21.660156 12.625 21.40625 C 12.65625 21.386719 12.71875 21.363281 12.75 21.34375 Z"},child:[]}]})(n)}function mBe(n){return Le({tag:"svg",attr:{viewBox:"0 0 32 32"},child:[{tag:"path",attr:{d:"M 6 3 L 6 29 L 26 29 L 26 9.59375 L 25.71875 9.28125 L 19.71875 3.28125 L 19.40625 3 Z M 8 5 L 18 5 L 18 11 L 24 11 L 24 27 L 8 27 Z M 20 6.4375 L 22.5625 9 L 20 9 Z M 13 13.21875 L 13 22.78125 L 14.5 21.84375 L 19.5 18.84375 L 20.9375 18 L 19.5 17.15625 L 14.5 14.15625 Z M 15 16.75 L 17.09375 18 L 15 19.25 Z"},child:[]}]})(n)}const wn=[{title:"FaBars",category:"general",tag:"menubar1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(Jje,{})},{title:"FaSignOutAlt",category:"general",tag:"logout1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(sUe,{})},{title:"AiOutlineLogout",category:"general",tag:"logout2",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(KMe,{})},{title:"VscSignOut",category:"general",tag:"logout3",familyName:"VS Code Icons",familyCode:"vsc",component:h.jsx(lBe,{})},{title:"PiSignOut",category:"general",tag:"logout4",familyName:"Phosphor Icons",familyCode:"pi",component:h.jsx(dBe,{})},{title:"BsPlusCircle",category:"general",tag:"add1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(o9e,{})},{title:"BsPlus",category:"general",tag:"add2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(l9e,{})},{title:"AiOutlinePlus",category:"general",tag:"add3",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(ZMe,{})},{title:"BsMoonStarsFill",category:"general",tag:"theme-light1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(H7e,{})},{title:"BsFillSunFill",category:"general",tag:"theme-dark1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(y7e,{})},{title:"BsPlayCircleFill",category:"general",tag:"play1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(s9e,{})},{title:"BsPlayBtnFill",category:"general",tag:"play2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(i9e,{})},{title:"BsPlayFill",category:"general",tag:"play3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(a9e,{})},{title:"BsExclamationCircle",category:"general",tag:"warning1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(GO,{})},{title:"BsFillExclamationTriangleFill",category:"general",tag:"warning2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(u7e,{})},{title:"BsFillExclamationCircleFill",category:"general",tag:"warning3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(d7e,{})},{title:"BsInfoCircle",category:"general",tag:"info1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(z7e,{})},{title:"BsFillInfoCircleFill",category:"general",tag:"info2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(p7e,{})},{title:"MdSend",category:"general",tag:"send1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(Eye,{})},{title:"FaTelegramPlane",category:"general",tag:"send2",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx($je,{})},{title:"BiPaperPlane",category:"general",tag:"send3",familyName:"BoxIcons",familyCode:"bi",component:h.jsx(Sje,{})},{title:"BsGear",category:"general",tag:"settings1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(M7e,{})},{title:"GoGear",category:"general",tag:"settings2",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(b9e,{})},{title:"BsGearFill",category:"general",tag:"settings3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(k7e,{})},{title:"BsFillEyeFill",category:"general",tag:"view1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(h7e,{})},{title:"BsFillEyeSlashFill",category:"general",tag:"hide1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(f7e,{})},{title:"BsCheck",category:"general",tag:"check1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(R7e,{})},{title:"BsFillCheckCircleFill",category:"general",tag:"check2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(c7e,{})},{title:"BsCheckCircleFill",category:"general",tag:"check3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(T7e,{})},{title:"BsSearch",category:"general",tag:"search1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(d9e,{})},{title:"FaCrown",category:"general",tag:"crown1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(nUe,{})},{title:"BsClockHistory",category:"general",tag:"date1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(A7e,{})},{title:"TbCalendarTime",category:"general",tag:"date2",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(dje,{})},{title:"TbCalendarStats",category:"general",tag:"date3",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(cje,{})},{title:"VscCalendar",category:"general",tag:"date4",familyName:"VS Code Icons",familyCode:"vsc",component:h.jsx(sBe,{})},{title:"LuCalendarClock",category:"general",tag:"date5",familyName:"Lucide",familyCode:"lu",component:h.jsx(TUe,{})},{title:"LuCalendarDays",category:"general",tag:"date6",familyName:"Lucide",familyCode:"lu",component:h.jsx(RUe,{})},{title:"LuCalendarRange",category:"general",tag:"date7",familyName:"Lucide",familyCode:"lu",component:h.jsx(xUe,{})},{title:"TfiDashboard",category:"general",tag:"metrics1",familyName:"Themify Icons",familyCode:"tfi",component:h.jsx(_je,{})},{title:"RiDashboard2Line",category:"general",tag:"metrics2",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(zFe,{})},{title:"VscDashboard",category:"general",tag:"metrics3",familyName:"VS Code Icons",familyCode:"vsc",component:h.jsx(aBe,{})},{title:"BsPerson",category:"general",tag:"user1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(n9e,{})},{title:"MdPerson",category:"general",tag:"user2",familyName:"Material Design icons",familyCode:"md",component:h.jsx(uFe,{})},{title:"BsFillPersonFill",category:"general",tag:"user3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(g7e,{})},{title:"FiCamera",category:"general",tag:"camera1",familyName:"Feather",familyCode:"fi",component:h.jsx(uBe,{})},{title:"IoCallOutline",category:"general",tag:"call1",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Lje,{})},{title:"HiOutlinePhone",category:"general",tag:"call2",familyName:"Heroicons",familyCode:"hi",component:h.jsx(SUe,{})},{title:"TbPhone",category:"general",tag:"call3",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(pje,{})},{title:"AiOutlineHome",category:"general",tag:"home1",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx($Me,{})},{title:"BsCircle",category:"general",tag:"circle1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(x7e,{})},{title:"FaThumbsUp",category:"general",tag:"upvote1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(oUe,{})},{title:"RiThumbUpFill",category:"general",tag:"upvote2",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(QFe,{})},{title:"HiOutlineThumbUp",category:"general",tag:"upvote3",familyName:"Heroicons",familyCode:"hi",component:h.jsx(CUe,{})},{title:"FaThumbsDown",category:"general",tag:"downvote1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(aUe,{})},{title:"RiThumbDownFill",category:"general",tag:"downvote2",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(JFe,{})},{title:"HiOutlineThumbDown",category:"general",tag:"downvote3",familyName:"Heroicons",familyCode:"hi",component:h.jsx(bUe,{})},{title:"BiSolidMap",category:"general",tag:"location1",familyName:"BoxIcons",familyCode:"bi",component:h.jsx(Cje,{})},{title:"FaKey",category:"general",tag:"key1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(rUe,{})},{title:"IoKey",category:"general",tag:"key2",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Mje,{})},{title:"IoKeyOutline",category:"general",tag:"key3",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(kje,{})},{title:"ImKey",category:"general",tag:"key4",familyName:"IcoMoon Free",familyCode:"im",component:h.jsx(iBe,{})},{title:"MdLock",category:"general",tag:"lock1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(BUe,{})},{title:"MdLockOpen",category:"general",tag:"lock2",familyName:"Material Design icons",familyCode:"md",component:h.jsx(UUe,{})},{title:"MdLockOutline",category:"general",tag:"lock3",familyName:"Material Design icons",familyCode:"md",component:h.jsx(FUe,{})},{title:"MdPrint",category:"general",tag:"print1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(VUe,{})},{title:"IoPrintSharp",category:"general",tag:"print2",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Fje,{})},{title:"IoPrintOutline",category:"general",tag:"print3",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Uje,{})},{title:"MdPrintDisabled",category:"general",tag:"noprint1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(KUe,{})},{title:"IoLocationSharp",category:"general",tag:"location1",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(jje,{})},{title:"FaLocationDot",category:"file",tag:"location2",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(vUe,{})},{title:"BsPlayBtn",category:"file",tag:"video1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(r9e,{})},{title:"LiaFileVideo",category:"file",tag:"video2",familyName:"Icons8 Line Awesome",familyCode:"lia",component:h.jsx(mBe,{})},{title:"MdOutlineAudiotrack",category:"file",tag:"audio1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(OFe,{})},{title:"PiFileAudioFill",category:"file",tag:"audio2",familyName:"Phosphor Icons",familyCode:"pi",component:h.jsx(cBe,{})},{title:"LiaFileAudio",category:"file",tag:"audio3",familyName:"Icons8 Line Awesome",familyCode:"lia",component:h.jsx(hBe,{})},{title:"LiaFilePdf",category:"file",tag:"pdf1",familyName:"Icons8 Line Awesome",familyCode:"lia",component:h.jsx(pBe,{})},{title:"FaFilePdf",category:"file",tag:"pdf2",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(iUe,{})},{title:"BsFiletypePdf",category:"file",tag:"pdf3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(P7e,{})},{title:"VscFilePdf",category:"file",tag:"pdf4",familyName:"VS Code Icons",familyCode:"vsc",component:h.jsx(oBe,{})},{title:"TbFileTypePdf",category:"file",tag:"pdf5",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(fje,{})},{title:"LiaFileImage",category:"file",tag:"image1",familyName:"Icons8 Line Awesome",familyCode:"lia",component:h.jsx(fBe,{})},{title:"BsImage",category:"file",tag:"image2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(B7e,{})},{title:"BsImages",category:"file",tag:"image3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(V7e,{})},{title:"FaClipboardQuestion",category:"file",tag:"quiz1",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(mUe,{})},{title:"BsPatchQuestionFill",category:"file",tag:"quiz2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(G7e,{})},{title:"FaLink",category:"file",tag:"link1",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(gUe,{})},{title:"RiExternalLinkLine",category:"file",tag:"link2",familyName:"Remix Icon",familyCode:"ri",component:h.jsx($Fe,{})},{title:"MdEditDocument",category:"file",tag:"form1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(LUe,{})},{title:"MdOutlineEditNote",category:"file",tag:"survey1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(IFe,{})},{title:"IoIosArrowUp",category:"arrows",tag:"arrow-up1",familyName:"Ionicons 4",familyCode:"io",component:h.jsx(Aje,{})},{title:"FaChevronDown",category:"arrows",tag:"arrow-down1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(Zje,{})},{title:"IoIosArrowDown",category:"arrows",tag:"arrow-down2",familyName:"Ionicons 4",familyCode:"io",component:h.jsx(Rje,{})},{title:"FaArrowLeft",category:"arrows",tag:"arrow-left1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(Yje,{})},{title:"FaArrowLeftLong",category:"arrows",tag:"arrow-left2",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(fUe,{})},{title:"IoIosArrowBack",category:"arrows",tag:"arrow-left3",familyName:"Ionicons 4",familyCode:"io",component:h.jsx(Tje,{})},{title:"FaAnglesLeft",category:"arrows",tag:"arrow-left4",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(uUe,{})},{title:"IoIosArrowForward",category:"arrows",tag:"arrow-right1",familyName:"Ionicons 4",familyCode:"io",component:h.jsx(xje,{})},{title:"FaArrowRight",category:"arrows",tag:"arrow-right2",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(Xje,{})},{title:"FaArrowRightLong",category:"arrows",tag:"arrow-right3",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(pUe,{})},{title:"FaAnglesRight",category:"arrows",tag:"arrow-right4",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(hUe,{})},{title:"BsArrowLeftRight",category:"arrows",tag:"arrow-left-right1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(w7e,{})},{title:"TiSortAlphabetically",category:"sort",tag:"sort1",familyName:"Typicons",familyCode:"ti",component:h.jsx(yje,{})},{title:"BsFilter",category:"sort",tag:"sort2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(L7e,{})},{title:"BsType",category:"sort",tag:"sort3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(g9e,{})},{title:"TbSortAscendingLetters",category:"sort",tag:"sort4",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(vje,{})},{title:"MdOutlineSortByAlpha",category:"sort",tag:"sort5",familyName:"Material Design icons",familyCode:"md",component:h.jsx(wFe,{})},{title:"MdSortByAlpha",category:"sort",tag:"sort6",familyName:"Material Design icons",familyCode:"md",component:h.jsx(WUe,{})},{title:"BsThreeDotsVertical",category:"sort",tag:"sort7",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(f9e,{})},{title:"BsFunnelFill",category:"sort",tag:"sort8",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(D7e,{})},{title:"ImLibrary",category:"exp-bank",tag:"exp-bank1",familyName:"IcoMoon Free",familyCode:"im",component:h.jsx(nBe,{})},{title:"BsBank2",category:"exp-bank",tag:"exp-bank2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(S7e,{})},{title:"BsColumnsGap",category:"dashboard",tag:"dashboard1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(I7e,{})},{title:"BiShapeSquare",category:"associate",tag:"associate1",familyName:"BoxIcons",familyCode:"bi",component:h.jsx(bje,{})},{title:"BsRecycle",category:"associate",tag:"associate2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(c9e,{})},{title:"BsUbuntu",category:"associate",tag:"associate3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(v9e,{})},{title:"AiOutlineCodeSandbox",category:"associate",tag:"associate4",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(zMe,{})},{title:"AiOutlineDeploymentUnit",category:"associate",tag:"associate5",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(WMe,{})},{title:"MdFormatShapes",category:"associate",tag:"associate6",familyName:"Material Design icons",familyCode:"md",component:h.jsx(QUe,{})},{title:"MdTypeSpecimen",category:"associate",tag:"associate7",familyName:"Material Design icons",familyCode:"md",component:h.jsx(eFe,{})},{title:"MdOutlineFormatShapes",category:"associate",tag:"associate8",familyName:"Material Design icons",familyCode:"md",component:h.jsx(NFe,{})},{title:"RiShakeHandsLine",category:"associate",tag:"associate9",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(FFe,{})},{title:"MdDiversity2",category:"associate",tag:"associate10",familyName:"Material Design icons",familyCode:"md",component:h.jsx(iFe,{})},{title:"BsShare",category:"share",tag:"share1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(u9e,{})},{title:"FaRegShareFromSquare",category:"share",tag:"share2",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(EUe,{})},{title:"IoMdShareAlt",category:"share",tag:"share3",familyName:"Ionicons 4",familyCode:"io",component:h.jsx(Oje,{})},{title:"GiShare",category:"share",tag:"share4",familyName:"Game Icons",familyCode:"gi",component:h.jsx(tje,{})},{title:"BsDiagram3",category:"network",tag:"network1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(N7e,{})},{title:"BsFillPeopleFill",category:"network",tag:"network2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(m7e,{})},{title:"AiOutlineCluster",category:"network",tag:"network3",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(VMe,{})},{title:"AiOutlinePartition",category:"network",tag:"network4",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(JMe,{})},{title:"AiOutlineNodeCollapse",category:"network",tag:"network5",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(qMe,{})},{title:"AiOutlineNodeExpand",category:"network",tag:"network6",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(YMe,{})},{title:"AiOutlineNodeIndex",category:"network",tag:"network7",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(XMe,{})},{title:"MdDiversity3",category:"network",tag:"network8",familyName:"Material Design icons",familyCode:"md",component:h.jsx(rFe,{})},{title:"MdGroups2",category:"network",tag:"network9",familyName:"Material Design icons",familyCode:"md",component:h.jsx(sFe,{})},{title:"MdGroups",category:"network",tag:"network10",familyName:"Material Design icons",familyCode:"md",component:h.jsx(oFe,{})},{title:"MdGroups3",category:"network",tag:"network11",familyName:"Material Design icons",familyCode:"md",component:h.jsx(aFe,{})},{title:"MdOutlineGroups3",category:"network",tag:"network12",familyName:"Material Design icons",familyCode:"md",component:h.jsx(kFe,{})},{title:"MdOutlineGroups2",category:"network",tag:"network13",familyName:"Material Design icons",familyCode:"md",component:h.jsx(DFe,{})},{title:"MdOutlineGroups",category:"network",tag:"network14",familyName:"Material Design icons",familyCode:"md",component:h.jsx(MFe,{})},{title:"MdOutlineDiversity1",category:"network",tag:"network15",familyName:"Material Design icons",familyCode:"md",component:h.jsx(LFe,{})},{title:"MdOutlinePeopleAlt",category:"network",tag:"network16",familyName:"Material Design icons",familyCode:"md",component:h.jsx(jFe,{})},{title:"BsPeople",category:"network",tag:"network17",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(Y7e,{})},{title:"BsPatchQuestion",category:"discover",tag:"discover1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(W7e,{})},{title:"AiOutlineAlert",category:"discover",tag:"discover2",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(UMe,{})},{title:"AiOutlineBulb",category:"discover",tag:"discover3",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(BMe,{})},{title:"GiSmart",category:"discover",tag:"discover4",familyName:"Game Icons",familyCode:"gi",component:h.jsx(nje,{})},{title:"GiTeamIdea",category:"discover",tag:"discover5",familyName:"Game Icons",familyCode:"gi",component:h.jsx(sje,{})},{title:"GoLightBulb",category:"discover",tag:"discover6",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(T9e,{})},{title:"HiOutlineLightBulb",category:"discover",tag:"discover7",familyName:"Heroicons",familyCode:"hi",component:h.jsx(wUe,{})},{title:"MdLightbulbOutline",category:"discover",tag:"discover8",familyName:"Material Design icons",familyCode:"md",component:h.jsx(jUe,{})},{title:"MdTipsAndUpdates",category:"discover",tag:"discover9",familyName:"Material Design icons",familyCode:"md",component:h.jsx(HUe,{})},{title:"MdOutlineBatchPrediction",category:"discover",tag:"discover10",familyName:"Material Design icons",familyCode:"md",component:h.jsx(gFe,{})},{title:"MdOutlineTipsAndUpdates",category:"discover",tag:"discover11",familyName:"Material Design icons",familyCode:"md",component:h.jsx(_Fe,{})},{title:"RiLightbulbFlashLine",category:"discover",tag:"discover12",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(WFe,{})},{title:"BsHeadphones",category:"consult",tag:"consult1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(U7e,{})},{title:"BsPersonCheck",category:"consult",tag:"consult2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(J7e,{})},{title:"BsPersonBadge",category:"consult",tag:"consult3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(X7e,{})},{title:"AiOutlineCustomerService",category:"consult",tag:"consult4",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(HMe,{})},{title:"AiOutlineSolution",category:"consult",tag:"consult5",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(s7e,{})},{title:"MdCoPresent",category:"consult",tag:"consult6",familyName:"Material Design icons",familyCode:"md",component:h.jsx($Ue,{})},{title:"MdOutlineCoPresent",category:"consult",tag:"consult7",familyName:"Material Design icons",familyCode:"md",component:h.jsx(SFe,{})},{title:"BsPersonWorkspace",category:"consult",tag:"consult8",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(t9e,{})},{title:"BsPersonRolodex",category:"consult",tag:"consult9",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(Z7e,{})},{title:"BsPersonSquare",category:"consult",tag:"consult10",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(e9e,{})},{title:"BsHeadset",category:"consult",tag:"consult11",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(F7e,{})},{title:"BsPersonLinesFill",category:"consult",tag:"consult12",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(Q7e,{})},{title:"AiOutlineUserSwitch",category:"consult",tag:"consult13",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(l7e,{})},{title:"MdRecordVoiceOver",category:"consult",tag:"consult14",familyName:"Material Design icons",familyCode:"md",component:h.jsx(zUe,{})},{title:"MdInterpreterMode",category:"consult",tag:"consult15",familyName:"Material Design icons",familyCode:"md",component:h.jsx(GUe,{})},{title:"MdOutlineInterpreterMode",category:"consult",tag:"consult16",familyName:"Material Design icons",familyCode:"md",component:h.jsx(EFe,{})},{title:"BsEnvelope",category:"message",tag:"message1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(O7e,{})},{title:"MdOutlineMailOutline",category:"message",tag:"message2",familyName:"Material Design icons",familyCode:"md",component:h.jsx(bFe,{})},{title:"MdOutlineMarkEmailUnread",category:"message",tag:"message3",familyName:"Material Design icons",familyCode:"md",component:h.jsx(CFe,{})},{title:"MdOutlineMail",category:"message",tag:"message4",familyName:"Material Design icons",familyCode:"md",component:h.jsx(AFe,{})},{title:"SlEnvolope",category:"message",tag:"message5",familyName:"Simple Line Icons",familyCode:"sl",component:h.jsx(tBe,{})},{title:"BsChatSquareTextFill",category:"message",tag:"message6",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(C7e,{})},{title:"BiConversation",category:"message",tag:"message7",familyName:"BoxIcons",familyCode:"bi",component:h.jsx(wje,{})},{title:"FaCommentDots",category:"message",tag:"message8",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(tUe,{})},{title:"FaRegCommentDots",category:"message",tag:"message9",familyName:"Font Awesome 6",familyCode:"fas",component:h.jsx(yUe,{})},{title:"BsTrophy",category:"achievements",tag:"achievements1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(m9e,{})},{title:"GoTrophy",category:"achievements",tag:"achievements2",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(N9e,{})},{title:"BsStarFill",category:"star",tag:"star1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(h9e,{})},{title:"BsFillStarFill",category:"star",tag:"star2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(v7e,{})},{title:"FaRegStar",category:"star",tag:"star3",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(dUe,{})},{title:"BsTrash3",category:"delete",tag:"delete1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(p9e,{})},{title:"BsXCircle",category:"delete",tag:"delete2",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(_9e,{})},{title:"AiOutlineDelete",category:"delete",tag:"delete3",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(GMe,{})},{title:"GoTrash",category:"delete",tag:"delete4",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(I9e,{})},{title:"BsFillTrashFill",category:"delete",tag:"delete5",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(_7e,{})},{title:"FaTimes",category:"delete",tag:"delete6",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(lUe,{})},{title:"BsX",category:"delete",tag:"delete7",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(VE,{})},{title:"BsXCircleFill",category:"delete",tag:"delete8",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(y9e,{})},{title:"AiFillPieChart",category:"analyze",tag:"analyze1",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(jMe,{})},{title:"AiOutlineAreaChart",category:"analyze",tag:"analyze2",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(FMe,{})},{title:"AiOutlinePieChart",category:"analyze",tag:"analyze3",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(QMe,{})},{title:"IoBarChartOutline",category:"analyze",tag:"analyze4",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Pje,{})},{title:"MdDonutSmall",category:"analyze",tag:"analyze5",familyName:"Material Design icons",familyCode:"md",component:h.jsx(PUe,{})},{title:"MdPieChart",category:"analyze",tag:"analyze6",familyName:"Material Design icons",familyCode:"md",component:h.jsx(ZUe,{})},{title:"TbChartHistogram",category:"analyze",tag:"analyze7",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(hje,{})},{title:"TbChartAreaLineFilled",category:"analyze",tag:"analyze8",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(uje,{})},{title:"FaChartPie",category:"analyze",tag:"analyze9",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(Qje,{})},{title:"BsGeoAlt",category:"location",tag:"location1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(j7e,{})},{title:"BsPencil",category:"edit",tag:"edit1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(q7e,{})},{title:"FaRegPenToSquare",category:"edit",tag:"edit2",familyName:"Font Awesome 6",familyCode:"fa6",component:h.jsx(_Ue,{})},{title:"BsPencilFill",category:"edit",tag:"edit3",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx($7e,{})},{title:"BsPencilSquare",category:"edit",tag:"edit4",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(K7e,{})},{title:"AiOutlineRead",category:"dictionary",tag:"dictionary1",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(e7e,{})},{title:"GoBook",category:"dictionary",tag:"dictionary2",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(S9e,{})},{title:"AiOutlineReload",category:"reload",tag:"reload1",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(t7e,{})},{title:"AiOutlineSync",category:"reload",tag:"reload2",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(o7e,{})},{title:"GoSync",category:"reload",tag:"reload3",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(A9e,{})},{title:"MdAutorenew",category:"reload",tag:"reload4",familyName:"Material Design icons",familyCode:"md",component:h.jsx(OUe,{})},{title:"AiOutlineShoppingCart",category:"shop",tag:"shop1",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(i7e,{})},{title:"AiOutlineShop",category:"shop",tag:"shop2",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(n7e,{})},{title:"AiOutlineShopping",category:"shop",tag:"shop3",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(r7e,{})},{title:"AiOutlineSwap",category:"connect",tag:"connect1",familyName:"Ant Design Icons",familyCode:"ai",component:h.jsx(a7e,{})},{title:"GoNote",category:"invitation",tag:"invitation1",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(R9e,{})},{title:"GoUnread",category:"invitation",tag:"invitation2",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(O9e,{})},{title:"GoUnverified",category:"invitation",tag:"invitation3",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(P9e,{})},{title:"IoIosFiling",category:"invitation",tag:"invitation4",familyName:"Ionicons 4",familyCode:"io",component:h.jsx(Ije,{})},{title:"IoFileTrayFull",category:"invitation",tag:"invitation5",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Dje,{})},{title:"MdHowToVote",category:"invitation",tag:"invitation6",familyName:"Material Design icons",familyCode:"md",component:h.jsx(qUe,{})},{title:"MdOutlineMarkAsUnread",category:"invitation",tag:"invitation7",familyName:"Material Design icons",familyCode:"md",component:h.jsx(yFe,{})},{title:"MdOutlineDrafts",category:"invitation",tag:"invitation8",familyName:"Material Design icons",familyCode:"md",component:h.jsx(TFe,{})},{title:"MdOutlineHowToVote",category:"invitation",tag:"invitation9",familyName:"Material Design icons",familyCode:"md",component:h.jsx(RFe,{})},{title:"SlEnvolopeLetter",category:"invitation",tag:"invitation10",familyName:"Simple Line Icons",familyCode:"sl",component:h.jsx(eBe,{})},{title:"GiBrain",category:"experience",tag:"experience1",familyName:"Game Icons",familyCode:"gi",component:h.jsx(L9e,{})},{title:"MdSelfImprovement",category:"experience",tag:"experience2",familyName:"Material Design icons",familyCode:"md",component:h.jsx(pFe,{})},{title:"MdArticle",category:"details",tag:"details1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(NUe,{})},{title:"LuLayoutList",category:"details",tag:"details2",familyName:"Lucide",familyCode:"lu",component:h.jsx(AUe,{})},{title:"LuNewspaper",category:"details",tag:"details3",familyName:"Lucide",familyCode:"lu",component:h.jsx(IUe,{})},{title:"MdOutlineArticle",category:"details",tag:"details4",familyName:"Material Design icons",familyCode:"md",component:h.jsx(mFe,{})},{title:"RiArticleLine",category:"details",tag:"details5",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(HFe,{})},{title:"GiNightSleep",category:"dreams",tag:"dreams1",familyName:"Game Icons",familyCode:"gi",component:h.jsx(K9e,{})},{title:"GiNightSky",category:"dreams",tag:"dreams2",familyName:"Game Icons",familyCode:"gi",component:h.jsx($9e,{})},{title:"MdOutlineEvent",category:"events",tag:"events1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(vFe,{})},{title:"RiCalendarTodoLine",category:"events",tag:"events2",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(UFe,{})},{title:"GiPartyPopper",category:"events",tag:"events3",familyName:"Game Icons",familyCode:"gi",component:h.jsx(Y9e,{})},{title:"MdPsychologyAlt",category:"thoughts",tag:"thoughts1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(hFe,{})},{title:"MdPsychology",category:"thoughts",tag:"thoughts2",familyName:"Material Design icons",familyCode:"md",component:h.jsx(fFe,{})},{title:"GiDeadlyStrike",category:"out of body",tag:"out-of-body1",familyName:"Game Icons",familyCode:"gi",component:h.jsx(D9e,{})},{title:"GiExtraLucid",category:"out of body",tag:"out-of-body2",familyName:"Game Icons",familyCode:"gi",component:h.jsx(k9e,{})},{title:"GiFireSilhouette",category:"out of body",tag:"out-of-body3",familyName:"Game Icons",familyCode:"gi",component:h.jsx(M9e,{})},{title:"GiHealing",category:"out of body",tag:"out-of-body4",familyName:"Game Icons",familyCode:"gi",component:h.jsx(j9e,{})},{title:"GiIciclesAura",category:"out of body",tag:"out-of-body5",familyName:"Game Icons",familyCode:"gi",component:h.jsx(B9e,{})},{title:"GiInspiration",category:"out of body",tag:"out-of-body6",familyName:"Game Icons",familyCode:"gi",component:h.jsx(V9e,{})},{title:"GiJuggler",category:"out of body",tag:"out-of-body7",familyName:"Game Icons",familyCode:"gi",component:h.jsx(z9e,{})},{title:"GiMeditation",category:"out of body",tag:"out-of-body8",familyName:"Game Icons",familyCode:"gi",component:h.jsx(H9e,{})},{title:"GiMightyForce",category:"out of body",tag:"out-of-body9",familyName:"Game Icons",familyCode:"gi",component:h.jsx(G9e,{})},{title:"GiNailedHead",category:"out of body",tag:"out-of-body10",familyName:"Game Icons",familyCode:"gi",component:h.jsx(W9e,{})},{title:"GiOrbital",category:"out of body",tag:"out-of-body13",familyName:"Game Icons",familyCode:"gi",component:h.jsx(q9e,{})},{title:"GiPentacle",category:"out of body",tag:"out-of-body15",familyName:"Game Icons",familyCode:"gi",component:h.jsx(X9e,{})},{title:"GiPolarStar",category:"out of body",tag:"out-of-body16",familyName:"Game Icons",familyCode:"gi",component:h.jsx(J9e,{})},{title:"GiPsychicWaves",category:"out of body",tag:"out-of-body17",familyName:"Game Icons",familyCode:"gi",component:h.jsx(Q9e,{})},{title:"GiRearAura",category:"out of body",tag:"out-of-body18",familyName:"Game Icons",familyCode:"gi",component:h.jsx(Z9e,{})},{title:"GiSpikedHalo",category:"out of body",tag:"out-of-body19",familyName:"Game Icons",familyCode:"gi",component:h.jsx(ije,{})},{title:"GiSuspicious",category:"out of body",tag:"out-of-body20",familyName:"Game Icons",familyCode:"gi",component:h.jsx(rje,{})},{title:"GiTeleport",category:"out of body",tag:"out-of-body21",familyName:"Game Icons",familyCode:"gi",component:h.jsx(aje,{})},{title:"GiThunderStruck",category:"out of body",tag:"out-of-body22",familyName:"Game Icons",familyCode:"gi",component:h.jsx(oje,{})},{title:"GiTwoShadows",category:"out of body",tag:"out-of-body23",familyName:"Game Icons",familyCode:"gi",component:h.jsx(lje,{})},{title:"GiHeartWings",category:"favorite",tag:"favorite1",familyName:"Game Icons",familyCode:"gi",component:h.jsx(U9e,{})},{title:"GiHearts",category:"favorite",tag:"favorite2",familyName:"Game Icons",familyCode:"gi",component:h.jsx(F9e,{})},{title:"GoHeartFill",category:"favorite",tag:"favorite3",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(C9e,{})},{title:"GoStarFill",category:"favorite",tag:"favorite4",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(x9e,{})},{title:"MdFavorite",category:"favorite",tag:"favorite5",familyName:"Material Design icons",familyCode:"md",component:h.jsx(kUe,{})},{title:"MdFavoriteBorder",category:"favorite",tag:"favorite6",familyName:"Material Design icons",familyCode:"md",component:h.jsx(DUe,{})},{title:"GiRevolt",category:"resolution",tag:"resolution1",familyName:"Game Icons",familyCode:"gi",component:h.jsx(eje,{})},{title:"GoBellFill",category:"notifications",tag:"notifications1",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(w9e,{})},{title:"GoBell",category:"notifications",tag:"notifications2",familyName:"Github Octicons Icons",familyCode:"go",component:h.jsx(E9e,{})},{title:"MdNotificationsNone",category:"notifications",tag:"notifications3",familyName:"Material Design icons",familyCode:"md",component:h.jsx(lFe,{})},{title:"MdNotifications",category:"notifications",tag:"notifications4",familyName:"Material Design icons",familyCode:"md",component:h.jsx(cFe,{})},{title:"BsBellFill",category:"notifications",tag:"notifications5",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(b7e,{})},{title:"MdLeaderboard",category:"leaderboard",tag:"leaderboard",familyName:"Material Design icons",familyCode:"md",component:h.jsx(MUe,{})},{title:"MdInsights",category:"popular insights",tag:"insights1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(YUe,{})},{title:"MdReviews",category:"popular insights",tag:"insights2",familyName:"Material Design icons",familyCode:"md",component:h.jsx(XUe,{})},{title:"MdAutoGraph",category:"popular insights",tag:"insights3",familyName:"Material Design icons",familyCode:"md",component:h.jsx(JUe,{})},{title:"MdAutoAwesome",category:"popular insights",tag:"insights4",familyName:"Material Design icons",familyCode:"md",component:h.jsx(tFe,{})},{title:"MdAutoFixHigh",category:"popular insights",tag:"insights5",familyName:"Material Design icons",familyCode:"md",component:h.jsx(nFe,{})},{title:"MdOutlineInsights",category:"popular insights",tag:"insights6",familyName:"Material Design icons",familyCode:"md",component:h.jsx(xFe,{})},{title:"MdOutlineAutoAwesome",category:"popular insights",tag:"insights7",familyName:"Material Design icons",familyCode:"md",component:h.jsx(PFe,{})},{title:"RiUserStarLine",category:"popular insights",tag:"insights8",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(ZFe,{})},{title:"RiShieldUserFill",category:"popular insights",tag:"insights9",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(YFe,{})},{title:"RiShieldUserLine",category:"popular insights",tag:"insights10",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(XFe,{})},{title:"RiShieldStarFill",category:"popular insights",tag:"insights11",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(KFe,{})},{title:"RiShieldStarLine",category:"popular insights",tag:"insights12",familyName:"Remix Icon",familyCode:"ri",component:h.jsx(qFe,{})},{title:"TbShieldCheckeredFilled",category:"popular insights",tag:"insights13",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(mje,{})},{title:"TbShieldHalfFilled",category:"popular insights",tag:"insights14",familyName:"Tabler Icons",familyCode:"tb",component:h.jsx(gje,{})},{title:"FaUserShield",category:"popular insights",tag:"insights15",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(cUe,{})},{title:"IoShieldCheckmark",category:"popular insights",tag:"insights16",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Vje,{})},{title:"IoShieldHalf",category:"popular insights",tag:"insights17",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(zje,{})},{title:"IoShieldCheckmarkOutline",category:"popular insights",tag:"insights18",familyName:"Ionicons 5",familyCode:"io5",component:h.jsx(Bje,{})},{title:"MdPersonAddAlt1",category:"add user",tag:"add-user1",familyName:"Material Design icons",familyCode:"md",component:h.jsx(dFe,{})},{title:"TfiYoutube",category:"social",tag:"youtube1",familyName:"Themify Icons",familyCode:"tfi",component:h.jsx(Eje,{})},{title:"FaYoutube",category:"social",tag:"youtube2",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(qje,{})},{title:"BsApple",category:"social",tag:"apple1",familyName:"Bootstrap Icons",familyCode:"bs",component:h.jsx(E7e,{})},{title:"FaFacebookF",category:"social",tag:"facebook1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(Gje,{})},{title:"FcGoogle",category:"social",tag:"google1",familyName:"Flat Color Icons",familyCode:"fc",component:h.jsx(rBe,{})},{title:"FaWhatsapp",category:"social",tag:"whatsapp1",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(Kje,{})},{title:"IoLogoWhatsapp",category:"social",tag:"whatsapp2",familyName:"Ionicons 4",familyCode:"io",component:h.jsx(Nje,{})},{title:"FaCircle",category:"default",tag:"default",familyName:"Font Awesome 5",familyCode:"fa",component:h.jsx(eUe,{})}];function Zt({className:n,tag:t,style:i}){var u,p;const s=t||"default",l=h.jsx(h.Fragment,{children:wn.filter(g=>(g==null?void 0:g.tag)===s).length>0?(u=wn.filter(g=>(g==null?void 0:g.tag)===s)[0])==null?void 0:u.component:(p=wn.filter(g=>(g==null?void 0:g.tag)==="default")[0])==null?void 0:p.component}),d=l&&k.cloneElement(l.props.children,{className:n,style:i});return h.jsx(h.Fragment,{children:d})}var wye={exports:{}};(()=>{var n={181:(l,d,u)=>{var p=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,_=/^0b[01]+$/i,y=/^0o[0-7]+$/i,E=parseInt,b=typeof u.g=="object"&&u.g&&u.g.Object===Object&&u.g,A=typeof self=="object"&&self&&self.Object===Object&&self,N=b||A||Function("return this")(),O=Object.prototype.toString,D=Math.max,P=Math.min,j=function(){return N.Date.now()};function M(H){var $=typeof H;return!!H&&($=="object"||$=="function")}function V(H){if(typeof H=="number")return H;if(function(Y){return typeof Y=="symbol"||function(le){return!!le&&typeof le=="object"}(Y)&&O.call(Y)=="[object Symbol]"}(H))return NaN;if(M(H)){var $=typeof H.valueOf=="function"?H.valueOf():H;H=M($)?$+"":$}if(typeof H!="string")return H===0?H:+H;H=H.replace(p,"");var Q=_.test(H);return Q||y.test(H)?E(H.slice(2),Q?2:8):g.test(H)?NaN:+H}l.exports=function(H,$,Q){var Y,le,ae,te,de,G,ie=0,_e=!1,he=!1,Ce=!0;if(typeof H!="function")throw new TypeError("Expected a function");function fe(Ve){var Re=Y,Be=le;return Y=le=void 0,ie=Ve,te=H.apply(Be,Re)}function me(Ve){var Re=Ve-G;return G===void 0||Re>=$||Re<0||he&&Ve-ie>=ae}function Ne(){var Ve=j();if(me(Ve))return Fe(Ve);de=setTimeout(Ne,function(Re){var Be=$-(Re-G);return he?P(Be,ae-(Re-ie)):Be}(Ve))}function Fe(Ve){return de=void 0,Ce&&Y?fe(Ve):(Y=le=void 0,te)}function je(){var Ve=j(),Re=me(Ve);if(Y=arguments,le=this,G=Ve,Re){if(de===void 0)return function(Be){return ie=Be,de=setTimeout(Ne,$),_e?fe(Be):te}(G);if(he)return de=setTimeout(Ne,$),fe(G)}return de===void 0&&(de=setTimeout(Ne,$)),te}return $=V($)||0,M(Q)&&(_e=!!Q.leading,ae=(he="maxWait"in Q)?D(V(Q.maxWait)||0,$):ae,Ce="trailing"in Q?!!Q.trailing:Ce),je.cancel=function(){de!==void 0&&clearTimeout(de),ie=0,Y=G=le=de=void 0},je.flush=function(){return de===void 0?te:Fe(j())},je}},858:(l,d,u)=>{var p="Expected a function",g=NaN,_="[object Symbol]",y=/^\s+|\s+$/g,E=/^[-+]0x[0-9a-f]+$/i,b=/^0b[01]+$/i,A=/^0o[0-7]+$/i,N=parseInt,O=typeof u.g=="object"&&u.g&&u.g.Object===Object&&u.g,D=typeof self=="object"&&self&&self.Object===Object&&self,P=O||D||Function("return this")(),j=Object.prototype.toString,M=Math.max,V=Math.min,H=function(){return P.Date.now()};function $(Y){var le=typeof Y;return!!Y&&(le=="object"||le=="function")}function Q(Y){if(typeof Y=="number")return Y;if(function(te){return typeof te=="symbol"||function(de){return!!de&&typeof de=="object"}(te)&&j.call(te)==_}(Y))return g;if($(Y)){var le=typeof Y.valueOf=="function"?Y.valueOf():Y;Y=$(le)?le+"":le}if(typeof Y!="string")return Y===0?Y:+Y;Y=Y.replace(y,"");var ae=b.test(Y);return ae||A.test(Y)?N(Y.slice(2),ae?2:8):E.test(Y)?g:+Y}l.exports=function(Y,le,ae){var te=!0,de=!0;if(typeof Y!="function")throw new TypeError(p);return $(ae)&&(te="leading"in ae?!!ae.leading:te,de="trailing"in ae?!!ae.trailing:de),function(G,ie,_e){var he,Ce,fe,me,Ne,Fe,je=0,Ve=!1,Re=!1,Be=!0;if(typeof G!="function")throw new TypeError(p);function Xe(Ze){var Je=he,_t=Ce;return he=Ce=void 0,je=Ze,me=G.apply(_t,Je)}function we(Ze){var Je=Ze-Fe;return Fe===void 0||Je>=ie||Je<0||Re&&Ze-je>=fe}function Ge(){var Ze=H();if(we(Ze))return rt(Ze);Ne=setTimeout(Ge,function(Je){var _t=ie-(Je-Fe);return Re?V(_t,fe-(Je-je)):_t}(Ze))}function rt(Ze){return Ne=void 0,Be&&he?Xe(Ze):(he=Ce=void 0,me)}function pt(){var Ze=H(),Je=we(Ze);if(he=arguments,Ce=this,Fe=Ze,Je){if(Ne===void 0)return function(_t){return je=_t,Ne=setTimeout(Ge,ie),Ve?Xe(_t):me}(Fe);if(Re)return Ne=setTimeout(Ge,ie),Xe(Fe)}return Ne===void 0&&(Ne=setTimeout(Ge,ie)),me}return ie=Q(ie)||0,$(_e)&&(Ve=!!_e.leading,fe=(Re="maxWait"in _e)?M(Q(_e.maxWait)||0,ie):fe,Be="trailing"in _e?!!_e.trailing:Be),pt.cancel=function(){Ne!==void 0&&clearTimeout(Ne),je=0,he=Fe=Ce=Ne=void 0},pt.flush=function(){return Ne===void 0?me:rt(H())},pt}(Y,le,{leading:te,maxWait:le,trailing:de})}},694:(l,d,u)=>{var p=u(925);function g(){}function _(){}_.resetWarningCache=g,l.exports=function(){function y(A,N,O,D,P,j){if(j!==p){var M=new Error("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");throw M.name="Invariant Violation",M}}function E(){return y}y.isRequired=y;var b={array:y,bigint:y,bool:y,func:y,number:y,object:y,string:y,symbol:y,any:y,arrayOf:E,element:y,elementType:y,instanceOf:E,node:y,objectOf:E,oneOf:E,oneOfType:E,shape:E,exact:E,checkPropTypes:_,resetWarningCache:g};return b.PropTypes=b,b}},556:(l,d,u)=>{l.exports=u(694)()},925:l=>{l.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},t={};function i(l){var d=t[l];if(d!==void 0)return d.exports;var u=t[l]={exports:{}};return n[l](u,u.exports,i),u.exports}i.n=l=>{var d=l&&l.__esModule?()=>l.default:()=>l;return i.d(d,{a:d}),d},i.d=(l,d)=>{for(var u in d)i.o(d,u)&&!i.o(l,u)&&Object.defineProperty(l,u,{enumerable:!0,get:d[u]})},i.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),i.o=(l,d)=>Object.prototype.hasOwnProperty.call(l,d),i.r=l=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(l,"__esModule",{value:!0})};var s={};(()=>{i.r(s),i.d(s,{LazyLoadComponent:()=>it,LazyLoadImage:()=>tt,trackWindowScroll:()=>Ve});const l=k;var d=i.n(l),u=i(556);function p(){return typeof window<"u"&&"IntersectionObserver"in window&&"isIntersecting"in window.IntersectionObserverEntry.prototype}function g(Te){return g=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Pe){return typeof Pe}:function(Pe){return Pe&&typeof Symbol=="function"&&Pe.constructor===Symbol&&Pe!==Symbol.prototype?"symbol":typeof Pe},g(Te)}function _(Te,Pe){var Qe=Object.keys(Te);if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(Te);Pe&&(nt=nt.filter(function($e){return Object.getOwnPropertyDescriptor(Te,$e).enumerable})),Qe.push.apply(Qe,nt)}return Qe}function y(Te,Pe,Qe){return(Pe=b(Pe))in Te?Object.defineProperty(Te,Pe,{value:Qe,enumerable:!0,configurable:!0,writable:!0}):Te[Pe]=Qe,Te}function E(Te,Pe){for(var Qe=0;Qe0&&arguments[0]!==void 0?arguments[0]:this.props.scrollPosition,st=this.placeholder.getBoundingClientRect(),_n=this.placeholder.style,Dt=parseInt(_n.getPropertyValue("margin-left"),10)||0,nn=parseInt(_n.getPropertyValue("margin-top"),10)||0;return{bottom:$e.y+st.bottom+nn,left:$e.x+st.left+Dt,right:$e.x+st.right+Dt,top:$e.y+st.top+nn}}},{key:"isPlaceholderInViewport",value:function(){if(typeof window>"u"||!this.placeholder)return!1;var $e=this.props,st=$e.scrollPosition,_n=$e.threshold,Dt=this.getPlaceholderBoundingBox(st),nn=st.y+window.innerHeight,en=st.x,qt=st.x+window.innerWidth,Jt=st.y;return Jt-_n<=Dt.bottom&&nn+_n>=Dt.top&&en-_n<=Dt.right&&qt+_n>=Dt.left}},{key:"updateVisibility",value:function(){this.isPlaceholderInViewport()&&this.props.onVisible()}},{key:"render",value:function(){var $e=this,st=this.props,_n=st.className,Dt=st.height,nn=st.placeholder,en=st.style,qt=st.width;if(nn&&typeof nn.type!="function")return d().cloneElement(nn,{ref:function(mn){return $e.placeholder=mn}});var Jt=function(mn){for(var Kn=1;Kn"u"?0:window.scrollX||window.pageXOffset},je=function(){return typeof window>"u"?0:window.scrollY||window.pageYOffset};const Ve=function(Te){var Pe=function(Qe){function nt(_n){var Dt;if(function(en,qt){if(!(en instanceof qt))throw new TypeError("Cannot call a class as a function")}(this,nt),(Dt=he(this,nt,[_n])).useIntersectionObserver=_n.useIntersectionObserver&&p(),Dt.useIntersectionObserver)return Ce(Dt);var nn=Dt.onChangeScroll.bind(Dt);return _n.delayMethod==="debounce"?Dt.delayedScroll=$()(nn,_n.delayTime):_n.delayMethod==="throttle"&&(Dt.delayedScroll=Y()(nn,_n.delayTime)),Dt.state={scrollPosition:{x:Fe(),y:je()}},Dt.baseComponentRef=d().createRef(),Dt}return function(_n,Dt){if(typeof Dt!="function"&&Dt!==null)throw new TypeError("Super expression must either be null or a function");_n.prototype=Object.create(Dt&&Dt.prototype,{constructor:{value:_n,writable:!0,configurable:!0}}),Object.defineProperty(_n,"prototype",{writable:!1}),Dt&&Ne(_n,Dt)}(nt,Qe),$e=nt,st=[{key:"componentDidMount",value:function(){this.addListeners()}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"componentDidUpdate",value:function(){typeof window>"u"||this.useIntersectionObserver||ae(this.baseComponentRef.current)!==this.scrollElement&&(this.removeListeners(),this.addListeners())}},{key:"addListeners",value:function(){typeof window>"u"||this.useIntersectionObserver||(this.scrollElement=ae(this.baseComponentRef.current),this.scrollElement.addEventListener("scroll",this.delayedScroll,{passive:!0}),window.addEventListener("resize",this.delayedScroll,{passive:!0}),this.scrollElement!==window&&window.addEventListener("scroll",this.delayedScroll,{passive:!0}))}},{key:"removeListeners",value:function(){typeof window>"u"||this.useIntersectionObserver||(this.scrollElement.removeEventListener("scroll",this.delayedScroll),window.removeEventListener("resize",this.delayedScroll),this.scrollElement!==window&&window.removeEventListener("scroll",this.delayedScroll))}},{key:"onChangeScroll",value:function(){this.useIntersectionObserver||this.setState({scrollPosition:{x:Fe(),y:je()}})}},{key:"render",value:function(){var _n=this.props,Dt=(_n.delayMethod,_n.delayTime,function(en,qt){if(en==null)return{};var Jt,mn,Kn=function(Tn,Ui){if(Tn==null)return{};var xr={};for(var bi in Tn)if({}.hasOwnProperty.call(Tn,bi)){if(Ui.indexOf(bi)>=0)continue;xr[bi]=Tn[bi]}return xr}(en,qt);if(Object.getOwnPropertySymbols){var Nn=Object.getOwnPropertySymbols(en);for(mn=0;mn=0||{}.propertyIsEnumerable.call(en,Jt)&&(Kn[Jt]=en[Jt])}return Kn}(_n,de)),nn=this.useIntersectionObserver?null:this.state.scrollPosition;return d().createElement(Te,G({forwardRef:this.baseComponentRef,scrollPosition:nn},Dt))}}],st&&ie($e.prototype,st),Object.defineProperty($e,"prototype",{writable:!1}),$e;var $e,st}(d().Component);return Pe.propTypes={delayMethod:u.PropTypes.oneOf(["debounce","throttle"]),delayTime:u.PropTypes.number,useIntersectionObserver:u.PropTypes.bool},Pe.defaultProps={delayMethod:"throttle",delayTime:300,useIntersectionObserver:!0},Pe};function Re(Te){return Re=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Pe){return typeof Pe}:function(Pe){return Pe&&typeof Symbol=="function"&&Pe.constructor===Symbol&&Pe!==Symbol.prototype?"symbol":typeof Pe},Re(Te)}function Be(Te,Pe){for(var Qe=0;Qe=0&&Number.isFinite(nn.y)&&nn.y>=0),st}return function($e,st){if(typeof st!="function"&&st!==null)throw new TypeError("Super expression must either be null or a function");$e.prototype=Object.create(st&&st.prototype,{constructor:{value:$e,writable:!0,configurable:!0}}),Object.defineProperty($e,"prototype",{writable:!1}),st&&mt($e,st)}(Pe,Te),Qe=Pe,(nt=[{key:"componentDidUpdate",value:function($e,st){st.visible!==this.state.visible&&this.props.afterLoad()}},{key:"onVisible",value:function(){this.props.beforeLoad(),this.setState({visible:!0})}},{key:"render",value:function(){if(this.state.visible)return this.props.children;var $e=this.props,st=$e.className,_n=$e.delayMethod,Dt=$e.delayTime,nn=$e.height,en=$e.placeholder,qt=$e.scrollPosition,Jt=$e.style,mn=$e.threshold,Kn=$e.useIntersectionObserver,Nn=$e.width;return this.isScrollTracked||Kn&&p()?d().createElement(V,{className:st,height:nn,onVisible:this.onVisible,placeholder:en,scrollPosition:qt,style:Jt,threshold:mn,useIntersectionObserver:Kn,width:Nn}):d().createElement(Je,{className:st,delayMethod:_n,delayTime:Dt,height:nn,onVisible:this.onVisible,placeholder:en,style:Jt,threshold:mn,width:Nn})}}])&&Xt(Qe.prototype,nt),Object.defineProperty(Qe,"prototype",{writable:!1}),Qe;var Qe,nt}(d().Component);dt.propTypes={afterLoad:u.PropTypes.func,beforeLoad:u.PropTypes.func,useIntersectionObserver:u.PropTypes.bool,visibleByDefault:u.PropTypes.bool},dt.defaultProps={afterLoad:function(){return{}},beforeLoad:function(){return{}},useIntersectionObserver:!0,visibleByDefault:!1};const it=dt;function Me(Te){return Me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Pe){return typeof Pe}:function(Pe){return Pe&&typeof Symbol=="function"&&Pe.constructor===Symbol&&Pe!==Symbol.prototype?"symbol":typeof Pe},Me(Te)}var We=["afterLoad","beforeLoad","delayMethod","delayTime","effect","placeholder","placeholderSrc","scrollPosition","threshold","useIntersectionObserver","visibleByDefault","wrapperClassName","wrapperProps"];function bt(Te,Pe){var Qe=Object.keys(Te);if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(Te);Pe&&(nt=nt.filter(function($e){return Object.getOwnPropertyDescriptor(Te,$e).enumerable})),Qe.push.apply(Qe,nt)}return Qe}function St(Te){for(var Pe=1;Pe=0)continue;Nn[Tn]=mn[Tn]}return Nn}(_n,Dt);if(Object.getOwnPropertySymbols){var Jt=Object.getOwnPropertySymbols(_n);for(en=0;en=0||{}.propertyIsEnumerable.call(_n,nn)&&(qt[nn]=_n[nn])}return qt}($e,We));return d().createElement("img",tn({},st,{onLoad:this.onImageLoad()}))}},{key:"getLazyLoadImage",value:function(){var $e=this.props,st=$e.beforeLoad,_n=$e.className,Dt=$e.delayMethod,nn=$e.delayTime,en=$e.height,qt=$e.placeholder,Jt=$e.scrollPosition,mn=$e.style,Kn=$e.threshold,Nn=$e.useIntersectionObserver,Tn=$e.visibleByDefault,Ui=$e.width;return d().createElement(it,{beforeLoad:st,className:_n,delayMethod:Dt,delayTime:nn,height:en,placeholder:qt,scrollPosition:Jt,style:mn,threshold:Kn,useIntersectionObserver:Nn,visibleByDefault:Tn,width:Ui},this.getImg())}},{key:"getWrappedLazyLoadImage",value:function($e){var st=this.props,_n=st.effect,Dt=st.height,nn=st.placeholderSrc,en=st.width,qt=st.wrapperClassName,Jt=st.wrapperProps,mn=this.state.loaded,Kn=mn?" lazy-load-image-loaded":"",Nn=mn||!nn?{}:{backgroundImage:"url(".concat(nn,")"),backgroundSize:"100% 100%"};return d().createElement("span",tn({className:qt+" lazy-load-image-background "+_n+Kn,style:St(St({},Nn),{},{color:"transparent",display:"inline-block",height:Dt,width:en})},Jt),$e)}},{key:"render",value:function(){var $e=this.props,st=$e.effect,_n=$e.placeholderSrc,Dt=$e.visibleByDefault,nn=$e.wrapperClassName,en=$e.wrapperProps,qt=this.getLazyLoadImage();return(st||_n)&&!Dt||nn||en?this.getWrappedLazyLoadImage(qt):qt}}],nt&&un(Qe.prototype,nt),Object.defineProperty(Qe,"prototype",{writable:!1}),Qe;var Qe,nt}(d().Component);Ue.propTypes={onLoad:u.PropTypes.func,afterLoad:u.PropTypes.func,beforeLoad:u.PropTypes.func,delayMethod:u.PropTypes.string,delayTime:u.PropTypes.number,effect:u.PropTypes.string,placeholderSrc:u.PropTypes.string,threshold:u.PropTypes.number,useIntersectionObserver:u.PropTypes.bool,visibleByDefault:u.PropTypes.bool,wrapperClassName:u.PropTypes.string,wrapperProps:u.PropTypes.object},Ue.defaultProps={onLoad:function(){},afterLoad:function(){return{}},beforeLoad:function(){return{}},delayMethod:"throttle",delayTime:300,effect:"",placeholderSrc:null,threshold:100,useIntersectionObserver:!0,visibleByDefault:!1,wrapperClassName:""};const tt=Ue})(),wye.exports=s})();var gBe=wye.exports;function us({src:n,alt:t,loadedimageprops:i,wrapperClassName:s}){const l=h.jsx("div",{className:"p-3 rounded-4 bg-gray-lighter1 w-100",style:{height:200},children:h.jsx("h1",{children:"Placeholder DIV"})});return h.jsx(gBe.LazyLoadImage,{alt:t,title:t,src:n,placeholder:l,visibleByDefault:!0,loadedimageprops:i,effect:"blur",width:"100%",wrapperClassName:`custom-image-container ${s}`})}function TQ(n){const t=Ii(),i=n!=null&&n.className?n==null?void 0:n.className:"",s=n!=null&&n.profileImg?n==null?void 0:n.profileImg:"/img/profile-pic.png",l=n!=null&&n.profileName?n==null?void 0:n.profileName:"Guest User",d=n!=null&&n.profileDesig?n==null?void 0:n.profileDesig:"NA",u=n!=null&&n.isEdit?n==null?void 0:n.isEdit:!1,p=Ai.getLoginSchemeFromLocal();return h.jsxs(et,{className:`card-theme border-0 profile-card ${i}`,children:[h.jsx(et.Body,{className:"text-center",children:h.jsxs("div",{className:"d-flex profile-info-container align-items-center",children:[h.jsxs("div",{className:"flex-shrink-0 media-icon-container position-relative d-flex align-items-center",children:[u&&h.jsx(Pt,{type:"button",className:"btn-theme btn-icon btn-white position-absolute rounded-circle align-self-start",style:{right:"-0.5rem",top:"-0.5rem",zIndex:1},onClick:()=>n.handleShowUpdateProfilePhotoModal(),children:h.jsx(Zt,{tag:"camera1",className:"text-purple font-20"})}),h.jsx("div",{className:"media-icon-wrapper rounded-circle overflow-hidden",children:h.jsx(us,{src:s,alt:`${l} image`,className:"img-fluid"})})]}),h.jsxs("div",{className:"text-start flex-grow-1 ms-3 media-info-container",children:[h.jsx("span",{className:"welcome-user text-truncate d-block",children:`${l} `}),h.jsx("span",{className:"d-block font-13",children:$R(d)}),u&&p!=="password"&&h.jsxs(Pt,{type:"button",className:"btn-theme btn-sm btn-white position-relative rounded-1 mt-2 px-2 py-1",onClick:n.handleEditProfile,children:[h.jsx(Zt,{tag:"edit1",className:"text-purple font-14 me-1"}),"Edit Profile"]})]})]})}),u&&p==="password"&&h.jsx(h.Fragment,{children:h.jsxs(et.Footer,{className:"bg-transparent pt-0 pb-3 border-0 d-flex",children:[u&&h.jsxs(Pt,{type:"button",className:"btn-theme btn-sm btn-white position-relative rounded-1 mt-0 px-2 py-1 flex-grow-1 me-1",onClick:n.handleEditProfile,children:[h.jsx(Zt,{tag:"edit3",className:"text-purple font-14 me-1"}),"Edit Profile"]}),u&&p==="password"&&h.jsxs(Pt,{type:"button",className:"btn-theme btn-sm btn-white position-relative rounded-1 mt-0 px-2 py-1 flex-grow-1 ms-1",onClick:()=>t("/profile/change-password",{state:{pageTitle:"Change Password"}}),children:[h.jsx(Zt,{tag:"key4",className:"text-purple font-14 me-1"}),"Change Password"]})]})})]})}function vBe(n){var i,s,l;const t=Ai.getAppCurrentVersion();return h.jsxs(OI,{show:n.showNavigation,onHide:n.handleCloseNavigation,className:"app-sidenav",children:[h.jsx(OI.Header,{closeButton:!0,children:h.jsx(OI.Title,{})}),h.jsxs(OI.Body,{children:[h.jsx("div",{className:"text-center pb-3 pb-sm-5 pt-sm-5",children:h.jsx("img",{src:"/img/logo-small.png",alt:"rapport logo small",className:"img-fluid"})}),h.jsx("div",{className:"border-top border-bottom py-4 navigation-profile-wrapper",children:h.jsx(Yu,{to:"/profile",className:"d-flex align-items-center",onClick:n.handleCloseNavigation,children:h.jsx(TQ,{userProfile:n.userProfile,profileImg:(i=n.userProfile)==null?void 0:i.avatar,profileName:(s=n.userProfile)==null?void 0:s.name,profileDesig:(l=n.userProfile)==null?void 0:l.designation,isEdit:!1,className:"profile-card-navigation bg-transparent"})})}),h.jsxs("div",{className:"list-group py-3",children:[h.jsxs(Yu,{to:"/dashboard",className:"list-group-item",onClick:n.handleCloseNavigation,children:[h.jsx("span",{className:"icon-wrapper",children:h.jsx(Zt,{tag:"dashboard1",className:""})}),"Dashboard"]}),h.jsxs(Yu,{to:"/profile",className:"list-group-item",onClick:n.handleCloseNavigation,children:[h.jsx("span",{className:"icon-wrapper",children:h.jsx(Zt,{tag:"consult8",className:""})}),"Profile"]}),h.jsxs(Yu,{to:"/quick-actions",className:"list-group-item",onClick:n.handleCloseNavigation,children:[h.jsx("span",{className:"icon-wrapper",children:h.jsx(Zt,{tag:"add1",className:""})}),"Quick Actions"]}),h.jsxs(Yu,{to:"/appreciations",className:"list-group-item",onClick:n.handleCloseNavigation,children:[h.jsx("span",{className:"icon-wrapper",children:h.jsx("img",{src:"/img/appreciations-icon.png",alt:"Appreciations Icon"})}),"Appreciations"]}),h.jsxs(Yu,{to:"/badges",className:"list-group-item",onClick:n.handleCloseNavigation,children:[h.jsx("span",{className:"icon-wrapper",children:h.jsx("img",{src:"/img/badges-icon.png",alt:"Badges Icon"})}),"Badges"]}),h.jsxs(Yu,{to:"/notifications",className:"list-group-item",onClick:n.handleCloseNavigation,children:[h.jsx("span",{className:"icon-wrapper",children:h.jsx(Zt,{tag:"notifications2",className:""})}),"Notifications"]}),h.jsxs(Pt,{type:"button",className:"list-group-item text-start",onClick:n.handleLogout,children:[h.jsx("span",{className:"icon-wrapper",children:h.jsx(Zt,{tag:"logout4",className:""})}),"Logout"]})]})]}),h.jsxs("div",{className:"app-sidenav-footer fw-sb",children:["Version ",t||null]})]})}const QR=k.createContext();function NR(n){var g,_,y,E,b,A,N,O;let t="",i="",s="",l="Cancel",d={backdrop:"static",keyboard:!1},u={closeButton:!1};const p=()=>{switch(n.content_type){case"logout-modal":n.handlePrimaryAction();break;case"submission-delete-modal":n.handlePrimaryAction(n.primaryActionData);break;case"reattempt-submission-delete-modal":console.log("Started deleting response for re-attempt."),n.handlePrimaryAction(n.primaryActionData);break;case"force-evaluation-submission-modal":const D={...n.primaryActionData,force:!0};n.handlePrimaryAction(D),console.log("Started force submission of response evaluation.");break;case"force-upload-submission-cancel-modal":n.handlePrimaryAction();break}};switch(n.content_type){case"logout-modal":t="Are you sure you want to logout from app? This action cannot be undone.",s="Logout";break;case"submission-delete-modal":t="Are you sure you want to delete a contest response? This action cannot be undone.",s="Delete";break;case"reattempt-submission-delete-modal":t="Are you sure you want to delete a contest response for a re-attempt? This action cannot be undone.",s="Delete";break;case"force-evaluation-submission-modal":i="Score matched!",t=(g=n==null?void 0:n.data)!=null&&g.message?(_=n==null?void 0:n.data)==null?void 0:_.message:"Are you sure you want to submit a same contest response evaluation? This action cannot be undone.",d={backdrop:"static",keyboard:!1},u={closeButton:!1},s=((y=n==null?void 0:n.data)==null?void 0:y.btnOptions.length)>0&&((E=n==null?void 0:n.data)!=null&&E.btnOptions.includes("continue"))?"Continue":"",l=((b=n==null?void 0:n.data)==null?void 0:b.btnOptions.length)>0?(A=n==null?void 0:n.data)==null?void 0:A.btnOptions.filter(D=>D.toLowerCase()==="edit"):"Cancel";break;case"force-upload-submission-cancel-modal":i="About to Cancel Uploading!",t=(N=n==null?void 0:n.data)!=null&&N.message?(O=n==null?void 0:n.data)==null?void 0:O.message:"Your uploading will be cancelled and you need to reupload a response again. Do you still want to go back?",d={backdrop:"static",keyboard:!1},u={closeButton:!1},s="Cancel Upload",l="Continue Upload";break}return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",className:"theme-modal confirmation-modal",...d,show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb-2",...u,children:h.jsxs(vn.Title,{className:"d-flex align-items-center",children:[h.jsx("div",{className:"heading-icon-wrap flex-shrink-0",children:h.jsx("span",{className:"heading-icon d-flex justify-content-center align-items-center rounded-circle font-24",children:h.jsx(GO,{})})}),h.jsx("div",{className:"heading flex-grow-1 ms-3",children:"Confirmation"})]})}),h.jsxs(vn.Body,{children:[i!==""&&h.jsx("div",{className:"font-16 fw-sb mb-2",style:{color:"#684609"},children:i}),h.jsx("div",{className:"modal-helper-text",children:t}),h.jsxs("div",{className:"btn-wrap d-flex align-items-center pt-3 pb-1 text-en",children:[h.jsx(Pt,{type:"submit",className:`btn-theme\r + btn-gray btn-md flex-grow-1 text-capitalize`,onClick:n.handleClose,children:l}),s!==""&&h.jsx(Pt,{type:"submit",className:`btn-theme\r + btn-yellow btn-md flex-grow-1`,onClick:p,style:{paddingLeft:6,paddingRight:6},children:n.loading?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Processing"]}):h.jsx(h.Fragment,{children:s})})]})]})]})})}function Sye(n){let t={backdrop:"static",keyboard:!1},i={closeButton:!1};return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",className:"theme-modal confirmation-modal",...t,show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb-1",...i,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:h.jsx("div",{className:"heading flex-grow-1 ms-0",children:"Terms & Conditions"})})}),h.jsxs(vn.Body,{children:[h.jsx("div",{className:"modal-helper-text",children:n.terms}),h.jsx("div",{className:"btn-wrap d-flex align-items-center pt-3 pb-1 text-en",children:h.jsx(Pt,{type:"submit",className:`btn-theme + btn-gray btn-md flex-grow-1 text-capitalize`,onClick:n.handleClose,children:"Ok"})})]})]})})}function yBe(n){const t=n.page,i=Ii(),s=Xo(),[l,d]=k.useState(""),{userProfile:u,notificationStats:p,backLink:g,setBackLink:_}=k.useContext(QR),y=JSON.parse(Ai.getAuthUser());k.useEffect(()=>{var Q,Y;let M=X6e(t);(Q=s.state)!=null&&Q.pageTitle&&(M=(Y=s.state)==null?void 0:Y.pageTitle),d(M);const H=s.pathname.split("/").filter((le,ae)=>le!=="");let $="";H.length>2?$=`/${H[0]}/${H[1]}`:H.length>1?($=`/${H[0]}`,t==="approve-reject-form-submission"&&($="/notifications")):$="/dashboard",$!==""&&_($)},[s.pathname]);const[E,b]=k.useState(!1),[A,N]=k.useState(!1);function O(){s.pathname&&s.pathname.split("/").length>2,i(g)}const D=()=>{b(!1)},P=()=>{b(!0)};function j(M){localStorage.clear(),n.handleCloseNavigation(),Qt("Logout successfully!","success"),i("/")}return h.jsxs("div",{children:[h.jsxs(Qve,{expand:"lg",fixed:"top",className:"navbar-header",children:[h.jsxs(Yn,{className:"justify-content-start",children:[t!=="dashboard"&&h.jsx(Pt,{type:"button",className:"btn-theme btn-transparent btn-icon btn-menu px-1 text-white ps-0 pe-2",style:{width:25,minWidth:0},onClick:O,children:h.jsx(Zt,{tag:"arrow-left1",className:""})}),h.jsx("div",{className:`${t!=="dashboard"&&"ms-1"} d-flex flex-row align-items-center flex-fill`,style:{width:"calc(100% - 10vw)"},children:t==="dashboard"?h.jsx(h.Fragment,{children:h.jsx(Yu,{to:"/profile",className:"text-decoration-none overflow-hidden",children:h.jsx(TQ,{userProfile:y,profileImg:y==null?void 0:y.avatar,profileName:y==null?void 0:y.name,profileDesig:y==null?void 0:y.designation,isEdit:!1,className:"profile-card-sm profile-card-navigation bg-transparent"})})}):h.jsx("h5",{className:"page-title mb-0 font-16 text-white",children:l})}),t==="dashboard"&&h.jsx(h.Fragment,{children:h.jsxs(Yu,{to:"/notifications",className:"btn btn-theme btn-icon btn-white btn-notification position-relative",children:[(p==null?void 0:p.not_read)>0&&h.jsx("span",{className:`position-absolute top-0 start-100 translate-middle p-1 bg-danger border border-light rounded-circle -${p==null?void 0:p.not_read}-`,children:h.jsx("span",{className:"visually-hidden",children:"New alerts"})}),h.jsx(Zt,{tag:"notifications2",className:"font-22"})]})})]}),h.jsx(vBe,{showNavigation:n.showNavigation,handleCloseNavigation:n.handleCloseNavigation,handleShowNavigation:n.handleShowNavigation,handleLogout:P,userProfile:y})]}),h.jsx(NR,{show:E,loading:A,handleClose:D,primaryActionData:null,content_type:"logout-modal",handlePrimaryAction:j})]})}const _Be="up",EBe="down";function wBe(){const[n,t]=k.useState();return k.useEffect(()=>{let i=window.scrollY;const s=()=>{let l=i{window.removeEventListener("scroll",s)}},[]),{direction:n}}function SBe(n){const t=Ii(),i=n.page,{state:s,pathname:l}=Xo(),{direction:d}=wBe();return h.jsx(h.Fragment,{children:h.jsx(Qve,{expand:"lg",fixed:"bottom",className:`navbar-footer ${s!=null&&s.hideFooterNav?"navbar-hidden":""} ${d!=="down"?"":"navbar-hidden"} + ${i==="messages"&&l.split("/").length>2?"navbar-hidden":""} + `,children:h.jsxs(Yn,{className:"justify-content-between px-0 flex-nowrap",children:[h.jsxs(Pt,{type:"button",className:"btn-theme btn-white btn-menu p-1",onClick:()=>{l==="/dashboard"&&Qt("Already on Dashboard!"),t("/dashboard")},children:[h.jsx(Zt,{tag:"home1",className:"font-22"})," ",h.jsx("span",{className:"d-block font-12",children:"Home"})]}),h.jsxs(Pt,{type:"button",className:"btn-theme btn-white btn-menu p-1",onClick:()=>{l==="/magazines"&&Qt("Already on Magazines!"),t("/magazines")},children:[h.jsx(Zt,{tag:"dictionary2",className:"font-22"})," ",h.jsx("span",{className:"d-block font-12",children:"Magazine"})]}),h.jsx(Pt,{type:"button",variant:"primary",className:"btn-theme btn-icon btn-action position-relative border-0 rounded-circle",onClick:()=>{l==="/quick-actions"&&Qt("Already on Quick actions!"),t("/quick-actions")},children:h.jsx(Zt,{tag:"add3",className:"font-32"})}),h.jsxs(Pt,{type:"button",className:"btn-theme btn-white btn-message p-1",onClick:()=>{l==="/messages"&&Qt("Already on Messages!"),t("/messages")},children:[h.jsx(Zt,{tag:"message5",className:"font-22"})," ",h.jsx("span",{className:"d-block font-12",children:"Message"})]}),h.jsxs(Pt,{type:"button",className:"btn-theme btn-white btn-message p-1",onClick:n.handleShowNavigation,children:[h.jsx(Zt,{tag:"menubar1",className:"font-22"})," ",h.jsx("span",{className:"d-block font-12",children:"Menu"})]})]})})})}function Mc(n){const[t,i]=k.useState(!1),s=()=>i(!1),l=()=>i(!0);return h.jsxs(h.Fragment,{children:[h.jsx(yBe,{page:n.page,showNavigation:t,handleCloseNavigation:s,handleShowNavigation:l}),h.jsx(b6e,{}),h.jsx(SBe,{page:n.page,showNavigation:t,handleCloseNavigation:s,handleShowNavigation:l})]})}function ar({item:n}){const t=async()=>{if(navigator.clipboard)try{await navigator.clipboard.writeText(`${n.tag}`),console.log("Successfully copied - ",n.tag),Qt(`Copied to clipboard - '${n.tag}'`,"success")}catch(i){console.log("Failed to copy to clipboard...",i),Qt("Failed to copy","error")}};return h.jsxs(et,{children:[h.jsxs(et.Body,{className:"text-center position-relative p-2",children:[h.jsxs("div",{className:"d-flex justify-content-between",children:[h.jsx("div",{className:"me-0 font-15 fw_sb custom_tag tag_secondary_light",children:n.category}),h.jsx(Pt,{type:"button",className:"btn btn-theme btn-yellow btn-icon pe-none",children:n.familyCode})]}),h.jsx("div",{className:"lh-1",style:{fontSize:"40px"},children:h.jsx(Zt,{title:n.title,tag:n.tag,className:`custom-icon icon-${n.category}`})}),h.jsx("div",{className:"mt-2 me-0 font-15 fw_sb",children:n.title}),h.jsx("div",{className:"mt-2 mb-2",children:`( ${n.familyName} )`})]}),h.jsx(et.Footer,{className:"p-0 border-top-0",children:h.jsxs(Pt,{type:"button",className:"btn btn-theme btn-primary w-100 border-0 position-relative",title:"Click to copy",onClick:t,children:["Tag: ",h.jsx("span",{className:"fw_sb",children:n.tag}),h.jsx(GFe,{className:"position-absolute font-20",style:{right:"12px"}})]})})]})}function bBe(){return h.jsxs(Yn,{fluid:!0,className:"py-5",children:[h.jsx("h4",{children:"All React Icons used in App:"}),h.jsx("hr",{}),wn.filter(n=>n.category==="general").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"General:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="general").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="file").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Files:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="file").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="arrows").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Arrows:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="arrows").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="sort").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Sorting / Filter:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="sort").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="exp-bank").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Experience Bank:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="exp-bank").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="dashboard").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Dashboard:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="dashboard").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="associate").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Associate:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="associate").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="share").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Share:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="share").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="network").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Network:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="network").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="discover").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Discover:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="discover").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="consult").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Consult / Consulting session:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="consult").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="message").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Message:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="message").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="achievements").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Achievements:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="achievements").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="star").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Star:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="star").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="delete").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Delete / Trash:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="delete").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="analyze").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Analyze:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="analyze").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="edit").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Edit:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="edit").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="dictionary").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Dictionary:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="dictionary").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="reload").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Reload:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="reload").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="shop").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Shop:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="shop").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="connect").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Connect:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="connect").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="invitation").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Invitation:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="invitation").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="details").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Details:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="details").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="experience").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Experience:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="experience").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="dreams").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Dreams:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="dreams").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="events").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Events:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="events").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="thoughts").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Thoughts:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="thoughts").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="out of body").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Out of body:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="out of body").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="favorite").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Favorite:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="favorite").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="resolution").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Resolution:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="resolution").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="notifications").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Notifications:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="notifications").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="leaderboard").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Leaderboard:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="leaderboard").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="popular insights").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Popular insights:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="popular insights").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="add user").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Add user / friend:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="add user").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]}),wn.filter(n=>n.category==="social").length>0&&h.jsxs(h.Fragment,{children:[h.jsx("h6",{children:"Social:"}),h.jsx(fn,{className:"row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3 mb-4",children:wn.filter(n=>n.category==="social").map(n=>h.jsx(Gt,{children:h.jsx(ar,{item:n})},n.title))})]})]})}var CBe=function(t){return TBe(t)&&!RBe(t)};function TBe(n){return!!n&&typeof n=="object"}function RBe(n){var t=Object.prototype.toString.call(n);return t==="[object RegExp]"||t==="[object Date]"||IBe(n)}var xBe=typeof Symbol=="function"&&Symbol.for,ABe=xBe?Symbol.for("react.element"):60103;function IBe(n){return n.$$typeof===ABe}function NBe(n){return Array.isArray(n)?[]:{}}function E7(n,t){return t.clone!==!1&&t.isMergeableObject(n)?W4(NBe(n),n,t):n}function OBe(n,t,i){return n.concat(t).map(function(s){return E7(s,i)})}function PBe(n,t,i){var s={};return i.isMergeableObject(n)&&Object.keys(n).forEach(function(l){s[l]=E7(n[l],i)}),Object.keys(t).forEach(function(l){!i.isMergeableObject(t[l])||!n[l]?s[l]=E7(t[l],i):s[l]=W4(n[l],t[l],i)}),s}function W4(n,t,i){i=i||{},i.arrayMerge=i.arrayMerge||OBe,i.isMergeableObject=i.isMergeableObject||CBe;var s=Array.isArray(t),l=Array.isArray(n),d=s===l;return d?s?i.arrayMerge(n,t,i):PBe(n,t,i):E7(t,i)}W4.all=function(t,i){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(s,l){return W4(s,l,i)},{})};var Uq=W4,bye=typeof Wo=="object"&&Wo&&Wo.Object===Object&&Wo,LBe=typeof self=="object"&&self&&self.Object===Object&&self,zp=bye||LBe||Function("return this")(),Lv=zp.Symbol,Cye=Object.prototype,DBe=Cye.hasOwnProperty,kBe=Cye.toString,mI=Lv?Lv.toStringTag:void 0;function MBe(n){var t=DBe.call(n,mI),i=n[mI];try{n[mI]=void 0;var s=!0}catch{}var l=kBe.call(n);return s&&(t?n[mI]=i:delete n[mI]),l}var jBe=Object.prototype,UBe=jBe.toString;function FBe(n){return UBe.call(n)}var BBe="[object Null]",VBe="[object Undefined]",Que=Lv?Lv.toStringTag:void 0;function zE(n){return n==null?n===void 0?VBe:BBe:Que&&Que in Object(n)?MBe(n):FBe(n)}function Tye(n,t){return function(i){return n(t(i))}}var RQ=Tye(Object.getPrototypeOf,Object);function HE(n){return n!=null&&typeof n=="object"}var zBe="[object Object]",HBe=Function.prototype,GBe=Object.prototype,Rye=HBe.toString,WBe=GBe.hasOwnProperty,$Be=Rye.call(Object);function Zue(n){if(!HE(n)||zE(n)!=zBe)return!1;var t=RQ(n);if(t===null)return!0;var i=WBe.call(t,"constructor")&&t.constructor;return typeof i=="function"&&i instanceof i&&Rye.call(i)==$Be}var ehe=Array.isArray,the=Object.keys,KBe=Object.prototype.hasOwnProperty,qBe=typeof Element<"u";function Fq(n,t){if(n===t)return!0;if(n&&t&&typeof n=="object"&&typeof t=="object"){var i=ehe(n),s=ehe(t),l,d,u;if(i&&s){if(d=n.length,d!=t.length)return!1;for(l=d;l--!==0;)if(!Fq(n[l],t[l]))return!1;return!0}if(i!=s)return!1;var p=n instanceof Date,g=t instanceof Date;if(p!=g)return!1;if(p&&g)return n.getTime()==t.getTime();var _=n instanceof RegExp,y=t instanceof RegExp;if(_!=y)return!1;if(_&&y)return n.toString()==t.toString();var E=the(n);if(d=E.length,d!==the(t).length)return!1;for(l=d;l--!==0;)if(!KBe.call(t,E[l]))return!1;if(qBe&&n instanceof Element&&t instanceof Element)return n===t;for(l=d;l--!==0;)if(u=E[l],!(u==="_owner"&&n.$$typeof)&&!Fq(n[u],t[u]))return!1;return!0}return n!==n&&t!==t}var YBe=function(t,i){try{return Fq(t,i)}catch(s){if(s.message&&s.message.match(/stack|recursion/i)||s.number===-2146828260)return console.warn("Warning: react-fast-compare does not handle circular references.",s.name,s.message),!1;throw s}};const __=Mv(YBe);function XBe(){this.__data__=[],this.size=0}function xye(n,t){return n===t||n!==n&&t!==t}function yU(n,t){for(var i=n.length;i--;)if(xye(n[i][0],t))return i;return-1}var JBe=Array.prototype,QBe=JBe.splice;function ZBe(n){var t=this.__data__,i=yU(t,n);if(i<0)return!1;var s=t.length-1;return i==s?t.pop():QBe.call(t,i,1),--this.size,!0}function eVe(n){var t=this.__data__,i=yU(t,n);return i<0?void 0:t[i][1]}function tVe(n){return yU(this.__data__,n)>-1}function nVe(n,t){var i=this.__data__,s=yU(i,n);return s<0?(++this.size,i.push([n,t])):i[s][1]=t,this}function jg(n){var t=-1,i=n==null?0:n.length;for(this.clear();++t-1&&n%1==0&&n-1&&n%1==0&&n<=nze}var ize="[object Arguments]",rze="[object Array]",sze="[object Boolean]",aze="[object Date]",oze="[object Error]",lze="[object Function]",cze="[object Map]",dze="[object Number]",uze="[object Object]",hze="[object RegExp]",fze="[object Set]",pze="[object String]",mze="[object WeakMap]",gze="[object ArrayBuffer]",vze="[object DataView]",yze="[object Float32Array]",_ze="[object Float64Array]",Eze="[object Int8Array]",wze="[object Int16Array]",Sze="[object Int32Array]",bze="[object Uint8Array]",Cze="[object Uint8ClampedArray]",Tze="[object Uint16Array]",Rze="[object Uint32Array]",ws={};ws[yze]=ws[_ze]=ws[Eze]=ws[wze]=ws[Sze]=ws[bze]=ws[Cze]=ws[Tze]=ws[Rze]=!0;ws[ize]=ws[rze]=ws[gze]=ws[sze]=ws[vze]=ws[aze]=ws[oze]=ws[lze]=ws[cze]=ws[dze]=ws[uze]=ws[hze]=ws[fze]=ws[pze]=ws[mze]=!1;function xze(n){return HE(n)&&Dye(n.length)&&!!ws[zE(n)]}function xQ(n){return function(t){return n(t)}}var kye=typeof exports=="object"&&exports&&!exports.nodeType&&exports,p4=kye&&typeof module=="object"&&module&&!module.nodeType&&module,Aze=p4&&p4.exports===kye,U$=Aze&&bye.process,OR=function(){try{var n=p4&&p4.require&&p4.require("util").types;return n||U$&&U$.binding&&U$.binding("util")}catch{}}(),ohe=OR&&OR.isTypedArray,Ize=ohe?xQ(ohe):xze,Nze=Object.prototype,Oze=Nze.hasOwnProperty;function Mye(n,t){var i=$O(n),s=!i&&YVe(n),l=!i&&!s&&Lye(n),d=!i&&!s&&!l&&Ize(n),u=i||s||l||d,p=u?WVe(n.length,String):[],g=p.length;for(var _ in n)(t||Oze.call(n,_))&&!(u&&(_=="length"||l&&(_=="offset"||_=="parent")||d&&(_=="buffer"||_=="byteLength"||_=="byteOffset")||tze(_,g)))&&p.push(_);return p}var Pze=Object.prototype;function AQ(n){var t=n&&n.constructor,i=typeof t=="function"&&t.prototype||Pze;return n===i}var Lze=Tye(Object.keys,Object),Dze=Object.prototype,kze=Dze.hasOwnProperty;function Mze(n){if(!AQ(n))return Lze(n);var t=[];for(var i in Object(n))kze.call(n,i)&&i!="constructor"&&t.push(i);return t}function jye(n){return n!=null&&Dye(n.length)&&!Aye(n)}function IQ(n){return jye(n)?Mye(n):Mze(n)}function jze(n,t){return n&&EU(t,IQ(t),n)}function Uze(n){var t=[];if(n!=null)for(var i in Object(n))t.push(i);return t}var Fze=Object.prototype,Bze=Fze.hasOwnProperty;function Vze(n){if(!WO(n))return Uze(n);var t=AQ(n),i=[];for(var s in n)s=="constructor"&&(t||!Bze.call(n,s))||i.push(s);return i}function NQ(n){return jye(n)?Mye(n,!0):Vze(n)}function zze(n,t){return n&&EU(t,NQ(t),n)}var Uye=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lhe=Uye&&typeof module=="object"&&module&&!module.nodeType&&module,Hze=lhe&&lhe.exports===Uye,che=Hze?zp.Buffer:void 0,dhe=che?che.allocUnsafe:void 0;function Gze(n,t){if(t)return n.slice();var i=n.length,s=dhe?dhe(i):new n.constructor(i);return n.copy(s),s}function Fye(n,t){var i=-1,s=n.length;for(t||(t=Array(s));++i=0)&&(i[l]=n[l]);return i}var OU=k.createContext(void 0);OU.displayName="FormikContext";var DGe=OU.Provider;OU.Consumer;function kGe(){var n=k.useContext(OU);return n}var ju=function(t){return typeof t=="function"},PU=function(t){return t!==null&&typeof t=="object"},MGe=function(t){return String(Math.floor(Number(t)))===t},F$=function(t){return Object.prototype.toString.call(t)==="[object String]"},jGe=function(t){return k.Children.count(t)===0},B$=function(t){return PU(t)&&ju(t.then)};function Sd(n,t,i,s){s===void 0&&(s=0);for(var l=Yye(t);n&&s=0?[]:{}}}return(d===0?n:l)[u[d]]===i?n:(i===void 0?delete l[u[d]]:l[u[d]]=i,d===0&&i===void 0&&delete s[u[d]],s)}function t_e(n,t,i,s){i===void 0&&(i=new WeakMap),s===void 0&&(s={});for(var l=0,d=Object.keys(n);l0?We.map(function(St){return ae(St,Sd(Me,St))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")];return Promise.all(bt).then(function(St){return St.reduce(function(Lt,tn,un){return tn==="DO_NOT_DELETE_YOU_WILL_BE_FIRED"||tn&&(Lt=mE(Lt,We[un],tn)),Lt},{})})},[ae]),de=k.useCallback(function(Me){return Promise.all([te(Me),b.validationSchema?le(Me):{},b.validate?Y(Me):{}]).then(function(We){var bt=We[0],St=We[1],Lt=We[2],tn=Uq.all([bt,St,Lt],{arrayMerge:zGe});return tn})},[b.validate,b.validationSchema,te,Y,le]),G=Pu(function(Me){return Me===void 0&&(Me=$.values),Q({type:"SET_ISVALIDATING",payload:!0}),de(Me).then(function(We){return P.current&&(Q({type:"SET_ISVALIDATING",payload:!1}),Q({type:"SET_ERRORS",payload:We})),We})});k.useEffect(function(){u&&P.current===!0&&__(A.current,b.initialValues)&&G(A.current)},[u,G]);var ie=k.useCallback(function(Me){var We=Me&&Me.values?Me.values:A.current,bt=Me&&Me.errors?Me.errors:N.current?N.current:b.initialErrors||{},St=Me&&Me.touched?Me.touched:O.current?O.current:b.initialTouched||{},Lt=Me&&Me.status?Me.status:D.current?D.current:b.initialStatus;A.current=We,N.current=bt,O.current=St,D.current=Lt;var tn=function(){Q({type:"RESET_FORM",payload:{isSubmitting:!!Me&&!!Me.isSubmitting,errors:bt,touched:St,status:Lt,values:We,isValidating:!!Me&&!!Me.isValidating,submitCount:Me&&Me.submitCount&&typeof Me.submitCount=="number"?Me.submitCount:0}})};if(b.onReset){var un=b.onReset($.values,_t);B$(un)?un.then(tn):tn()}else tn()},[b.initialErrors,b.initialStatus,b.initialTouched,b.onReset]);k.useEffect(function(){P.current===!0&&!__(A.current,b.initialValues)&&_&&(A.current=b.initialValues,ie(),u&&G(A.current))},[_,b.initialValues,ie,u,G]),k.useEffect(function(){_&&P.current===!0&&!__(N.current,b.initialErrors)&&(N.current=b.initialErrors||p_,Q({type:"SET_ERRORS",payload:b.initialErrors||p_}))},[_,b.initialErrors]),k.useEffect(function(){_&&P.current===!0&&!__(O.current,b.initialTouched)&&(O.current=b.initialTouched||wk,Q({type:"SET_TOUCHED",payload:b.initialTouched||wk}))},[_,b.initialTouched]),k.useEffect(function(){_&&P.current===!0&&!__(D.current,b.initialStatus)&&(D.current=b.initialStatus,Q({type:"SET_STATUS",payload:b.initialStatus}))},[_,b.initialStatus,b.initialTouched]);var _e=Pu(function(Me){if(j.current[Me]&&ju(j.current[Me].validate)){var We=Sd($.values,Me),bt=j.current[Me].validate(We);return B$(bt)?(Q({type:"SET_ISVALIDATING",payload:!0}),bt.then(function(St){return St}).then(function(St){Q({type:"SET_FIELD_ERROR",payload:{field:Me,value:St}}),Q({type:"SET_ISVALIDATING",payload:!1})})):(Q({type:"SET_FIELD_ERROR",payload:{field:Me,value:bt}}),Promise.resolve(bt))}else if(b.validationSchema)return Q({type:"SET_ISVALIDATING",payload:!0}),le($.values,Me).then(function(St){return St}).then(function(St){Q({type:"SET_FIELD_ERROR",payload:{field:Me,value:Sd(St,Me)}}),Q({type:"SET_ISVALIDATING",payload:!1})});return Promise.resolve()}),he=k.useCallback(function(Me,We){var bt=We.validate;j.current[Me]={validate:bt}},[]),Ce=k.useCallback(function(Me){delete j.current[Me]},[]),fe=Pu(function(Me,We){Q({type:"SET_TOUCHED",payload:Me});var bt=We===void 0?l:We;return bt?G($.values):Promise.resolve()}),me=k.useCallback(function(Me){Q({type:"SET_ERRORS",payload:Me})},[]),Ne=Pu(function(Me,We){var bt=ju(Me)?Me($.values):Me;Q({type:"SET_VALUES",payload:bt});var St=We===void 0?i:We;return St?G(bt):Promise.resolve()}),Fe=k.useCallback(function(Me,We){Q({type:"SET_FIELD_ERROR",payload:{field:Me,value:We}})},[]),je=Pu(function(Me,We,bt){Q({type:"SET_FIELD_VALUE",payload:{field:Me,value:We}});var St=bt===void 0?i:bt;return St?G(mE($.values,Me,We)):Promise.resolve()}),Ve=k.useCallback(function(Me,We){var bt=We,St=Me,Lt;if(!F$(Me)){Me.persist&&Me.persist();var tn=Me.target?Me.target:Me.currentTarget,un=tn.type,an=tn.name,ye=tn.id,J=tn.value,ne=tn.checked,Se=tn.outerHTML,Ue=tn.options,tt=tn.multiple;bt=We||an||ye,St=/number|range/.test(un)?(Lt=parseFloat(J),isNaN(Lt)?"":Lt):/checkbox/.test(un)?GGe(Sd($.values,bt),ne,J):Ue&&tt?HGe(Ue):J}bt&&je(bt,St)},[je,$.values]),Re=Pu(function(Me){if(F$(Me))return function(We){return Ve(We,Me)};Ve(Me)}),Be=Pu(function(Me,We,bt){We===void 0&&(We=!0),Q({type:"SET_FIELD_TOUCHED",payload:{field:Me,value:We}});var St=bt===void 0?l:bt;return St?G($.values):Promise.resolve()}),Xe=k.useCallback(function(Me,We){Me.persist&&Me.persist();var bt=Me.target,St=bt.name,Lt=bt.id,tn=bt.outerHTML,un=We||St||Lt;Be(un,!0)},[Be]),we=Pu(function(Me){if(F$(Me))return function(We){return Xe(We,Me)};Xe(Me)}),Ge=k.useCallback(function(Me){ju(Me)?Q({type:"SET_FORMIK_STATE",payload:Me}):Q({type:"SET_FORMIK_STATE",payload:function(){return Me}})},[]),rt=k.useCallback(function(Me){Q({type:"SET_STATUS",payload:Me})},[]),pt=k.useCallback(function(Me){Q({type:"SET_ISSUBMITTING",payload:Me})},[]),Ze=Pu(function(){return Q({type:"SUBMIT_ATTEMPT"}),G().then(function(Me){var We=Me instanceof Error,bt=!We&&Object.keys(Me).length===0;if(bt){var St;try{if(St=Xt(),St===void 0)return}catch(Lt){throw Lt}return Promise.resolve(St).then(function(Lt){return P.current&&Q({type:"SUBMIT_SUCCESS"}),Lt}).catch(function(Lt){if(P.current)throw Q({type:"SUBMIT_FAILURE"}),Lt})}else if(P.current&&(Q({type:"SUBMIT_FAILURE"}),We))throw Me})}),Je=Pu(function(Me){Me&&Me.preventDefault&&ju(Me.preventDefault)&&Me.preventDefault(),Me&&Me.stopPropagation&&ju(Me.stopPropagation)&&Me.stopPropagation(),Ze().catch(function(We){console.warn("Warning: An unhandled error was caught from submitForm()",We)})}),_t={resetForm:ie,validateForm:G,validateField:_e,setErrors:me,setFieldError:Fe,setFieldTouched:Be,setFieldValue:je,setStatus:rt,setSubmitting:pt,setTouched:fe,setValues:Ne,setFormikState:Ge,submitForm:Ze},Xt=Pu(function(){return y($.values,_t)}),Ht=Pu(function(Me){Me&&Me.preventDefault&&ju(Me.preventDefault)&&Me.preventDefault(),Me&&Me.stopPropagation&&ju(Me.stopPropagation)&&Me.stopPropagation(),ie()}),gn=k.useCallback(function(Me){return{value:Sd($.values,Me),error:Sd($.errors,Me),touched:!!Sd($.touched,Me),initialValue:Sd(A.current,Me),initialTouched:!!Sd(O.current,Me),initialError:Sd(N.current,Me)}},[$.errors,$.touched,$.values]),It=k.useCallback(function(Me){return{setValue:function(bt,St){return je(Me,bt,St)},setTouched:function(bt,St){return Be(Me,bt,St)},setError:function(bt){return Fe(Me,bt)}}},[je,Be,Fe]),xt=k.useCallback(function(Me){var We=PU(Me),bt=We?Me.name:Me,St=Sd($.values,bt),Lt={name:bt,value:St,onChange:Re,onBlur:we};if(We){var tn=Me.type,un=Me.value,an=Me.as,ye=Me.multiple;tn==="checkbox"?un===void 0?Lt.checked=!!St:(Lt.checked=!!(Array.isArray(St)&&~St.indexOf(un)),Lt.value=un):tn==="radio"?(Lt.checked=St===un,Lt.value=un):an==="select"&&ye&&(Lt.value=Lt.value||[],Lt.multiple=!0)}return Lt},[we,Re,$.values]),mt=k.useMemo(function(){return!__(A.current,$.values)},[A.current,$.values]),dt=k.useMemo(function(){return typeof p<"u"?mt?$.errors&&Object.keys($.errors).length===0:p!==!1&&ju(p)?p(b):p:$.errors&&Object.keys($.errors).length===0},[p,mt,$.errors,b]),it=yo({},$,{initialValues:A.current,initialErrors:N.current,initialTouched:O.current,initialStatus:D.current,handleBlur:we,handleChange:Re,handleReset:Ht,handleSubmit:Je,resetForm:ie,setErrors:me,setFormikState:Ge,setFieldTouched:Be,setFieldValue:je,setFieldError:Fe,setStatus:rt,setSubmitting:pt,setTouched:fe,setValues:Ne,submitForm:Ze,validateForm:G,validateField:_e,isValid:dt,dirty:mt,unregisterField:Ce,registerField:he,getFieldProps:xt,getFieldMeta:gn,getFieldHelpers:It,validateOnBlur:l,validateOnChange:i,validateOnMount:u});return it}function id(n){var t=FGe(n),i=n.component,s=n.children,l=n.render,d=n.innerRef;return k.useImperativeHandle(d,function(){return t}),k.createElement(DGe,{value:t},i?k.createElement(i,t):l?l(t):s?ju(s)?s(t):jGe(s)?null:k.Children.only(s):null)}function BGe(n){var t={};if(n.inner){if(n.inner.length===0)return mE(t,n.path,n.message);for(var l=n.inner,i=Array.isArray(l),s=0,l=i?l:l[Symbol.iterator]();;){var d;if(i){if(s>=l.length)break;d=l[s++]}else{if(s=l.next(),s.done)break;d=s.value}var u=d;Sd(t,u.path)||(t=mE(t,u.path,u.message))}}return t}function VGe(n,t,i,s){i===void 0&&(i=!1);var l=Gq(n);return t[i?"validateSync":"validate"](l,{abortEarly:!1,context:s||l})}function Gq(n){var t=Array.isArray(n)?[]:{};for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var s=String(i);Array.isArray(n[s])===!0?t[s]=n[s].map(function(l){return Array.isArray(l)===!0||Zue(l)?Gq(l):l!==""?l:void 0}):Zue(n[s])?t[s]=Gq(n[s]):t[s]=n[s]!==""?n[s]:void 0}return t}function zGe(n,t,i){var s=n.slice();return t.forEach(function(d,u){if(typeof s[u]>"u"){var p=i.clone!==!1,g=p&&i.isMergeableObject(d);s[u]=g?Uq(Array.isArray(d)?[]:{},d,i):d}else i.isMergeableObject(d)?s[u]=Uq(n[u],d,i):n.indexOf(d)===-1&&s.push(d)}),s}function HGe(n){return Array.from(n).filter(function(t){return t.selected}).map(function(t){return t.value})}function GGe(n,t,i){if(typeof n=="boolean")return!!t;var s=[],l=!1,d=-1;if(Array.isArray(n))s=n,d=n.indexOf(i),l=d>=0;else if(!i||i=="true"||i=="false")return!!t;return t&&i&&!l?s.concat(i):l?s.slice(0,d).concat(s.slice(d+1)):s}var WGe=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?k.useLayoutEffect:k.useEffect;function Pu(n){var t=k.useRef(n);return WGe(function(){t.current=n}),k.useCallback(function(){for(var i=arguments.length,s=new Array(i),l=0;l=this._maxSize&&this.clear(),n in this._values||this._size++,this._values[n]=t};var KGe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,n_e=/^\d+$/,qGe=/^\d/,YGe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,XGe=/^\s*(['"]?)(.*?)(\1)\s*$/,FQ=512,Rhe=new $E(FQ),xhe=new $E(FQ),Ahe=new $E(FQ),gE={Cache:$E,split:Wq,normalizePath:V$,setter:function(n){var t=V$(n);return xhe.get(n)||xhe.set(n,function(s,l){for(var d=0,u=t.length,p=s;dn.match(tWe)||[],DU=n=>n[0].toUpperCase()+n.slice(1),VQ=(n,t)=>LU(n).join(t).toLowerCase(),i_e=n=>LU(n).reduce((t,i)=>`${t}${t?i[0].toUpperCase()+i.slice(1).toLowerCase():i.toLowerCase()}`,""),nWe=n=>DU(i_e(n)),iWe=n=>VQ(n,"_"),rWe=n=>VQ(n,"-"),sWe=n=>DU(VQ(n," ")),aWe=n=>LU(n).map(DU).join(" ");var z$={words:LU,upperFirst:DU,camelCase:i_e,pascalCase:nWe,snakeCase:iWe,kebabCase:rWe,sentenceCase:sWe,titleCase:aWe},zQ={exports:{}};zQ.exports=function(n){return r_e(oWe(n),n)};zQ.exports.array=r_e;function r_e(n,t){var i=n.length,s=new Array(i),l={},d=i,u=lWe(t),p=cWe(n);for(t.forEach(function(_){if(!p.has(_[0])||!p.has(_[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});d--;)l[d]||g(n[d],d,new Set);return s;function g(_,y,E){if(E.has(_)){var b;try{b=", node was:"+JSON.stringify(_)}catch{b=""}throw new Error("Cyclic dependency"+b)}if(!p.has(_))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(_));if(!l[y]){l[y]=!0;var A=u.get(_)||new Set;if(A=Array.from(A),y=A.length){E.add(_);do{var N=A[--y];g(N,p.get(N),E)}while(y);E.delete(_)}s[--i]=_}}}function oWe(n){for(var t=new Set,i=0,s=n.length;i"",gWe=/^Symbol\((.*)\)(.*)$/;function vWe(n){return n!=+n?"NaN":n===0&&1/n<0?"-0":""+n}function Ihe(n,t=!1){if(n==null||n===!0||n===!1)return""+n;const i=typeof n;if(i==="number")return vWe(n);if(i==="string")return t?`"${n}"`:n;if(i==="function")return"[Function "+(n.name||"anonymous")+"]";if(i==="symbol")return mWe.call(n).replace(gWe,"Symbol($1)");const s=hWe.call(n).slice(8,-1);return s==="Date"?isNaN(n.getTime())?""+n:n.toISOString(n):s==="Error"||n instanceof Error?"["+fWe.call(n)+"]":s==="RegExp"?pWe.call(n):null}function xv(n,t){let i=Ihe(n,t);return i!==null?i:JSON.stringify(n,function(s,l){let d=Ihe(this[s],t);return d!==null?d:l},2)}function s_e(n){return n==null?[]:[].concat(n)}let a_e,yWe=/\$\{\s*(\w+)\s*\}/g;a_e=Symbol.toStringTag;class Qc extends Error{static formatError(t,i){const s=i.label||i.path||"this";return s!==i.path&&(i=Object.assign({},i,{path:s})),typeof t=="string"?t.replace(yWe,(l,d)=>xv(i[d])):typeof t=="function"?t(i):t}static isError(t){return t&&t.name==="ValidationError"}constructor(t,i,s,l,d){super(),this.value=void 0,this.path=void 0,this.type=void 0,this.errors=void 0,this.params=void 0,this.inner=void 0,this[a_e]="Error",this.name="ValidationError",this.value=i,this.path=s,this.type=l,this.errors=[],this.inner=[],s_e(t).forEach(u=>{if(Qc.isError(u)){this.errors.push(...u.errors);const p=u.inner.length?u.inner:[u];this.inner.push(...p)}else this.errors.push(u)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],!d&&Error.captureStackTrace&&Error.captureStackTrace(this,Qc)}}let sp={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:n,type:t,value:i,originalValue:s})=>{const l=s!=null&&s!==i?` (cast from the value \`${xv(s,!0)}\`).`:".";return t!=="mixed"?`${n} must be a \`${t}\` type, but the final value was: \`${xv(i,!0)}\``+l:`${n} must match the configured type. The validated value was: \`${xv(i,!0)}\``+l}},kh={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},_We={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},$q={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},EWe={isValue:"${path} field must be ${value}"},Kq={noUnknown:"${path} field has unspecified keys: ${unknown}"},wWe={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"},SWe={notType:n=>{const{path:t,value:i,spec:s}=n,l=s.types.length;if(Array.isArray(i)){if(i.lengthl)return`${t} tuple value has too many items, expected a length of ${l} but got ${i.length} for value: \`${xv(i,!0)}\``}return Qc.formatError(sp.notType,n)}};Object.assign(Object.create(null),{mixed:sp,string:kh,number:_We,date:$q,object:Kq,array:wWe,boolean:EWe,tuple:SWe});const HQ=n=>n&&n.__isYupSchema__;class w7{static fromOptions(t,i){if(!i.then&&!i.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:s,then:l,otherwise:d}=i,u=typeof s=="function"?s:(...p)=>p.every(g=>g===s);return new w7(t,(p,g)=>{var _;let y=u(...p)?l:d;return(_=y==null?void 0:y(g))!=null?_:g})}constructor(t,i){this.fn=void 0,this.refs=t,this.refs=t,this.fn=i}resolve(t,i){let s=this.refs.map(d=>d.getValue(i==null?void 0:i.value,i==null?void 0:i.parent,i==null?void 0:i.context)),l=this.fn(s,t,i);if(l===void 0||l===t)return t;if(!HQ(l))throw new TypeError("conditions must return a schema object");return l.resolve(i)}}const Sk={context:"$",value:"."};class KE{constructor(t,i={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,typeof t!="string")throw new TypeError("ref must be a string, got: "+t);if(this.key=t.trim(),t==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===Sk.context,this.isValue=this.key[0]===Sk.value,this.isSibling=!this.isContext&&!this.isValue;let s=this.isContext?Sk.context:this.isValue?Sk.value:"";this.path=this.key.slice(s.length),this.getter=this.path&&gE.getter(this.path,!0),this.map=i.map}getValue(t,i,s){let l=this.isContext?s:this.isValue?t:i;return this.getter&&(l=this.getter(l||{})),this.map&&(l=this.map(l)),l}cast(t,i){return this.getValue(t,i==null?void 0:i.parent,i==null?void 0:i.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(t){return t&&t.__isYupRef}}KE.prototype.__isYupRef=!0;const k_=n=>n==null;function Nb(n){function t({value:i,path:s="",options:l,originalValue:d,schema:u},p,g){const{name:_,test:y,params:E,message:b,skipAbsent:A}=n;let{parent:N,context:O,abortEarly:D=u.spec.abortEarly,disableStackTrace:P=u.spec.disableStackTrace}=l;function j(te){return KE.isRef(te)?te.getValue(i,N,O):te}function M(te={}){var de;const G=Object.assign({value:i,originalValue:d,label:u.spec.label,path:te.path||s,spec:u.spec},E,te.params);for(const _e of Object.keys(G))G[_e]=j(G[_e]);const ie=new Qc(Qc.formatError(te.message||b,G),i,G.path,te.type||_,(de=te.disableStackTrace)!=null?de:P);return ie.params=G,ie}const V=D?p:g;let H={path:s,parent:N,type:_,from:l.from,createError:M,resolve:j,options:l,originalValue:d,schema:u};const $=te=>{Qc.isError(te)?V(te):te?g(null):V(M())},Q=te=>{Qc.isError(te)?V(te):p(te)};if(A&&k_(i))return $(!0);let le;try{var ae;if(le=y.call(H,i,H),typeof((ae=le)==null?void 0:ae.then)=="function"){if(l.sync)throw new Error(`Validation test of type: "${H.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);return Promise.resolve(le).then($,Q)}}catch(te){Q(te);return}$(le)}return t.OPTIONS=n,t}function bWe(n,t,i,s=i){let l,d,u;return t?(gE.forEach(t,(p,g,_)=>{let y=g?p.slice(1,p.length-1):p;n=n.resolve({context:s,parent:l,value:i});let E=n.type==="tuple",b=_?parseInt(y,10):0;if(n.innerType||E){if(E&&!_)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${u}" must contain an index to the tuple element, e.g. "${u}[0]"`);if(i&&b>=i.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${p}, in the path: ${t}. because there is no value at that index. `);l=i,i=i&&i[b],n=E?n.spec.types[b]:n.innerType}if(!_){if(!n.fields||!n.fields[y])throw new Error(`The schema does not contain the path: ${t}. (failed at: ${u} which is a type: "${n.type}")`);l=i,i=i&&i[y],n=n.fields[y]}d=y,u=g?"["+p+"]":"."+p}),{schema:n,parent:l,parentPath:d}):{parent:l,parentPath:t,schema:n}}class S7 extends Set{describe(){const t=[];for(const i of this.values())t.push(KE.isRef(i)?i.describe():i);return t}resolveAll(t){let i=[];for(const s of this.values())i.push(t(s));return i}clone(){return new S7(this.values())}merge(t,i){const s=this.clone();return t.forEach(l=>s.add(l)),i.forEach(l=>s.delete(l)),s}}function uC(n,t=new Map){if(HQ(n)||!n||typeof n!="object")return n;if(t.has(n))return t.get(n);let i;if(n instanceof Date)i=new Date(n.getTime()),t.set(n,i);else if(n instanceof RegExp)i=new RegExp(n),t.set(n,i);else if(Array.isArray(n)){i=new Array(n.length),t.set(n,i);for(let s=0;s{this.typeError(sp.notType)}),this.type=t.type,this._typeCheck=t.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,disableStackTrace:!1,nullable:!1,optional:!0,coerce:!0},t==null?void 0:t.spec),this.withMutation(i=>{i.nonNullable()})}get _type(){return this.type}clone(t){if(this._mutate)return t&&Object.assign(this.spec,t),this;const i=Object.create(Object.getPrototypeOf(this));return i.type=this.type,i._typeCheck=this._typeCheck,i._whitelist=this._whitelist.clone(),i._blacklist=this._blacklist.clone(),i.internalTests=Object.assign({},this.internalTests),i.exclusiveTests=Object.assign({},this.exclusiveTests),i.deps=[...this.deps],i.conditions=[...this.conditions],i.tests=[...this.tests],i.transforms=[...this.transforms],i.spec=uC(Object.assign({},this.spec,t)),i}label(t){let i=this.clone();return i.spec.label=t,i}meta(...t){if(t.length===0)return this.spec.meta;let i=this.clone();return i.spec.meta=Object.assign(i.spec.meta||{},t[0]),i}withMutation(t){let i=this._mutate;this._mutate=!0;let s=t(this);return this._mutate=i,s}concat(t){if(!t||t===this)return this;if(t.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${t.type}`);let i=this,s=t.clone();const l=Object.assign({},i.spec,s.spec);return s.spec=l,s.internalTests=Object.assign({},i.internalTests,s.internalTests),s._whitelist=i._whitelist.merge(t._whitelist,t._blacklist),s._blacklist=i._blacklist.merge(t._blacklist,t._whitelist),s.tests=i.tests,s.exclusiveTests=i.exclusiveTests,s.withMutation(d=>{t.tests.forEach(u=>{d.test(u.OPTIONS)})}),s.transforms=[...i.transforms,...s.transforms],s}isType(t){return t==null?!!(this.spec.nullable&&t===null||this.spec.optional&&t===void 0):this._typeCheck(t)}resolve(t){let i=this;if(i.conditions.length){let s=i.conditions;i=i.clone(),i.conditions=[],i=s.reduce((l,d)=>d.resolve(l,t),i),i=i.resolve(t)}return i}resolveOptions(t){var i,s,l,d;return Object.assign({},t,{from:t.from||[],strict:(i=t.strict)!=null?i:this.spec.strict,abortEarly:(s=t.abortEarly)!=null?s:this.spec.abortEarly,recursive:(l=t.recursive)!=null?l:this.spec.recursive,disableStackTrace:(d=t.disableStackTrace)!=null?d:this.spec.disableStackTrace})}cast(t,i={}){let s=this.resolve(Object.assign({value:t},i)),l=i.assert==="ignore-optionality",d=s._cast(t,i);if(i.assert!==!1&&!s.isType(d)){if(l&&k_(d))return d;let u=xv(t),p=xv(d);throw new TypeError(`The value of ${i.path||"field"} could not be cast to a value that satisfies the schema type: "${s.type}". + +attempted value: ${u} +`+(p!==u?`result of cast: ${p}`:""))}return d}_cast(t,i){let s=t===void 0?t:this.transforms.reduce((l,d)=>d.call(this,l,t,this),t);return s===void 0&&(s=this.getDefault(i)),s}_validate(t,i={},s,l){let{path:d,originalValue:u=t,strict:p=this.spec.strict}=i,g=t;p||(g=this._cast(g,Object.assign({assert:!1},i)));let _=[];for(let y of Object.values(this.internalTests))y&&_.push(y);this.runTests({path:d,value:g,originalValue:u,options:i,tests:_},s,y=>{if(y.length)return l(y,g);this.runTests({path:d,value:g,originalValue:u,options:i,tests:this.tests},s,l)})}runTests(t,i,s){let l=!1,{tests:d,value:u,originalValue:p,path:g,options:_}=t,y=O=>{l||(l=!0,i(O,u))},E=O=>{l||(l=!0,s(O,u))},b=d.length,A=[];if(!b)return E([]);let N={value:u,originalValue:p,path:g,options:_,schema:this};for(let O=0;Othis.resolve(y)._validate(_,y,b,A)}validate(t,i){var s;let l=this.resolve(Object.assign({},i,{value:t})),d=(s=i==null?void 0:i.disableStackTrace)!=null?s:l.spec.disableStackTrace;return new Promise((u,p)=>l._validate(t,i,(g,_)=>{Qc.isError(g)&&(g.value=_),p(g)},(g,_)=>{g.length?p(new Qc(g,_,void 0,void 0,d)):u(_)}))}validateSync(t,i){var s;let l=this.resolve(Object.assign({},i,{value:t})),d,u=(s=i==null?void 0:i.disableStackTrace)!=null?s:l.spec.disableStackTrace;return l._validate(t,Object.assign({},i,{sync:!0}),(p,g)=>{throw Qc.isError(p)&&(p.value=g),p},(p,g)=>{if(p.length)throw new Qc(p,t,void 0,void 0,u);d=g}),d}isValid(t,i){return this.validate(t,i).then(()=>!0,s=>{if(Qc.isError(s))return!1;throw s})}isValidSync(t,i){try{return this.validateSync(t,i),!0}catch(s){if(Qc.isError(s))return!1;throw s}}_getDefault(t){let i=this.spec.default;return i==null?i:typeof i=="function"?i.call(this,t):uC(i)}getDefault(t){return this.resolve(t||{})._getDefault(t)}default(t){return arguments.length===0?this._getDefault():this.clone({default:t})}strict(t=!0){return this.clone({strict:t})}nullability(t,i){const s=this.clone({nullable:t});return s.internalTests.nullable=Nb({message:i,name:"nullable",test(l){return l===null?this.schema.spec.nullable:!0}}),s}optionality(t,i){const s=this.clone({optional:t});return s.internalTests.optionality=Nb({message:i,name:"optionality",test(l){return l===void 0?this.schema.spec.optional:!0}}),s}optional(){return this.optionality(!0)}defined(t=sp.defined){return this.optionality(!1,t)}nullable(){return this.nullability(!0)}nonNullable(t=sp.notNull){return this.nullability(!1,t)}required(t=sp.required){return this.clone().withMutation(i=>i.nonNullable(t).defined(t))}notRequired(){return this.clone().withMutation(t=>t.nullable().optional())}transform(t){let i=this.clone();return i.transforms.push(t),i}test(...t){let i;if(t.length===1?typeof t[0]=="function"?i={test:t[0]}:i=t[0]:t.length===2?i={name:t[0],test:t[1]}:i={name:t[0],message:t[1],test:t[2]},i.message===void 0&&(i.message=sp.default),typeof i.test!="function")throw new TypeError("`test` is a required parameters");let s=this.clone(),l=Nb(i),d=i.exclusive||i.name&&s.exclusiveTests[i.name]===!0;if(i.exclusive&&!i.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return i.name&&(s.exclusiveTests[i.name]=!!i.exclusive),s.tests=s.tests.filter(u=>!(u.OPTIONS.name===i.name&&(d||u.OPTIONS.test===l.OPTIONS.test))),s.tests.push(l),s}when(t,i){!Array.isArray(t)&&typeof t!="string"&&(i=t,t=".");let s=this.clone(),l=s_e(t).map(d=>new KE(d));return l.forEach(d=>{d.isSibling&&s.deps.push(d.key)}),s.conditions.push(typeof i=="function"?new w7(l,i):w7.fromOptions(l,i)),s}typeError(t){let i=this.clone();return i.internalTests.typeError=Nb({message:t,name:"typeError",skipAbsent:!0,test(s){return this.schema._typeCheck(s)?!0:this.createError({params:{type:this.schema.type}})}}),i}oneOf(t,i=sp.oneOf){let s=this.clone();return t.forEach(l=>{s._whitelist.add(l),s._blacklist.delete(l)}),s.internalTests.whiteList=Nb({message:i,name:"oneOf",skipAbsent:!0,test(l){let d=this.schema._whitelist,u=d.resolveAll(this.resolve);return u.includes(l)?!0:this.createError({params:{values:Array.from(d).join(", "),resolved:u}})}}),s}notOneOf(t,i=sp.notOneOf){let s=this.clone();return t.forEach(l=>{s._blacklist.add(l),s._whitelist.delete(l)}),s.internalTests.blacklist=Nb({message:i,name:"notOneOf",test(l){let d=this.schema._blacklist,u=d.resolveAll(this.resolve);return u.includes(l)?this.createError({params:{values:Array.from(d).join(", "),resolved:u}}):!0}}),s}strip(t=!0){let i=this.clone();return i.spec.strip=t,i}describe(t){const i=(t?this.resolve(t):this).clone(),{label:s,meta:l,optional:d,nullable:u}=i.spec;return{meta:l,label:s,optional:d,nullable:u,default:i.getDefault(t),type:i.type,oneOf:i._whitelist.describe(),notOneOf:i._blacklist.describe(),tests:i.tests.map(g=>({name:g.OPTIONS.name,params:g.OPTIONS.params})).filter((g,_,y)=>y.findIndex(E=>E.name===g.name)===_)}}}jp.prototype.__isYupSchema__=!0;for(const n of["validate","validateSync"])jp.prototype[`${n}At`]=function(t,i,s={}){const{parent:l,parentPath:d,schema:u}=bWe(this,t,i,s.context);return u[n](l&&l[d],Object.assign({},s,{parent:l,path:t}))};for(const n of["equals","is"])jp.prototype[n]=jp.prototype.oneOf;for(const n of["not","nope"])jp.prototype[n]=jp.prototype.notOneOf;let CWe=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,TWe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,RWe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,xWe=n=>k_(n)||n===n.trim(),AWe={}.toString();function hf(){return new o_e}class o_e extends jp{constructor(){super({type:"string",check(t){return t instanceof String&&(t=t.valueOf()),typeof t=="string"}}),this.withMutation(()=>{this.transform((t,i,s)=>{if(!s.spec.coerce||s.isType(t)||Array.isArray(t))return t;const l=t!=null&&t.toString?t.toString():t;return l===AWe?t:l})})}required(t){return super.required(t).withMutation(i=>i.test({message:t||sp.required,name:"required",skipAbsent:!0,test:s=>!!s.length}))}notRequired(){return super.notRequired().withMutation(t=>(t.tests=t.tests.filter(i=>i.OPTIONS.name!=="required"),t))}length(t,i=kh.length){return this.test({message:i,name:"length",exclusive:!0,params:{length:t},skipAbsent:!0,test(s){return s.length===this.resolve(t)}})}min(t,i=kh.min){return this.test({message:i,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(s){return s.length>=this.resolve(t)}})}max(t,i=kh.max){return this.test({name:"max",exclusive:!0,message:i,params:{max:t},skipAbsent:!0,test(s){return s.length<=this.resolve(t)}})}matches(t,i){let s=!1,l,d;return i&&(typeof i=="object"?{excludeEmptyString:s=!1,message:l,name:d}=i:l=i),this.test({name:d||"matches",message:l||kh.matches,params:{regex:t},skipAbsent:!0,test:u=>u===""&&s||u.search(t)!==-1})}email(t=kh.email){return this.matches(CWe,{name:"email",message:t,excludeEmptyString:!0})}url(t=kh.url){return this.matches(TWe,{name:"url",message:t,excludeEmptyString:!0})}uuid(t=kh.uuid){return this.matches(RWe,{name:"uuid",message:t,excludeEmptyString:!1})}ensure(){return this.default("").transform(t=>t===null?"":t)}trim(t=kh.trim){return this.transform(i=>i!=null?i.trim():i).test({message:t,name:"trim",test:xWe})}lowercase(t=kh.lowercase){return this.transform(i=>k_(i)?i:i.toLowerCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:i=>k_(i)||i===i.toLowerCase()})}uppercase(t=kh.uppercase){return this.transform(i=>k_(i)?i:i.toUpperCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:i=>k_(i)||i===i.toUpperCase()})}}hf.prototype=o_e.prototype;const IWe=/^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;function xm(n,t=0){return Number(n)||t}function NWe(n){const t=IWe.exec(n);if(!t)return Date.parse?Date.parse(n):Number.NaN;const i={year:xm(t[1]),month:xm(t[2],1)-1,day:xm(t[3],1),hour:xm(t[4]),minute:xm(t[5]),second:xm(t[6]),millisecond:t[7]?xm(t[7].substring(0,3)):0,z:t[8]||void 0,plusMinus:t[9]||void 0,hourOffset:xm(t[10]),minuteOffset:xm(t[11])};if(i.z===void 0&&i.plusMinus===void 0)return new Date(i.year,i.month,i.day,i.hour,i.minute,i.second,i.millisecond).valueOf();let s=0;return i.z!=="Z"&&i.plusMinus!==void 0&&(s=i.hourOffset*60+i.minuteOffset,i.plusMinus==="+"&&(s=0-s)),Date.UTC(i.year,i.month,i.day,i.hour,i.minute+s,i.second,i.millisecond)}let OWe=new Date(""),PWe=n=>Object.prototype.toString.call(n)==="[object Date]";class kU extends jp{constructor(){super({type:"date",check(t){return PWe(t)&&!isNaN(t.getTime())}}),this.withMutation(()=>{this.transform((t,i,s)=>!s.spec.coerce||s.isType(t)||t===null?t:(t=NWe(t),isNaN(t)?kU.INVALID_DATE:new Date(t)))})}prepareParam(t,i){let s;if(KE.isRef(t))s=t;else{let l=this.cast(t);if(!this._typeCheck(l))throw new TypeError(`\`${i}\` must be a Date or a value that can be \`cast()\` to a Date`);s=l}return s}min(t,i=$q.min){let s=this.prepareParam(t,"min");return this.test({message:i,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(l){return l>=this.resolve(s)}})}max(t,i=$q.max){let s=this.prepareParam(t,"max");return this.test({message:i,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(l){return l<=this.resolve(s)}})}}kU.INVALID_DATE=OWe;kU.prototype;function LWe(n,t=[]){let i=[],s=new Set,l=new Set(t.map(([u,p])=>`${u}-${p}`));function d(u,p){let g=gE.split(u)[0];s.add(g),l.has(`${p}-${g}`)||i.push([p,g])}for(const u of Object.keys(n)){let p=n[u];s.add(u),KE.isRef(p)&&p.isSibling?d(p.path,u):HQ(p)&&"deps"in p&&p.deps.forEach(g=>d(g,u))}return uWe.array(Array.from(s),i).reverse()}function Nhe(n,t){let i=1/0;return n.some((s,l)=>{var d;if((d=t.path)!=null&&d.includes(s))return i=l,!0}),i}function l_e(n){return(t,i)=>Nhe(n,t)-Nhe(n,i)}const DWe=(n,t,i)=>{if(typeof n!="string")return n;let s=n;try{s=JSON.parse(n)}catch{}return i.isType(s)?s:n};function eM(n){if("fields"in n){const t={};for(const[i,s]of Object.entries(n.fields))t[i]=eM(s);return n.setFields(t)}if(n.type==="array"){const t=n.optional();return t.innerType&&(t.innerType=eM(t.innerType)),t}return n.type==="tuple"?n.optional().clone({types:n.spec.types.map(eM)}):"optional"in n?n.optional():n}const kWe=(n,t)=>{const i=[...gE.normalizePath(t)];if(i.length===1)return i[0]in n;let s=i.pop(),l=gE.getter(gE.join(i),!0)(n);return!!(l&&s in l)};let Ohe=n=>Object.prototype.toString.call(n)==="[object Object]";function MWe(n,t){let i=Object.keys(n.fields);return Object.keys(t).filter(s=>i.indexOf(s)===-1)}const jWe=l_e([]);function uc(n){return new c_e(n)}class c_e extends jp{constructor(t){super({type:"object",check(i){return Ohe(i)||typeof i=="function"}}),this.fields=Object.create(null),this._sortErrors=jWe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{t&&this.shape(t)})}_cast(t,i={}){var s;let l=super._cast(t,i);if(l===void 0)return this.getDefault(i);if(!this._typeCheck(l))return l;let d=this.fields,u=(s=i.stripUnknown)!=null?s:this.spec.noUnknown,p=[].concat(this._nodes,Object.keys(l).filter(E=>!this._nodes.includes(E))),g={},_=Object.assign({},i,{parent:g,__validating:i.__validating||!1}),y=!1;for(const E of p){let b=d[E],A=E in l;if(b){let N,O=l[E];_.path=(i.path?`${i.path}.`:"")+E,b=b.resolve({value:O,context:i.context,parent:g});let D=b instanceof jp?b.spec:void 0,P=D==null?void 0:D.strict;if(D!=null&&D.strip){y=y||E in l;continue}N=!i.__validating||!P?b.cast(l[E],_):l[E],N!==void 0&&(g[E]=N)}else A&&!u&&(g[E]=l[E]);(A!==E in g||g[E]!==l[E])&&(y=!0)}return y?g:l}_validate(t,i={},s,l){let{from:d=[],originalValue:u=t,recursive:p=this.spec.recursive}=i;i.from=[{schema:this,value:u},...d],i.__validating=!0,i.originalValue=u,super._validate(t,i,s,(g,_)=>{if(!p||!Ohe(_)){l(g,_);return}u=u||_;let y=[];for(let E of this._nodes){let b=this.fields[E];!b||KE.isRef(b)||y.push(b.asNestedTest({options:i,key:E,parent:_,parentPath:i.path,originalParent:u}))}this.runTests({tests:y,value:_,originalValue:u,options:i},s,E=>{l(E.sort(this._sortErrors).concat(g),_)})})}clone(t){const i=super.clone(t);return i.fields=Object.assign({},this.fields),i._nodes=this._nodes,i._excludedEdges=this._excludedEdges,i._sortErrors=this._sortErrors,i}concat(t){let i=super.concat(t),s=i.fields;for(let[l,d]of Object.entries(this.fields)){const u=s[l];s[l]=u===void 0?d:u}return i.withMutation(l=>l.setFields(s,[...this._excludedEdges,...t._excludedEdges]))}_getDefault(t){if("default"in this.spec)return super._getDefault(t);if(!this._nodes.length)return;let i={};return this._nodes.forEach(s=>{var l;const d=this.fields[s];let u=t;(l=u)!=null&&l.value&&(u=Object.assign({},u,{parent:u.value,value:u.value[s]})),i[s]=d&&"getDefault"in d?d.getDefault(u):void 0}),i}setFields(t,i){let s=this.clone();return s.fields=t,s._nodes=LWe(t,i),s._sortErrors=l_e(Object.keys(t)),i&&(s._excludedEdges=i),s}shape(t,i=[]){return this.clone().withMutation(s=>{let l=s._excludedEdges;return i.length&&(Array.isArray(i[0])||(i=[i]),l=[...s._excludedEdges,...i]),s.setFields(Object.assign(s.fields,t),l)})}partial(){const t={};for(const[i,s]of Object.entries(this.fields))t[i]="optional"in s&&s.optional instanceof Function?s.optional():s;return this.setFields(t)}deepPartial(){return eM(this)}pick(t){const i={};for(const s of t)this.fields[s]&&(i[s]=this.fields[s]);return this.setFields(i,this._excludedEdges.filter(([s,l])=>t.includes(s)&&t.includes(l)))}omit(t){const i=[];for(const s of Object.keys(this.fields))t.includes(s)||i.push(s);return this.pick(i)}from(t,i,s){let l=gE.getter(t,!0);return this.transform(d=>{if(!d)return d;let u=d;return kWe(d,t)&&(u=Object.assign({},d),s||delete u[t],u[i]=l(d)),u})}json(){return this.transform(DWe)}noUnknown(t=!0,i=Kq.noUnknown){typeof t!="boolean"&&(i=t,t=!0);let s=this.test({name:"noUnknown",exclusive:!0,message:i,test(l){if(l==null)return!0;const d=MWe(this.schema,l);return!t||d.length===0||this.createError({params:{unknown:d.join(", ")}})}});return s.spec.noUnknown=t,s}unknown(t=!0,i=Kq.noUnknown){return this.noUnknown(!t,i)}transformKeys(t){return this.transform(i=>{if(!i)return i;const s={};for(const l of Object.keys(i))s[t(l)]=i[l];return s})}camelCase(){return this.transformKeys(z$.camelCase)}snakeCase(){return this.transformKeys(z$.snakeCase)}constantCase(){return this.transformKeys(t=>z$.snakeCase(t).toUpperCase())}describe(t){const i=(t?this.resolve(t):this).clone(),s=super.describe(t);s.fields={};for(const[d,u]of Object.entries(i.fields)){var l;let p=t;(l=p)!=null&&l.value&&(p=Object.assign({},p,{parent:p.value,value:p.value[d]})),s.fields[d]=u.describe(p)}return s}}uc.prototype=c_e.prototype;function d_e({otp:n,totalDigits:t,handleUpdateOTP:i}){const[s,l]=k.useState(new Array(t).fill("")),[d,u]=k.useState(""),[p,g]=k.useState(!1),_=k.useRef([]);function y(b,A){if(b.length>1){A0&&_.current[A-1].focus(),b.key==="Enter"&&b.target.value&&A{s.includes("")?(g(!1),u("Enter OTP")):(g(!0),u(""));const b=s.join("");i(b)},[s]),k.useEffect(()=>{n===0&&l(new Array(t).fill(""))},[n]),h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"d-flex justify-content-around align-items-center otp-input-wrap",children:s.map((b,A)=>h.jsx("input",{type:"number",value:b,min:"0",max:"9",step:"1",maxLength:1,inputMode:"numeric",pattern:"[0-9]*",onChange:N=>y(N.target.value,A),onKeyUp:N=>E(N,A),ref:N=>_.current[A]=N,className:"otp-field text-center"},A))}),d&&h.jsx("p",{className:"text-danger font-13 text-center py-2",children:d})]})}function UWe(n){var H;const i=Ii(),[s,l]=k.useState(!1),[d,u]=k.useState(!1),[p,g]=k.useState(""),[_,y]=k.useState(!1),[E,b]=k.useState(!1),[A,N]=k.useState(!1);k.useEffect(()=>{window.scrollTo(0,0)},[]);const O=()=>{b(!1)},D=()=>{b(!0)};function P($){$.toString().length===6?y(!0):y(!1),g($)}async function j($){if($.preventDefault(),!A){Qt("Please accept Terms & Conditions.","error");return}l(!0);let Q={email:n.data.email,otp:p,device:localStorage.getItem("deviceID"),application:n.data.application,domain:n.data.domain};Ai.verifyAuth(Q).then(Y=>{Y.data.status==="success"&&(Qt(Y.data.message,"success"),l(!1),Ai.setToken(Y.data.data),Ai.registerDeviceForPushNotification(),i("/dashboard")),Y.data.status==="failed"&&(console.log("Failed ERROR response : ",Y.data),Qt(Y.data.message,"error"),l(!1),P(0))}).catch(Y=>{var le,ae;l(!1),((le=Y.response)==null?void 0:le.data.status)==="failed"&&Qt((ae=Y.response)==null?void 0:ae.data.message,"error"),console.log("Verify OTP Error = ",Y)})}async function M(){u(!0);let $={email:n.data.email,application:n.data.application,domain:n.data.domain};Ai.login($).then(Q=>{Q.data.status==="success"&&(Qt(Q.data.message,"success"),u(!1)),Q.data.status==="failed"&&(console.log("Failed ERROR response : ",Q.data),Qt(Q.data.message,"error"),u(!1))}).catch(Q=>{u(!1),Q.response.data.status==="failed"&&Qt(Q.response.data.message,"error"),console.log("Resend Code Error = ",Q)})}function V($){N(!A),D()}return h.jsx(et,{className:"login-content-card w-100 border-0 shadow-none",children:h.jsxs(et.Body,{children:[h.jsxs("div",{className:"mb-5 text-center",children:[h.jsx("div",{className:"secondary-text mb-4 text-center",children:h.jsx("h2",{children:"Verify Code"})}),h.jsx("div",{className:"helper-text",children:"We have sent you OTP on your email."})]}),h.jsx("div",{className:"form-container",children:h.jsxs(kt,{onSubmit:j,children:[h.jsx(kt.Group,{className:"form-group",children:h.jsx(kt.Control,{type:"text",placeholder:"Enter OTP",name:"otp",value:p,required:!0,autoComplete:"off",readOnly:!0,style:{width:"0.1px",height:"0.1px",overflow:"hidden",position:"absolute",zIndex:"-1",opacity:0,visibility:"hidden"}})}),h.jsx(kt.Group,{className:"form-group mb-3",children:h.jsx(d_e,{totalDigits:6,handleUpdateOTP:P,otp:p})}),h.jsx("div",{className:"d-flex justify-content-center align-items-center pt-3",children:h.jsx(kt.Group,{className:"form-group mb-2 fw-sb",children:h.jsx(kt.Check,{onChange:V,value:"test",type:"checkbox",id:"terms",label:"Terms & Conditions"})})}),h.jsx("div",{className:"d-flex justify-content-center align-items-center pt-4 pb-5 px-2",children:h.jsx(Pt,{type:"button",variant:"link",className:"btn-theme font-14 fw-sb text-decoration-none",onClick:M,children:d?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Sending"]}):h.jsx(h.Fragment,{children:"Send me a new code"})})}),h.jsx("div",{className:"btn-wrapper",children:h.jsx(Pt,{type:"submit",size:"lg",disabled:!_,className:"btn-theme btn-shadow btn-primary btn-block w-100",children:s?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):_?"Verify OTP":"Please fill out all info"})}),h.jsx(Sye,{show:E,handleClose:O,terms:(H=n.data)==null?void 0:H.terms})]})})]})})}function FWe(n){const[i,s]=k.useState(""),[l,d]=k.useState(!1),[u,p]=k.useState("password"),[g,_]=k.useState(!1),y=()=>{p(u==="password"?"text":"password")},E={password:""},b=uc().shape({password:hf().min(6,"Password is too short").required("Please enter a valid password")});function A(O){console.log("handleUpdateOTP",O,"Type of = ",typeof O),O.toString().length===6?_(!0):_(!1),s(O)}async function N(O,{resetForm:D}){if(console.log("Forgot Pwd otp",O),!g){console.log("isValidOTP = ",g),Qt("Please enter correct otp.","error");return}d(!0),console.log(i),console.log("data from Login form = ",n.data);let P={email:n.data.email,application:n.data.application,domain:n.data.domain,otp:i,password:O.password};console.log("newValues from Forgot Password Modal form = ",P),Ai.forgotPassword(P).then(j=>{console.log("forgotPassword Response: ",j),j.data.status==="success"&&(console.log("Success response =",j.data),Qt("Your password has been updated successfully!","success"),d(!1),setTimeout(()=>{n.handleClose()},1500),D()),j.data.status==="failed"&&(console.log("Failed ERROR response : ",j.data),Qt(j.data.message,"error"),d(!1),A(0),D())}).catch(j=>{var M,V,H;d(!1),((M=j.response)==null?void 0:M.data.status)==="failed"&&Qt((V=j.response)==null?void 0:V.data.message,"error"),console.log("forgotPassword Error = ",j),console.log("forgotPassword Error response = ",(H=j.response)==null?void 0:H.data)})}return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom forgot-pwd-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:"Forgot Password"})}),h.jsxs(vn.Body,{className:"no-scrollbar",style:{paddingBottom:100},children:[h.jsx("div",{className:"mb-3 text-cente",children:h.jsx("div",{className:"p-2 d-flex align-items-center bg-warning-lighter font-13 rounded-2",children:n.loadingCode?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ",h.jsx("span",{className:"ms-2",children:"Sending OTP..."})]}):h.jsxs(h.Fragment,{children:[h.jsx(Zt,{tag:"warning3",className:"me-2 font-22 text-theme-warning"})," ","We have sent OTP on your email."]})})}),h.jsx("div",{className:"form-container",children:h.jsx(id,{initialValues:E,validationSchema:b,onSubmit:N,children:O=>h.jsxs(kt,{onSubmit:O.handleSubmit,children:[h.jsx(kt.Group,{className:"form-group",children:h.jsx(kt.Control,{type:"text",placeholder:"Enter OTP",name:"otp",value:i,required:!0,autoComplete:"off",readOnly:!0,style:{width:"0.1px",height:"0.1px",overflow:"hidden",position:"absolute",zIndex:"-1",opacity:0,visibility:"hidden"}})}),h.jsx(kt.Group,{className:"form-group mb-3",children:h.jsx(d_e,{totalDigits:6,handleUpdateOTP:A,otp:i})}),h.jsx("div",{className:"pb-2 text-gray9",children:h.jsx("hr",{style:{borderStyle:"dashed"}})}),h.jsxs(kt.Group,{className:"form-group mb-3 position-relative",children:[h.jsx(kt.Label,{className:"pe-none",children:"Enter New Password"}),h.jsx(kt.Control,{type:u,placeholder:"New Password",name:"password",value:O.values.password,onBlur:O.handleBlur,onChange:O.handleChange,required:!0,autoComplete:"off"}),h.jsx("span",{className:"p-2 d-flex position-absolute font-22 text-gray6",style:{right:0,top:35},onClick:y,children:h.jsx(Zt,{tag:u==="password"?"view1":"hide1"})}),O.touched.password&&O.errors.password?h.jsx("p",{className:"form-error",children:O.errors.password}):null]}),h.jsx("div",{className:"btn-wrap pt-3 d-flex justify-content-center position-fixed bg-white border-top pt-3 pb-4 px-3",style:{bottom:0,right:0,left:0},children:h.jsx(Pt,{type:"submit",size:"lg",disabled:!O.isValid&&!g,className:"btn-theme btn-shadow btn-primary btn-block w-100",children:l?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):!O.isValid&&!g?"Please fill out all info":"Update Password"})})]})})})]})]})})}function BWe({data:n}){const t=Ii(),[i,s]=k.useState(!1),[l,d]=k.useState(!1),[u,p]=k.useState(!1),[g,_]=k.useState(!1),[y,E]=k.useState(!1),[b,A]=k.useState("password"),[N,O]=k.useState(!1);k.useEffect(()=>{window.scrollTo(0,0)},[]);const D=()=>{A(b==="password"?"text":"password")},P=()=>{_(!1)},j=()=>{_(!0)},M=()=>{O(!1)},V=()=>{O(!0),H()};async function H(){d(!0);let ae={email:n.email,application:n.application,domain:n.domain};console.log("forgotPasswordOTP newValues = ",ae),Ai.forgotPasswordOTP(ae).then(te=>{console.log("forgotPasswordOTP Response: ",te),te.data.status==="success"&&(console.log("Success response =",te.data),Qt("OTP sent successfully!","success"),d(!1)),te.data.status==="failed"&&(console.log("Failed ERROR response : ",te.data),Qt(te.data.message,"error"),d(!1))}).catch(te=>{d(!1),te.response.data.status==="failed"&&Qt(te.response.data.message,"error"),console.log("forgotPasswordOTP Error = ",te),console.log("forgotPasswordOTP Error response = ",te.response.data)})}async function $(ae,{resetForm:te}){if(!y){console.log("Terms = ",y),Qt("Please accept Terms & Conditions.","error");return}s(!0),console.log("data from Login form = ",n),console.log("deviceID = ",localStorage.getItem("deviceID"));let de={email:n.email,password:ae.password,device:localStorage.getItem("deviceID"),application:n.application,domain:n.domain};console.log("newValues from Verify Password form = ",de),Ai.verifyAuth(de).then(G=>{var ie,_e;console.log("verifyAuth Response: ",G),G.data.status==="success"&&(console.log("Success response =",G.data),Qt(G.data.message,"success"),s(!1),Ai.setToken(G.data.data),Ai.registerDeviceForPushNotification(),((_e=(ie=G.data)==null?void 0:ie.data)==null?void 0:_e.force_change_password.toLowerCase())==="yes"?t("/profile/change-password",{state:{pageTitle:"Change Password"}}):t("/dashboard")),G.data.status==="failed"&&(console.log("Failed ERROR response : ",G.data),Qt(G.data.message,"error"),s(!1))}).catch(G=>{var ie,_e,he;s(!1),((ie=G.response)==null?void 0:ie.data.status)==="failed"&&Qt((_e=G.response)==null?void 0:_e.data.message,"error"),console.log("Verify Password Error = ",G),console.log("Verify Password Error response = ",(he=G.response)==null?void 0:he.data)})}function Q(ae){console.log("Inside handleCheckboxChange...",y),y&&E(!1),y||(E(!0),p(!0),j())}const Y={password:""},le=uc().shape({password:hf().min(6,"Password is too short").required("Please enter a valid password")});return h.jsx(et,{className:"login-content-card w-100 border-0 shadow-none",children:h.jsxs(et.Body,{children:[h.jsx("div",{className:"mb-5 text-center",children:h.jsx("div",{className:"secondary-text mb-4 text-center",children:h.jsx("h2",{children:"Enter Password"})})}),h.jsxs("div",{className:"form-container",children:[h.jsx(id,{initialValues:Y,validationSchema:le,onSubmit:$,children:ae=>h.jsxs(kt,{onSubmit:ae.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group mb-3 position-relative",children:[h.jsx(kt.Label,{className:"pe-none",children:"Password"}),h.jsx(kt.Control,{type:b,placeholder:"Password",name:"password",value:ae.values.password,onBlur:ae.handleBlur,onChange:ae.handleChange,required:!0,autoComplete:"off"}),h.jsx("span",{className:"p-2 d-flex position-absolute font-22 text-gray6",style:{right:0,top:35},onClick:D,children:h.jsx(Zt,{tag:b==="password"?"view1":"hide1"})}),ae.touched.password&&ae.errors.password?h.jsx("p",{className:"form-error",children:ae.errors.password}):null]}),h.jsx("div",{className:"d-flex justify-content-center align-items-center pt-2 pb-3 px-2",children:h.jsx(Pt,{type:"button",variant:"link",className:"btn-theme font-14 fw-sb text-decoration-none",onClick:V,children:h.jsx(h.Fragment,{children:"Forgot Password?"})})}),h.jsx("div",{className:"d-flex justify-content-center align-items-center pt-3 pb-3",children:h.jsx(kt.Group,{className:"form-group mb-2 fw-sb",children:h.jsx(kt.Check,{onChange:Q,value:"test",type:"checkbox",id:"terms",label:"Terms & Conditions"})})}),h.jsx("div",{className:"btn-wrapper",children:h.jsx(Pt,{type:"submit",size:"lg",disabled:!ae.isValid&&!u,className:"btn-theme btn-shadow btn-primary btn-block w-100",children:i?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):u?"Verify Password":"Please fill out all info"})})]})}),h.jsx(Sye,{show:g,handleClose:P,terms:n==null?void 0:n.terms}),h.jsx(FWe,{show:N,handleClose:M,data:n,loadingCode:l})]})]})})}function VWe(){Ii();const[n,t]=k.useState(!1),[i,s]=k.useState(!1),[l,d]=k.useState(null),u={domain:"",email:""},p=uc().shape({domain:hf().required("Please enter a valid URL"),email:hf().required("Please enter a valid email")});async function g(_,{resetForm:y}){t(!0);let E={..._,application:"rapport",domain:_.domain.trim()};Ai.login(E).then(b=>{var A,N,O,D,P;if(b.data.status==="success"){Qt(b.data.message,"success"),t(!1);const j={...E,...(A=b.data)==null?void 0:A.data};let M=(O=(N=b.data)==null?void 0:N.data)==null?void 0:O.login_scheme.toLowerCase();d(j),Ai.setLoginSchemeToLocal(M),s(!0)}((D=b==null?void 0:b.data)==null?void 0:D.status)==="failed"&&(console.log("Failed ERROR response : ",b.data),Qt((P=b==null?void 0:b.data)==null?void 0:P.message,"error"),t(!1),d(null),s(!1))}).catch(b=>{var A,N,O,D;t(!1),d(null),s(!1),((N=(A=b.response)==null?void 0:A.data)==null?void 0:N.status)==="failed"&&Qt((D=(O=b.response)==null?void 0:O.data)==null?void 0:D.message,"error"),console.log("Login Error = ",b)})}return h.jsxs(h.Fragment,{children:[!i&&h.jsx(et,{className:"login-content-card w-100 border-0 shadow-none",children:h.jsxs(et.Body,{children:[h.jsx("div",{className:"welcome-text mb-4 text-center",children:h.jsx("h1",{children:"Welcome Back!"})}),h.jsx("div",{className:"secondary-text mb-5 text-center",children:h.jsxs("h2",{children:["Sign In To Your ",h.jsx("br",{}),"Account"]})}),h.jsx("div",{className:"form-container",children:h.jsx(id,{initialValues:u,validationSchema:p,onSubmit:g,children:_=>h.jsxs(kt,{onSubmit:_.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group mb-4 visibility-hidde opacity-",children:[h.jsx(kt.Label,{className:"pe-none",children:"Your team URL"}),h.jsx(kt.Control,{type:"text",placeholder:"Your team URL",name:"domain",value:_.values.domain,onBlur:_.handleBlur,onChange:_.handleChange,required:!0,autoComplete:"off"}),_.touched.domain&&_.errors.domain?h.jsx("p",{className:"form-error",children:_.errors.domain}):null]}),h.jsxs(kt.Group,{className:"form-group mb-4",children:[h.jsx(kt.Label,{children:"Your company email id"}),h.jsx(kt.Control,{type:"email",placeholder:"Your Company Email Id",name:"email",value:_.values.email,onBlur:_.handleBlur,onChange:_.handleChange,required:!0,autoComplete:"off"}),_.touched.email&&_.errors.email?h.jsx("p",{className:"form-error",children:_.errors.email}):null]}),h.jsx("div",{className:"btn-wrapper",children:h.jsx(Pt,{type:"submit",size:"lg",disabled:!_.isValid,className:"btn-theme btn-shadow btn-primary btn-block w-100",children:n?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):_.isValid?"Sign in":"Please fill out all info"})})]})})})]})}),i&&(l==null?void 0:l.login_scheme)==="Password"&&h.jsx(BWe,{data:l}),i&&(l==null?void 0:l.login_scheme)==="OTP"&&h.jsx(UWe,{data:l})]})}function zWe(){return h.jsx("section",{className:"home-page-content-wrapper container-fluid d-flex",children:h.jsx(VWe,{})})}var u_e={},GQ={};function Phe(n){return n!==null&&typeof n=="object"&&"constructor"in n&&n.constructor===Object}function WQ(n,t){n===void 0&&(n={}),t===void 0&&(t={}),Object.keys(t).forEach(i=>{typeof n[i]>"u"?n[i]=t[i]:Phe(t[i])&&Phe(n[i])&&Object.keys(t[i]).length>0&&WQ(n[i],t[i])})}const h_e={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function lc(){const n=typeof document<"u"?document:{};return WQ(n,h_e),n}const HWe={document:h_e,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(n){return typeof setTimeout>"u"?(n(),null):setTimeout(n,0)},cancelAnimationFrame(n){typeof setTimeout>"u"||clearTimeout(n)}};function ea(){const n=typeof window<"u"?window:{};return WQ(n,HWe),n}function Z0(n){return n===void 0&&(n=""),n.trim().split(" ").filter(t=>!!t.trim())}function GWe(n){const t=n;Object.keys(t).forEach(i=>{try{t[i]=null}catch{}try{delete t[i]}catch{}})}function xE(n,t){return t===void 0&&(t=0),setTimeout(n,t)}function Zu(){return Date.now()}function WWe(n){const t=ea();let i;return t.getComputedStyle&&(i=t.getComputedStyle(n,null)),!i&&n.currentStyle&&(i=n.currentStyle),i||(i=n.style),i}function qq(n,t){t===void 0&&(t="x");const i=ea();let s,l,d;const u=WWe(n);return i.WebKitCSSMatrix?(l=u.transform||u.webkitTransform,l.split(",").length>6&&(l=l.split(", ").map(p=>p.replace(",",".")).join(", ")),d=new i.WebKitCSSMatrix(l==="none"?"":l)):(d=u.MozTransform||u.OTransform||u.MsTransform||u.msTransform||u.transform||u.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),s=d.toString().split(",")),t==="x"&&(i.WebKitCSSMatrix?l=d.m41:s.length===16?l=parseFloat(s[12]):l=parseFloat(s[4])),t==="y"&&(i.WebKitCSSMatrix?l=d.m42:s.length===16?l=parseFloat(s[13]):l=parseFloat(s[5])),l||0}function PI(n){return typeof n=="object"&&n!==null&&n.constructor&&Object.prototype.toString.call(n).slice(8,-1)==="Object"}function $We(n){return typeof window<"u"&&typeof window.HTMLElement<"u"?n instanceof HTMLElement:n&&(n.nodeType===1||n.nodeType===11)}function Vd(){const n=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let i=1;it.indexOf(d)<0);for(let d=0,u=l.length;dd?"next":"prev",y=(b,A)=>_==="next"&&b>=A||_==="prev"&&b<=A,E=()=>{p=new Date().getTime(),u===null&&(u=p);const b=Math.max(Math.min((p-u)/g,1),0),A=.5-Math.cos(b*Math.PI)/2;let N=d+A*(i-d);if(y(N,i)&&(N=i),t.wrapperEl.scrollTo({[s]:N}),y(N,i)){t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout(()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[s]:N})}),l.cancelAnimationFrame(t.cssModeFrameID);return}t.cssModeFrameID=l.requestAnimationFrame(E)};E()}function qE(n){return n.querySelector(".swiper-slide-transform")||n.shadowRoot&&n.shadowRoot.querySelector(".swiper-slide-transform")||n}function $o(n,t){return t===void 0&&(t=""),[...n.children].filter(i=>i.matches(t))}function b7(n){try{console.warn(n);return}catch{}}function Kd(n,t){t===void 0&&(t=[]);const i=document.createElement(n);return i.classList.add(...Array.isArray(t)?t:Z0(t)),i}function C7(n){const t=ea(),i=lc(),s=n.getBoundingClientRect(),l=i.body,d=n.clientTop||l.clientTop||0,u=n.clientLeft||l.clientLeft||0,p=n===t?t.scrollY:n.scrollTop,g=n===t?t.scrollX:n.scrollLeft;return{top:s.top+p-d,left:s.left+g-u}}function KWe(n,t){const i=[];for(;n.previousElementSibling;){const s=n.previousElementSibling;t?s.matches(t)&&i.push(s):i.push(s),n=s}return i}function qWe(n,t){const i=[];for(;n.nextElementSibling;){const s=n.nextElementSibling;t?s.matches(t)&&i.push(s):i.push(s),n=s}return i}function mv(n,t){return ea().getComputedStyle(n,null).getPropertyValue(t)}function q4(n){let t=n,i;if(t){for(i=0;(t=t.previousSibling)!==null;)t.nodeType===1&&(i+=1);return i}}function vE(n,t){const i=[];let s=n.parentElement;for(;s;)t?s.matches(t)&&i.push(s):i.push(s),s=s.parentElement;return i}function m4(n,t){function i(s){s.target===n&&(t.call(n,s),n.removeEventListener("transitionend",i))}t&&n.addEventListener("transitionend",i)}function Yq(n,t,i){const s=ea();return i?n[t==="width"?"offsetWidth":"offsetHeight"]+parseFloat(s.getComputedStyle(n,null).getPropertyValue(t==="width"?"margin-right":"margin-top"))+parseFloat(s.getComputedStyle(n,null).getPropertyValue(t==="width"?"margin-left":"margin-bottom")):n.offsetWidth}function lr(n){return(Array.isArray(n)?n:[n]).filter(t=>!!t)}let H$;function YWe(){const n=ea(),t=lc();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in n||n.DocumentTouch&&t instanceof n.DocumentTouch)}}function p_e(){return H$||(H$=YWe()),H$}let G$;function XWe(n){let{userAgent:t}=n===void 0?{}:n;const i=p_e(),s=ea(),l=s.navigator.platform,d=t||s.navigator.userAgent,u={ios:!1,android:!1},p=s.screen.width,g=s.screen.height,_=d.match(/(Android);?[\s\/]+([\d.]+)?/);let y=d.match(/(iPad).*OS\s([\d_]+)/);const E=d.match(/(iPod)(.*OS\s([\d_]+))?/),b=!y&&d.match(/(iPhone\sOS|iOS)\s([\d_]+)/),A=l==="Win32";let N=l==="MacIntel";const O=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!y&&N&&i.touch&&O.indexOf(`${p}x${g}`)>=0&&(y=d.match(/(Version)\/([\d.]+)/),y||(y=[0,1,"13_0_0"]),N=!1),_&&!A&&(u.os="android",u.android=!0),(y||b||E)&&(u.os="ios",u.ios=!0),u}function m_e(n){return n===void 0&&(n={}),G$||(G$=XWe(n)),G$}let W$;function JWe(){const n=ea(),t=m_e();let i=!1;function s(){const p=n.navigator.userAgent.toLowerCase();return p.indexOf("safari")>=0&&p.indexOf("chrome")<0&&p.indexOf("android")<0}if(s()){const p=String(n.navigator.userAgent);if(p.includes("Version/")){const[g,_]=p.split("Version/")[1].split(" ")[0].split(".").map(y=>Number(y));i=g<16||g===16&&_<2}}const l=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(n.navigator.userAgent),d=s(),u=d||l&&t.ios;return{isSafari:i||d,needPerspectiveFix:i,need3dFix:u,isWebView:l}}function QWe(){return W$||(W$=JWe()),W$}function ZWe(n){let{swiper:t,on:i,emit:s}=n;const l=ea();let d=null,u=null;const p=()=>{!t||t.destroyed||!t.initialized||(s("beforeResize"),s("resize"))},g=()=>{!t||t.destroyed||!t.initialized||(d=new ResizeObserver(E=>{u=l.requestAnimationFrame(()=>{const{width:b,height:A}=t;let N=b,O=A;E.forEach(D=>{let{contentBoxSize:P,contentRect:j,target:M}=D;M&&M!==t.el||(N=j?j.width:(P[0]||P).inlineSize,O=j?j.height:(P[0]||P).blockSize)}),(N!==b||O!==A)&&p()})}),d.observe(t.el))},_=()=>{u&&l.cancelAnimationFrame(u),d&&d.unobserve&&t.el&&(d.unobserve(t.el),d=null)},y=()=>{!t||t.destroyed||!t.initialized||s("orientationchange")};i("init",()=>{if(t.params.resizeObserver&&typeof l.ResizeObserver<"u"){g();return}l.addEventListener("resize",p),l.addEventListener("orientationchange",y)}),i("destroy",()=>{_(),l.removeEventListener("resize",p),l.removeEventListener("orientationchange",y)})}function e$e(n){let{swiper:t,extendParams:i,on:s,emit:l}=n;const d=[],u=ea(),p=function(y,E){E===void 0&&(E={});const b=u.MutationObserver||u.WebkitMutationObserver,A=new b(N=>{if(t.__preventObserver__)return;if(N.length===1){l("observerUpdate",N[0]);return}const O=function(){l("observerUpdate",N[0])};u.requestAnimationFrame?u.requestAnimationFrame(O):u.setTimeout(O,0)});A.observe(y,{attributes:typeof E.attributes>"u"?!0:E.attributes,childList:typeof E.childList>"u"?!0:E.childList,characterData:typeof E.characterData>"u"?!0:E.characterData}),d.push(A)},g=()=>{if(t.params.observer){if(t.params.observeParents){const y=vE(t.hostEl);for(let E=0;E{d.forEach(y=>{y.disconnect()}),d.splice(0,d.length)};i({observer:!1,observeParents:!1,observeSlideChildren:!1}),s("init",g),s("destroy",_)}var t$e={on(n,t,i){const s=this;if(!s.eventsListeners||s.destroyed||typeof t!="function")return s;const l=i?"unshift":"push";return n.split(" ").forEach(d=>{s.eventsListeners[d]||(s.eventsListeners[d]=[]),s.eventsListeners[d][l](t)}),s},once(n,t,i){const s=this;if(!s.eventsListeners||s.destroyed||typeof t!="function")return s;function l(){s.off(n,l),l.__emitterProxy&&delete l.__emitterProxy;for(var d=arguments.length,u=new Array(d),p=0;p=0&&t.eventsAnyListeners.splice(i,1),t},off(n,t){const i=this;return!i.eventsListeners||i.destroyed||!i.eventsListeners||n.split(" ").forEach(s=>{typeof t>"u"?i.eventsListeners[s]=[]:i.eventsListeners[s]&&i.eventsListeners[s].forEach((l,d)=>{(l===t||l.__emitterProxy&&l.__emitterProxy===t)&&i.eventsListeners[s].splice(d,1)})}),i},emit(){const n=this;if(!n.eventsListeners||n.destroyed||!n.eventsListeners)return n;let t,i,s;for(var l=arguments.length,d=new Array(l),u=0;u{n.eventsAnyListeners&&n.eventsAnyListeners.length&&n.eventsAnyListeners.forEach(_=>{_.apply(s,[g,...i])}),n.eventsListeners&&n.eventsListeners[g]&&n.eventsListeners[g].forEach(_=>{_.apply(s,i)})}),n}};function n$e(){const n=this;let t,i;const s=n.el;typeof n.params.width<"u"&&n.params.width!==null?t=n.params.width:t=s.clientWidth,typeof n.params.height<"u"&&n.params.height!==null?i=n.params.height:i=s.clientHeight,!(t===0&&n.isHorizontal()||i===0&&n.isVertical())&&(t=t-parseInt(mv(s,"padding-left")||0,10)-parseInt(mv(s,"padding-right")||0,10),i=i-parseInt(mv(s,"padding-top")||0,10)-parseInt(mv(s,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(i)&&(i=0),Object.assign(n,{width:t,height:i,size:n.isHorizontal()?t:i}))}function i$e(){const n=this;function t(ae,te){return parseFloat(ae.getPropertyValue(n.getDirectionLabel(te))||0)}const i=n.params,{wrapperEl:s,slidesEl:l,size:d,rtlTranslate:u,wrongRTL:p}=n,g=n.virtual&&i.virtual.enabled,_=g?n.virtual.slides.length:n.slides.length,y=$o(l,`.${n.params.slideClass}, swiper-slide`),E=g?n.virtual.slides.length:y.length;let b=[];const A=[],N=[];let O=i.slidesOffsetBefore;typeof O=="function"&&(O=i.slidesOffsetBefore.call(n));let D=i.slidesOffsetAfter;typeof D=="function"&&(D=i.slidesOffsetAfter.call(n));const P=n.snapGrid.length,j=n.slidesGrid.length;let M=i.spaceBetween,V=-O,H=0,$=0;if(typeof d>"u")return;typeof M=="string"&&M.indexOf("%")>=0?M=parseFloat(M.replace("%",""))/100*d:typeof M=="string"&&(M=parseFloat(M)),n.virtualSize=-M,y.forEach(ae=>{u?ae.style.marginLeft="":ae.style.marginRight="",ae.style.marginBottom="",ae.style.marginTop=""}),i.centeredSlides&&i.cssMode&&(LI(s,"--swiper-centered-offset-before",""),LI(s,"--swiper-centered-offset-after",""));const Q=i.grid&&i.grid.rows>1&&n.grid;Q?n.grid.initSlides(y):n.grid&&n.grid.unsetSlides();let Y;const le=i.slidesPerView==="auto"&&i.breakpoints&&Object.keys(i.breakpoints).filter(ae=>typeof i.breakpoints[ae].slidesPerView<"u").length>0;for(let ae=0;ae1&&b.push(n.virtualSize-d)}if(g&&i.loop){const ae=N[0]+M;if(i.slidesPerGroup>1){const te=Math.ceil((n.virtual.slidesBefore+n.virtual.slidesAfter)/i.slidesPerGroup),de=ae*i.slidesPerGroup;for(let G=0;G!i.cssMode||i.loop?!0:de!==y.length-1).forEach(te=>{te.style[ae]=`${M}px`})}if(i.centeredSlides&&i.centeredSlidesBounds){let ae=0;N.forEach(de=>{ae+=de+(M||0)}),ae-=M;const te=ae-d;b=b.map(de=>de<=0?-O:de>te?te+D:de)}if(i.centerInsufficientSlides){let ae=0;if(N.forEach(te=>{ae+=te+(M||0)}),ae-=M,ae{b[G]=de-te}),A.forEach((de,G)=>{A[G]=de+te})}}if(Object.assign(n,{slides:y,snapGrid:b,slidesGrid:A,slidesSizesGrid:N}),i.centeredSlides&&i.cssMode&&!i.centeredSlidesBounds){LI(s,"--swiper-centered-offset-before",`${-b[0]}px`),LI(s,"--swiper-centered-offset-after",`${n.size/2-N[N.length-1]/2}px`);const ae=-n.snapGrid[0],te=-n.slidesGrid[0];n.snapGrid=n.snapGrid.map(de=>de+ae),n.slidesGrid=n.slidesGrid.map(de=>de+te)}if(E!==_&&n.emit("slidesLengthChange"),b.length!==P&&(n.params.watchOverflow&&n.checkOverflow(),n.emit("snapGridLengthChange")),A.length!==j&&n.emit("slidesGridLengthChange"),i.watchSlidesProgress&&n.updateSlidesOffset(),n.emit("slidesUpdated"),!g&&!i.cssMode&&(i.effect==="slide"||i.effect==="fade")){const ae=`${i.containerModifierClass}backface-hidden`,te=n.el.classList.contains(ae);E<=i.maxBackfaceHiddenSlides?te||n.el.classList.add(ae):te&&n.el.classList.remove(ae)}}function r$e(n){const t=this,i=[],s=t.virtual&&t.params.virtual.enabled;let l=0,d;typeof n=="number"?t.setTransition(n):n===!0&&t.setTransition(t.params.speed);const u=p=>s?t.slides[t.getSlideIndexByData(p)]:t.slides[p];if(t.params.slidesPerView!=="auto"&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach(p=>{i.push(p)});else for(d=0;dt.slides.length&&!s)break;i.push(u(p))}else i.push(u(t.activeIndex));for(d=0;dl?p:l}(l||l===0)&&(t.wrapperEl.style.height=`${l}px`)}function s$e(){const n=this,t=n.slides,i=n.isElement?n.isHorizontal()?n.wrapperEl.offsetLeft:n.wrapperEl.offsetTop:0;for(let s=0;s"u"&&t.updateSlidesOffset();let u=-n;l&&(u=n),s.forEach(g=>{g.classList.remove(i.slideVisibleClass,i.slideFullyVisibleClass)}),t.visibleSlidesIndexes=[],t.visibleSlides=[];let p=i.spaceBetween;typeof p=="string"&&p.indexOf("%")>=0?p=parseFloat(p.replace("%",""))/100*t.size:typeof p=="string"&&(p=parseFloat(p));for(let g=0;g=0&&A<=t.size-t.slidesSizesGrid[g];(A>=0&&A1&&N<=t.size||A<=0&&N>=t.size)&&(t.visibleSlides.push(_),t.visibleSlidesIndexes.push(g),s[g].classList.add(i.slideVisibleClass)),O&&s[g].classList.add(i.slideFullyVisibleClass),_.progress=l?-E:E,_.originalProgress=l?-b:b}}function o$e(n){const t=this;if(typeof n>"u"){const y=t.rtlTranslate?-1:1;n=t&&t.translate&&t.translate*y||0}const i=t.params,s=t.maxTranslate()-t.minTranslate();let{progress:l,isBeginning:d,isEnd:u,progressLoop:p}=t;const g=d,_=u;if(s===0)l=0,d=!0,u=!0;else{l=(n-t.minTranslate())/s;const y=Math.abs(n-t.minTranslate())<1,E=Math.abs(n-t.maxTranslate())<1;d=y||l<=0,u=E||l>=1,y&&(l=0),E&&(l=1)}if(i.loop){const y=t.getSlideIndexByData(0),E=t.getSlideIndexByData(t.slides.length-1),b=t.slidesGrid[y],A=t.slidesGrid[E],N=t.slidesGrid[t.slidesGrid.length-1],O=Math.abs(n);O>=b?p=(O-b)/N:p=(O+N-A)/N,p>1&&(p-=1)}Object.assign(t,{progress:l,progressLoop:p,isBeginning:d,isEnd:u}),(i.watchSlidesProgress||i.centeredSlides&&i.autoHeight)&&t.updateSlidesProgress(n),d&&!g&&t.emit("reachBeginning toEdge"),u&&!_&&t.emit("reachEnd toEdge"),(g&&!d||_&&!u)&&t.emit("fromEdge"),t.emit("progress",l)}function l$e(){const n=this,{slides:t,params:i,slidesEl:s,activeIndex:l}=n,d=n.virtual&&i.virtual.enabled,u=n.grid&&i.grid&&i.grid.rows>1,p=E=>$o(s,`.${i.slideClass}${E}, swiper-slide${E}`)[0];t.forEach(E=>{E.classList.remove(i.slideActiveClass,i.slideNextClass,i.slidePrevClass)});let g,_,y;if(d)if(i.loop){let E=l-n.virtual.slidesBefore;E<0&&(E=n.virtual.slides.length+E),E>=n.virtual.slides.length&&(E-=n.virtual.slides.length),g=p(`[data-swiper-slide-index="${E}"]`)}else g=p(`[data-swiper-slide-index="${l}"]`);else u?(g=t.filter(E=>E.column===l)[0],y=t.filter(E=>E.column===l+1)[0],_=t.filter(E=>E.column===l-1)[0]):g=t[l];g&&(g.classList.add(i.slideActiveClass),u?(y&&y.classList.add(i.slideNextClass),_&&_.classList.add(i.slidePrevClass)):(y=qWe(g,`.${i.slideClass}, swiper-slide`)[0],i.loop&&!y&&(y=t[0]),y&&y.classList.add(i.slideNextClass),_=KWe(g,`.${i.slideClass}, swiper-slide`)[0],i.loop&&!_===0&&(_=t[t.length-1]),_&&_.classList.add(i.slidePrevClass))),n.emitSlidesClasses()}const tM=(n,t)=>{if(!n||n.destroyed||!n.params)return;const i=()=>n.isElement?"swiper-slide":`.${n.params.slideClass}`,s=t.closest(i());if(s){let l=s.querySelector(`.${n.params.lazyPreloaderClass}`);!l&&n.isElement&&(s.shadowRoot?l=s.shadowRoot.querySelector(`.${n.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{s.shadowRoot&&(l=s.shadowRoot.querySelector(`.${n.params.lazyPreloaderClass}`),l&&l.remove())})),l&&l.remove()}},$$=(n,t)=>{if(!n.slides[t])return;const i=n.slides[t].querySelector('[loading="lazy"]');i&&i.removeAttribute("loading")},Xq=n=>{if(!n||n.destroyed||!n.params)return;let t=n.params.lazyPreloadPrevNext;const i=n.slides.length;if(!i||!t||t<0)return;t=Math.min(t,i);const s=n.params.slidesPerView==="auto"?n.slidesPerViewDynamic():Math.ceil(n.params.slidesPerView),l=n.activeIndex;if(n.params.grid&&n.params.grid.rows>1){const u=l,p=[u-t];p.push(...Array.from({length:t}).map((g,_)=>u+s+_)),n.slides.forEach((g,_)=>{p.includes(g.column)&&$$(n,_)});return}const d=l+s-1;if(n.params.rewind||n.params.loop)for(let u=l-t;u<=d+t;u+=1){const p=(u%i+i)%i;(pd)&&$$(n,p)}else for(let u=Math.max(l-t,0);u<=Math.min(d+t,i-1);u+=1)u!==l&&(u>d||u=t[d]&&s=t[d]&&s=t[d]&&(l=d);return i.normalizeSlideIndex&&(l<0||typeof l>"u")&&(l=0),l}function d$e(n){const t=this,i=t.rtlTranslate?t.translate:-t.translate,{snapGrid:s,params:l,activeIndex:d,realIndex:u,snapIndex:p}=t;let g=n,_;const y=A=>{let N=A-t.virtual.slidesBefore;return N<0&&(N=t.virtual.slides.length+N),N>=t.virtual.slides.length&&(N-=t.virtual.slides.length),N};if(typeof g>"u"&&(g=c$e(t)),s.indexOf(i)>=0)_=s.indexOf(i);else{const A=Math.min(l.slidesPerGroupSkip,g);_=A+Math.floor((g-A)/l.slidesPerGroup)}if(_>=s.length&&(_=s.length-1),g===d&&!t.params.loop){_!==p&&(t.snapIndex=_,t.emit("snapIndexChange"));return}if(g===d&&t.params.loop&&t.virtual&&t.params.virtual.enabled){t.realIndex=y(g);return}const E=t.grid&&l.grid&&l.grid.rows>1;let b;if(t.virtual&&l.virtual.enabled&&l.loop)b=y(g);else if(E){const A=t.slides.filter(O=>O.column===g)[0];let N=parseInt(A.getAttribute("data-swiper-slide-index"),10);Number.isNaN(N)&&(N=Math.max(t.slides.indexOf(A),0)),b=Math.floor(N/l.grid.rows)}else if(t.slides[g]){const A=t.slides[g].getAttribute("data-swiper-slide-index");A?b=parseInt(A,10):b=g}else b=g;Object.assign(t,{previousSnapIndex:p,snapIndex:_,previousRealIndex:u,realIndex:b,previousIndex:d,activeIndex:g}),t.initialized&&Xq(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(u!==b&&t.emit("realIndexChange"),t.emit("slideChange"))}function u$e(n,t){const i=this,s=i.params;let l=n.closest(`.${s.slideClass}, swiper-slide`);!l&&i.isElement&&t&&t.length>1&&t.includes(n)&&[...t.slice(t.indexOf(n)+1,t.length)].forEach(p=>{!l&&p.matches&&p.matches(`.${s.slideClass}, swiper-slide`)&&(l=p)});let d=!1,u;if(l){for(let p=0;pg?y=g:s&&n<_?y=_:y=n,d.updateProgress(y),u.cssMode){const E=d.isHorizontal();if(t===0)p[E?"scrollLeft":"scrollTop"]=-y;else{if(!d.support.smoothScroll)return f_e({swiper:d,targetPosition:-y,side:E?"left":"top"}),!0;p.scrollTo({[E?"left":"top"]:-y,behavior:"smooth"})}return!0}return t===0?(d.setTransition(0),d.setTranslate(y),i&&(d.emit("beforeTransitionStart",t,l),d.emit("transitionEnd"))):(d.setTransition(t),d.setTranslate(y),i&&(d.emit("beforeTransitionStart",t,l),d.emit("transitionStart")),d.animating||(d.animating=!0,d.onTranslateToWrapperTransitionEnd||(d.onTranslateToWrapperTransitionEnd=function(b){!d||d.destroyed||b.target===this&&(d.wrapperEl.removeEventListener("transitionend",d.onTranslateToWrapperTransitionEnd),d.onTranslateToWrapperTransitionEnd=null,delete d.onTranslateToWrapperTransitionEnd,i&&d.emit("transitionEnd"))}),d.wrapperEl.addEventListener("transitionend",d.onTranslateToWrapperTransitionEnd))),!0}var y$e={getTranslate:f$e,setTranslate:p$e,minTranslate:m$e,maxTranslate:g$e,translateTo:v$e};function _$e(n,t){const i=this;i.params.cssMode||(i.wrapperEl.style.transitionDuration=`${n}ms`,i.wrapperEl.style.transitionDelay=n===0?"0ms":""),i.emit("setTransition",n,t)}function g_e(n){let{swiper:t,runCallbacks:i,direction:s,step:l}=n;const{activeIndex:d,previousIndex:u}=t;let p=s;if(p||(d>u?p="next":d=g.length&&(D=g.length-1);const P=-g[D];if(p.normalizeSlideIndex)for(let M=0;M<_.length;M+=1){const V=-Math.floor(P*100),H=Math.floor(_[M]*100),$=Math.floor(_[M+1]*100);typeof _[M+1]<"u"?V>=H&&V<$-($-H)/2?u=M:V>=H&&V<$&&(u=M+1):V>=H&&(u=M)}if(d.initialized&&u!==E&&(!d.allowSlideNext&&(b?P>d.translate&&P>d.minTranslate():Pd.translate&&P>d.maxTranslate()&&(E||0)!==u))return!1;u!==(y||0)&&i&&d.emit("beforeSlideChangeStart"),d.updateProgress(P);let j;if(u>E?j="next":u0?(d._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{A[M?"scrollLeft":"scrollTop"]=V})):A[M?"scrollLeft":"scrollTop"]=V,H&&requestAnimationFrame(()=>{d.wrapperEl.style.scrollSnapType="",d._immediateVirtual=!1})}else{if(!d.support.smoothScroll)return f_e({swiper:d,targetPosition:V,side:M?"left":"top"}),!0;A.scrollTo({[M?"left":"top"]:V,behavior:"smooth"})}return!0}return d.setTransition(t),d.setTranslate(P),d.updateActiveIndex(u),d.updateSlidesClasses(),d.emit("beforeTransitionStart",t,s),d.transitionStart(i,j),t===0?d.transitionEnd(i,j):d.animating||(d.animating=!0,d.onSlideToWrapperTransitionEnd||(d.onSlideToWrapperTransitionEnd=function(V){!d||d.destroyed||V.target===this&&(d.wrapperEl.removeEventListener("transitionend",d.onSlideToWrapperTransitionEnd),d.onSlideToWrapperTransitionEnd=null,delete d.onSlideToWrapperTransitionEnd,d.transitionEnd(i,j))}),d.wrapperEl.addEventListener("transitionend",d.onSlideToWrapperTransitionEnd)),!0}function C$e(n,t,i,s){n===void 0&&(n=0),t===void 0&&(t=this.params.speed),i===void 0&&(i=!0),typeof n=="string"&&(n=parseInt(n,10));const l=this;if(l.destroyed)return;const d=l.grid&&l.params.grid&&l.params.grid.rows>1;let u=n;if(l.params.loop)if(l.virtual&&l.params.virtual.enabled)u=u+l.virtual.slidesBefore;else{let p;if(d){const b=u*l.params.grid.rows;p=l.slides.filter(A=>A.getAttribute("data-swiper-slide-index")*1===b)[0].column}else p=l.getSlideIndexByData(u);const g=d?Math.ceil(l.slides.length/l.params.grid.rows):l.slides.length,{centeredSlides:_}=l.params;let y=l.params.slidesPerView;y==="auto"?y=l.slidesPerViewDynamic():(y=Math.ceil(parseFloat(l.params.slidesPerView,10)),_&&y%2===0&&(y=y+1));let E=g-pA.getAttribute("data-swiper-slide-index")*1===b)[0].column}else u=l.getSlideIndexByData(u)}return requestAnimationFrame(()=>{l.slideTo(u,t,i,s)}),l}function T$e(n,t,i){n===void 0&&(n=this.params.speed),t===void 0&&(t=!0);const s=this,{enabled:l,params:d,animating:u}=s;if(!l||s.destroyed)return s;let p=d.slidesPerGroup;d.slidesPerView==="auto"&&d.slidesPerGroup===1&&d.slidesPerGroupAuto&&(p=Math.max(s.slidesPerViewDynamic("current",!0),1));const g=s.activeIndex{s.slideTo(s.activeIndex+g,n,t,i)}),!0}return d.rewind&&s.isEnd?s.slideTo(0,n,t,i):s.slideTo(s.activeIndex+g,n,t,i)}function R$e(n,t,i){n===void 0&&(n=this.params.speed),t===void 0&&(t=!0);const s=this,{params:l,snapGrid:d,slidesGrid:u,rtlTranslate:p,enabled:g,animating:_}=s;if(!g||s.destroyed)return s;const y=s.virtual&&l.virtual.enabled;if(l.loop){if(_&&!y&&l.loopPreventsSliding)return!1;s.loopFix({direction:"prev"}),s._clientLeft=s.wrapperEl.clientLeft}const E=p?s.translate:-s.translate;function b(P){return P<0?-Math.floor(Math.abs(P)):Math.floor(P)}const A=b(E),N=d.map(P=>b(P));let O=d[N.indexOf(A)-1];if(typeof O>"u"&&l.cssMode){let P;d.forEach((j,M)=>{A>=j&&(P=M)}),typeof P<"u"&&(O=d[P>0?P-1:P])}let D=0;if(typeof O<"u"&&(D=u.indexOf(O),D<0&&(D=s.activeIndex-1),l.slidesPerView==="auto"&&l.slidesPerGroup===1&&l.slidesPerGroupAuto&&(D=D-s.slidesPerViewDynamic("previous",!0)+1,D=Math.max(D,0))),l.rewind&&s.isBeginning){const P=s.params.virtual&&s.params.virtual.enabled&&s.virtual?s.virtual.slides.length-1:s.slides.length-1;return s.slideTo(P,n,t,i)}else if(l.loop&&s.activeIndex===0&&l.cssMode)return requestAnimationFrame(()=>{s.slideTo(D,n,t,i)}),!0;return s.slideTo(D,n,t,i)}function x$e(n,t,i){n===void 0&&(n=this.params.speed),t===void 0&&(t=!0);const s=this;if(!s.destroyed)return s.slideTo(s.activeIndex,n,t,i)}function A$e(n,t,i,s){n===void 0&&(n=this.params.speed),t===void 0&&(t=!0),s===void 0&&(s=.5);const l=this;if(l.destroyed)return;let d=l.activeIndex;const u=Math.min(l.params.slidesPerGroupSkip,d),p=u+Math.floor((d-u)/l.params.slidesPerGroup),g=l.rtlTranslate?l.translate:-l.translate;if(g>=l.snapGrid[p]){const _=l.snapGrid[p],y=l.snapGrid[p+1];g-_>(y-_)*s&&(d+=l.params.slidesPerGroup)}else{const _=l.snapGrid[p-1],y=l.snapGrid[p];g-_<=(y-_)*s&&(d-=l.params.slidesPerGroup)}return d=Math.max(d,0),d=Math.min(d,l.slidesGrid.length-1),l.slideTo(d,n,t,i)}function I$e(){const n=this;if(n.destroyed)return;const{params:t,slidesEl:i}=n,s=t.slidesPerView==="auto"?n.slidesPerViewDynamic():t.slidesPerView;let l=n.clickedIndex,d;const u=n.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(n.animating)return;d=parseInt(n.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?ln.slides.length-n.loopedSlides+s/2?(n.loopFix(),l=n.getSlideIndex($o(i,`${u}[data-swiper-slide-index="${d}"]`)[0]),xE(()=>{n.slideTo(l)})):n.slideTo(l):l>n.slides.length-s?(n.loopFix(),l=n.getSlideIndex($o(i,`${u}[data-swiper-slide-index="${d}"]`)[0]),xE(()=>{n.slideTo(l)})):n.slideTo(l)}else n.slideTo(l)}var N$e={slideTo:b$e,slideToLoop:C$e,slideNext:T$e,slidePrev:R$e,slideReset:x$e,slideToClosest:A$e,slideToClickedSlide:I$e};function O$e(n){const t=this,{params:i,slidesEl:s}=t;if(!i.loop||t.virtual&&t.params.virtual.enabled)return;const l=()=>{$o(s,`.${i.slideClass}, swiper-slide`).forEach((E,b)=>{E.setAttribute("data-swiper-slide-index",b)})},d=t.grid&&i.grid&&i.grid.rows>1,u=i.slidesPerGroup*(d?i.grid.rows:1),p=t.slides.length%u!==0,g=d&&t.slides.length%i.grid.rows!==0,_=y=>{for(let E=0;E1;_.length"u"?d=g.getSlideIndex(_.filter(G=>G.classList.contains(A.slideActiveClass))[0]):H=d;const $=s==="next"||!s,Q=s==="prev"||!s;let Y=0,le=0;const ae=j?Math.ceil(_.length/A.grid.rows):_.length,de=(j?_[d].column:d)+(N&&typeof l>"u"?-O/2+.5:0);if(de=0;he-=1)_[he].column===_e&&M.push(he)}else M.push(ae-ie-1)}}else if(de+O>ae-P){le=Math.max(de-(ae-P*2),D);for(let G=0;G{_e.column===ie&&V.push(he)}):V.push(ie)}}if(g.__preventObserver__=!0,requestAnimationFrame(()=>{g.__preventObserver__=!1}),Q&&M.forEach(G=>{_[G].swiperLoopMoveDOM=!0,b.prepend(_[G]),_[G].swiperLoopMoveDOM=!1}),$&&V.forEach(G=>{_[G].swiperLoopMoveDOM=!0,b.append(_[G]),_[G].swiperLoopMoveDOM=!1}),g.recalcSlides(),A.slidesPerView==="auto"?g.updateSlides():j&&(M.length>0&&Q||V.length>0&&$)&&g.slides.forEach((G,ie)=>{g.grid.updateSlide(ie,G,g.slides)}),A.watchSlidesProgress&&g.updateSlidesOffset(),i){if(M.length>0&&Q){if(typeof t>"u"){const G=g.slidesGrid[H],_e=g.slidesGrid[H+Y]-G;p?g.setTranslate(g.translate-_e):(g.slideTo(H+Y,0,!1,!0),l&&(g.touchEventsData.startTranslate=g.touchEventsData.startTranslate-_e,g.touchEventsData.currentTranslate=g.touchEventsData.currentTranslate-_e))}else if(l){const G=j?M.length/A.grid.rows:M.length;g.slideTo(g.activeIndex+G,0,!1,!0),g.touchEventsData.currentTranslate=g.translate}}else if(V.length>0&&$)if(typeof t>"u"){const G=g.slidesGrid[H],_e=g.slidesGrid[H-le]-G;p?g.setTranslate(g.translate-_e):(g.slideTo(H-le,0,!1,!0),l&&(g.touchEventsData.startTranslate=g.touchEventsData.startTranslate-_e,g.touchEventsData.currentTranslate=g.touchEventsData.currentTranslate-_e))}else{const G=j?V.length/A.grid.rows:V.length;g.slideTo(g.activeIndex-G,0,!1,!0)}}if(g.allowSlidePrev=y,g.allowSlideNext=E,g.controller&&g.controller.control&&!u){const G={slideRealIndex:t,direction:s,setTranslate:l,activeSlideIndex:d,byController:!0};Array.isArray(g.controller.control)?g.controller.control.forEach(ie=>{!ie.destroyed&&ie.params.loop&&ie.loopFix({...G,slideTo:ie.params.slidesPerView===A.slidesPerView?i:!1})}):g.controller.control instanceof g.constructor&&g.controller.control.params.loop&&g.controller.control.loopFix({...G,slideTo:g.controller.control.params.slidesPerView===A.slidesPerView?i:!1})}g.emit("loopFix")}function L$e(){const n=this,{params:t,slidesEl:i}=n;if(!t.loop||n.virtual&&n.params.virtual.enabled)return;n.recalcSlides();const s=[];n.slides.forEach(l=>{const d=typeof l.swiperSlideIndex>"u"?l.getAttribute("data-swiper-slide-index")*1:l.swiperSlideIndex;s[d]=l}),n.slides.forEach(l=>{l.removeAttribute("data-swiper-slide-index")}),s.forEach(l=>{i.append(l)}),n.recalcSlides(),n.slideTo(n.realIndex,0)}var D$e={loopCreate:O$e,loopFix:P$e,loopDestroy:L$e};function k$e(n){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const i=t.params.touchEventsTarget==="container"?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),i.style.cursor="move",i.style.cursor=n?"grabbing":"grab",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1})}function M$e(){const n=this;n.params.watchOverflow&&n.isLocked||n.params.cssMode||(n.isElement&&(n.__preventObserver__=!0),n[n.params.touchEventsTarget==="container"?"el":"wrapperEl"].style.cursor="",n.isElement&&requestAnimationFrame(()=>{n.__preventObserver__=!1}))}var j$e={setGrabCursor:k$e,unsetGrabCursor:M$e};function U$e(n,t){t===void 0&&(t=this);function i(s){if(!s||s===lc()||s===ea())return null;s.assignedSlot&&(s=s.assignedSlot);const l=s.closest(n);return!l&&!s.getRootNode?null:l||i(s.getRootNode().host)}return i(t)}function Lhe(n,t,i){const s=ea(),{params:l}=n,d=l.edgeSwipeDetection,u=l.edgeSwipeThreshold;return d&&(i<=u||i>=s.innerWidth-u)?d==="prevent"?(t.preventDefault(),!0):!1:!0}function F$e(n){const t=this,i=lc();let s=n;s.originalEvent&&(s=s.originalEvent);const l=t.touchEventsData;if(s.type==="pointerdown"){if(l.pointerId!==null&&l.pointerId!==s.pointerId)return;l.pointerId=s.pointerId}else s.type==="touchstart"&&s.targetTouches.length===1&&(l.touchId=s.targetTouches[0].identifier);if(s.type==="touchstart"){Lhe(t,s,s.targetTouches[0].pageX);return}const{params:d,touches:u,enabled:p}=t;if(!p||!d.simulateTouch&&s.pointerType==="mouse"||t.animating&&d.preventInteractionOnTransition)return;!t.animating&&d.cssMode&&d.loop&&t.loopFix();let g=s.target;if(d.touchEventsTarget==="wrapper"&&!t.wrapperEl.contains(g)||"which"in s&&s.which===3||"button"in s&&s.button>0||l.isTouched&&l.isMoved)return;const _=!!d.noSwipingClass&&d.noSwipingClass!=="",y=s.composedPath?s.composedPath():s.path;_&&s.target&&s.target.shadowRoot&&y&&(g=y[0]);const E=d.noSwipingSelector?d.noSwipingSelector:`.${d.noSwipingClass}`,b=!!(s.target&&s.target.shadowRoot);if(d.noSwiping&&(b?U$e(E,g):g.closest(E))){t.allowClick=!0;return}if(d.swipeHandler&&!g.closest(d.swipeHandler))return;u.currentX=s.pageX,u.currentY=s.pageY;const A=u.currentX,N=u.currentY;if(!Lhe(t,s,A))return;Object.assign(l,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),u.startX=A,u.startY=N,l.touchStartTime=Zu(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,d.threshold>0&&(l.allowThresholdMove=!1);let O=!0;g.matches(l.focusableElements)&&(O=!1,g.nodeName==="SELECT"&&(l.isTouched=!1)),i.activeElement&&i.activeElement.matches(l.focusableElements)&&i.activeElement!==g&&i.activeElement.blur();const D=O&&t.allowTouchMove&&d.touchStartPreventDefault;(d.touchStartForcePreventDefault||D)&&!g.isContentEditable&&s.preventDefault(),d.freeMode&&d.freeMode.enabled&&t.freeMode&&t.animating&&!d.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",s)}function B$e(n){const t=lc(),i=this,s=i.touchEventsData,{params:l,touches:d,rtlTranslate:u,enabled:p}=i;if(!p||!l.simulateTouch&&n.pointerType==="mouse")return;let g=n;if(g.originalEvent&&(g=g.originalEvent),g.type==="pointermove"&&(s.touchId!==null||g.pointerId!==s.pointerId))return;let _;if(g.type==="touchmove"){if(_=[...g.changedTouches].filter($=>$.identifier===s.touchId)[0],!_||_.identifier!==s.touchId)return}else _=g;if(!s.isTouched){s.startMoving&&s.isScrolling&&i.emit("touchMoveOpposite",g);return}const y=_.pageX,E=_.pageY;if(g.preventedByNestedSwiper){d.startX=y,d.startY=E;return}if(!i.allowTouchMove){g.target.matches(s.focusableElements)||(i.allowClick=!1),s.isTouched&&(Object.assign(d,{startX:y,startY:E,currentX:y,currentY:E}),s.touchStartTime=Zu());return}if(l.touchReleaseOnEdges&&!l.loop){if(i.isVertical()){if(Ed.startY&&i.translate>=i.minTranslate()){s.isTouched=!1,s.isMoved=!1;return}}else if(yd.startX&&i.translate>=i.minTranslate())return}if(t.activeElement&&g.target===t.activeElement&&g.target.matches(s.focusableElements)){s.isMoved=!0,i.allowClick=!1;return}s.allowTouchCallbacks&&i.emit("touchMove",g),d.previousX=d.currentX,d.previousY=d.currentY,d.currentX=y,d.currentY=E;const b=d.currentX-d.startX,A=d.currentY-d.startY;if(i.params.threshold&&Math.sqrt(b**2+A**2)"u"){let $;i.isHorizontal()&&d.currentY===d.startY||i.isVertical()&&d.currentX===d.startX?s.isScrolling=!1:b*b+A*A>=25&&($=Math.atan2(Math.abs(A),Math.abs(b))*180/Math.PI,s.isScrolling=i.isHorizontal()?$>l.touchAngle:90-$>l.touchAngle)}if(s.isScrolling&&i.emit("touchMoveOpposite",g),typeof s.startMoving>"u"&&(d.currentX!==d.startX||d.currentY!==d.startY)&&(s.startMoving=!0),s.isScrolling){s.isTouched=!1;return}if(!s.startMoving)return;i.allowClick=!1,!l.cssMode&&g.cancelable&&g.preventDefault(),l.touchMoveStopPropagation&&!l.nested&&g.stopPropagation();let N=i.isHorizontal()?b:A,O=i.isHorizontal()?d.currentX-d.previousX:d.currentY-d.previousY;l.oneWayMovement&&(N=Math.abs(N)*(u?1:-1),O=Math.abs(O)*(u?1:-1)),d.diff=N,N*=l.touchRatio,u&&(N=-N,O=-O);const D=i.touchesDirection;i.swipeDirection=N>0?"prev":"next",i.touchesDirection=O>0?"prev":"next";const P=i.params.loop&&!l.cssMode,j=i.touchesDirection==="next"&&i.allowSlideNext||i.touchesDirection==="prev"&&i.allowSlidePrev;if(!s.isMoved){if(P&&j&&i.loopFix({direction:i.swipeDirection}),s.startTranslate=i.getTranslate(),i.setTransition(0),i.animating){const $=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});i.wrapperEl.dispatchEvent($)}s.allowMomentumBounce=!1,l.grabCursor&&(i.allowSlideNext===!0||i.allowSlidePrev===!0)&&i.setGrabCursor(!0),i.emit("sliderFirstMove",g)}let M;if(new Date().getTime(),s.isMoved&&s.allowThresholdMove&&D!==i.touchesDirection&&P&&j&&Math.abs(N)>=1){Object.assign(d,{startX:y,startY:E,currentX:y,currentY:E,startTranslate:s.currentTranslate}),s.loopSwapReset=!0,s.startTranslate=s.currentTranslate;return}i.emit("sliderMove",g),s.isMoved=!0,s.currentTranslate=N+s.startTranslate;let V=!0,H=l.resistanceRatio;if(l.touchReleaseOnEdges&&(H=0),N>0?(P&&j&&!M&&s.allowThresholdMove&&s.currentTranslate>(l.centeredSlides?i.minTranslate()-i.slidesSizesGrid[i.activeIndex+1]:i.minTranslate())&&i.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),s.currentTranslate>i.minTranslate()&&(V=!1,l.resistance&&(s.currentTranslate=i.minTranslate()-1+(-i.minTranslate()+s.startTranslate+N)**H))):N<0&&(P&&j&&!M&&s.allowThresholdMove&&s.currentTranslate<(l.centeredSlides?i.maxTranslate()+i.slidesSizesGrid[i.slidesSizesGrid.length-1]:i.maxTranslate())&&i.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:i.slides.length-(l.slidesPerView==="auto"?i.slidesPerViewDynamic():Math.ceil(parseFloat(l.slidesPerView,10)))}),s.currentTranslates.startTranslate&&(s.currentTranslate=s.startTranslate),!i.allowSlidePrev&&!i.allowSlideNext&&(s.currentTranslate=s.startTranslate),l.threshold>0)if(Math.abs(N)>l.threshold||s.allowThresholdMove){if(!s.allowThresholdMove){s.allowThresholdMove=!0,d.startX=d.currentX,d.startY=d.currentY,s.currentTranslate=s.startTranslate,d.diff=i.isHorizontal()?d.currentX-d.startX:d.currentY-d.startY;return}}else{s.currentTranslate=s.startTranslate;return}!l.followFinger||l.cssMode||((l.freeMode&&l.freeMode.enabled&&i.freeMode||l.watchSlidesProgress)&&(i.updateActiveIndex(),i.updateSlidesClasses()),l.freeMode&&l.freeMode.enabled&&i.freeMode&&i.freeMode.onTouchMove(),i.updateProgress(s.currentTranslate),i.setTranslate(s.currentTranslate))}function V$e(n){const t=this,i=t.touchEventsData;let s=n;s.originalEvent&&(s=s.originalEvent);let l;if(s.type==="touchend"||s.type==="touchcancel"){if(l=[...s.changedTouches].filter(H=>H.identifier===i.touchId)[0],!l||l.identifier!==i.touchId)return}else{if(i.touchId!==null||s.pointerId!==i.pointerId)return;l=s}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(s.type)&&!(["pointercancel","contextmenu"].includes(s.type)&&(t.browser.isSafari||t.browser.isWebView)))return;i.pointerId=null,i.touchId=null;const{params:u,touches:p,rtlTranslate:g,slidesGrid:_,enabled:y}=t;if(!y||!u.simulateTouch&&s.pointerType==="mouse")return;if(i.allowTouchCallbacks&&t.emit("touchEnd",s),i.allowTouchCallbacks=!1,!i.isTouched){i.isMoved&&u.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,i.startMoving=!1;return}u.grabCursor&&i.isMoved&&i.isTouched&&(t.allowSlideNext===!0||t.allowSlidePrev===!0)&&t.setGrabCursor(!1);const E=Zu(),b=E-i.touchStartTime;if(t.allowClick){const H=s.path||s.composedPath&&s.composedPath();t.updateClickedSlide(H&&H[0]||s.target,H),t.emit("tap click",s),b<300&&E-i.lastClickTime<300&&t.emit("doubleTap doubleClick",s)}if(i.lastClickTime=Zu(),xE(()=>{t.destroyed||(t.allowClick=!0)}),!i.isTouched||!i.isMoved||!t.swipeDirection||p.diff===0&&!i.loopSwapReset||i.currentTranslate===i.startTranslate&&!i.loopSwapReset){i.isTouched=!1,i.isMoved=!1,i.startMoving=!1;return}i.isTouched=!1,i.isMoved=!1,i.startMoving=!1;let A;if(u.followFinger?A=g?t.translate:-t.translate:A=-i.currentTranslate,u.cssMode)return;if(u.freeMode&&u.freeMode.enabled){t.freeMode.onTouchEnd({currentPos:A});return}const N=A>=-t.maxTranslate()&&!t.params.loop;let O=0,D=t.slidesSizesGrid[0];for(let H=0;H<_.length;H+=H=_[H]&&A<_[H+$])&&(O=H,D=_[H+$]-_[H]):(N||A>=_[H])&&(O=H,D=_[_.length-1]-_[_.length-2])}let P=null,j=null;u.rewind&&(t.isBeginning?j=u.virtual&&u.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(P=0));const M=(A-_[O])/D,V=Ou.longSwipesMs){if(!u.longSwipes){t.slideTo(t.activeIndex);return}t.swipeDirection==="next"&&(M>=u.longSwipesRatio?t.slideTo(u.rewind&&t.isEnd?P:O+V):t.slideTo(O)),t.swipeDirection==="prev"&&(M>1-u.longSwipesRatio?t.slideTo(O+V):j!==null&&M<0&&Math.abs(M)>u.longSwipesRatio?t.slideTo(j):t.slideTo(O))}else{if(!u.shortSwipes){t.slideTo(t.activeIndex);return}t.navigation&&(s.target===t.navigation.nextEl||s.target===t.navigation.prevEl)?s.target===t.navigation.nextEl?t.slideTo(O+V):t.slideTo(O):(t.swipeDirection==="next"&&t.slideTo(P!==null?P:O+V),t.swipeDirection==="prev"&&t.slideTo(j!==null?j:O))}}function Dhe(){const n=this,{params:t,el:i}=n;if(i&&i.offsetWidth===0)return;t.breakpoints&&n.setBreakpoint();const{allowSlideNext:s,allowSlidePrev:l,snapGrid:d}=n,u=n.virtual&&n.params.virtual.enabled;n.allowSlideNext=!0,n.allowSlidePrev=!0,n.updateSize(),n.updateSlides(),n.updateSlidesClasses();const p=u&&t.loop;(t.slidesPerView==="auto"||t.slidesPerView>1)&&n.isEnd&&!n.isBeginning&&!n.params.centeredSlides&&!p?n.slideTo(n.slides.length-1,0,!1,!0):n.params.loop&&!u?n.slideToLoop(n.realIndex,0,!1,!0):n.slideTo(n.activeIndex,0,!1,!0),n.autoplay&&n.autoplay.running&&n.autoplay.paused&&(clearTimeout(n.autoplay.resizeTimeout),n.autoplay.resizeTimeout=setTimeout(()=>{n.autoplay&&n.autoplay.running&&n.autoplay.paused&&n.autoplay.resume()},500)),n.allowSlidePrev=l,n.allowSlideNext=s,n.params.watchOverflow&&d!==n.snapGrid&&n.checkOverflow()}function z$e(n){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&n.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(n.stopPropagation(),n.stopImmediatePropagation())))}function H$e(){const n=this,{wrapperEl:t,rtlTranslate:i,enabled:s}=n;if(!s)return;n.previousTranslate=n.translate,n.isHorizontal()?n.translate=-t.scrollLeft:n.translate=-t.scrollTop,n.translate===0&&(n.translate=0),n.updateActiveIndex(),n.updateSlidesClasses();let l;const d=n.maxTranslate()-n.minTranslate();d===0?l=0:l=(n.translate-n.minTranslate())/d,l!==n.progress&&n.updateProgress(i?-n.translate:n.translate),n.emit("setTranslate",n.translate,!1)}function G$e(n){const t=this;tM(t,n.target),!(t.params.cssMode||t.params.slidesPerView!=="auto"&&!t.params.autoHeight)&&t.update()}function W$e(){const n=this;n.documentTouchHandlerProceeded||(n.documentTouchHandlerProceeded=!0,n.params.touchReleaseOnEdges&&(n.el.style.touchAction="auto"))}const v_e=(n,t)=>{const i=lc(),{params:s,el:l,wrapperEl:d,device:u}=n,p=!!s.nested,g=t==="on"?"addEventListener":"removeEventListener",_=t;i[g]("touchstart",n.onDocumentTouchStart,{passive:!1,capture:p}),l[g]("touchstart",n.onTouchStart,{passive:!1}),l[g]("pointerdown",n.onTouchStart,{passive:!1}),i[g]("touchmove",n.onTouchMove,{passive:!1,capture:p}),i[g]("pointermove",n.onTouchMove,{passive:!1,capture:p}),i[g]("touchend",n.onTouchEnd,{passive:!0}),i[g]("pointerup",n.onTouchEnd,{passive:!0}),i[g]("pointercancel",n.onTouchEnd,{passive:!0}),i[g]("touchcancel",n.onTouchEnd,{passive:!0}),i[g]("pointerout",n.onTouchEnd,{passive:!0}),i[g]("pointerleave",n.onTouchEnd,{passive:!0}),i[g]("contextmenu",n.onTouchEnd,{passive:!0}),(s.preventClicks||s.preventClicksPropagation)&&l[g]("click",n.onClick,!0),s.cssMode&&d[g]("scroll",n.onScroll),s.updateOnWindowResize?n[_](u.ios||u.android?"resize orientationchange observerUpdate":"resize observerUpdate",Dhe,!0):n[_]("observerUpdate",Dhe,!0),l[g]("load",n.onLoad,{capture:!0})};function $$e(){const n=this,{params:t}=n;n.onTouchStart=F$e.bind(n),n.onTouchMove=B$e.bind(n),n.onTouchEnd=V$e.bind(n),n.onDocumentTouchStart=W$e.bind(n),t.cssMode&&(n.onScroll=H$e.bind(n)),n.onClick=z$e.bind(n),n.onLoad=G$e.bind(n),v_e(n,"on")}function K$e(){v_e(this,"off")}var q$e={attachEvents:$$e,detachEvents:K$e};const khe=(n,t)=>n.grid&&t.grid&&t.grid.rows>1;function Y$e(){const n=this,{realIndex:t,initialized:i,params:s,el:l}=n,d=s.breakpoints;if(!d||d&&Object.keys(d).length===0)return;const u=n.getBreakpoint(d,n.params.breakpointsBase,n.el);if(!u||n.currentBreakpoint===u)return;const g=(u in d?d[u]:void 0)||n.originalParams,_=khe(n,s),y=khe(n,g),E=s.enabled;_&&!y?(l.classList.remove(`${s.containerModifierClass}grid`,`${s.containerModifierClass}grid-column`),n.emitContainerClasses()):!_&&y&&(l.classList.add(`${s.containerModifierClass}grid`),(g.grid.fill&&g.grid.fill==="column"||!g.grid.fill&&s.grid.fill==="column")&&l.classList.add(`${s.containerModifierClass}grid-column`),n.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach(P=>{if(typeof g[P]>"u")return;const j=s[P]&&s[P].enabled,M=g[P]&&g[P].enabled;j&&!M&&n[P].disable(),!j&&M&&n[P].enable()});const b=g.direction&&g.direction!==s.direction,A=s.loop&&(g.slidesPerView!==s.slidesPerView||b),N=s.loop;b&&i&&n.changeDirection(),Vd(n.params,g);const O=n.params.enabled,D=n.params.loop;Object.assign(n,{allowTouchMove:n.params.allowTouchMove,allowSlideNext:n.params.allowSlideNext,allowSlidePrev:n.params.allowSlidePrev}),E&&!O?n.disable():!E&&O&&n.enable(),n.currentBreakpoint=u,n.emit("_beforeBreakpoint",g),i&&(A?(n.loopDestroy(),n.loopCreate(t),n.updateSlides()):!N&&D?(n.loopCreate(t),n.updateSlides()):N&&!D&&n.loopDestroy()),n.emit("breakpoint",g)}function X$e(n,t,i){if(t===void 0&&(t="window"),!n||t==="container"&&!i)return;let s=!1;const l=ea(),d=t==="window"?l.innerHeight:i.clientHeight,u=Object.keys(n).map(p=>{if(typeof p=="string"&&p.indexOf("@")===0){const g=parseFloat(p.substr(1));return{value:d*g,point:p}}return{value:p,point:p}});u.sort((p,g)=>parseInt(p.value,10)-parseInt(g.value,10));for(let p=0;p{typeof s=="object"?Object.keys(s).forEach(l=>{s[l]&&i.push(t+l)}):typeof s=="string"&&i.push(t+s)}),i}function Z$e(){const n=this,{classNames:t,params:i,rtl:s,el:l,device:d}=n,u=Q$e(["initialized",i.direction,{"free-mode":n.params.freeMode&&i.freeMode.enabled},{autoheight:i.autoHeight},{rtl:s},{grid:i.grid&&i.grid.rows>1},{"grid-column":i.grid&&i.grid.rows>1&&i.grid.fill==="column"},{android:d.android},{ios:d.ios},{"css-mode":i.cssMode},{centered:i.cssMode&&i.centeredSlides},{"watch-progress":i.watchSlidesProgress}],i.containerModifierClass);t.push(...u),l.classList.add(...t),n.emitContainerClasses()}function eKe(){const n=this,{el:t,classNames:i}=n;t.classList.remove(...i),n.emitContainerClasses()}var tKe={addClasses:Z$e,removeClasses:eKe};function nKe(){const n=this,{isLocked:t,params:i}=n,{slidesOffsetBefore:s}=i;if(s){const l=n.slides.length-1,d=n.slidesGrid[l]+n.slidesSizesGrid[l]+s*2;n.isLocked=n.size>d}else n.isLocked=n.snapGrid.length===1;i.allowSlideNext===!0&&(n.allowSlideNext=!n.isLocked),i.allowSlidePrev===!0&&(n.allowSlidePrev=!n.isLocked),t&&t!==n.isLocked&&(n.isEnd=!1),t!==n.isLocked&&n.emit(n.isLocked?"lock":"unlock")}var iKe={checkOverflow:nKe},Mhe={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function rKe(n,t){return function(s){s===void 0&&(s={});const l=Object.keys(s)[0],d=s[l];if(typeof d!="object"||d===null){Vd(t,s);return}if(n[l]===!0&&(n[l]={enabled:!0}),l==="navigation"&&n[l]&&n[l].enabled&&!n[l].prevEl&&!n[l].nextEl&&(n[l].auto=!0),["pagination","scrollbar"].indexOf(l)>=0&&n[l]&&n[l].enabled&&!n[l].el&&(n[l].auto=!0),!(l in n&&"enabled"in d)){Vd(t,s);return}typeof n[l]=="object"&&!("enabled"in n[l])&&(n[l].enabled=!0),n[l]||(n[l]={enabled:!1}),Vd(t,s)}}const K$={eventsEmitter:t$e,update:h$e,translate:y$e,transition:S$e,slide:N$e,loop:D$e,grabCursor:j$e,events:q$e,breakpoints:J$e,checkOverflow:iKe,classes:tKe},q$={};class qc{constructor(){let t,i;for(var s=arguments.length,l=new Array(s),d=0;d1){const y=[];return u.querySelectorAll(i.el).forEach(E=>{const b=Vd({},i,{el:E});y.push(new qc(b))}),y}const p=this;p.__swiper__=!0,p.support=p_e(),p.device=m_e({userAgent:i.userAgent}),p.browser=QWe(),p.eventsListeners={},p.eventsAnyListeners=[],p.modules=[...p.__modules__],i.modules&&Array.isArray(i.modules)&&p.modules.push(...i.modules);const g={};p.modules.forEach(y=>{y({params:i,swiper:p,extendParams:rKe(i,g),on:p.on.bind(p),once:p.once.bind(p),off:p.off.bind(p),emit:p.emit.bind(p)})});const _=Vd({},Mhe,g);return p.params=Vd({},_,q$,i),p.originalParams=Vd({},p.params),p.passedParams=Vd({},i),p.params&&p.params.on&&Object.keys(p.params.on).forEach(y=>{p.on(y,p.params.on[y])}),p.params&&p.params.onAny&&p.onAny(p.params.onAny),Object.assign(p,{enabled:p.params.enabled,el:t,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return p.params.direction==="horizontal"},isVertical(){return p.params.direction==="vertical"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:p.params.allowSlideNext,allowSlidePrev:p.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:p.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:p.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),p.emit("_swiper"),p.params.init&&p.init(),p}getDirectionLabel(t){return this.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}getSlideIndex(t){const{slidesEl:i,params:s}=this,l=$o(i,`.${s.slideClass}, swiper-slide`),d=q4(l[0]);return q4(t)-d}getSlideIndexByData(t){return this.getSlideIndex(this.slides.filter(i=>i.getAttribute("data-swiper-slide-index")*1===t)[0])}recalcSlides(){const t=this,{slidesEl:i,params:s}=t;t.slides=$o(i,`.${s.slideClass}, swiper-slide`)}enable(){const t=this;t.enabled||(t.enabled=!0,t.params.grabCursor&&t.setGrabCursor(),t.emit("enable"))}disable(){const t=this;t.enabled&&(t.enabled=!1,t.params.grabCursor&&t.unsetGrabCursor(),t.emit("disable"))}setProgress(t,i){const s=this;t=Math.min(Math.max(t,0),1);const l=s.minTranslate(),u=(s.maxTranslate()-l)*t+l;s.translateTo(u,typeof i>"u"?0:i),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const t=this;if(!t.params._emitClasses||!t.el)return;const i=t.el.className.split(" ").filter(s=>s.indexOf("swiper")===0||s.indexOf(t.params.containerModifierClass)===0);t.emit("_containerClasses",i.join(" "))}getSlideClasses(t){const i=this;return i.destroyed?"":t.className.split(" ").filter(s=>s.indexOf("swiper-slide")===0||s.indexOf(i.params.slideClass)===0).join(" ")}emitSlidesClasses(){const t=this;if(!t.params._emitClasses||!t.el)return;const i=[];t.slides.forEach(s=>{const l=t.getSlideClasses(s);i.push({slideEl:s,classNames:l}),t.emit("_slideClass",s,l)}),t.emit("_slideClasses",i)}slidesPerViewDynamic(t,i){t===void 0&&(t="current"),i===void 0&&(i=!1);const s=this,{params:l,slides:d,slidesGrid:u,slidesSizesGrid:p,size:g,activeIndex:_}=s;let y=1;if(typeof l.slidesPerView=="number")return l.slidesPerView;if(l.centeredSlides){let E=d[_]?Math.ceil(d[_].swiperSlideSize):0,b;for(let A=_+1;Ag&&(b=!0));for(let A=_-1;A>=0;A-=1)d[A]&&!b&&(E+=d[A].swiperSlideSize,y+=1,E>g&&(b=!0))}else if(t==="current")for(let E=_+1;E=0;E-=1)u[_]-u[E]{u.complete&&tM(t,u)}),t.updateSize(),t.updateSlides(),t.updateProgress(),t.updateSlidesClasses();function l(){const u=t.rtlTranslate?t.translate*-1:t.translate,p=Math.min(Math.max(u,t.maxTranslate()),t.minTranslate());t.setTranslate(p),t.updateActiveIndex(),t.updateSlidesClasses()}let d;if(s.freeMode&&s.freeMode.enabled&&!s.cssMode)l(),s.autoHeight&&t.updateAutoHeight();else{if((s.slidesPerView==="auto"||s.slidesPerView>1)&&t.isEnd&&!s.centeredSlides){const u=t.virtual&&s.virtual.enabled?t.virtual.slides:t.slides;d=t.slideTo(u.length-1,0,!1,!0)}else d=t.slideTo(t.activeIndex,0,!1,!0);d||l()}s.watchOverflow&&i!==t.snapGrid&&t.checkOverflow(),t.emit("update")}changeDirection(t,i){i===void 0&&(i=!0);const s=this,l=s.params.direction;return t||(t=l==="horizontal"?"vertical":"horizontal"),t===l||t!=="horizontal"&&t!=="vertical"||(s.el.classList.remove(`${s.params.containerModifierClass}${l}`),s.el.classList.add(`${s.params.containerModifierClass}${t}`),s.emitContainerClasses(),s.params.direction=t,s.slides.forEach(d=>{t==="vertical"?d.style.width="":d.style.height=""}),s.emit("changeDirection"),i&&s.update()),s}changeLanguageDirection(t){const i=this;i.rtl&&t==="rtl"||!i.rtl&&t==="ltr"||(i.rtl=t==="rtl",i.rtlTranslate=i.params.direction==="horizontal"&&i.rtl,i.rtl?(i.el.classList.add(`${i.params.containerModifierClass}rtl`),i.el.dir="rtl"):(i.el.classList.remove(`${i.params.containerModifierClass}rtl`),i.el.dir="ltr"),i.update())}mount(t){const i=this;if(i.mounted)return!0;let s=t||i.params.el;if(typeof s=="string"&&(s=document.querySelector(s)),!s)return!1;s.swiper=i,s.parentNode&&s.parentNode.host&&s.parentNode.host.nodeName===i.params.swiperElementNodeName.toUpperCase()&&(i.isElement=!0);const l=()=>`.${(i.params.wrapperClass||"").trim().split(" ").join(".")}`;let u=s&&s.shadowRoot&&s.shadowRoot.querySelector?s.shadowRoot.querySelector(l()):$o(s,l())[0];return!u&&i.params.createElements&&(u=Kd("div",i.params.wrapperClass),s.append(u),$o(s,`.${i.params.slideClass}`).forEach(p=>{u.append(p)})),Object.assign(i,{el:s,wrapperEl:u,slidesEl:i.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:u,hostEl:i.isElement?s.parentNode.host:s,mounted:!0,rtl:s.dir.toLowerCase()==="rtl"||mv(s,"direction")==="rtl",rtlTranslate:i.params.direction==="horizontal"&&(s.dir.toLowerCase()==="rtl"||mv(s,"direction")==="rtl"),wrongRTL:mv(u,"display")==="-webkit-box"}),!0}init(t){const i=this;if(i.initialized||i.mount(t)===!1)return i;i.emit("beforeInit"),i.params.breakpoints&&i.setBreakpoint(),i.addClasses(),i.updateSize(),i.updateSlides(),i.params.watchOverflow&&i.checkOverflow(),i.params.grabCursor&&i.enabled&&i.setGrabCursor(),i.params.loop&&i.virtual&&i.params.virtual.enabled?i.slideTo(i.params.initialSlide+i.virtual.slidesBefore,0,i.params.runCallbacksOnInit,!1,!0):i.slideTo(i.params.initialSlide,0,i.params.runCallbacksOnInit,!1,!0),i.params.loop&&i.loopCreate(),i.attachEvents();const l=[...i.el.querySelectorAll('[loading="lazy"]')];return i.isElement&&l.push(...i.hostEl.querySelectorAll('[loading="lazy"]')),l.forEach(d=>{d.complete?tM(i,d):d.addEventListener("load",u=>{tM(i,u.target)})}),Xq(i),i.initialized=!0,Xq(i),i.emit("init"),i.emit("afterInit"),i}destroy(t,i){t===void 0&&(t=!0),i===void 0&&(i=!0);const s=this,{params:l,el:d,wrapperEl:u,slides:p}=s;return typeof s.params>"u"||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),l.loop&&s.loopDestroy(),i&&(s.removeClasses(),d.removeAttribute("style"),u.removeAttribute("style"),p&&p.length&&p.forEach(g=>{g.classList.remove(l.slideVisibleClass,l.slideFullyVisibleClass,l.slideActiveClass,l.slideNextClass,l.slidePrevClass),g.removeAttribute("style"),g.removeAttribute("data-swiper-slide-index")})),s.emit("destroy"),Object.keys(s.eventsListeners).forEach(g=>{s.off(g)}),t!==!1&&(s.el.swiper=null,GWe(s)),s.destroyed=!0),null}static extendDefaults(t){Vd(q$,t)}static get extendedDefaults(){return q$}static get defaults(){return Mhe}static installModule(t){qc.prototype.__modules__||(qc.prototype.__modules__=[]);const i=qc.prototype.__modules__;typeof t=="function"&&i.indexOf(t)<0&&i.push(t)}static use(t){return Array.isArray(t)?(t.forEach(i=>qc.installModule(i)),qc):(qc.installModule(t),qc)}}Object.keys(K$).forEach(n=>{Object.keys(K$[n]).forEach(t=>{qc.prototype[t]=K$[n][t]})});qc.use([ZWe,e$e]);const sKe=Object.freeze(Object.defineProperty({__proto__:null,Swiper:qc,default:qc},Symbol.toStringTag,{value:"Module"})),aKe=Wpe(sKe);/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var jhe=Object.getOwnPropertySymbols,oKe=Object.prototype.hasOwnProperty,lKe=Object.prototype.propertyIsEnumerable;function cKe(n){if(n==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(n)}function dKe(){try{if(!Object.assign)return!1;var n=new String("abc");if(n[5]="de",Object.getOwnPropertyNames(n)[0]==="5")return!1;for(var t={},i=0;i<10;i++)t["_"+String.fromCharCode(i)]=i;var s=Object.getOwnPropertyNames(t).map(function(d){return t[d]});if(s.join("")!=="0123456789")return!1;var l={};return"abcdefghijklmnopqrst".split("").forEach(function(d){l[d]=d}),Object.keys(Object.assign({},l)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var uKe=dKe()?Object.assign:function(n,t){for(var i,s=cKe(n),l,d=1;d=G?(ie-=G,P||(he+=t.slidesGrid[0])):j&&ae{Ve.style[te]=`${he-Math.abs(t.cssOverflowAdjustment())}px`}),t.updateProgress(),l("virtualUpdate");return}if(t.params.virtual.renderExternal){t.params.virtual.renderExternal.call(t,{offset:he,from:ie,to:_e,slides:function(){const Re=[];for(let Be=ie;Be<=_e;Be+=1)Re.push(Q[Be]);return Re}()}),t.params.virtual.renderExternalUpdate?Ce():l("virtualUpdate");return}const fe=[],me=[],Ne=Ve=>{let Re=Ve;return Ve<0?Re=Q.length+Ve:Re>=Q.length&&(Re=Re-Q.length),Re};if(N)t.slides.filter(Ve=>Ve.matches(`.${t.params.slideClass}, swiper-slide`)).forEach(Ve=>{Ve.remove()});else for(let Ve=H;Ve<=$;Ve+=1)if(Ve_e){const Re=Ne(Ve);t.slides.filter(Be=>Be.matches(`.${t.params.slideClass}[data-swiper-slide-index="${Re}"], swiper-slide[data-swiper-slide-index="${Re}"]`)).forEach(Be=>{Be.remove()})}const Fe=j?-Q.length:0,je=j?Q.length*2:Q.length;for(let Ve=Fe;Ve=ie&&Ve<=_e){const Re=Ne(Ve);typeof $>"u"||N?me.push(Re):(Ve>$&&me.push(Re),Ve{t.slidesEl.append(g(Q[Ve],Ve))}),j)for(let Ve=fe.length-1;Ve>=0;Ve-=1){const Re=fe[Ve];t.slidesEl.prepend(g(Q[Re],Re))}else fe.sort((Ve,Re)=>Re-Ve),fe.forEach(Ve=>{t.slidesEl.prepend(g(Q[Ve],Ve))});$o(t.slidesEl,".swiper-slide, swiper-slide").forEach(Ve=>{Ve.style[te]=`${he-Math.abs(t.cssOverflowAdjustment())}px`}),Ce()}function y(N){if(typeof N=="object"&&"length"in N)for(let O=0;O{const H=j[V],$=H.getAttribute("data-swiper-slide-index");$&&H.setAttribute("data-swiper-slide-index",parseInt($,10)+P),M[parseInt(V,10)+P]=H}),t.virtual.cache=M}_(!0),t.slideTo(D,0)}function b(N){if(typeof N>"u"||N===null)return;let O=t.activeIndex;if(Array.isArray(N))for(let D=N.length-1;D>=0;D-=1)t.params.virtual.cache&&(delete t.virtual.cache[N[D]],Object.keys(t.virtual.cache).forEach(P=>{P>N&&(t.virtual.cache[P-1]=t.virtual.cache[P],t.virtual.cache[P-1].setAttribute("data-swiper-slide-index",P-1),delete t.virtual.cache[P])})),t.virtual.slides.splice(N[D],1),N[D]{D>N&&(t.virtual.cache[D-1]=t.virtual.cache[D],t.virtual.cache[D-1].setAttribute("data-swiper-slide-index",D-1),delete t.virtual.cache[D])})),t.virtual.slides.splice(N,1),N{if(!t.params.virtual.enabled)return;let N;if(typeof t.passedParams.virtual.slides>"u"){const O=[...t.slidesEl.children].filter(D=>D.matches(`.${t.params.slideClass}, swiper-slide`));O&&O.length&&(t.virtual.slides=[...O],N=!0,O.forEach((D,P)=>{D.setAttribute("data-swiper-slide-index",P),t.virtual.cache[P]=D,D.remove()}))}N||(t.virtual.slides=t.params.virtual.slides),t.classNames.push(`${t.params.containerModifierClass}virtual`),t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0,_()}),s("setTranslate",()=>{t.params.virtual.enabled&&(t.params.cssMode&&!t._immediateVirtual?(clearTimeout(d),d=setTimeout(()=>{_()},100)):_())}),s("init update resize",()=>{t.params.virtual.enabled&&t.params.cssMode&&LI(t.wrapperEl,"--swiper-virtual-size",`${t.virtualSize}px`)}),Object.assign(t.virtual,{appendSlide:y,prependSlide:E,removeSlide:b,removeAllSlides:A,update:_})}function SKe(n){let{swiper:t,extendParams:i,on:s,emit:l}=n;const d=lc(),u=ea();t.keyboard={enabled:!1},i({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}});function p(y){if(!t.enabled)return;const{rtlTranslate:E}=t;let b=y;b.originalEvent&&(b=b.originalEvent);const A=b.keyCode||b.charCode,N=t.params.keyboard.pageUpDown,O=N&&A===33,D=N&&A===34,P=A===37,j=A===39,M=A===38,V=A===40;if(!t.allowSlideNext&&(t.isHorizontal()&&j||t.isVertical()&&V||D)||!t.allowSlidePrev&&(t.isHorizontal()&&P||t.isVertical()&&M||O))return!1;if(!(b.shiftKey||b.altKey||b.ctrlKey||b.metaKey)&&!(d.activeElement&&d.activeElement.nodeName&&(d.activeElement.nodeName.toLowerCase()==="input"||d.activeElement.nodeName.toLowerCase()==="textarea"))){if(t.params.keyboard.onlyInViewport&&(O||D||P||j||M||V)){let H=!1;if(vE(t.el,`.${t.params.slideClass}, swiper-slide`).length>0&&vE(t.el,`.${t.params.slideActiveClass}`).length===0)return;const $=t.el,Q=$.clientWidth,Y=$.clientHeight,le=u.innerWidth,ae=u.innerHeight,te=C7($);E&&(te.left-=$.scrollLeft);const de=[[te.left,te.top],[te.left+Q,te.top],[te.left,te.top+Y],[te.left+Q,te.top+Y]];for(let G=0;G=0&&ie[0]<=le&&ie[1]>=0&&ie[1]<=ae){if(ie[0]===0&&ie[1]===0)continue;H=!0}}if(!H)return}t.isHorizontal()?((O||D||P||j)&&(b.preventDefault?b.preventDefault():b.returnValue=!1),((D||j)&&!E||(O||P)&&E)&&t.slideNext(),((O||P)&&!E||(D||j)&&E)&&t.slidePrev()):((O||D||M||V)&&(b.preventDefault?b.preventDefault():b.returnValue=!1),(D||V)&&t.slideNext(),(O||M)&&t.slidePrev()),l("keyPress",A)}}function g(){t.keyboard.enabled||(d.addEventListener("keydown",p),t.keyboard.enabled=!0)}function _(){t.keyboard.enabled&&(d.removeEventListener("keydown",p),t.keyboard.enabled=!1)}s("init",()=>{t.params.keyboard.enabled&&g()}),s("destroy",()=>{t.keyboard.enabled&&_()}),Object.assign(t.keyboard,{enable:g,disable:_})}function bKe(n){let{swiper:t,extendParams:i,on:s,emit:l}=n;const d=ea();i({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),t.mousewheel={enabled:!1};let u,p=Zu(),g;const _=[];function y(M){let Q=0,Y=0,le=0,ae=0;return"detail"in M&&(Y=M.detail),"wheelDelta"in M&&(Y=-M.wheelDelta/120),"wheelDeltaY"in M&&(Y=-M.wheelDeltaY/120),"wheelDeltaX"in M&&(Q=-M.wheelDeltaX/120),"axis"in M&&M.axis===M.HORIZONTAL_AXIS&&(Q=Y,Y=0),le=Q*10,ae=Y*10,"deltaY"in M&&(ae=M.deltaY),"deltaX"in M&&(le=M.deltaX),M.shiftKey&&!le&&(le=ae,ae=0),(le||ae)&&M.deltaMode&&(M.deltaMode===1?(le*=40,ae*=40):(le*=800,ae*=800)),le&&!Q&&(Q=le<1?-1:1),ae&&!Y&&(Y=ae<1?-1:1),{spinX:Q,spinY:Y,pixelX:le,pixelY:ae}}function E(){t.enabled&&(t.mouseEntered=!0)}function b(){t.enabled&&(t.mouseEntered=!1)}function A(M){return t.params.mousewheel.thresholdDelta&&M.delta=6&&Zu()-p<60?!0:(M.direction<0?(!t.isEnd||t.params.loop)&&!t.animating&&(t.slideNext(),l("scroll",M.raw)):(!t.isBeginning||t.params.loop)&&!t.animating&&(t.slidePrev(),l("scroll",M.raw)),p=new d.Date().getTime(),!1)}function N(M){const V=t.params.mousewheel;if(M.direction<0){if(t.isEnd&&!t.params.loop&&V.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&V.releaseOnEdges)return!0;return!1}function O(M){let V=M,H=!0;if(!t.enabled||M.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const $=t.params.mousewheel;t.params.cssMode&&V.preventDefault();let Q=t.el;t.params.mousewheel.eventsTarget!=="container"&&(Q=document.querySelector(t.params.mousewheel.eventsTarget));const Y=Q&&Q.contains(V.target);if(!t.mouseEntered&&!Y&&!$.releaseOnEdges)return!0;V.originalEvent&&(V=V.originalEvent);let le=0;const ae=t.rtlTranslate?-1:1,te=y(V);if($.forceToAxis)if(t.isHorizontal())if(Math.abs(te.pixelX)>Math.abs(te.pixelY))le=-te.pixelX*ae;else return!0;else if(Math.abs(te.pixelY)>Math.abs(te.pixelX))le=-te.pixelY;else return!0;else le=Math.abs(te.pixelX)>Math.abs(te.pixelY)?-te.pixelX*ae:-te.pixelY;if(le===0)return!0;$.invert&&(le=-le);let de=t.getTranslate()+le*$.sensitivity;if(de>=t.minTranslate()&&(de=t.minTranslate()),de<=t.maxTranslate()&&(de=t.maxTranslate()),H=t.params.loop?!0:!(de===t.minTranslate()||de===t.maxTranslate()),H&&t.params.nested&&V.stopPropagation(),!t.params.freeMode||!t.params.freeMode.enabled){const G={time:Zu(),delta:Math.abs(le),direction:Math.sign(le),raw:M};_.length>=2&&_.shift();const ie=_.length?_[_.length-1]:void 0;if(_.push(G),ie?(G.direction!==ie.direction||G.delta>ie.delta||G.time>ie.time+150)&&A(G):A(G),N(G))return!0}else{const G={time:Zu(),delta:Math.abs(le),direction:Math.sign(le)},ie=g&&G.time=t.minTranslate()&&(_e=t.minTranslate()),_e<=t.maxTranslate()&&(_e=t.maxTranslate()),t.setTransition(0),t.setTranslate(_e),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!he&&t.isBeginning||!Ce&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:G.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(u),u=void 0,_.length>=15&&_.shift();const fe=_.length?_[_.length-1]:void 0,me=_[0];if(_.push(G),fe&&(G.delta>fe.delta||G.direction!==fe.direction))_.splice(0);else if(_.length>=15&&G.time-me.time<500&&me.delta-G.delta>=1&&G.delta<=6){const Ne=le>0?.8:.2;g=G,_.splice(0),u=xE(()=>{t.slideToClosest(t.params.speed,!0,void 0,Ne)},0)}u||(u=xE(()=>{g=G,_.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)},500))}if(ie||l("scroll",V),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),$.releaseOnEdges&&(_e===t.minTranslate()||_e===t.maxTranslate()))return!0}}return V.preventDefault?V.preventDefault():V.returnValue=!1,!1}function D(M){let V=t.el;t.params.mousewheel.eventsTarget!=="container"&&(V=document.querySelector(t.params.mousewheel.eventsTarget)),V[M]("mouseenter",E),V[M]("mouseleave",b),V[M]("wheel",O)}function P(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",O),!0):t.mousewheel.enabled?!1:(D("addEventListener"),t.mousewheel.enabled=!0,!0)}function j(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,O),!0):t.mousewheel.enabled?(D("removeEventListener"),t.mousewheel.enabled=!1,!0):!1}s("init",()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&j(),t.params.mousewheel.enabled&&P()}),s("destroy",()=>{t.params.cssMode&&P(),t.mousewheel.enabled&&j()}),Object.assign(t.mousewheel,{enable:P,disable:j})}function qQ(n,t,i,s){return n.params.createElements&&Object.keys(s).forEach(l=>{if(!i[l]&&i.auto===!0){let d=$o(n.el,`.${s[l]}`)[0];d||(d=Kd("div",s[l]),d.className=s[l],n.el.append(d)),i[l]=d,t[l]=d}}),i}function CKe(n){let{swiper:t,extendParams:i,on:s,emit:l}=n;i({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null};function d(N){let O;return N&&typeof N=="string"&&t.isElement&&(O=t.el.querySelector(N),O)?O:(N&&(typeof N=="string"&&(O=[...document.querySelectorAll(N)]),t.params.uniqueNavElements&&typeof N=="string"&&O.length>1&&t.el.querySelectorAll(N).length===1&&(O=t.el.querySelector(N))),N&&!O?N:O)}function u(N,O){const D=t.params.navigation;N=lr(N),N.forEach(P=>{P&&(P.classList[O?"add":"remove"](...D.disabledClass.split(" ")),P.tagName==="BUTTON"&&(P.disabled=O),t.params.watchOverflow&&t.enabled&&P.classList[t.isLocked?"add":"remove"](D.lockClass))})}function p(){const{nextEl:N,prevEl:O}=t.navigation;if(t.params.loop){u(O,!1),u(N,!1);return}u(O,t.isBeginning&&!t.params.rewind),u(N,t.isEnd&&!t.params.rewind)}function g(N){N.preventDefault(),!(t.isBeginning&&!t.params.loop&&!t.params.rewind)&&(t.slidePrev(),l("navigationPrev"))}function _(N){N.preventDefault(),!(t.isEnd&&!t.params.loop&&!t.params.rewind)&&(t.slideNext(),l("navigationNext"))}function y(){const N=t.params.navigation;if(t.params.navigation=qQ(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!(N.nextEl||N.prevEl))return;let O=d(N.nextEl),D=d(N.prevEl);Object.assign(t.navigation,{nextEl:O,prevEl:D}),O=lr(O),D=lr(D);const P=(j,M)=>{j&&j.addEventListener("click",M==="next"?_:g),!t.enabled&&j&&j.classList.add(...N.lockClass.split(" "))};O.forEach(j=>P(j,"next")),D.forEach(j=>P(j,"prev"))}function E(){let{nextEl:N,prevEl:O}=t.navigation;N=lr(N),O=lr(O);const D=(P,j)=>{P.removeEventListener("click",j==="next"?_:g),P.classList.remove(...t.params.navigation.disabledClass.split(" "))};N.forEach(P=>D(P,"next")),O.forEach(P=>D(P,"prev"))}s("init",()=>{t.params.navigation.enabled===!1?A():(y(),p())}),s("toEdge fromEdge lock unlock",()=>{p()}),s("destroy",()=>{E()}),s("enable disable",()=>{let{nextEl:N,prevEl:O}=t.navigation;if(N=lr(N),O=lr(O),t.enabled){p();return}[...N,...O].filter(D=>!!D).forEach(D=>D.classList.add(t.params.navigation.lockClass))}),s("click",(N,O)=>{let{nextEl:D,prevEl:P}=t.navigation;D=lr(D),P=lr(P);const j=O.target;if(t.params.navigation.hideOnClick&&!P.includes(j)&&!D.includes(j)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===j||t.pagination.el.contains(j)))return;let M;D.length?M=D[0].classList.contains(t.params.navigation.hiddenClass):P.length&&(M=P[0].classList.contains(t.params.navigation.hiddenClass)),l(M===!0?"navigationShow":"navigationHide"),[...D,...P].filter(V=>!!V).forEach(V=>V.classList.toggle(t.params.navigation.hiddenClass))}});const b=()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),y(),p()},A=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),E()};Object.assign(t.navigation,{enable:b,disable:A,update:p,init:y,destroy:E})}function bg(n){return n===void 0&&(n=""),`.${n.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function TKe(n){let{swiper:t,extendParams:i,on:s,emit:l}=n;const d="swiper-pagination";i({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:P=>P,formatFractionTotal:P=>P,bulletClass:`${d}-bullet`,bulletActiveClass:`${d}-bullet-active`,modifierClass:`${d}-`,currentClass:`${d}-current`,totalClass:`${d}-total`,hiddenClass:`${d}-hidden`,progressbarFillClass:`${d}-progressbar-fill`,progressbarOppositeClass:`${d}-progressbar-opposite`,clickableClass:`${d}-clickable`,lockClass:`${d}-lock`,horizontalClass:`${d}-horizontal`,verticalClass:`${d}-vertical`,paginationDisabledClass:`${d}-disabled`}}),t.pagination={el:null,bullets:[]};let u,p=0;function g(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&t.pagination.el.length===0}function _(P,j){const{bulletActiveClass:M}=t.params.pagination;P&&(P=P[`${j==="prev"?"previous":"next"}ElementSibling`],P&&(P.classList.add(`${M}-${j}`),P=P[`${j==="prev"?"previous":"next"}ElementSibling`],P&&P.classList.add(`${M}-${j}-${j}`)))}function y(P){const j=P.target.closest(bg(t.params.pagination.bulletClass));if(!j)return;P.preventDefault();const M=q4(j)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===M)return;t.slideToLoop(M)}else t.slideTo(M)}function E(){const P=t.rtl,j=t.params.pagination;if(g())return;let M=t.pagination.el;M=lr(M);let V,H;const $=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,Q=t.params.loop?Math.ceil($/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(H=t.previousRealIndex||0,V=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):typeof t.snapIndex<"u"?(V=t.snapIndex,H=t.previousSnapIndex):(H=t.previousIndex||0,V=t.activeIndex||0),j.type==="bullets"&&t.pagination.bullets&&t.pagination.bullets.length>0){const Y=t.pagination.bullets;let le,ae,te;if(j.dynamicBullets&&(u=Yq(Y[0],t.isHorizontal()?"width":"height",!0),M.forEach(de=>{de.style[t.isHorizontal()?"width":"height"]=`${u*(j.dynamicMainBullets+4)}px`}),j.dynamicMainBullets>1&&H!==void 0&&(p+=V-(H||0),p>j.dynamicMainBullets-1?p=j.dynamicMainBullets-1:p<0&&(p=0)),le=Math.max(V-p,0),ae=le+(Math.min(Y.length,j.dynamicMainBullets)-1),te=(ae+le)/2),Y.forEach(de=>{const G=[...["","-next","-next-next","-prev","-prev-prev","-main"].map(ie=>`${j.bulletActiveClass}${ie}`)].map(ie=>typeof ie=="string"&&ie.includes(" ")?ie.split(" "):ie).flat();de.classList.remove(...G)}),M.length>1)Y.forEach(de=>{const G=q4(de);G===V?de.classList.add(...j.bulletActiveClass.split(" ")):t.isElement&&de.setAttribute("part","bullet"),j.dynamicBullets&&(G>=le&&G<=ae&&de.classList.add(...`${j.bulletActiveClass}-main`.split(" ")),G===le&&_(de,"prev"),G===ae&&_(de,"next"))});else{const de=Y[V];if(de&&de.classList.add(...j.bulletActiveClass.split(" ")),t.isElement&&Y.forEach((G,ie)=>{G.setAttribute("part",ie===V?"bullet-active":"bullet")}),j.dynamicBullets){const G=Y[le],ie=Y[ae];for(let _e=le;_e<=ae;_e+=1)Y[_e]&&Y[_e].classList.add(...`${j.bulletActiveClass}-main`.split(" "));_(G,"prev"),_(ie,"next")}}if(j.dynamicBullets){const de=Math.min(Y.length,j.dynamicMainBullets+4),G=(u*de-u)/2-te*u,ie=P?"right":"left";Y.forEach(_e=>{_e.style[t.isHorizontal()?ie:"top"]=`${G}px`})}}M.forEach((Y,le)=>{if(j.type==="fraction"&&(Y.querySelectorAll(bg(j.currentClass)).forEach(ae=>{ae.textContent=j.formatFractionCurrent(V+1)}),Y.querySelectorAll(bg(j.totalClass)).forEach(ae=>{ae.textContent=j.formatFractionTotal(Q)})),j.type==="progressbar"){let ae;j.progressbarOpposite?ae=t.isHorizontal()?"vertical":"horizontal":ae=t.isHorizontal()?"horizontal":"vertical";const te=(V+1)/Q;let de=1,G=1;ae==="horizontal"?de=te:G=te,Y.querySelectorAll(bg(j.progressbarFillClass)).forEach(ie=>{ie.style.transform=`translate3d(0,0,0) scaleX(${de}) scaleY(${G})`,ie.style.transitionDuration=`${t.params.speed}ms`})}j.type==="custom"&&j.renderCustom?(Y.innerHTML=j.renderCustom(t,V+1,Q),le===0&&l("paginationRender",Y)):(le===0&&l("paginationRender",Y),l("paginationUpdate",Y)),t.params.watchOverflow&&t.enabled&&Y.classList[t.isLocked?"add":"remove"](j.lockClass)})}function b(){const P=t.params.pagination;if(g())return;const j=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.grid&&t.params.grid.rows>1?t.slides.length/Math.ceil(t.params.grid.rows):t.slides.length;let M=t.pagination.el;M=lr(M);let V="";if(P.type==="bullets"){let H=t.params.loop?Math.ceil(j/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&H>j&&(H=j);for(let $=0;$`}P.type==="fraction"&&(P.renderFraction?V=P.renderFraction.call(t,P.currentClass,P.totalClass):V=` / `),P.type==="progressbar"&&(P.renderProgressbar?V=P.renderProgressbar.call(t,P.progressbarFillClass):V=``),t.pagination.bullets=[],M.forEach(H=>{P.type!=="custom"&&(H.innerHTML=V||""),P.type==="bullets"&&t.pagination.bullets.push(...H.querySelectorAll(bg(P.bulletClass)))}),P.type!=="custom"&&l("paginationRender",M[0])}function A(){t.params.pagination=qQ(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const P=t.params.pagination;if(!P.el)return;let j;typeof P.el=="string"&&t.isElement&&(j=t.el.querySelector(P.el)),!j&&typeof P.el=="string"&&(j=[...document.querySelectorAll(P.el)]),j||(j=P.el),!(!j||j.length===0)&&(t.params.uniqueNavElements&&typeof P.el=="string"&&Array.isArray(j)&&j.length>1&&(j=[...t.el.querySelectorAll(P.el)],j.length>1&&(j=j.filter(M=>vE(M,".swiper")[0]===t.el)[0])),Array.isArray(j)&&j.length===1&&(j=j[0]),Object.assign(t.pagination,{el:j}),j=lr(j),j.forEach(M=>{P.type==="bullets"&&P.clickable&&M.classList.add(...(P.clickableClass||"").split(" ")),M.classList.add(P.modifierClass+P.type),M.classList.add(t.isHorizontal()?P.horizontalClass:P.verticalClass),P.type==="bullets"&&P.dynamicBullets&&(M.classList.add(`${P.modifierClass}${P.type}-dynamic`),p=0,P.dynamicMainBullets<1&&(P.dynamicMainBullets=1)),P.type==="progressbar"&&P.progressbarOpposite&&M.classList.add(P.progressbarOppositeClass),P.clickable&&M.addEventListener("click",y),t.enabled||M.classList.add(P.lockClass)}))}function N(){const P=t.params.pagination;if(g())return;let j=t.pagination.el;j&&(j=lr(j),j.forEach(M=>{M.classList.remove(P.hiddenClass),M.classList.remove(P.modifierClass+P.type),M.classList.remove(t.isHorizontal()?P.horizontalClass:P.verticalClass),P.clickable&&(M.classList.remove(...(P.clickableClass||"").split(" ")),M.removeEventListener("click",y))})),t.pagination.bullets&&t.pagination.bullets.forEach(M=>M.classList.remove(...P.bulletActiveClass.split(" ")))}s("changeDirection",()=>{if(!t.pagination||!t.pagination.el)return;const P=t.params.pagination;let{el:j}=t.pagination;j=lr(j),j.forEach(M=>{M.classList.remove(P.horizontalClass,P.verticalClass),M.classList.add(t.isHorizontal()?P.horizontalClass:P.verticalClass)})}),s("init",()=>{t.params.pagination.enabled===!1?D():(A(),b(),E())}),s("activeIndexChange",()=>{typeof t.snapIndex>"u"&&E()}),s("snapIndexChange",()=>{E()}),s("snapGridLengthChange",()=>{b(),E()}),s("destroy",()=>{N()}),s("enable disable",()=>{let{el:P}=t.pagination;P&&(P=lr(P),P.forEach(j=>j.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass)))}),s("lock unlock",()=>{E()}),s("click",(P,j)=>{const M=j.target,V=lr(t.pagination.el);if(t.params.pagination.el&&t.params.pagination.hideOnClick&&V&&V.length>0&&!M.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&M===t.navigation.nextEl||t.navigation.prevEl&&M===t.navigation.prevEl))return;const H=V[0].classList.contains(t.params.pagination.hiddenClass);l(H===!0?"paginationShow":"paginationHide"),V.forEach($=>$.classList.toggle(t.params.pagination.hiddenClass))}});const O=()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:P}=t.pagination;P&&(P=lr(P),P.forEach(j=>j.classList.remove(t.params.pagination.paginationDisabledClass))),A(),b(),E()},D=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:P}=t.pagination;P&&(P=lr(P),P.forEach(j=>j.classList.add(t.params.pagination.paginationDisabledClass))),N()};Object.assign(t.pagination,{enable:O,disable:D,render:b,update:E,init:A,destroy:N})}function RKe(n){let{swiper:t,extendParams:i,on:s,emit:l}=n;const d=lc();let u=!1,p=null,g=null,_,y,E,b;i({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null};function A(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:de,rtlTranslate:G}=t,{dragEl:ie,el:_e}=de,he=t.params.scrollbar,Ce=t.params.loop?t.progressLoop:t.progress;let fe=y,me=(E-y)*Ce;G?(me=-me,me>0?(fe=y-me,me=0):-me+y>E&&(fe=E+me)):me<0?(fe=y+me,me=0):me+y>E&&(fe=E-me),t.isHorizontal()?(ie.style.transform=`translate3d(${me}px, 0, 0)`,ie.style.width=`${fe}px`):(ie.style.transform=`translate3d(0px, ${me}px, 0)`,ie.style.height=`${fe}px`),he.hide&&(clearTimeout(p),_e.style.opacity=1,p=setTimeout(()=>{_e.style.opacity=0,_e.style.transitionDuration="400ms"},1e3))}function N(de){!t.params.scrollbar.el||!t.scrollbar.el||(t.scrollbar.dragEl.style.transitionDuration=`${de}ms`)}function O(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:de}=t,{dragEl:G,el:ie}=de;G.style.width="",G.style.height="",E=t.isHorizontal()?ie.offsetWidth:ie.offsetHeight,b=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),t.params.scrollbar.dragSize==="auto"?y=E*b:y=parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?G.style.width=`${y}px`:G.style.height=`${y}px`,b>=1?ie.style.display="none":ie.style.display="",t.params.scrollbar.hide&&(ie.style.opacity=0),t.params.watchOverflow&&t.enabled&&de.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function D(de){return t.isHorizontal()?de.clientX:de.clientY}function P(de){const{scrollbar:G,rtlTranslate:ie}=t,{el:_e}=G;let he;he=(D(de)-C7(_e)[t.isHorizontal()?"left":"top"]-(_!==null?_:y/2))/(E-y),he=Math.max(Math.min(he,1),0),ie&&(he=1-he);const Ce=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*he;t.updateProgress(Ce),t.setTranslate(Ce),t.updateActiveIndex(),t.updateSlidesClasses()}function j(de){const G=t.params.scrollbar,{scrollbar:ie,wrapperEl:_e}=t,{el:he,dragEl:Ce}=ie;u=!0,_=de.target===Ce?D(de)-de.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,de.preventDefault(),de.stopPropagation(),_e.style.transitionDuration="100ms",Ce.style.transitionDuration="100ms",P(de),clearTimeout(g),he.style.transitionDuration="0ms",G.hide&&(he.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),l("scrollbarDragStart",de)}function M(de){const{scrollbar:G,wrapperEl:ie}=t,{el:_e,dragEl:he}=G;u&&(de.preventDefault?de.preventDefault():de.returnValue=!1,P(de),ie.style.transitionDuration="0ms",_e.style.transitionDuration="0ms",he.style.transitionDuration="0ms",l("scrollbarDragMove",de))}function V(de){const G=t.params.scrollbar,{scrollbar:ie,wrapperEl:_e}=t,{el:he}=ie;u&&(u=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",_e.style.transitionDuration=""),G.hide&&(clearTimeout(g),g=xE(()=>{he.style.opacity=0,he.style.transitionDuration="400ms"},1e3)),l("scrollbarDragEnd",de),G.snapOnRelease&&t.slideToClosest())}function H(de){const{scrollbar:G,params:ie}=t,_e=G.el;if(!_e)return;const he=_e,Ce=ie.passiveListeners?{passive:!1,capture:!1}:!1,fe=ie.passiveListeners?{passive:!0,capture:!1}:!1;if(!he)return;const me=de==="on"?"addEventListener":"removeEventListener";he[me]("pointerdown",j,Ce),d[me]("pointermove",M,Ce),d[me]("pointerup",V,fe)}function $(){!t.params.scrollbar.el||!t.scrollbar.el||H("on")}function Q(){!t.params.scrollbar.el||!t.scrollbar.el||H("off")}function Y(){const{scrollbar:de,el:G}=t;t.params.scrollbar=qQ(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const ie=t.params.scrollbar;if(!ie.el)return;let _e;if(typeof ie.el=="string"&&t.isElement&&(_e=t.el.querySelector(ie.el)),!_e&&typeof ie.el=="string"){if(_e=d.querySelectorAll(ie.el),!_e.length)return}else _e||(_e=ie.el);t.params.uniqueNavElements&&typeof ie.el=="string"&&_e.length>1&&G.querySelectorAll(ie.el).length===1&&(_e=G.querySelector(ie.el)),_e.length>0&&(_e=_e[0]),_e.classList.add(t.isHorizontal()?ie.horizontalClass:ie.verticalClass);let he;_e&&(he=_e.querySelector(bg(t.params.scrollbar.dragClass)),he||(he=Kd("div",t.params.scrollbar.dragClass),_e.append(he))),Object.assign(de,{el:_e,dragEl:he}),ie.draggable&&$(),_e&&_e.classList[t.enabled?"remove":"add"](...Z0(t.params.scrollbar.lockClass))}function le(){const de=t.params.scrollbar,G=t.scrollbar.el;G&&G.classList.remove(...Z0(t.isHorizontal()?de.horizontalClass:de.verticalClass)),Q()}s("changeDirection",()=>{if(!t.scrollbar||!t.scrollbar.el)return;const de=t.params.scrollbar;let{el:G}=t.scrollbar;G=lr(G),G.forEach(ie=>{ie.classList.remove(de.horizontalClass,de.verticalClass),ie.classList.add(t.isHorizontal()?de.horizontalClass:de.verticalClass)})}),s("init",()=>{t.params.scrollbar.enabled===!1?te():(Y(),O(),A())}),s("update resize observerUpdate lock unlock changeDirection",()=>{O()}),s("setTranslate",()=>{A()}),s("setTransition",(de,G)=>{N(G)}),s("enable disable",()=>{const{el:de}=t.scrollbar;de&&de.classList[t.enabled?"remove":"add"](...Z0(t.params.scrollbar.lockClass))}),s("destroy",()=>{le()});const ae=()=>{t.el.classList.remove(...Z0(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.remove(...Z0(t.params.scrollbar.scrollbarDisabledClass)),Y(),O(),A()},te=()=>{t.el.classList.add(...Z0(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.add(...Z0(t.params.scrollbar.scrollbarDisabledClass)),le()};Object.assign(t.scrollbar,{enable:ae,disable:te,updateSize:O,setTranslate:A,init:Y,destroy:le})}function xKe(n){let{swiper:t,extendParams:i,on:s}=n;i({parallax:{enabled:!1}});const l="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",d=(g,_)=>{const{rtl:y}=t,E=y?-1:1,b=g.getAttribute("data-swiper-parallax")||"0";let A=g.getAttribute("data-swiper-parallax-x"),N=g.getAttribute("data-swiper-parallax-y");const O=g.getAttribute("data-swiper-parallax-scale"),D=g.getAttribute("data-swiper-parallax-opacity"),P=g.getAttribute("data-swiper-parallax-rotate");if(A||N?(A=A||"0",N=N||"0"):t.isHorizontal()?(A=b,N="0"):(N=b,A="0"),A.indexOf("%")>=0?A=`${parseInt(A,10)*_*E}%`:A=`${A*_*E}px`,N.indexOf("%")>=0?N=`${parseInt(N,10)*_}%`:N=`${N*_}px`,typeof D<"u"&&D!==null){const M=D-(D-1)*(1-Math.abs(_));g.style.opacity=M}let j=`translate3d(${A}, ${N}, 0px)`;if(typeof O<"u"&&O!==null){const M=O-(O-1)*(1-Math.abs(_));j+=` scale(${M})`}if(P&&typeof P<"u"&&P!==null){const M=P*_*-1;j+=` rotate(${M}deg)`}g.style.transform=j},u=()=>{const{el:g,slides:_,progress:y,snapGrid:E,isElement:b}=t,A=$o(g,l);t.isElement&&A.push(...$o(t.hostEl,l)),A.forEach(N=>{d(N,y)}),_.forEach((N,O)=>{let D=N.progress;t.params.slidesPerGroup>1&&t.params.slidesPerView!=="auto"&&(D+=Math.ceil(O/2)-y*(E.length-1)),D=Math.min(Math.max(D,-1),1),N.querySelectorAll(`${l}, [data-swiper-parallax-rotate]`).forEach(P=>{d(P,D)})})},p=function(g){g===void 0&&(g=t.params.speed);const{el:_,hostEl:y}=t,E=[..._.querySelectorAll(l)];t.isElement&&E.push(...y.querySelectorAll(l)),E.forEach(b=>{let A=parseInt(b.getAttribute("data-swiper-parallax-duration"),10)||g;g===0&&(A=0),b.style.transitionDuration=`${A}ms`})};s("beforeInit",()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)}),s("init",()=>{t.params.parallax.enabled&&u()}),s("setTranslate",()=>{t.params.parallax.enabled&&u()}),s("setTransition",(g,_)=>{t.params.parallax.enabled&&p(_)})}function AKe(n){let{swiper:t,extendParams:i,on:s,emit:l}=n;const d=ea();i({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let u=1,p=!1,g,_;const y=[],E={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},b={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},A={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let N=1;Object.defineProperty(t.zoom,"scale",{get(){return N},set(Ce){if(N!==Ce){const fe=E.imageEl,me=E.slideEl;l("zoomChange",Ce,fe,me)}N=Ce}});function O(){if(y.length<2)return 1;const Ce=y[0].pageX,fe=y[0].pageY,me=y[1].pageX,Ne=y[1].pageY;return Math.sqrt((me-Ce)**2+(Ne-fe)**2)}function D(){if(y.length<2)return{x:null,y:null};const Ce=E.imageEl.getBoundingClientRect();return[(y[0].pageX+(y[1].pageX-y[0].pageX)/2-Ce.x-d.scrollX)/u,(y[0].pageY+(y[1].pageY-y[0].pageY)/2-Ce.y-d.scrollY)/u]}function P(){return t.isElement?"swiper-slide":`.${t.params.slideClass}`}function j(Ce){const fe=P();return!!(Ce.target.matches(fe)||t.slides.filter(me=>me.contains(Ce.target)).length>0)}function M(Ce){const fe=`.${t.params.zoom.containerClass}`;return!!(Ce.target.matches(fe)||[...t.hostEl.querySelectorAll(fe)].filter(me=>me.contains(Ce.target)).length>0)}function V(Ce){if(Ce.pointerType==="mouse"&&y.splice(0,y.length),!j(Ce))return;const fe=t.params.zoom;if(g=!1,_=!1,y.push(Ce),!(y.length<2)){if(g=!0,E.scaleStart=O(),!E.slideEl){E.slideEl=Ce.target.closest(`.${t.params.slideClass}, swiper-slide`),E.slideEl||(E.slideEl=t.slides[t.activeIndex]);let me=E.slideEl.querySelector(`.${fe.containerClass}`);if(me&&(me=me.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),E.imageEl=me,me?E.imageWrapEl=vE(E.imageEl,`.${fe.containerClass}`)[0]:E.imageWrapEl=void 0,!E.imageWrapEl){E.imageEl=void 0;return}E.maxRatio=E.imageWrapEl.getAttribute("data-swiper-zoom")||fe.maxRatio}if(E.imageEl){const[me,Ne]=D();E.originX=me,E.originY=Ne,E.imageEl.style.transitionDuration="0ms"}p=!0}}function H(Ce){if(!j(Ce))return;const fe=t.params.zoom,me=t.zoom,Ne=y.findIndex(Fe=>Fe.pointerId===Ce.pointerId);Ne>=0&&(y[Ne]=Ce),!(y.length<2)&&(_=!0,E.scaleMove=O(),E.imageEl&&(me.scale=E.scaleMove/E.scaleStart*u,me.scale>E.maxRatio&&(me.scale=E.maxRatio-1+(me.scale-E.maxRatio+1)**.5),me.scaleFe.pointerId===Ce.pointerId);Ne>=0&&y.splice(Ne,1),!(!g||!_)&&(g=!1,_=!1,E.imageEl&&(me.scale=Math.max(Math.min(me.scale,E.maxRatio),fe.minRatio),E.imageEl.style.transitionDuration=`${t.params.speed}ms`,E.imageEl.style.transform=`translate3d(0,0,0) scale(${me.scale})`,u=me.scale,p=!1,me.scale>1&&E.slideEl?E.slideEl.classList.add(`${fe.zoomedSlideClass}`):me.scale<=1&&E.slideEl&&E.slideEl.classList.remove(`${fe.zoomedSlideClass}`),me.scale===1&&(E.originX=0,E.originY=0,E.slideEl=void 0)))}function Q(Ce){const fe=t.device;if(!E.imageEl||b.isTouched)return;fe.android&&Ce.cancelable&&Ce.preventDefault(),b.isTouched=!0;const me=y.length>0?y[0]:Ce;b.touchesStart.x=me.pageX,b.touchesStart.y=me.pageY}function Y(Ce){if(!j(Ce)||!M(Ce))return;const fe=t.zoom;if(!E.imageEl||!b.isTouched||!E.slideEl)return;b.isMoved||(b.width=E.imageEl.offsetWidth,b.height=E.imageEl.offsetHeight,b.startX=qq(E.imageWrapEl,"x")||0,b.startY=qq(E.imageWrapEl,"y")||0,E.slideWidth=E.slideEl.offsetWidth,E.slideHeight=E.slideEl.offsetHeight,E.imageWrapEl.style.transitionDuration="0ms");const me=b.width*fe.scale,Ne=b.height*fe.scale;if(me0?y[0].pageX:Ce.pageX,b.touchesCurrent.y=y.length>0?y[0].pageY:Ce.pageY,Math.max(Math.abs(b.touchesCurrent.x-b.touchesStart.x),Math.abs(b.touchesCurrent.y-b.touchesStart.y))>5&&(t.allowClick=!1),!b.isMoved&&!p){if(t.isHorizontal()&&(Math.floor(b.minX)===Math.floor(b.startX)&&b.touchesCurrent.xb.touchesStart.x)){b.isTouched=!1;return}if(!t.isHorizontal()&&(Math.floor(b.minY)===Math.floor(b.startY)&&b.touchesCurrent.yb.touchesStart.y)){b.isTouched=!1;return}}Ce.cancelable&&Ce.preventDefault(),Ce.stopPropagation(),b.isMoved=!0;const je=(fe.scale-u)/(E.maxRatio-t.params.zoom.minRatio),{originX:Ve,originY:Re}=E;b.currentX=b.touchesCurrent.x-b.touchesStart.x+b.startX+je*(b.width-Ve*2),b.currentY=b.touchesCurrent.y-b.touchesStart.y+b.startY+je*(b.height-Re*2),b.currentXb.maxX&&(b.currentX=b.maxX-1+(b.currentX-b.maxX+1)**.8),b.currentYb.maxY&&(b.currentY=b.maxY-1+(b.currentY-b.maxY+1)**.8),A.prevPositionX||(A.prevPositionX=b.touchesCurrent.x),A.prevPositionY||(A.prevPositionY=b.touchesCurrent.y),A.prevTime||(A.prevTime=Date.now()),A.x=(b.touchesCurrent.x-A.prevPositionX)/(Date.now()-A.prevTime)/2,A.y=(b.touchesCurrent.y-A.prevPositionY)/(Date.now()-A.prevTime)/2,Math.abs(b.touchesCurrent.x-A.prevPositionX)<2&&(A.x=0),Math.abs(b.touchesCurrent.y-A.prevPositionY)<2&&(A.y=0),A.prevPositionX=b.touchesCurrent.x,A.prevPositionY=b.touchesCurrent.y,A.prevTime=Date.now(),E.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function le(){const Ce=t.zoom;if(!E.imageEl)return;if(!b.isTouched||!b.isMoved){b.isTouched=!1,b.isMoved=!1;return}b.isTouched=!1,b.isMoved=!1;let fe=300,me=300;const Ne=A.x*fe,Fe=b.currentX+Ne,je=A.y*me,Ve=b.currentY+je;A.x!==0&&(fe=Math.abs((Fe-b.currentX)/A.x)),A.y!==0&&(me=Math.abs((Ve-b.currentY)/A.y));const Re=Math.max(fe,me);b.currentX=Fe,b.currentY=Ve;const Be=b.width*Ce.scale,Xe=b.height*Ce.scale;b.minX=Math.min(E.slideWidth/2-Be/2,0),b.maxX=-b.minX,b.minY=Math.min(E.slideHeight/2-Xe/2,0),b.maxY=-b.minY,b.currentX=Math.max(Math.min(b.currentX,b.maxX),b.minX),b.currentY=Math.max(Math.min(b.currentY,b.maxY),b.minY),E.imageWrapEl.style.transitionDuration=`${Re}ms`,E.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function ae(){const Ce=t.zoom;E.slideEl&&t.activeIndex!==t.slides.indexOf(E.slideEl)&&(E.imageEl&&(E.imageEl.style.transform="translate3d(0,0,0) scale(1)"),E.imageWrapEl&&(E.imageWrapEl.style.transform="translate3d(0,0,0)"),E.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),Ce.scale=1,u=1,E.slideEl=void 0,E.imageEl=void 0,E.imageWrapEl=void 0,E.originX=0,E.originY=0)}function te(Ce){const fe=t.zoom,me=t.params.zoom;if(!E.slideEl){Ce&&Ce.target&&(E.slideEl=Ce.target.closest(`.${t.params.slideClass}, swiper-slide`)),E.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?E.slideEl=$o(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:E.slideEl=t.slides[t.activeIndex]);let mt=E.slideEl.querySelector(`.${me.containerClass}`);mt&&(mt=mt.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),E.imageEl=mt,mt?E.imageWrapEl=vE(E.imageEl,`.${me.containerClass}`)[0]:E.imageWrapEl=void 0}if(!E.imageEl||!E.imageWrapEl)return;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),E.slideEl.classList.add(`${me.zoomedSlideClass}`);let Ne,Fe,je,Ve,Re,Be,Xe,we,Ge,rt,pt,Ze,Je,_t,Xt,Ht,gn,It;typeof b.touchesStart.x>"u"&&Ce?(Ne=Ce.pageX,Fe=Ce.pageY):(Ne=b.touchesStart.x,Fe=b.touchesStart.y);const xt=typeof Ce=="number"?Ce:null;u===1&&xt&&(Ne=void 0,Fe=void 0),fe.scale=xt||E.imageWrapEl.getAttribute("data-swiper-zoom")||me.maxRatio,u=xt||E.imageWrapEl.getAttribute("data-swiper-zoom")||me.maxRatio,Ce&&!(u===1&&xt)?(gn=E.slideEl.offsetWidth,It=E.slideEl.offsetHeight,je=C7(E.slideEl).left+d.scrollX,Ve=C7(E.slideEl).top+d.scrollY,Re=je+gn/2-Ne,Be=Ve+It/2-Fe,Ge=E.imageEl.offsetWidth,rt=E.imageEl.offsetHeight,pt=Ge*fe.scale,Ze=rt*fe.scale,Je=Math.min(gn/2-pt/2,0),_t=Math.min(It/2-Ze/2,0),Xt=-Je,Ht=-_t,Xe=Re*fe.scale,we=Be*fe.scale,XeXt&&(Xe=Xt),we<_t&&(we=_t),we>Ht&&(we=Ht)):(Xe=0,we=0),xt&&fe.scale===1&&(E.originX=0,E.originY=0),E.imageWrapEl.style.transitionDuration="300ms",E.imageWrapEl.style.transform=`translate3d(${Xe}px, ${we}px,0)`,E.imageEl.style.transitionDuration="300ms",E.imageEl.style.transform=`translate3d(0,0,0) scale(${fe.scale})`}function de(){const Ce=t.zoom,fe=t.params.zoom;if(!E.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?E.slideEl=$o(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:E.slideEl=t.slides[t.activeIndex];let me=E.slideEl.querySelector(`.${fe.containerClass}`);me&&(me=me.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),E.imageEl=me,me?E.imageWrapEl=vE(E.imageEl,`.${fe.containerClass}`)[0]:E.imageWrapEl=void 0}!E.imageEl||!E.imageWrapEl||(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),Ce.scale=1,u=1,E.imageWrapEl.style.transitionDuration="300ms",E.imageWrapEl.style.transform="translate3d(0,0,0)",E.imageEl.style.transitionDuration="300ms",E.imageEl.style.transform="translate3d(0,0,0) scale(1)",E.slideEl.classList.remove(`${fe.zoomedSlideClass}`),E.slideEl=void 0,E.originX=0,E.originY=0)}function G(Ce){const fe=t.zoom;fe.scale&&fe.scale!==1?de():te(Ce)}function ie(){const Ce=t.params.passiveListeners?{passive:!0,capture:!1}:!1,fe=t.params.passiveListeners?{passive:!1,capture:!0}:!0;return{passiveListener:Ce,activeListenerWithCapture:fe}}function _e(){const Ce=t.zoom;if(Ce.enabled)return;Ce.enabled=!0;const{passiveListener:fe,activeListenerWithCapture:me}=ie();t.wrapperEl.addEventListener("pointerdown",V,fe),t.wrapperEl.addEventListener("pointermove",H,me),["pointerup","pointercancel","pointerout"].forEach(Ne=>{t.wrapperEl.addEventListener(Ne,$,fe)}),t.wrapperEl.addEventListener("pointermove",Y,me)}function he(){const Ce=t.zoom;if(!Ce.enabled)return;Ce.enabled=!1;const{passiveListener:fe,activeListenerWithCapture:me}=ie();t.wrapperEl.removeEventListener("pointerdown",V,fe),t.wrapperEl.removeEventListener("pointermove",H,me),["pointerup","pointercancel","pointerout"].forEach(Ne=>{t.wrapperEl.removeEventListener(Ne,$,fe)}),t.wrapperEl.removeEventListener("pointermove",Y,me)}s("init",()=>{t.params.zoom.enabled&&_e()}),s("destroy",()=>{he()}),s("touchStart",(Ce,fe)=>{t.zoom.enabled&&Q(fe)}),s("touchEnd",(Ce,fe)=>{t.zoom.enabled&&le()}),s("doubleTap",(Ce,fe)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&G(fe)}),s("transitionEnd",()=>{t.zoom.enabled&&t.params.zoom.enabled&&ae()}),s("slideChange",()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&ae()}),Object.assign(t.zoom,{enable:_e,disable:he,in:te,out:de,toggle:G})}function IKe(n){let{swiper:t,extendParams:i,on:s}=n;i({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0};function l(_,y){const E=function(){let O,D,P;return(j,M)=>{for(D=-1,O=j.length;O-D>1;)P=O+D>>1,j[P]<=M?D=P:O=P;return O}}();this.x=_,this.y=y,this.lastIndex=_.length-1;let b,A;return this.interpolate=function(O){return O?(A=E(this.x,O),b=A-1,(O-this.x[b])*(this.y[A]-this.y[b])/(this.x[A]-this.x[b])+this.y[b]):0},this}function d(_){t.controller.spline=t.params.loop?new l(t.slidesGrid,_.slidesGrid):new l(t.snapGrid,_.snapGrid)}function u(_,y){const E=t.controller.control;let b,A;const N=t.constructor;function O(D){if(D.destroyed)return;const P=t.rtlTranslate?-t.translate:t.translate;t.params.controller.by==="slide"&&(d(D),A=-t.controller.spline.interpolate(-P)),(!A||t.params.controller.by==="container")&&(b=(D.maxTranslate()-D.minTranslate())/(t.maxTranslate()-t.minTranslate()),(Number.isNaN(b)||!Number.isFinite(b))&&(b=1),A=(P-t.minTranslate())*b+D.minTranslate()),t.params.controller.inverse&&(A=D.maxTranslate()-A),D.updateProgress(A),D.setTranslate(A,t),D.updateActiveIndex(),D.updateSlidesClasses()}if(Array.isArray(E))for(let D=0;D{O.updateAutoHeight()}),m4(O.wrapperEl,()=>{b&&O.transitionEnd()})))}if(Array.isArray(b))for(A=0;A{if(typeof window<"u"&&(typeof t.params.controller.control=="string"||t.params.controller.control instanceof HTMLElement)){const _=document.querySelector(t.params.controller.control);if(_&&_.swiper)t.controller.control=_.swiper;else if(_){const y=E=>{t.controller.control=E.detail[0],t.update(),_.removeEventListener("init",y)};_.addEventListener("init",y)}return}t.controller.control=t.params.controller.control}),s("update",()=>{g()}),s("resize",()=>{g()}),s("observerUpdate",()=>{g()}),s("setTranslate",(_,y,E)=>{!t.controller.control||t.controller.control.destroyed||t.controller.setTranslate(y,E)}),s("setTransition",(_,y,E)=>{!t.controller.control||t.controller.control.destroyed||t.controller.setTransition(y,E)}),Object.assign(t.controller,{setTranslate:u,setTransition:p})}function NKe(n){let{swiper:t,extendParams:i,on:s}=n;i({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null}}),t.a11y={clicked:!1};let l=null;function d(G){const ie=l;ie.length!==0&&(ie.innerHTML="",ie.innerHTML=G)}function u(G){G===void 0&&(G=16);const ie=()=>Math.round(16*Math.random()).toString(16);return"x".repeat(G).replace(/x/g,ie)}function p(G){G=lr(G),G.forEach(ie=>{ie.setAttribute("tabIndex","0")})}function g(G){G=lr(G),G.forEach(ie=>{ie.setAttribute("tabIndex","-1")})}function _(G,ie){G=lr(G),G.forEach(_e=>{_e.setAttribute("role",ie)})}function y(G,ie){G=lr(G),G.forEach(_e=>{_e.setAttribute("aria-roledescription",ie)})}function E(G,ie){G=lr(G),G.forEach(_e=>{_e.setAttribute("aria-controls",ie)})}function b(G,ie){G=lr(G),G.forEach(_e=>{_e.setAttribute("aria-label",ie)})}function A(G,ie){G=lr(G),G.forEach(_e=>{_e.setAttribute("id",ie)})}function N(G,ie){G=lr(G),G.forEach(_e=>{_e.setAttribute("aria-live",ie)})}function O(G){G=lr(G),G.forEach(ie=>{ie.setAttribute("aria-disabled",!0)})}function D(G){G=lr(G),G.forEach(ie=>{ie.setAttribute("aria-disabled",!1)})}function P(G){if(G.keyCode!==13&&G.keyCode!==32)return;const ie=t.params.a11y,_e=G.target;t.pagination&&t.pagination.el&&(_e===t.pagination.el||t.pagination.el.contains(G.target))&&!G.target.matches(bg(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&_e===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?d(ie.lastSlideMessage):d(ie.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&_e===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?d(ie.firstSlideMessage):d(ie.prevSlideMessage)),t.pagination&&_e.matches(bg(t.params.pagination.bulletClass))&&_e.click())}function j(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:G,prevEl:ie}=t.navigation;ie&&(t.isBeginning?(O(ie),g(ie)):(D(ie),p(ie))),G&&(t.isEnd?(O(G),g(G)):(D(G),p(G)))}function M(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function V(){return M()&&t.params.pagination.clickable}function H(){const G=t.params.a11y;M()&&t.pagination.bullets.forEach(ie=>{t.params.pagination.clickable&&(p(ie),t.params.pagination.renderBullet||(_(ie,"button"),b(ie,G.paginationBulletMessage.replace(/\{\{index\}\}/,q4(ie)+1)))),ie.matches(bg(t.params.pagination.bulletActiveClass))?ie.setAttribute("aria-current","true"):ie.removeAttribute("aria-current")})}const $=(G,ie,_e)=>{p(G),G.tagName!=="BUTTON"&&(_(G,"button"),G.addEventListener("keydown",P)),b(G,_e),E(G,ie)},Q=()=>{t.a11y.clicked=!0},Y=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{t.destroyed||(t.a11y.clicked=!1)})})},le=G=>{if(t.a11y.clicked)return;const ie=G.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!ie||!t.slides.includes(ie))return;const _e=t.slides.indexOf(ie)===t.activeIndex,he=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(ie);_e||he||G.sourceCapabilities&&G.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(ie),0))},ae=()=>{const G=t.params.a11y;G.itemRoleDescriptionMessage&&y(t.slides,G.itemRoleDescriptionMessage),G.slideRole&&_(t.slides,G.slideRole);const ie=t.slides.length;G.slideLabelMessage&&t.slides.forEach((_e,he)=>{const Ce=t.params.loop?parseInt(_e.getAttribute("data-swiper-slide-index"),10):he,fe=G.slideLabelMessage.replace(/\{\{index\}\}/,Ce+1).replace(/\{\{slidesLength\}\}/,ie);b(_e,fe)})},te=()=>{const G=t.params.a11y;t.el.append(l);const ie=t.el;G.containerRoleDescriptionMessage&&y(ie,G.containerRoleDescriptionMessage),G.containerMessage&&b(ie,G.containerMessage);const _e=t.wrapperEl,he=G.id||_e.getAttribute("id")||`swiper-wrapper-${u(16)}`,Ce=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";A(_e,he),N(_e,Ce),ae();let{nextEl:fe,prevEl:me}=t.navigation?t.navigation:{};fe=lr(fe),me=lr(me),fe&&fe.forEach(Ne=>$(Ne,he,G.nextSlideMessage)),me&&me.forEach(Ne=>$(Ne,he,G.prevSlideMessage)),V()&&lr(t.pagination.el).forEach(Fe=>{Fe.addEventListener("keydown",P)}),t.el.addEventListener("focus",le,!0),t.el.addEventListener("pointerdown",Q,!0),t.el.addEventListener("pointerup",Y,!0)};function de(){l&&l.remove();let{nextEl:G,prevEl:ie}=t.navigation?t.navigation:{};G=lr(G),ie=lr(ie),G&&G.forEach(_e=>_e.removeEventListener("keydown",P)),ie&&ie.forEach(_e=>_e.removeEventListener("keydown",P)),V()&&lr(t.pagination.el).forEach(he=>{he.removeEventListener("keydown",P)}),t.el.removeEventListener("focus",le,!0),t.el.removeEventListener("pointerdown",Q,!0),t.el.removeEventListener("pointerup",Y,!0)}s("beforeInit",()=>{l=Kd("span",t.params.a11y.notificationClass),l.setAttribute("aria-live","assertive"),l.setAttribute("aria-atomic","true")}),s("afterInit",()=>{t.params.a11y.enabled&&te()}),s("slidesLengthChange snapGridLengthChange slidesGridLengthChange",()=>{t.params.a11y.enabled&&ae()}),s("fromEdge toEdge afterInit lock unlock",()=>{t.params.a11y.enabled&&j()}),s("paginationUpdate",()=>{t.params.a11y.enabled&&H()}),s("destroy",()=>{t.params.a11y.enabled&&de()})}function OKe(n){let{swiper:t,extendParams:i,on:s}=n;i({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let l=!1,d={};const u=A=>A.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),p=A=>{const N=ea();let O;A?O=new URL(A):O=N.location;const D=O.pathname.slice(1).split("/").filter(V=>V!==""),P=D.length,j=D[P-2],M=D[P-1];return{key:j,value:M}},g=(A,N)=>{const O=ea();if(!l||!t.params.history.enabled)return;let D;t.params.url?D=new URL(t.params.url):D=O.location;const P=t.slides[N];let j=u(P.getAttribute("data-history"));if(t.params.history.root.length>0){let V=t.params.history.root;V[V.length-1]==="/"&&(V=V.slice(0,V.length-1)),j=`${V}/${A?`${A}/`:""}${j}`}else D.pathname.includes(A)||(j=`${A?`${A}/`:""}${j}`);t.params.history.keepQuery&&(j+=D.search);const M=O.history.state;M&&M.value===j||(t.params.history.replaceState?O.history.replaceState({value:j},null,j):O.history.pushState({value:j},null,j))},_=(A,N,O)=>{if(N)for(let D=0,P=t.slides.length;D{d=p(t.params.url),_(t.params.speed,d.value,!1)},E=()=>{const A=ea();if(t.params.history){if(!A.history||!A.history.pushState){t.params.history.enabled=!1,t.params.hashNavigation.enabled=!0;return}if(l=!0,d=p(t.params.url),!d.key&&!d.value){t.params.history.replaceState||A.addEventListener("popstate",y);return}_(0,d.value,t.params.runCallbacksOnInit),t.params.history.replaceState||A.addEventListener("popstate",y)}},b=()=>{const A=ea();t.params.history.replaceState||A.removeEventListener("popstate",y)};s("init",()=>{t.params.history.enabled&&E()}),s("destroy",()=>{t.params.history.enabled&&b()}),s("transitionEnd _freeModeNoMomentumRelease",()=>{l&&g(t.params.history.key,t.activeIndex)}),s("slideChange",()=>{l&&t.params.cssMode&&g(t.params.history.key,t.activeIndex)})}function PKe(n){let{swiper:t,extendParams:i,emit:s,on:l}=n,d=!1;const u=lc(),p=ea();i({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(b,A){if(t.virtual&&t.params.virtual.enabled){const N=t.slides.filter(D=>D.getAttribute("data-hash")===A)[0];return N?parseInt(N.getAttribute("data-swiper-slide-index"),10):0}return t.getSlideIndex($o(t.slidesEl,`.${t.params.slideClass}[data-hash="${A}"], swiper-slide[data-hash="${A}"]`)[0])}}});const g=()=>{s("hashChange");const b=u.location.hash.replace("#",""),A=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],N=A?A.getAttribute("data-hash"):"";if(b!==N){const O=t.params.hashNavigation.getSlideIndex(t,b);if(typeof O>"u"||Number.isNaN(O))return;t.slideTo(O)}},_=()=>{if(!d||!t.params.hashNavigation.enabled)return;const b=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],A=b?b.getAttribute("data-hash")||b.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&p.history&&p.history.replaceState?(p.history.replaceState(null,null,`#${A}`||""),s("hashSet")):(u.location.hash=A||"",s("hashSet"))},y=()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;d=!0;const b=u.location.hash.replace("#","");if(b){const N=t.params.hashNavigation.getSlideIndex(t,b);t.slideTo(N||0,0,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&p.addEventListener("hashchange",g)},E=()=>{t.params.hashNavigation.watchState&&p.removeEventListener("hashchange",g)};l("init",()=>{t.params.hashNavigation.enabled&&y()}),l("destroy",()=>{t.params.hashNavigation.enabled&&E()}),l("transitionEnd _freeModeNoMomentumRelease",()=>{d&&_()}),l("slideChange",()=>{d&&t.params.cssMode&&_()})}function LKe(n){let{swiper:t,extendParams:i,on:s,emit:l,params:d}=n;t.autoplay={running:!1,paused:!1,timeLeft:0},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let u,p,g=d&&d.autoplay?d.autoplay.delay:3e3,_=d&&d.autoplay?d.autoplay.delay:3e3,y,E=new Date().getTime(),b,A,N,O,D,P,j;function M(fe){!t||t.destroyed||!t.wrapperEl||fe.target===t.wrapperEl&&(t.wrapperEl.removeEventListener("transitionend",M),!j&&ae())}const V=()=>{if(t.destroyed||!t.autoplay.running)return;t.autoplay.paused?b=!0:b&&(_=y,b=!1);const fe=t.autoplay.paused?y:E+_-new Date().getTime();t.autoplay.timeLeft=fe,l("autoplayTimeLeft",fe,fe/g),p=requestAnimationFrame(()=>{V()})},H=()=>{let fe;return t.virtual&&t.params.virtual.enabled?fe=t.slides.filter(Ne=>Ne.classList.contains("swiper-slide-active"))[0]:fe=t.slides[t.activeIndex],fe?parseInt(fe.getAttribute("data-swiper-autoplay"),10):void 0},$=fe=>{if(t.destroyed||!t.autoplay.running)return;cancelAnimationFrame(p),V();let me=typeof fe>"u"?t.params.autoplay.delay:fe;g=t.params.autoplay.delay,_=t.params.autoplay.delay;const Ne=H();!Number.isNaN(Ne)&&Ne>0&&typeof fe>"u"&&(me=Ne,g=Ne,_=Ne),y=me;const Fe=t.params.speed,je=()=>{!t||t.destroyed||(t.params.autoplay.reverseDirection?!t.isBeginning||t.params.loop||t.params.rewind?(t.slidePrev(Fe,!0,!0),l("autoplay")):t.params.autoplay.stopOnLastSlide||(t.slideTo(t.slides.length-1,Fe,!0,!0),l("autoplay")):!t.isEnd||t.params.loop||t.params.rewind?(t.slideNext(Fe,!0,!0),l("autoplay")):t.params.autoplay.stopOnLastSlide||(t.slideTo(0,Fe,!0,!0),l("autoplay")),t.params.cssMode&&(E=new Date().getTime(),requestAnimationFrame(()=>{$()})))};return me>0?(clearTimeout(u),u=setTimeout(()=>{je()},me)):requestAnimationFrame(()=>{je()}),me},Q=()=>{E=new Date().getTime(),t.autoplay.running=!0,$(),l("autoplayStart")},Y=()=>{t.autoplay.running=!1,clearTimeout(u),cancelAnimationFrame(p),l("autoplayStop")},le=(fe,me)=>{if(t.destroyed||!t.autoplay.running)return;clearTimeout(u),fe||(P=!0);const Ne=()=>{l("autoplayPause"),t.params.autoplay.waitForTransition?t.wrapperEl.addEventListener("transitionend",M):ae()};if(t.autoplay.paused=!0,me){D&&(y=t.params.autoplay.delay),D=!1,Ne();return}y=(y||t.params.autoplay.delay)-(new Date().getTime()-E),!(t.isEnd&&y<0&&!t.params.loop)&&(y<0&&(y=0),Ne())},ae=()=>{t.isEnd&&y<0&&!t.params.loop||t.destroyed||!t.autoplay.running||(E=new Date().getTime(),P?(P=!1,$(y)):$(),t.autoplay.paused=!1,l("autoplayResume"))},te=()=>{if(t.destroyed||!t.autoplay.running)return;const fe=lc();fe.visibilityState==="hidden"&&(P=!0,le(!0)),fe.visibilityState==="visible"&&ae()},de=fe=>{fe.pointerType==="mouse"&&(P=!0,j=!0,!(t.animating||t.autoplay.paused)&&le(!0))},G=fe=>{fe.pointerType==="mouse"&&(j=!1,t.autoplay.paused&&ae())},ie=()=>{t.params.autoplay.pauseOnMouseEnter&&(t.el.addEventListener("pointerenter",de),t.el.addEventListener("pointerleave",G))},_e=()=>{t.el.removeEventListener("pointerenter",de),t.el.removeEventListener("pointerleave",G)},he=()=>{lc().addEventListener("visibilitychange",te)},Ce=()=>{lc().removeEventListener("visibilitychange",te)};s("init",()=>{t.params.autoplay.enabled&&(ie(),he(),Q())}),s("destroy",()=>{_e(),Ce(),t.autoplay.running&&Y()}),s("_freeModeStaticRelease",()=>{(N||P)&&ae()}),s("_freeModeNoMomentumRelease",()=>{t.params.autoplay.disableOnInteraction?Y():le(!0,!0)}),s("beforeTransitionStart",(fe,me,Ne)=>{t.destroyed||!t.autoplay.running||(Ne||!t.params.autoplay.disableOnInteraction?le(!0,!0):Y())}),s("sliderFirstMove",()=>{if(!(t.destroyed||!t.autoplay.running)){if(t.params.autoplay.disableOnInteraction){Y();return}A=!0,N=!1,P=!1,O=setTimeout(()=>{P=!0,N=!0,le(!0)},200)}}),s("touchEnd",()=>{if(!(t.destroyed||!t.autoplay.running||!A)){if(clearTimeout(O),clearTimeout(u),t.params.autoplay.disableOnInteraction){N=!1,A=!1;return}N&&t.params.cssMode&&ae(),N=!1,A=!1}}),s("slideChange",()=>{t.destroyed||!t.autoplay.running||(D=!0)}),Object.assign(t.autoplay,{start:Q,stop:Y,pause:le,resume:ae})}function DKe(n){let{swiper:t,extendParams:i,on:s}=n;i({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let l=!1,d=!1;t.thumbs={swiper:null};function u(){const _=t.thumbs.swiper;if(!_||_.destroyed)return;const y=_.clickedIndex,E=_.clickedSlide;if(E&&E.classList.contains(t.params.thumbs.slideThumbActiveClass)||typeof y>"u"||y===null)return;let b;_.params.loop?b=parseInt(_.clickedSlide.getAttribute("data-swiper-slide-index"),10):b=y,t.params.loop?t.slideToLoop(b):t.slideTo(b)}function p(){const{thumbs:_}=t.params;if(l)return!1;l=!0;const y=t.constructor;if(_.swiper instanceof y)t.thumbs.swiper=_.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update();else if(PI(_.swiper)){const E=Object.assign({},_.swiper);Object.assign(E,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new y(E),d=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",u),!0}function g(_){const y=t.thumbs.swiper;if(!y||y.destroyed)return;const E=y.params.slidesPerView==="auto"?y.slidesPerViewDynamic():y.params.slidesPerView;let b=1;const A=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(b=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(b=1),b=Math.floor(b),y.slides.forEach(D=>D.classList.remove(A)),y.params.loop||y.params.virtual&&y.params.virtual.enabled)for(let D=0;D{P.classList.add(A)});else for(let D=0;DV.getAttribute("data-swiper-slide-index")===`${t.realIndex}`)[0];P=y.slides.indexOf(M),j=t.activeIndex>t.previousIndex?"next":"prev"}else P=t.realIndex,j=P>t.previousIndex?"next":"prev";O&&(P+=j==="next"?N:-1*N),y.visibleSlidesIndexes&&y.visibleSlidesIndexes.indexOf(P)<0&&(y.params.centeredSlides?P>D?P=P-Math.floor(E/2)+1:P=P+Math.floor(E/2)-1:P>D&&y.params.slidesPerGroup,y.slideTo(P,_?0:void 0))}}s("beforeInit",()=>{const{thumbs:_}=t.params;if(!(!_||!_.swiper))if(typeof _.swiper=="string"||_.swiper instanceof HTMLElement){const y=lc(),E=()=>{const A=typeof _.swiper=="string"?y.querySelector(_.swiper):_.swiper;if(A&&A.swiper)_.swiper=A.swiper,p(),g(!0);else if(A){const N=O=>{_.swiper=O.detail[0],A.removeEventListener("init",N),p(),g(!0),_.swiper.update(),t.update()};A.addEventListener("init",N)}return A},b=()=>{if(t.destroyed)return;E()||requestAnimationFrame(b)};requestAnimationFrame(b)}else p(),g(!0)}),s("slideChange update resize observerUpdate",()=>{g()}),s("setTransition",(_,y)=>{const E=t.thumbs.swiper;!E||E.destroyed||E.setTransition(y)}),s("beforeDestroy",()=>{const _=t.thumbs.swiper;!_||_.destroyed||d&&_.destroy()}),Object.assign(t.thumbs,{init:p,update:g})}function kKe(n){let{swiper:t,extendParams:i,emit:s,once:l}=n;i({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}});function d(){if(t.params.cssMode)return;const g=t.getTranslate();t.setTranslate(g),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})}function u(){if(t.params.cssMode)return;const{touchEventsData:g,touches:_}=t;g.velocities.length===0&&g.velocities.push({position:_[t.isHorizontal()?"startX":"startY"],time:g.touchStartTime}),g.velocities.push({position:_[t.isHorizontal()?"currentX":"currentY"],time:Zu()})}function p(g){let{currentPos:_}=g;if(t.params.cssMode)return;const{params:y,wrapperEl:E,rtlTranslate:b,snapGrid:A,touchEventsData:N}=t,D=Zu()-N.touchStartTime;if(_<-t.minTranslate()){t.slideTo(t.activeIndex);return}if(_>-t.maxTranslate()){t.slides.length1){const Y=N.velocities.pop(),le=N.velocities.pop(),ae=Y.position-le.position,te=Y.time-le.time;t.velocity=ae/te,t.velocity/=2,Math.abs(t.velocity)150||Zu()-Y.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=y.freeMode.momentumVelocityRatio,N.velocities.length=0;let P=1e3*y.freeMode.momentumRatio;const j=t.velocity*P;let M=t.translate+j;b&&(M=-M);let V=!1,H;const $=Math.abs(t.velocity)*20*y.freeMode.momentumBounceRatio;let Q;if(Mt.minTranslate())y.freeMode.momentumBounce?(M-t.minTranslate()>$&&(M=t.minTranslate()+$),H=t.minTranslate(),V=!0,N.allowMomentumBounce=!0):M=t.minTranslate(),y.loop&&y.centeredSlides&&(Q=!0);else if(y.freeMode.sticky){let Y;for(let le=0;le-M){Y=le;break}Math.abs(A[Y]-M){t.loopFix()}),t.velocity!==0){if(b?P=Math.abs((-M-t.translate)/t.velocity):P=Math.abs((M-t.translate)/t.velocity),y.freeMode.sticky){const Y=Math.abs((b?-M:M)-t.translate),le=t.slidesSizesGrid[t.activeIndex];Y{!t||t.destroyed||!N.allowMomentumBounce||(s("momentumBounce"),t.setTransition(y.speed),setTimeout(()=>{t.setTranslate(H),m4(E,()=>{!t||t.destroyed||t.transitionEnd()})},0))})):t.velocity?(s("_freeModeNoMomentumRelease"),t.updateProgress(M),t.setTransition(P),t.setTranslate(M),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,m4(E,()=>{!t||t.destroyed||t.transitionEnd()}))):t.updateProgress(M),t.updateActiveIndex(),t.updateSlidesClasses()}else if(y.freeMode.sticky){t.slideToClosest();return}else y.freeMode&&s("_freeModeNoMomentumRelease");(!y.freeMode.momentum||D>=y.longSwipesMs)&&(s("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}Object.assign(t,{freeMode:{onTouchStart:d,onTouchMove:u,onTouchEnd:p}})}function MKe(n){let{swiper:t,extendParams:i,on:s}=n;i({grid:{rows:1,fill:"column"}});let l,d,u,p;const g=()=>{let O=t.params.spaceBetween;return typeof O=="string"&&O.indexOf("%")>=0?O=parseFloat(O.replace("%",""))/100*t.size:typeof O=="string"&&(O=parseFloat(O)),O},_=O=>{const{slidesPerView:D}=t.params,{rows:P,fill:j}=t.params.grid,M=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:O.length;u=Math.floor(M/P),Math.floor(M/P)===M/P?l=M:l=Math.ceil(M/P)*P,D!=="auto"&&j==="row"&&(l=Math.max(l,D*P)),d=l/P},y=()=>{t.slides&&t.slides.forEach(O=>{O.swiperSlideGridSet&&(O.style.height="",O.style[t.getDirectionLabel("margin-top")]="")})},E=(O,D,P)=>{const{slidesPerGroup:j}=t.params,M=g(),{rows:V,fill:H}=t.params.grid,$=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:P.length;let Q,Y,le;if(H==="row"&&j>1){const ae=Math.floor(O/(j*V)),te=O-V*j*ae,de=ae===0?j:Math.min(Math.ceil(($-ae*V*j)/V),j);le=Math.floor(te/de),Y=te-le*de+ae*j,Q=Y+le*l/V,D.style.order=Q}else H==="column"?(Y=Math.floor(O/V),le=O-Y*V,(Y>u||Y===u&&le===V-1)&&(le+=1,le>=V&&(le=0,Y+=1))):(le=Math.floor(O/d),Y=O-le*d);D.row=le,D.column=Y,D.style.height=`calc((100% - ${(V-1)*M}px) / ${V})`,D.style[t.getDirectionLabel("margin-top")]=le!==0?M&&`${M}px`:"",D.swiperSlideGridSet=!0},b=(O,D)=>{const{centeredSlides:P,roundLengths:j}=t.params,M=g(),{rows:V}=t.params.grid;if(t.virtualSize=(O+M)*l,t.virtualSize=Math.ceil(t.virtualSize/V)-M,t.params.cssMode||(t.wrapperEl.style[t.getDirectionLabel("width")]=`${t.virtualSize+M}px`),P){const H=[];for(let $=0;${p=t.params.grid&&t.params.grid.rows>1},N=()=>{const{params:O,el:D}=t,P=O.grid&&O.grid.rows>1;p&&!P?(D.classList.remove(`${O.containerModifierClass}grid`,`${O.containerModifierClass}grid-column`),u=1,t.emitContainerClasses()):!p&&P&&(D.classList.add(`${O.containerModifierClass}grid`),O.grid.fill==="column"&&D.classList.add(`${O.containerModifierClass}grid-column`),t.emitContainerClasses()),p=P};s("init",A),s("update",N),t.grid={initSlides:_,unsetSlides:y,updateSlide:E,updateWrapperSize:b}}function jKe(n){const t=this,{params:i,slidesEl:s}=t;i.loop&&t.loopDestroy();const l=d=>{if(typeof d=="string"){const u=document.createElement("div");u.innerHTML=d,s.append(u.children[0]),u.innerHTML=""}else s.append(d)};if(typeof n=="object"&&"length"in n)for(let d=0;d{if(typeof p=="string"){const g=document.createElement("div");g.innerHTML=p,l.prepend(g.children[0]),g.innerHTML=""}else l.prepend(p)};if(typeof n=="object"&&"length"in n){for(let p=0;p=p){i.appendSlide(t);return}let g=u>n?u+1:u;const _=[];for(let y=p-1;y>=n;y-=1){const E=i.slides[y];E.remove(),_.unshift(E)}if(typeof t=="object"&&"length"in t){for(let y=0;yn?u+t.length:u}else d.append(t);for(let y=0;y<_.length;y+=1)d.append(_[y]);i.recalcSlides(),s.loop&&i.loopCreate(),(!s.observer||i.isElement)&&i.update(),s.loop?i.slideTo(g+i.loopedSlides,0,!1):i.slideTo(g,0,!1)}function BKe(n){const t=this,{params:i,activeIndex:s}=t;let l=s;i.loop&&(l-=t.loopedSlides,t.loopDestroy());let d=l,u;if(typeof n=="object"&&"length"in n){for(let p=0;p{if(i.params.effect!==t)return;i.classNames.push(`${i.params.containerModifierClass}${t}`),p&&p()&&i.classNames.push(`${i.params.containerModifierClass}3d`);const E=u?u():{};Object.assign(i.params,E),Object.assign(i.originalParams,E)}),s("setTranslate",()=>{i.params.effect===t&&l()}),s("setTransition",(E,b)=>{i.params.effect===t&&d(b)}),s("transitionEnd",()=>{if(i.params.effect===t&&g){if(!_||!_().slideShadows)return;i.slides.forEach(E=>{E.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(b=>b.remove())}),g()}});let y;s("virtualUpdate",()=>{i.params.effect===t&&(i.slides.length||(y=!0),requestAnimationFrame(()=>{y&&i.slides&&i.slides.length&&(l(),y=!1)}))})}function KO(n,t){const i=qE(t);return i!==t&&(i.style.backfaceVisibility="hidden",i.style["-webkit-backface-visibility"]="hidden"),i}function jU(n){let{swiper:t,duration:i,transformElements:s,allSlides:l}=n;const{activeIndex:d}=t,u=p=>p.parentElement?p.parentElement:t.slides.filter(_=>_.shadowRoot&&_.shadowRoot===p.parentNode)[0];if(t.params.virtualTranslate&&i!==0){let p=!1,g;l?g=s:g=s.filter(_=>{const y=_.classList.contains("swiper-slide-transform")?u(_):_;return t.getSlideIndex(y)===d}),g.forEach(_=>{m4(_,()=>{if(p||!t||t.destroyed)return;p=!0,t.animating=!1;const y=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(y)})})}}function HKe(n){let{swiper:t,extendParams:i,on:s}=n;i({fadeEffect:{crossFade:!1}}),ex({effect:"fade",swiper:t,on:s,setTranslate:()=>{const{slides:u}=t,p=t.params.fadeEffect;for(let g=0;g{const p=t.slides.map(g=>qE(g));p.forEach(g=>{g.style.transitionDuration=`${u}ms`}),jU({swiper:t,duration:u,transformElements:p,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})}function GKe(n){let{swiper:t,extendParams:i,on:s}=n;i({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const l=(g,_,y)=>{let E=y?g.querySelector(".swiper-slide-shadow-left"):g.querySelector(".swiper-slide-shadow-top"),b=y?g.querySelector(".swiper-slide-shadow-right"):g.querySelector(".swiper-slide-shadow-bottom");E||(E=Kd("div",`swiper-slide-shadow-cube swiper-slide-shadow-${y?"left":"top"}`.split(" ")),g.append(E)),b||(b=Kd("div",`swiper-slide-shadow-cube swiper-slide-shadow-${y?"right":"bottom"}`.split(" ")),g.append(b)),E&&(E.style.opacity=Math.max(-_,0)),b&&(b.style.opacity=Math.max(_,0))};ex({effect:"cube",swiper:t,on:s,setTranslate:()=>{const{el:g,wrapperEl:_,slides:y,width:E,height:b,rtlTranslate:A,size:N,browser:O}=t,D=t.params.cubeEffect,P=t.isHorizontal(),j=t.virtual&&t.params.virtual.enabled;let M=0,V;D.shadow&&(P?(V=t.wrapperEl.querySelector(".swiper-cube-shadow"),V||(V=Kd("div","swiper-cube-shadow"),t.wrapperEl.append(V)),V.style.height=`${E}px`):(V=g.querySelector(".swiper-cube-shadow"),V||(V=Kd("div","swiper-cube-shadow"),g.append(V))));for(let $=0;$-1&&(M=Y*90+te*90,A&&(M=-Y*90-te*90),t.browser&&t.browser.need3dFix&&Math.abs(M)/90%2===1&&(M+=.001)),Q.style.transform=_e,D.slideShadows&&l(Q,te,P)}if(_.style.transformOrigin=`50% 50% -${N/2}px`,_.style["-webkit-transform-origin"]=`50% 50% -${N/2}px`,D.shadow)if(P)V.style.transform=`translate3d(0px, ${E/2+D.shadowOffset}px, ${-E/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${D.shadowScale})`;else{const $=Math.abs(M)-Math.floor(Math.abs(M)/90)*90,Q=1.5-(Math.sin($*2*Math.PI/360)/2+Math.cos($*2*Math.PI/360)/2),Y=D.shadowScale,le=D.shadowScale/Q,ae=D.shadowOffset;V.style.transform=`scale3d(${Y}, 1, ${le}) translate3d(0px, ${b/2+ae}px, ${-b/2/le}px) rotateX(-89.99deg)`}const H=(O.isSafari||O.isWebView)&&O.needPerspectiveFix?-N/2:0;_.style.transform=`translate3d(0px,0,${H}px) rotateX(${t.isHorizontal()?0:M}deg) rotateY(${t.isHorizontal()?-M:0}deg)`,_.style.setProperty("--swiper-cube-translate-z",`${H}px`)},setTransition:g=>{const{el:_,slides:y}=t;if(y.forEach(E=>{E.style.transitionDuration=`${g}ms`,E.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(b=>{b.style.transitionDuration=`${g}ms`})}),t.params.cubeEffect.shadow&&!t.isHorizontal()){const E=_.querySelector(".swiper-cube-shadow");E&&(E.style.transitionDuration=`${g}ms`)}},recreateShadows:()=>{const g=t.isHorizontal();t.slides.forEach(_=>{const y=Math.max(Math.min(_.progress,1),-1);l(_,y,g)})},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})}function PR(n,t,i){const s=`swiper-slide-shadow${i?`-${i}`:""}${n?` swiper-slide-shadow-${n}`:""}`,l=qE(t);let d=l.querySelector(`.${s.split(" ").join(".")}`);return d||(d=Kd("div",s.split(" ")),l.append(d)),d}function WKe(n){let{swiper:t,extendParams:i,on:s}=n;i({flipEffect:{slideShadows:!0,limitRotation:!0}});const l=(g,_)=>{let y=t.isHorizontal()?g.querySelector(".swiper-slide-shadow-left"):g.querySelector(".swiper-slide-shadow-top"),E=t.isHorizontal()?g.querySelector(".swiper-slide-shadow-right"):g.querySelector(".swiper-slide-shadow-bottom");y||(y=PR("flip",g,t.isHorizontal()?"left":"top")),E||(E=PR("flip",g,t.isHorizontal()?"right":"bottom")),y&&(y.style.opacity=Math.max(-_,0)),E&&(E.style.opacity=Math.max(_,0))};ex({effect:"flip",swiper:t,on:s,setTranslate:()=>{const{slides:g,rtlTranslate:_}=t,y=t.params.flipEffect;for(let E=0;E{const _=t.slides.map(y=>qE(y));_.forEach(y=>{y.style.transitionDuration=`${g}ms`,y.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(E=>{E.style.transitionDuration=`${g}ms`})}),jU({swiper:t,duration:g,transformElements:_})},recreateShadows:()=>{t.params.flipEffect,t.slides.forEach(g=>{let _=g.progress;t.params.flipEffect.limitRotation&&(_=Math.max(Math.min(g.progress,1),-1)),l(g,_)})},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})}function $Ke(n){let{swiper:t,extendParams:i,on:s}=n;i({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),ex({effect:"coverflow",swiper:t,on:s,setTranslate:()=>{const{width:u,height:p,slides:g,slidesSizesGrid:_}=t,y=t.params.coverflowEffect,E=t.isHorizontal(),b=t.translate,A=E?-b+u/2:-b+p/2,N=E?y.rotate:-y.rotate,O=y.depth;for(let D=0,P=g.length;D0?$:0),Ce&&(Ce.style.opacity=-$>0?-$:0)}}},setTransition:u=>{t.slides.map(g=>qE(g)).forEach(g=>{g.style.transitionDuration=`${u}ms`,g.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(_=>{_.style.transitionDuration=`${u}ms`})})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})}function KKe(n){let{swiper:t,extendParams:i,on:s}=n;i({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const l=p=>typeof p=="string"?p:`${p}px`;ex({effect:"creative",swiper:t,on:s,setTranslate:()=>{const{slides:p,wrapperEl:g,slidesSizesGrid:_}=t,y=t.params.creativeEffect,{progressMultiplier:E}=y,b=t.params.centeredSlides;if(b){const A=_[0]/2-t.params.slidesOffsetBefore||0;g.style.transform=`translateX(calc(50% - ${A}px))`}for(let A=0;A0&&($=y.prev,H=!0),M.forEach((G,ie)=>{M[ie]=`calc(${G}px + (${l($.translate[ie])} * ${Math.abs(D*E)}))`}),V.forEach((G,ie)=>{let _e=$.rotate[ie]*Math.abs(D*E);t.browser&&t.browser.need3dFix&&Math.abs(_e)/90%2===1&&(_e+=.001),V[ie]=_e}),N.style.zIndex=-Math.abs(Math.round(O))+p.length;const Q=M.join(", "),Y=`rotateX(${V[0]}deg) rotateY(${V[1]}deg) rotateZ(${V[2]}deg)`,le=P<0?`scale(${1+(1-$.scale)*P*E})`:`scale(${1-(1-$.scale)*P*E})`,ae=P<0?1+(1-$.opacity)*P*E:1-(1-$.opacity)*P*E,te=`translate3d(${Q}) ${Y} ${le}`;if(H&&$.shadow||!H){let G=N.querySelector(".swiper-slide-shadow");if(!G&&$.shadow&&(G=PR("creative",N)),G){const ie=y.shadowPerProgress?D*(1/y.limitProgress):D;G.style.opacity=Math.min(Math.max(Math.abs(ie),0),1)}}const de=KO(y,N);de.style.transform=te,de.style.opacity=ae,$.origin&&(de.style.transformOrigin=$.origin)}},setTransition:p=>{const g=t.slides.map(_=>qE(_));g.forEach(_=>{_.style.transitionDuration=`${p}ms`,_.querySelectorAll(".swiper-slide-shadow").forEach(y=>{y.style.transitionDuration=`${p}ms`})}),jU({swiper:t,duration:p,transformElements:g,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}function qKe(n){let{swiper:t,extendParams:i,on:s}=n;i({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),ex({effect:"cards",swiper:t,on:s,setTranslate:()=>{const{slides:u,activeIndex:p,rtlTranslate:g}=t,_=t.params.cardsEffect,{startTranslate:y,isTouched:E}=t.touchEventsData,b=g?-t.translate:t.translate;for(let A=0;A0&&D<1&&(E||t.params.cssMode)&&b-1&&(E||t.params.cssMode)&&b>y;if(le||ae){const ie=(1-Math.abs((Math.abs(D)-.5)/.5))**.5;$+=-28*D*ie,H+=-.5*ie,Q+=96*ie,M=`${-25*ie*Math.abs(D)}%`}if(D<0?j=`calc(${j}px ${g?"-":"+"} (${Q*Math.abs(D)}%))`:D>0?j=`calc(${j}px ${g?"-":"+"} (-${Q*Math.abs(D)}%))`:j=`${j}px`,!t.isHorizontal()){const ie=M;M=j,j=ie}const te=D<0?`${1+(1-H)*D}`:`${1-(1-H)*D}`,de=` + translate3d(${j}, ${M}, ${V}px) + rotateZ(${_.rotate?g?-$:$:0}deg) + scale(${te}) + `;if(_.slideShadows){let ie=N.querySelector(".swiper-slide-shadow");ie||(ie=PR("cards",N)),ie&&(ie.style.opacity=Math.min(Math.max((Math.abs(D)-.5)/.5,0),1))}N.style.zIndex=-Math.abs(Math.round(O))+u.length;const G=KO(_,N);G.style.transform=de}},setTransition:u=>{const p=t.slides.map(g=>qE(g));p.forEach(g=>{g.style.transitionDuration=`${u}ms`,g.querySelectorAll(".swiper-slide-shadow").forEach(_=>{_.style.transitionDuration=`${u}ms`})}),jU({swiper:t,duration:u,transformElements:p})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}const YKe=[wKe,SKe,bKe,CKe,TKe,RKe,xKe,AKe,IKe,NKe,OKe,PKe,LKe,DKe,kKe,MKe,zKe,HKe,GKe,WKe,$Ke,KKe,qKe];qc.use(YKe);const hs={getAllUsers:async()=>(console.log("Inside Service getAllUsers() ..."),await On.get("ums/users/dropdown")),getAllRecipients:async n=>(console.log("Inside Service getAllRecipients() ..."),await On.get(`ums/users/recipients?type=${n}`)),getUserProfile:async()=>(console.log("Inside Service getUserProfile() ..."),await On.get("ums/users/profile")),updateUserProfile:async n=>(console.log("Inside Service updateUserProfile() ...",n),await On.post("ums/users/saveprofile",n)),getDashboardWallBanners:async()=>(console.log("Inside Service getDashboardWallBanners() ..."),await On.get("wall/wallbanner/dashboard")),getDashboardUserStats:async n=>(console.log("Inside Service getDashboardUserStats() ...",n),await On.get(`metric/metric_report/dashboard_stats${n.isRefresh?"?refresh=1":""}`)),getReloadedDashboardUserStats:async()=>(console.log("Inside Service getReloadedDashboardUserStats() ..."),await On.get("metric/metric_report/dashboard_stats?refresh=1")),getFormQuickActions:async()=>(console.log("Inside Service getFormQuickActions() ..."),await On.get("form/formaction/list")),getSignedUploadUrl:async n=>(console.log("Inside Service getSignedUploadUrl() data ...",n),await On.post("wall/wallmessage/getsigneduploadurl",n)),uploadFileToS3:async n=>{},completeChunkUpload:async n=>(console.log("Inside Service completeChunkUpload() data ...",n),await On.post("wall/wallmessage/completechunkupload",n)),getDashboardMagazines:async()=>(console.log("Inside Service getDashboardMagazines() ..."),await On.get("mag/magazine/dashboard")),getAllMagazines:async()=>(console.log("Inside Service getAllMagazines() ..."),await On.get("mag/magazine/list")),getMagazineDetails:async n=>(console.log("Inside Service getMagazineDetails() ..."),await On.get(`mag/magazine/details?id=${n}`)),getMagazineMediaDetails:async n=>(console.log("Inside Service getMagazineMediaDetails() ..."),await On.get(`mag/mag_media/details?id=${n}`)),getMagazineMediaLike:async n=>(console.log("Inside Service getMagazineMediaLike() ..."),await On.get(`mag/mag_media/like?id=${n}`)),getMagazineMediaLikesList:async n=>(console.log("Inside Service getMagazineMediaLikesList() ..."),await On.get(`mag/mag_media/likes?id=${n}`)),getAllMagazineMediaCommentList:async n=>(console.log("Inside Service getAllMagazineMediaCommentList() ..."),await On.get(`mag/mag_media/comments?id=${n}`)),addMagazineMediaComment:async n=>(console.log("Inside Service addMagazineMediaComment() ...",n),await On.post("mag/mag_media/comment",n))},Wa={getAllDashboardContests:async()=>(console.log("Inside Service getAllDashboardContests() ..."),await On.get("detailing/contest/dashboard")),getAllContests:async()=>(console.log("Inside Service getAllContests() ..."),await On.get("detailing/contest/list")),getContestDetails:async n=>(console.log("Inside Service getContestDetails() ..."),await On.get(`detailing/contest/details?id=${n}`)),getContestSubmissionLike:async n=>(console.log("Inside Service getContestResponseLike() ..."),await On.get(`detailing/contest_response/like?id=${n}`)),getContestSubmissionLikesList:async n=>(console.log("Inside Service getContestSubmissionLikesList() ..."),await On.get(`detailing/contest_response/likes?id=${n}`)),getAllContestSubmissionCommentList:async n=>(console.log("Inside Service getAllContestSubmissionCommentList() ..."),await On.get(`detailing/contest_response/comments?id=${n}`)),addContestSubmissionComment:async n=>(console.log("Inside Service addContestSubmissionComment() ...",n),await On.post("detailing/contest_response/comment",n)),addContestResponseRecord:async n=>(console.log("Inside Service addContestResponseRecord() ...",n),await On.post("detailing/contest_response/record",n)),deleteContestResponseRecord:async n=>(console.log("Inside Service deleteContestResponseRecord() ...",n),await On.get(`detailing/contest_response/delete?id=${n}`)),deleteContestResponseRecordForReattempt:async n=>(console.log("Inside Service deleteContestResponseRecordForReattempt() ...",n),await On.get(`detailing/contest_response/deleteforreattempt?id=${n}`)),getDetailingContestParameters:async n=>(console.log("Inside Service getDetailingContestParameters() ...",n),await On.get(`detailing/parameter/list?contest_id=${n}`)),evaluateDetailingContestResponse:async n=>(console.log("Inside Service evaluateDetailingContestResponse() ...",n),await On.post("detailing/contest_response/evaluate",n)),initializeCallAndGetDetails:async n=>await On.get(`wall/wallmessage/initializecall?contest_id=${n}`),startVideoRecording:async n=>await On.get(`wall/wallmessage/startrecording?record_id=${n}`),stopVideoRecording:async n=>await On.get(`wall/wallmessage/stoprecording?record_id=${n}`),getAllCompetitionContests:async()=>(console.log("Inside Service getAllCompetitionContests() ..."),await On.get("competition/contest/dashboard"))};function qi(n){const t=Xo(),i=n.className?n.className:"";return k.useEffect(()=>{window.scrollTo(0,0)},[t]),h.jsx("div",{className:`page-content-wrapper ${i}`,children:n.children})}function ci(n){let t=n!=null&&n.className?n==null?void 0:n.className:"",i=null;switch(n.type){case"user-profile":i=h.jsxs(et,{className:"placeholder-card shadow1 border-0 mb2 text-left overflow-hidden",children:[h.jsx(et.Header,{className:"pb-0",children:h.jsx("div",{className:"d-flex align-items-center justify-content-between",children:h.jsxs("div",{className:"flex-grow-1 ms-0 text-start",children:[h.jsx("div",{className:"w-100 mb-1",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:5,bg:"secondary"})})}),h.jsx("div",{className:"w-100",children:h.jsx(cn.Button,{"aria-hidden":"true",style:{borderRadius:"20px",width:"100px",height:"20px"},className:"btn-theme btn-sm btn-gray",animation:"glow"})})]})})}),h.jsxs(et.Body,{className:"p2",children:[h.jsx("div",{className:"w-100 mb-3 text-center",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{style:{height:"30px",borderRadius:"5px"},xs:4,bg:"secondary"})})}),h.jsx("div",{className:"w-100 mb-2",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{xs:12,style:{height:"200px"},bg:"secondary",as:"div"})})})]})]});break;case"quick-actions":i=h.jsx(et,{className:`card-theme placeholder-card shadow1 border-0 mb2 text-left overflow-hidden ${t}`,children:h.jsxs(et.Body,{className:"p2 text-center",children:[h.jsx("div",{className:"w-100 mb-2",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{className:"rounded-4",style:{width:"80px",height:"80px"},bg:"secondary",as:"div"})})}),h.jsx("div",{className:"w-100 mb-1",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:10,bg:"secondary"})})})]})});break;case"simple-stats":i=h.jsxs(et,{className:`placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden ${t}`,children:[h.jsx(et.Header,{children:h.jsx("div",{className:"d-flex align-items-center",children:h.jsx("div",{className:"flex-grow-1 text-left",children:h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:6,bg:"secondary"})})})})})}),h.jsx(et.Body,{className:"p2 text-center",children:h.jsx("div",{className:"w-100 mb-1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:10,bg:"secondary"}),h.jsx(cn,{xs:4,bg:"secondary"})]})})})]});break;case"banners":i=h.jsx(et,{className:`placeholder-card shadow1 border-0 mb2 text-left overflow-hidden ${t}`,children:h.jsx(et.Body,{className:"p2",children:h.jsx("div",{className:"w-100 mb-2",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{xs:12,style:{height:"150px"},bg:"secondary",as:"div"})})})})});break;case"magazine":i=h.jsxs(et,{className:"card-theme placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden",children:[h.jsx(et.Header,{className:"border-bottom-0 bg-transparent",children:h.jsx("div",{className:"d-flex align-items-center",children:h.jsx("div",{className:"flex-grow-1 text-left",children:h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:6,bg:"secondary"})})})})})}),h.jsxs(et.Body,{className:"p-",children:[h.jsx("div",{className:"w-100 mb-2",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{xs:12,style:{height:"150px"},bg:"secondary",as:"div"})})}),h.jsx("div",{className:"w-100 mb-1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:9,bg:"secondary"}),h.jsx(cn,{xs:6,bg:"secondary"})]})})]})]});break;case"dashboard-magazine":i=h.jsx(et,{className:`card-theme placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden ${t}`,children:h.jsxs(et.Body,{className:"p-0",children:[h.jsx("div",{className:"w-100 mb-2",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{xs:12,style:{height:"150px"},bg:"secondary",as:"div"})})}),h.jsx("div",{className:"w-100 mb-2 px-2",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:9,bg:"secondary"})})})]})});break;case"competition-contest":i=h.jsxs(et,{className:"card-theme placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden",children:[h.jsx(et.Header,{className:"border-bottom-0 bg-transparent",children:h.jsx("div",{className:"d-flex align-items-center",children:h.jsx("div",{className:"flex-grow-1 text-left",children:h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:6,bg:"secondary"})})})})})}),h.jsxs(et.Body,{className:"p-",children:[h.jsx("div",{className:"w-100 mb-2",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{xs:12,style:{height:"150px"},bg:"secondary",as:"div"})})}),h.jsx("div",{className:"w-100 mb-1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:9,bg:"secondary"}),h.jsx(cn,{xs:6,bg:"secondary"})]})})]})]});break;case"dashboard-competition-contest":i=h.jsx(et,{className:`card-theme placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden ${t}`,children:h.jsxs(et.Body,{className:"p-0",children:[h.jsx("div",{className:"w-100 mb-2",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{xs:12,style:{height:"50px"},bg:"secondary",as:"div"})})}),h.jsx("div",{className:"w-100 mb-2 px-2",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:10,bg:"secondary"}),h.jsx(cn,{xs:8,bg:"secondary"})]})})]})});break;case"likes-list":i=h.jsx(et,{className:"card-theme placeholder-card likes-list-placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden",children:h.jsx(et.Header,{children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"flex-shrink-0",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{bg:"secondary",as:"div",className:"placeholder-profile-img rounded-5"})})}),h.jsx("div",{className:"flex-grow-1 ms-3 text-left",children:h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:6,bg:"secondary"})})})})]})})});break;case"notifications-list":i=h.jsx(et,{className:"card-theme placeholder-card notifications-list-placeholder-card border-0 border-bottom bg-transparent rounded-0 mb2 text-left overflow-hidden",children:h.jsx(et.Header,{className:"px-0",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"flex-shrink-0",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{bg:"secondary",as:"div",className:"placeholder-profile-img rounded-3"})})}),h.jsxs("div",{className:"flex-grow-1 ms-3 text-left",children:[h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:6,bg:"secondary"})})}),h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:3,bg:"secondary"})})})]})]})})});break;case"appreciations-list":i=h.jsx(et,{className:"card-theme placeholder-card appreciation-list-placeholder-card shadow-sm border-0 bg-transparent rounded-0 mb2 text-left overflow-hidden",children:h.jsx(et.Header,{className:"px-2",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"flex-shrink-0",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{bg:"secondary",as:"div",className:"placeholder-profile-img rounded-3"})})}),h.jsxs("div",{className:"flex-grow-1 ms-3 text-left",children:[h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:6,bg:"secondary"})})}),h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:3,bg:"secondary"})})})]})]})})});break;case"comment-list":i=h.jsx(et,{className:"card-theme placeholder-card comment-list-placeholder-card border- shadow-s mb2 text-left overflow-hidden",children:h.jsxs(et.Body,{className:"p-2",children:[h.jsx("div",{className:"d-flex align-items-center flex-column mb-2",children:h.jsx("div",{className:"w-100",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:10,bg:"secondary"}),h.jsx(cn,{xs:5,bg:"secondary"})]})})}),h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"flex-shrink-0",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{bg:"secondary",as:"div",className:"placeholder-profile-img rounded-5"})})}),h.jsx("div",{className:"flex-grow-1 ms-2 text-left",children:h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:4,bg:"secondary"})})})})]})]})});break;case"details":i=h.jsx(et,{className:"placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden",children:h.jsxs(et.Body,{className:"p2",children:[h.jsx("div",{className:"w-100 mb1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:12,bg:"secondary"}),h.jsx(cn,{xs:10,bg:"secondary"}),h.jsx(cn,{xs:12,bg:"secondary"})]})}),h.jsx("br",{}),h.jsx("div",{className:"w-100 mb1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:12,bg:"secondary"}),h.jsx(cn,{xs:10,bg:"secondary"}),h.jsx(cn,{xs:12,bg:"secondary"})]})}),h.jsx("br",{}),h.jsx("div",{className:"w-100 mb1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:12,bg:"secondary"}),h.jsx(cn,{xs:10,bg:"secondary"}),h.jsx(cn,{xs:12,bg:"secondary"})]})})]})});break;case"iframe-loader":i=h.jsx(et,{className:`placeholder-card shadow1 border-0 mb2 text-left overflow-hidden ${t}`,children:h.jsx(et.Body,{className:"p-0",children:h.jsx("div",{className:"w-100",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{xs:12,style:{height:"500px"},bg:"secondary",as:"div"})})})})});break;default:i=h.jsxs(et,{className:"placeholder-card border-0 shadow-sm mb2 text-left overflow-hidden",children:[h.jsx(et.Header,{children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"flex-shrink-0",children:h.jsx(cn,{as:"div",animation:"glow",children:h.jsx(cn,{bg:"secondary",as:"div",className:"placeholder-profile-img rounded-circle"})})}),h.jsxs("div",{className:"flex-grow-1 ms-3 text-left",children:[h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:6,bg:"secondary"})})}),h.jsx("div",{className:"w-100",children:h.jsx(cn,{animation:"glow",children:h.jsx(cn,{xs:4,bg:"secondary"})})})]})]})}),h.jsxs(et.Body,{className:"p2",children:[h.jsx("div",{className:"w-100 mb-1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:9,bg:"secondary"}),h.jsx(cn,{xs:6,bg:"secondary"})]})}),h.jsx("br",{}),h.jsx("div",{className:"w-100 mb-1",children:h.jsxs(cn,{animation:"glow",children:[h.jsx(cn,{xs:9,bg:"secondary"}),h.jsx(cn,{xs:6,bg:"secondary"})]})})]})]})}return h.jsx(h.Fragment,{children:i})}function XKe(n){var u,p,g,_,y,E;const t=(u=n==null?void 0:n.item)!=null&&u.title?(p=n==null?void 0:n.item)==null?void 0:p.title:"Default title",i=(g=n==null?void 0:n.item)==null?void 0:g.value_title;(_=n==null?void 0:n.item)!=null&&_.type;const s=Z6e((y=n==null?void 0:n.item)==null?void 0:y.text);(E=n==null?void 0:n.item)==null||E.report_view_url;let l=n!=null&&n.className?n==null?void 0:n.className:"";function d(b){console.log("HandleClick item =",b);let A=`${b.report_view_url}&authorization=${Ai.getToken()}`;console.log("url = ",A),n.handleStatsCardClick(A)}return h.jsxs(et,{className:`border-0 card-theme overflow-hidden me-3 ${l}`,onClick:()=>d(n.item),children:[h.jsx(et.Header,{className:"font-13 border-bottom-0 p-2 p-md-3",children:t}),h.jsx(et.Body,{className:"px-2 py-3",children:h.jsx(fn,{className:"row-cols-1 g-0 d-flex align-items-sm-center pt-sm-3",children:h.jsxs(Gt,{className:"d-flex flex-column text-center",children:[h.jsx("span",{className:"font-20 fw-sb mb-1",children:s}),h.jsx("span",{className:"font-13 mb-0",children:i})]})})})]})}var qO=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(n){return this.listeners.add(n),this.onSubscribe(),()=>{this.listeners.delete(n),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},AE=typeof window>"u"||"Deno"in globalThis;function Yc(){}function JKe(n,t){return typeof n=="function"?n(t):n}function Jq(n){return typeof n=="number"&&n>=0&&n!==1/0}function __e(n,t){return Math.max(n+(t||0)-Date.now(),0)}function Av(n,t){return typeof n=="function"?n(t):n}function Xu(n,t){return typeof n=="function"?n(t):n}function Fhe(n,t){const{type:i="all",exact:s,fetchStatus:l,predicate:d,queryKey:u,stale:p}=n;if(u){if(s){if(t.queryHash!==YQ(u,t.options))return!1}else if(!X4(t.queryKey,u))return!1}if(i!=="all"){const g=t.isActive();if(i==="active"&&!g||i==="inactive"&&g)return!1}return!(typeof p=="boolean"&&t.isStale()!==p||l&&l!==t.state.fetchStatus||d&&!d(t))}function Bhe(n,t){const{exact:i,status:s,predicate:l,mutationKey:d}=n;if(d){if(!t.options.mutationKey)return!1;if(i){if(Y4(t.options.mutationKey)!==Y4(d))return!1}else if(!X4(t.options.mutationKey,d))return!1}return!(s&&t.state.status!==s||l&&!l(t))}function YQ(n,t){return((t==null?void 0:t.queryKeyHashFn)||Y4)(n)}function Y4(n){return JSON.stringify(n,(t,i)=>Zq(i)?Object.keys(i).sort().reduce((s,l)=>(s[l]=i[l],s),{}):i)}function X4(n,t){return n===t?!0:typeof n!=typeof t?!1:n&&t&&typeof n=="object"&&typeof t=="object"?Object.keys(t).every(i=>X4(n[i],t[i])):!1}function E_e(n,t){if(n===t)return n;const i=Vhe(n)&&Vhe(t);if(i||Zq(n)&&Zq(t)){const s=i?n:Object.keys(n),l=s.length,d=i?t:Object.keys(t),u=d.length,p=i?[]:{},g=new Set(s);let _=0;for(let y=0;y{setTimeout(t,n)})}function eY(n,t,i){return typeof i.structuralSharing=="function"?i.structuralSharing(n,t):i.structuralSharing!==!1?E_e(n,t):t}function ZKe(n,t,i=0){const s=[...n,t];return i&&s.length>i?s.slice(1):s}function eqe(n,t,i=0){const s=[t,...n];return i&&s.length>i?s.slice(0,-1):s}var XQ=Symbol();function w_e(n,t){return!n.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!n.queryFn||n.queryFn===XQ?()=>Promise.reject(new Error(`Missing queryFn: '${n.queryHash}'`)):n.queryFn}function tqe(n,t){return typeof n=="function"?n(...t):!!n}var M_,d1,xC,kpe,nqe=(kpe=class extends qO{constructor(){super();ee(this,M_,void 0);ee(this,d1,void 0);ee(this,xC,void 0);re(this,xC,t=>{if(!AE&&window.addEventListener){const i=()=>t();return window.addEventListener("visibilitychange",i,!1),()=>{window.removeEventListener("visibilitychange",i)}}})}onSubscribe(){T(this,d1)||this.setEventListener(T(this,xC))}onUnsubscribe(){var t;this.hasListeners()||((t=T(this,d1))==null||t.call(this),re(this,d1,void 0))}setEventListener(t){var i;re(this,xC,t),(i=T(this,d1))==null||i.call(this),re(this,d1,t(s=>{typeof s=="boolean"?this.setFocused(s):this.onFocus()}))}setFocused(t){T(this,M_)!==t&&(re(this,M_,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(i=>{i(t)})}isFocused(){var t;return typeof T(this,M_)=="boolean"?T(this,M_):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},M_=new WeakMap,d1=new WeakMap,xC=new WeakMap,kpe),JQ=new nqe,AC,u1,IC,Mpe,iqe=(Mpe=class extends qO{constructor(){super();ee(this,AC,!0);ee(this,u1,void 0);ee(this,IC,void 0);re(this,IC,t=>{if(!AE&&window.addEventListener){const i=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",i,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",i),window.removeEventListener("offline",s)}}})}onSubscribe(){T(this,u1)||this.setEventListener(T(this,IC))}onUnsubscribe(){var t;this.hasListeners()||((t=T(this,u1))==null||t.call(this),re(this,u1,void 0))}setEventListener(t){var i;re(this,IC,t),(i=T(this,u1))==null||i.call(this),re(this,u1,t(this.setOnline.bind(this)))}setOnline(t){T(this,AC)!==t&&(re(this,AC,t),this.listeners.forEach(s=>{s(t)}))}isOnline(){return T(this,AC)}},AC=new WeakMap,u1=new WeakMap,IC=new WeakMap,Mpe),R7=new iqe;function tY(){let n,t;const i=new Promise((l,d)=>{n=l,t=d});i.status="pending",i.catch(()=>{});function s(l){Object.assign(i,l),delete i.resolve,delete i.reject}return i.resolve=l=>{s({status:"fulfilled",value:l}),n(l)},i.reject=l=>{s({status:"rejected",reason:l}),t(l)},i}function rqe(n){return Math.min(1e3*2**n,3e4)}function S_e(n){return(n??"online")==="online"?R7.isOnline():!0}var b_e=class extends Error{constructor(n){super("CancelledError"),this.revert=n==null?void 0:n.revert,this.silent=n==null?void 0:n.silent}};function C_e(n){let t=!1,i=0,s;const l=tY(),d=()=>l.status!=="pending",u=O=>{var D;d()||(b(new b_e(O)),(D=n.abort)==null||D.call(n))},p=()=>{t=!0},g=()=>{t=!1},_=()=>JQ.isFocused()&&(n.networkMode==="always"||R7.isOnline())&&n.canRun(),y=()=>S_e(n.networkMode)&&n.canRun(),E=O=>{d()||(s==null||s(),l.resolve(O))},b=O=>{d()||(s==null||s(),l.reject(O))},A=()=>new Promise(O=>{var D;s=P=>{(d()||_())&&O(P)},(D=n.onPause)==null||D.call(n)}).then(()=>{var O;s=void 0,d()||(O=n.onContinue)==null||O.call(n)}),N=()=>{if(d())return;let O;const D=i===0?n.initialPromise:void 0;try{O=D??n.fn()}catch(P){O=Promise.reject(P)}Promise.resolve(O).then(E).catch(P=>{var $;if(d())return;const j=n.retry??(AE?0:3),M=n.retryDelay??rqe,V=typeof M=="function"?M(i,P):M,H=j===!0||typeof j=="number"&&i_()?void 0:A()).then(()=>{t?b(P):N()})})};return{promise:l,status:()=>l.status,cancel:u,continue:()=>(s==null||s(),l),cancelRetry:p,continueRetry:g,canStart:y,start:()=>(y()?N():A().then(N),l)}}var sqe=n=>setTimeout(n,0);function aqe(){let n=[],t=0,i=p=>{p()},s=p=>{p()},l=sqe;const d=p=>{t?n.push(p):l(()=>{i(p)})},u=()=>{const p=n;n=[],p.length&&l(()=>{s(()=>{p.forEach(g=>{i(g)})})})};return{batch:p=>{let g;t++;try{g=p()}finally{t--,t||u()}return g},batchCalls:p=>(...g)=>{d(()=>{p(...g)})},schedule:d,setNotifyFunction:p=>{i=p},setBatchNotifyFunction:p=>{s=p},setScheduler:p=>{l=p}}}var Go=aqe(),j_,jpe,T_e=(jpe=class{constructor(){ee(this,j_,void 0)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Jq(this.gcTime)&&re(this,j_,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(n){this.gcTime=Math.max(this.gcTime||0,n??(AE?1/0:5*60*1e3))}clearGcTimeout(){T(this,j_)&&(clearTimeout(T(this,j_)),re(this,j_,void 0))}},j_=new WeakMap,jpe),NC,OC,Fu,U_,lo,sN,F_,Vh,Am,Upe,oqe=(Upe=class extends T_e{constructor(t){super();ee(this,Vh);ee(this,NC,void 0);ee(this,OC,void 0);ee(this,Fu,void 0);ee(this,U_,void 0);ee(this,lo,void 0);ee(this,sN,void 0);ee(this,F_,void 0);re(this,F_,!1),re(this,sN,t.defaultOptions),this.setOptions(t.options),this.observers=[],re(this,U_,t.client),re(this,Fu,T(this,U_).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,re(this,NC,lqe(this.options)),this.state=t.state??T(this,NC),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=T(this,lo))==null?void 0:t.promise}setOptions(t){this.options={...T(this,sN),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&T(this,Fu).remove(this)}setData(t,i){const s=eY(this.state.data,t,this.options);return pe(this,Vh,Am).call(this,{data:s,type:"success",dataUpdatedAt:i==null?void 0:i.updatedAt,manual:i==null?void 0:i.manual}),s}setState(t,i){pe(this,Vh,Am).call(this,{type:"setState",state:t,setStateOptions:i})}cancel(t){var s,l;const i=(s=T(this,lo))==null?void 0:s.promise;return(l=T(this,lo))==null||l.cancel(t),i?i.then(Yc).catch(Yc):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(T(this,NC))}isActive(){return this.observers.some(t=>Xu(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===XQ||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Av(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!__e(this.state.dataUpdatedAt,t)}onFocus(){var i;const t=this.observers.find(s=>s.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(i=T(this,lo))==null||i.continue()}onOnline(){var i;const t=this.observers.find(s=>s.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(i=T(this,lo))==null||i.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),T(this,Fu).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(i=>i!==t),this.observers.length||(T(this,lo)&&(T(this,F_)?T(this,lo).cancel({revert:!0}):T(this,lo).cancelRetry()),this.scheduleGc()),T(this,Fu).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||pe(this,Vh,Am).call(this,{type:"invalidate"})}async fetch(t,i){var g,_,y,E,b,A,N,O,D,P,j,M;if(this.state.fetchStatus!=="idle"&&((g=T(this,lo))==null?void 0:g.status())!=="rejected"){if(this.state.data!==void 0&&(i!=null&&i.cancelRefetch))this.cancel({silent:!0});else if(T(this,lo))return T(this,lo).continueRetry(),T(this,lo).promise}if(t&&this.setOptions(t),!this.options.queryFn){const V=this.observers.find(H=>H.options.queryFn);V&&this.setOptions(V.options)}const s=new AbortController,l=V=>{Object.defineProperty(V,"signal",{enumerable:!0,get:()=>(re(this,F_,!0),s.signal)})},d=()=>{const V=w_e(this.options,i),$=(()=>{const Q={client:T(this,U_),queryKey:this.queryKey,meta:this.meta};return l(Q),Q})();return re(this,F_,!1),this.options.persister?this.options.persister(V,$,this):V($)},p=(()=>{const V={fetchOptions:i,options:this.options,queryKey:this.queryKey,client:T(this,U_),state:this.state,fetchFn:d};return l(V),V})();(_=this.options.behavior)==null||_.onFetch(p,this),re(this,OC,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((y=p.fetchOptions)==null?void 0:y.meta))&&pe(this,Vh,Am).call(this,{type:"fetch",meta:(E=p.fetchOptions)==null?void 0:E.meta}),re(this,lo,C_e({initialPromise:i==null?void 0:i.initialPromise,fn:p.fetchFn,abort:s.abort.bind(s),onFail:(V,H)=>{pe(this,Vh,Am).call(this,{type:"failed",failureCount:V,error:H})},onPause:()=>{pe(this,Vh,Am).call(this,{type:"pause"})},onContinue:()=>{pe(this,Vh,Am).call(this,{type:"continue"})},retry:p.options.retry,retryDelay:p.options.retryDelay,networkMode:p.options.networkMode,canRun:()=>!0}));try{const V=await T(this,lo).start();if(V===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(V),(A=(b=T(this,Fu).config).onSuccess)==null||A.call(b,V,this),(O=(N=T(this,Fu).config).onSettled)==null||O.call(N,V,this.state.error,this),V}catch(V){if(V instanceof b_e){if(V.silent)return T(this,lo).promise;if(V.revert){if(this.setState({...T(this,OC),fetchStatus:"idle"}),this.state.data===void 0)throw V;return this.state.data}}throw pe(this,Vh,Am).call(this,{type:"error",error:V}),(P=(D=T(this,Fu).config).onError)==null||P.call(D,V,this),(M=(j=T(this,Fu).config).onSettled)==null||M.call(j,this.state.data,V,this),V}finally{this.scheduleGc()}}},NC=new WeakMap,OC=new WeakMap,Fu=new WeakMap,U_=new WeakMap,lo=new WeakMap,sN=new WeakMap,F_=new WeakMap,Vh=new WeakSet,Am=function(t){const i=s=>{switch(t.type){case"failed":return{...s,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...R_e(s.data,this.options),fetchMeta:t.meta??null};case"success":const l={...s,data:t.data,dataUpdateCount:s.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return re(this,OC,t.manual?l:void 0),l;case"error":const d=t.error;return{...s,error:d,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:d,fetchStatus:"idle",status:"error"};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...t.state}}};this.state=i(this.state),Go.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),T(this,Fu).notify({query:this,type:"updated",action:t})})},Upe);function R_e(n,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:S_e(t.networkMode)?"fetching":"paused",...n===void 0&&{error:null,status:"pending"}}}function lqe(n){const t=typeof n.initialData=="function"?n.initialData():n.initialData,i=t!==void 0,s=i?typeof n.initialDataUpdatedAt=="function"?n.initialDataUpdatedAt():n.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:i?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:i?"success":"pending",fetchStatus:"idle"}}var ap,Fpe,cqe=(Fpe=class extends qO{constructor(t={}){super();ee(this,ap,void 0);this.config=t,re(this,ap,new Map)}build(t,i,s){const l=i.queryKey,d=i.queryHash??YQ(l,i);let u=this.get(d);return u||(u=new oqe({client:t,queryKey:l,queryHash:d,options:t.defaultQueryOptions(i),state:s,defaultOptions:t.getQueryDefaults(l)}),this.add(u)),u}add(t){T(this,ap).has(t.queryHash)||(T(this,ap).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const i=T(this,ap).get(t.queryHash);i&&(t.destroy(),i===t&&T(this,ap).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Go.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return T(this,ap).get(t)}getAll(){return[...T(this,ap).values()]}find(t){const i={exact:!0,...t};return this.getAll().find(s=>Fhe(i,s))}findAll(t={}){const i=this.getAll();return Object.keys(t).length>0?i.filter(s=>Fhe(t,s)):i}notify(t){Go.batch(()=>{this.listeners.forEach(i=>{i(t)})})}onFocus(){Go.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Go.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},ap=new WeakMap,Fpe),op,Yl,B_,lp,e1,Bpe,dqe=(Bpe=class extends T_e{constructor(t){super();ee(this,lp);ee(this,op,void 0);ee(this,Yl,void 0);ee(this,B_,void 0);this.mutationId=t.mutationId,re(this,Yl,t.mutationCache),re(this,op,[]),this.state=t.state||uqe(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){T(this,op).includes(t)||(T(this,op).push(t),this.clearGcTimeout(),T(this,Yl).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){re(this,op,T(this,op).filter(i=>i!==t)),this.scheduleGc(),T(this,Yl).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){T(this,op).length||(this.state.status==="pending"?this.scheduleGc():T(this,Yl).remove(this))}continue(){var t;return((t=T(this,B_))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var d,u,p,g,_,y,E,b,A,N,O,D,P,j,M,V,H,$,Q,Y;const i=()=>{pe(this,lp,e1).call(this,{type:"continue"})};re(this,B_,C_e({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(le,ae)=>{pe(this,lp,e1).call(this,{type:"failed",failureCount:le,error:ae})},onPause:()=>{pe(this,lp,e1).call(this,{type:"pause"})},onContinue:i,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>T(this,Yl).canRun(this)}));const s=this.state.status==="pending",l=!T(this,B_).canStart();try{if(s)i();else{pe(this,lp,e1).call(this,{type:"pending",variables:t,isPaused:l}),await((u=(d=T(this,Yl).config).onMutate)==null?void 0:u.call(d,t,this));const ae=await((g=(p=this.options).onMutate)==null?void 0:g.call(p,t));ae!==this.state.context&&pe(this,lp,e1).call(this,{type:"pending",context:ae,variables:t,isPaused:l})}const le=await T(this,B_).start();return await((y=(_=T(this,Yl).config).onSuccess)==null?void 0:y.call(_,le,t,this.state.context,this)),await((b=(E=this.options).onSuccess)==null?void 0:b.call(E,le,t,this.state.context)),await((N=(A=T(this,Yl).config).onSettled)==null?void 0:N.call(A,le,null,this.state.variables,this.state.context,this)),await((D=(O=this.options).onSettled)==null?void 0:D.call(O,le,null,t,this.state.context)),pe(this,lp,e1).call(this,{type:"success",data:le}),le}catch(le){try{throw await((j=(P=T(this,Yl).config).onError)==null?void 0:j.call(P,le,t,this.state.context,this)),await((V=(M=this.options).onError)==null?void 0:V.call(M,le,t,this.state.context)),await(($=(H=T(this,Yl).config).onSettled)==null?void 0:$.call(H,void 0,le,this.state.variables,this.state.context,this)),await((Y=(Q=this.options).onSettled)==null?void 0:Y.call(Q,void 0,le,t,this.state.context)),le}finally{pe(this,lp,e1).call(this,{type:"error",error:le})}}finally{T(this,Yl).runNext(this)}}},op=new WeakMap,Yl=new WeakMap,B_=new WeakMap,lp=new WeakSet,e1=function(t){const i=s=>{switch(t.type){case"failed":return{...s,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...s,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:t.error,failureCount:s.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=i(this.state),Go.batch(()=>{T(this,op).forEach(s=>{s.onMutationUpdate(t)}),T(this,Yl).notify({mutation:this,type:"updated",action:t})})},Bpe);function uqe(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var jm,zh,aN,Vpe,hqe=(Vpe=class extends qO{constructor(t={}){super();ee(this,jm,void 0);ee(this,zh,void 0);ee(this,aN,void 0);this.config=t,re(this,jm,new Set),re(this,zh,new Map),re(this,aN,0)}build(t,i,s){const l=new dqe({mutationCache:this,mutationId:++ao(this,aN)._,options:t.defaultMutationOptions(i),state:s});return this.add(l),l}add(t){T(this,jm).add(t);const i=bk(t);if(typeof i=="string"){const s=T(this,zh).get(i);s?s.push(t):T(this,zh).set(i,[t])}this.notify({type:"added",mutation:t})}remove(t){if(T(this,jm).delete(t)){const i=bk(t);if(typeof i=="string"){const s=T(this,zh).get(i);if(s)if(s.length>1){const l=s.indexOf(t);l!==-1&&s.splice(l,1)}else s[0]===t&&T(this,zh).delete(i)}}this.notify({type:"removed",mutation:t})}canRun(t){const i=bk(t);if(typeof i=="string"){const s=T(this,zh).get(i),l=s==null?void 0:s.find(d=>d.state.status==="pending");return!l||l===t}else return!0}runNext(t){var s;const i=bk(t);if(typeof i=="string"){const l=(s=T(this,zh).get(i))==null?void 0:s.find(d=>d!==t&&d.state.isPaused);return(l==null?void 0:l.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Go.batch(()=>{T(this,jm).forEach(t=>{this.notify({type:"removed",mutation:t})}),T(this,jm).clear(),T(this,zh).clear()})}getAll(){return Array.from(T(this,jm))}find(t){const i={exact:!0,...t};return this.getAll().find(s=>Bhe(i,s))}findAll(t={}){return this.getAll().filter(i=>Bhe(t,i))}notify(t){Go.batch(()=>{this.listeners.forEach(i=>{i(t)})})}resumePausedMutations(){const t=this.getAll().filter(i=>i.state.isPaused);return Go.batch(()=>Promise.all(t.map(i=>i.continue().catch(Yc))))}},jm=new WeakMap,zh=new WeakMap,aN=new WeakMap,Vpe);function bk(n){var t;return(t=n.options.scope)==null?void 0:t.id}function Hhe(n){return{onFetch:(t,i)=>{var y,E,b,A,N;const s=t.options,l=(b=(E=(y=t.fetchOptions)==null?void 0:y.meta)==null?void 0:E.fetchMore)==null?void 0:b.direction,d=((A=t.state.data)==null?void 0:A.pages)||[],u=((N=t.state.data)==null?void 0:N.pageParams)||[];let p={pages:[],pageParams:[]},g=0;const _=async()=>{let O=!1;const D=M=>{Object.defineProperty(M,"signal",{enumerable:!0,get:()=>(t.signal.aborted?O=!0:t.signal.addEventListener("abort",()=>{O=!0}),t.signal)})},P=w_e(t.options,t.fetchOptions),j=async(M,V,H)=>{if(O)return Promise.reject();if(V==null&&M.pages.length)return Promise.resolve(M);const Q=(()=>{const te={client:t.client,queryKey:t.queryKey,pageParam:V,direction:H?"backward":"forward",meta:t.options.meta};return D(te),te})(),Y=await P(Q),{maxPages:le}=t.options,ae=H?eqe:ZKe;return{pages:ae(M.pages,Y,le),pageParams:ae(M.pageParams,V,le)}};if(l&&d.length){const M=l==="backward",V=M?fqe:Ghe,H={pages:d,pageParams:u},$=V(s,H);p=await j(H,$,M)}else{const M=n??d.length;do{const V=g===0?u[0]??s.initialPageParam:Ghe(s,p);if(g>0&&V==null)break;p=await j(p,V),g++}while(g{var O,D;return(D=(O=t.options).persister)==null?void 0:D.call(O,_,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},i)}:t.fetchFn=_}}}function Ghe(n,{pages:t,pageParams:i}){const s=t.length-1;return t.length>0?n.getNextPageParam(t[s],t,i[s],i):void 0}function fqe(n,{pages:t,pageParams:i}){var s;return t.length>0?(s=n.getPreviousPageParam)==null?void 0:s.call(n,t[0],t,i[0],i):void 0}var Js,h1,f1,PC,LC,p1,DC,kC,zpe,pqe=(zpe=class{constructor(n={}){ee(this,Js,void 0);ee(this,h1,void 0);ee(this,f1,void 0);ee(this,PC,void 0);ee(this,LC,void 0);ee(this,p1,void 0);ee(this,DC,void 0);ee(this,kC,void 0);re(this,Js,n.queryCache||new cqe),re(this,h1,n.mutationCache||new hqe),re(this,f1,n.defaultOptions||{}),re(this,PC,new Map),re(this,LC,new Map),re(this,p1,0)}mount(){ao(this,p1)._++,T(this,p1)===1&&(re(this,DC,JQ.subscribe(async n=>{n&&(await this.resumePausedMutations(),T(this,Js).onFocus())})),re(this,kC,R7.subscribe(async n=>{n&&(await this.resumePausedMutations(),T(this,Js).onOnline())})))}unmount(){var n,t;ao(this,p1)._--,T(this,p1)===0&&((n=T(this,DC))==null||n.call(this),re(this,DC,void 0),(t=T(this,kC))==null||t.call(this),re(this,kC,void 0))}isFetching(n){return T(this,Js).findAll({...n,fetchStatus:"fetching"}).length}isMutating(n){return T(this,h1).findAll({...n,status:"pending"}).length}getQueryData(n){var i;const t=this.defaultQueryOptions({queryKey:n});return(i=T(this,Js).get(t.queryHash))==null?void 0:i.state.data}ensureQueryData(n){const t=this.defaultQueryOptions(n),i=T(this,Js).build(this,t),s=i.state.data;return s===void 0?this.fetchQuery(n):(n.revalidateIfStale&&i.isStaleByTime(Av(t.staleTime,i))&&this.prefetchQuery(t),Promise.resolve(s))}getQueriesData(n){return T(this,Js).findAll(n).map(({queryKey:t,state:i})=>{const s=i.data;return[t,s]})}setQueryData(n,t,i){const s=this.defaultQueryOptions({queryKey:n}),l=T(this,Js).get(s.queryHash),d=l==null?void 0:l.state.data,u=JKe(t,d);if(u!==void 0)return T(this,Js).build(this,s).setData(u,{...i,manual:!0})}setQueriesData(n,t,i){return Go.batch(()=>T(this,Js).findAll(n).map(({queryKey:s})=>[s,this.setQueryData(s,t,i)]))}getQueryState(n){var i;const t=this.defaultQueryOptions({queryKey:n});return(i=T(this,Js).get(t.queryHash))==null?void 0:i.state}removeQueries(n){const t=T(this,Js);Go.batch(()=>{t.findAll(n).forEach(i=>{t.remove(i)})})}resetQueries(n,t){const i=T(this,Js);return Go.batch(()=>(i.findAll(n).forEach(s=>{s.reset()}),this.refetchQueries({type:"active",...n},t)))}cancelQueries(n,t={}){const i={revert:!0,...t},s=Go.batch(()=>T(this,Js).findAll(n).map(l=>l.cancel(i)));return Promise.all(s).then(Yc).catch(Yc)}invalidateQueries(n,t={}){return Go.batch(()=>(T(this,Js).findAll(n).forEach(i=>{i.invalidate()}),(n==null?void 0:n.refetchType)==="none"?Promise.resolve():this.refetchQueries({...n,type:(n==null?void 0:n.refetchType)??(n==null?void 0:n.type)??"active"},t)))}refetchQueries(n,t={}){const i={...t,cancelRefetch:t.cancelRefetch??!0},s=Go.batch(()=>T(this,Js).findAll(n).filter(l=>!l.isDisabled()&&!l.isStatic()).map(l=>{let d=l.fetch(void 0,i);return i.throwOnError||(d=d.catch(Yc)),l.state.fetchStatus==="paused"?Promise.resolve():d}));return Promise.all(s).then(Yc)}fetchQuery(n){const t=this.defaultQueryOptions(n);t.retry===void 0&&(t.retry=!1);const i=T(this,Js).build(this,t);return i.isStaleByTime(Av(t.staleTime,i))?i.fetch(t):Promise.resolve(i.state.data)}prefetchQuery(n){return this.fetchQuery(n).then(Yc).catch(Yc)}fetchInfiniteQuery(n){return n.behavior=Hhe(n.pages),this.fetchQuery(n)}prefetchInfiniteQuery(n){return this.fetchInfiniteQuery(n).then(Yc).catch(Yc)}ensureInfiniteQueryData(n){return n.behavior=Hhe(n.pages),this.ensureQueryData(n)}resumePausedMutations(){return R7.isOnline()?T(this,h1).resumePausedMutations():Promise.resolve()}getQueryCache(){return T(this,Js)}getMutationCache(){return T(this,h1)}getDefaultOptions(){return T(this,f1)}setDefaultOptions(n){re(this,f1,n)}setQueryDefaults(n,t){T(this,PC).set(Y4(n),{queryKey:n,defaultOptions:t})}getQueryDefaults(n){const t=[...T(this,PC).values()],i={};return t.forEach(s=>{X4(n,s.queryKey)&&Object.assign(i,s.defaultOptions)}),i}setMutationDefaults(n,t){T(this,LC).set(Y4(n),{mutationKey:n,defaultOptions:t})}getMutationDefaults(n){const t=[...T(this,LC).values()],i={};return t.forEach(s=>{X4(n,s.mutationKey)&&Object.assign(i,s.defaultOptions)}),i}defaultQueryOptions(n){if(n._defaulted)return n;const t={...T(this,f1).queries,...this.getQueryDefaults(n.queryKey),...n,_defaulted:!0};return t.queryHash||(t.queryHash=YQ(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===XQ&&(t.enabled=!1),t}defaultMutationOptions(n){return n!=null&&n._defaulted?n:{...T(this,f1).mutations,...(n==null?void 0:n.mutationKey)&&this.getMutationDefaults(n.mutationKey),...n,_defaulted:!0}}clear(){T(this,Js).clear(),T(this,h1).clear()}},Js=new WeakMap,h1=new WeakMap,f1=new WeakMap,PC=new WeakMap,LC=new WeakMap,p1=new WeakMap,DC=new WeakMap,kC=new WeakMap,zpe),Hc,or,oN,Xl,V_,MC,Um,m1,lN,jC,UC,z_,H_,g1,FC,G_,DI,cN,nY,dN,iY,uN,rY,hN,sY,fN,aY,pN,oY,mN,lY,G7,x_e,Hpe,mqe=(Hpe=class extends qO{constructor(t,i){super();ee(this,G_);ee(this,cN);ee(this,dN);ee(this,uN);ee(this,hN);ee(this,fN);ee(this,pN);ee(this,mN);ee(this,G7);ee(this,Hc,void 0);ee(this,or,void 0);ee(this,oN,void 0);ee(this,Xl,void 0);ee(this,V_,void 0);ee(this,MC,void 0);ee(this,Um,void 0);ee(this,m1,void 0);ee(this,lN,void 0);ee(this,jC,void 0);ee(this,UC,void 0);ee(this,z_,void 0);ee(this,H_,void 0);ee(this,g1,void 0);ee(this,FC,new Set);this.options=i,re(this,Hc,t),re(this,m1,null),re(this,Um,tY()),this.bindMethods(),this.setOptions(i)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(T(this,or).addObserver(this),Whe(T(this,or),this.options)?pe(this,G_,DI).call(this):this.updateResult(),pe(this,hN,sY).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return cY(T(this,or),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return cY(T(this,or),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,pe(this,fN,aY).call(this),pe(this,pN,oY).call(this),T(this,or).removeObserver(this)}setOptions(t){const i=this.options,s=T(this,or);if(this.options=T(this,Hc).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Xu(this.options.enabled,T(this,or))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");pe(this,mN,lY).call(this),T(this,or).setOptions(this.options),i._defaulted&&!Qq(this.options,i)&&T(this,Hc).getQueryCache().notify({type:"observerOptionsUpdated",query:T(this,or),observer:this});const l=this.hasListeners();l&&$he(T(this,or),s,this.options,i)&&pe(this,G_,DI).call(this),this.updateResult(),l&&(T(this,or)!==s||Xu(this.options.enabled,T(this,or))!==Xu(i.enabled,T(this,or))||Av(this.options.staleTime,T(this,or))!==Av(i.staleTime,T(this,or)))&&pe(this,cN,nY).call(this);const d=pe(this,dN,iY).call(this);l&&(T(this,or)!==s||Xu(this.options.enabled,T(this,or))!==Xu(i.enabled,T(this,or))||d!==T(this,g1))&&pe(this,uN,rY).call(this,d)}getOptimisticResult(t){const i=T(this,Hc).getQueryCache().build(T(this,Hc),t),s=this.createResult(i,t);return vqe(this,s)&&(re(this,Xl,s),re(this,MC,this.options),re(this,V_,T(this,or).state)),s}getCurrentResult(){return T(this,Xl)}trackResult(t,i){return new Proxy(t,{get:(s,l)=>(this.trackProp(l),i==null||i(l),l==="promise"&&!this.options.experimental_prefetchInRender&&T(this,Um).status==="pending"&&T(this,Um).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(s,l))})}trackProp(t){T(this,FC).add(t)}getCurrentQuery(){return T(this,or)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const i=T(this,Hc).defaultQueryOptions(t),s=T(this,Hc).getQueryCache().build(T(this,Hc),i);return s.fetch().then(()=>this.createResult(s,i))}fetch(t){return pe(this,G_,DI).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),T(this,Xl)))}createResult(t,i){var le;const s=T(this,or),l=this.options,d=T(this,Xl),u=T(this,V_),p=T(this,MC),_=t!==s?t.state:T(this,oN),{state:y}=t;let E={...y},b=!1,A;if(i._optimisticResults){const ae=this.hasListeners(),te=!ae&&Whe(t,i),de=ae&&$he(t,s,i,l);(te||de)&&(E={...E,...R_e(y.data,t.options)}),i._optimisticResults==="isRestoring"&&(E.fetchStatus="idle")}let{error:N,errorUpdatedAt:O,status:D}=E;A=E.data;let P=!1;if(i.placeholderData!==void 0&&A===void 0&&D==="pending"){let ae;d!=null&&d.isPlaceholderData&&i.placeholderData===(p==null?void 0:p.placeholderData)?(ae=d.data,P=!0):ae=typeof i.placeholderData=="function"?i.placeholderData((le=T(this,UC))==null?void 0:le.state.data,T(this,UC)):i.placeholderData,ae!==void 0&&(D="success",A=eY(d==null?void 0:d.data,ae,i),b=!0)}if(i.select&&A!==void 0&&!P)if(d&&A===(u==null?void 0:u.data)&&i.select===T(this,lN))A=T(this,jC);else try{re(this,lN,i.select),A=i.select(A),A=eY(d==null?void 0:d.data,A,i),re(this,jC,A),re(this,m1,null)}catch(ae){re(this,m1,ae)}T(this,m1)&&(N=T(this,m1),A=T(this,jC),O=Date.now(),D="error");const j=E.fetchStatus==="fetching",M=D==="pending",V=D==="error",H=M&&j,$=A!==void 0,Y={status:D,fetchStatus:E.fetchStatus,isPending:M,isSuccess:D==="success",isError:V,isInitialLoading:H,isLoading:H,data:A,dataUpdatedAt:E.dataUpdatedAt,error:N,errorUpdatedAt:O,failureCount:E.fetchFailureCount,failureReason:E.fetchFailureReason,errorUpdateCount:E.errorUpdateCount,isFetched:E.dataUpdateCount>0||E.errorUpdateCount>0,isFetchedAfterMount:E.dataUpdateCount>_.dataUpdateCount||E.errorUpdateCount>_.errorUpdateCount,isFetching:j,isRefetching:j&&!M,isLoadingError:V&&!$,isPaused:E.fetchStatus==="paused",isPlaceholderData:b,isRefetchError:V&&$,isStale:QQ(t,i),refetch:this.refetch,promise:T(this,Um),isEnabled:Xu(i.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const ae=G=>{Y.status==="error"?G.reject(Y.error):Y.data!==void 0&&G.resolve(Y.data)},te=()=>{const G=re(this,Um,Y.promise=tY());ae(G)},de=T(this,Um);switch(de.status){case"pending":t.queryHash===s.queryHash&&ae(de);break;case"fulfilled":(Y.status==="error"||Y.data!==de.value)&&te();break;case"rejected":(Y.status!=="error"||Y.error!==de.reason)&&te();break}}return Y}updateResult(){const t=T(this,Xl),i=this.createResult(T(this,or),this.options);if(re(this,V_,T(this,or).state),re(this,MC,this.options),T(this,V_).data!==void 0&&re(this,UC,T(this,or)),Qq(i,t))return;re(this,Xl,i);const s=()=>{if(!t)return!0;const{notifyOnChangeProps:l}=this.options,d=typeof l=="function"?l():l;if(d==="all"||!d&&!T(this,FC).size)return!0;const u=new Set(d??T(this,FC));return this.options.throwOnError&&u.add("error"),Object.keys(T(this,Xl)).some(p=>{const g=p;return T(this,Xl)[g]!==t[g]&&u.has(g)})};pe(this,G7,x_e).call(this,{listeners:s()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&pe(this,hN,sY).call(this)}},Hc=new WeakMap,or=new WeakMap,oN=new WeakMap,Xl=new WeakMap,V_=new WeakMap,MC=new WeakMap,Um=new WeakMap,m1=new WeakMap,lN=new WeakMap,jC=new WeakMap,UC=new WeakMap,z_=new WeakMap,H_=new WeakMap,g1=new WeakMap,FC=new WeakMap,G_=new WeakSet,DI=function(t){pe(this,mN,lY).call(this);let i=T(this,or).fetch(this.options,t);return t!=null&&t.throwOnError||(i=i.catch(Yc)),i},cN=new WeakSet,nY=function(){pe(this,fN,aY).call(this);const t=Av(this.options.staleTime,T(this,or));if(AE||T(this,Xl).isStale||!Jq(t))return;const s=__e(T(this,Xl).dataUpdatedAt,t)+1;re(this,z_,setTimeout(()=>{T(this,Xl).isStale||this.updateResult()},s))},dN=new WeakSet,iY=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(T(this,or)):this.options.refetchInterval)??!1},uN=new WeakSet,rY=function(t){pe(this,pN,oY).call(this),re(this,g1,t),!(AE||Xu(this.options.enabled,T(this,or))===!1||!Jq(T(this,g1))||T(this,g1)===0)&&re(this,H_,setInterval(()=>{(this.options.refetchIntervalInBackground||JQ.isFocused())&&pe(this,G_,DI).call(this)},T(this,g1)))},hN=new WeakSet,sY=function(){pe(this,cN,nY).call(this),pe(this,uN,rY).call(this,pe(this,dN,iY).call(this))},fN=new WeakSet,aY=function(){T(this,z_)&&(clearTimeout(T(this,z_)),re(this,z_,void 0))},pN=new WeakSet,oY=function(){T(this,H_)&&(clearInterval(T(this,H_)),re(this,H_,void 0))},mN=new WeakSet,lY=function(){const t=T(this,Hc).getQueryCache().build(T(this,Hc),this.options);if(t===T(this,or))return;const i=T(this,or);re(this,or,t),re(this,oN,t.state),this.hasListeners()&&(i==null||i.removeObserver(this),t.addObserver(this))},G7=new WeakSet,x_e=function(t){Go.batch(()=>{t.listeners&&this.listeners.forEach(i=>{i(T(this,Xl))}),T(this,Hc).getQueryCache().notify({query:T(this,or),type:"observerResultsUpdated"})})},Hpe);function gqe(n,t){return Xu(t.enabled,n)!==!1&&n.state.data===void 0&&!(n.state.status==="error"&&t.retryOnMount===!1)}function Whe(n,t){return gqe(n,t)||n.state.data!==void 0&&cY(n,t,t.refetchOnMount)}function cY(n,t,i){if(Xu(t.enabled,n)!==!1&&Av(t.staleTime,n)!=="static"){const s=typeof i=="function"?i(n):i;return s==="always"||s!==!1&&QQ(n,t)}return!1}function $he(n,t,i,s){return(n!==t||Xu(s.enabled,n)===!1)&&(!i.suspense||n.state.status!=="error")&&QQ(n,i)}function QQ(n,t){return Xu(t.enabled,n)!==!1&&n.isStaleByTime(Av(t.staleTime,n))}function vqe(n,t){return!Qq(n.getCurrentResult(),t)}var A_e=k.createContext(void 0),yqe=n=>{const t=k.useContext(A_e);if(n)return n;if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},_qe=({client:n,children:t})=>(k.useEffect(()=>(n.mount(),()=>{n.unmount()}),[n]),h.jsx(A_e.Provider,{value:n,children:t})),I_e=k.createContext(!1),Eqe=()=>k.useContext(I_e);I_e.Provider;function wqe(){let n=!1;return{clearReset:()=>{n=!1},reset:()=>{n=!0},isReset:()=>n}}var Sqe=k.createContext(wqe()),bqe=()=>k.useContext(Sqe),Cqe=(n,t)=>{(n.suspense||n.throwOnError||n.experimental_prefetchInRender)&&(t.isReset()||(n.retryOnMount=!1))},Tqe=n=>{k.useEffect(()=>{n.clearReset()},[n])},Rqe=({result:n,errorResetBoundary:t,throwOnError:i,query:s,suspense:l})=>n.isError&&!t.isReset()&&!n.isFetching&&s&&(l&&n.data===void 0||tqe(i,[n.error,s])),xqe=n=>{if(n.suspense){const t=s=>s==="static"?s:Math.max(s??1e3,1e3),i=n.staleTime;n.staleTime=typeof i=="function"?(...s)=>t(i(...s)):t(i),typeof n.gcTime=="number"&&(n.gcTime=Math.max(n.gcTime,1e3))}},Aqe=(n,t)=>n.isLoading&&n.isFetching&&!t,Iqe=(n,t)=>(n==null?void 0:n.suspense)&&t.isPending,Khe=(n,t,i)=>t.fetchOptimistic(n).catch(()=>{i.clearReset()});function Nqe(n,t,i){var E,b,A,N,O;const s=Eqe(),l=bqe(),d=yqe(i),u=d.defaultQueryOptions(n);(b=(E=d.getDefaultOptions().queries)==null?void 0:E._experimental_beforeQuery)==null||b.call(E,u),u._optimisticResults=s?"isRestoring":"optimistic",xqe(u),Cqe(u,l),Tqe(l);const p=!d.getQueryCache().get(u.queryHash),[g]=k.useState(()=>new t(d,u)),_=g.getOptimisticResult(u),y=!s&&n.subscribed!==!1;if(k.useSyncExternalStore(k.useCallback(D=>{const P=y?g.subscribe(Go.batchCalls(D)):Yc;return g.updateResult(),P},[g,y]),()=>g.getCurrentResult(),()=>g.getCurrentResult()),k.useEffect(()=>{g.setOptions(u)},[u,g]),Iqe(u,_))throw Khe(u,g,l);if(Rqe({result:_,errorResetBoundary:l,throwOnError:u.throwOnError,query:d.getQueryCache().get(u.queryHash),suspense:u.suspense}))throw _.error;if((N=(A=d.getDefaultOptions().queries)==null?void 0:A._experimental_afterQuery)==null||N.call(A,u,_),u.experimental_prefetchInRender&&!AE&&Aqe(_,s)){const D=p?Khe(u,g,l):(O=d.getQueryCache().get(u.queryHash))==null?void 0:O.promise;D==null||D.catch(Yc).finally(()=>{g.updateResult()})}return u.notifyOnChangeProps?_:g.trackResult(_)}function Qd(n,t){return Nqe(n,mqe,t)}const Oqe="modulepreload",Pqe=function(n){return"/"+n},qhe={},Xi=function(t,i,s){let l=Promise.resolve();if(i&&i.length>0){const d=document.getElementsByTagName("link");l=Promise.all(i.map(u=>{if(u=Pqe(u),u in qhe)return;qhe[u]=!0;const p=u.endsWith(".css"),g=p?'[rel="stylesheet"]':"";if(!!s)for(let E=d.length-1;E>=0;E--){const b=d[E];if(b.href===u&&(!p||b.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${g}`))return;const y=document.createElement("link");if(y.rel=p?"stylesheet":Oqe,p||(y.as="script",y.crossOrigin=""),y.href=u,document.head.appendChild(y),p)return new Promise((E,b)=>{y.addEventListener("load",E),y.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${u}`)))})}))}return l.then(()=>t()).catch(d=>{const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=d,window.dispatchEvent(u),!u.defaultPrevented)throw d})};/*! Capacitor: https://capacitorjs.com/ - MIT License */var LR;(function(n){n.Unimplemented="UNIMPLEMENTED",n.Unavailable="UNAVAILABLE"})(LR||(LR={}));class Y$ extends Error{constructor(t,i,s){super(t),this.message=t,this.code=i,this.data=s}}const Lqe=n=>{var t,i;return n!=null&&n.androidBridge?"android":!((i=(t=n==null?void 0:n.webkit)===null||t===void 0?void 0:t.messageHandlers)===null||i===void 0)&&i.bridge?"ios":"web"},Dqe=n=>{const t=n.CapacitorCustomPlatform||null,i=n.Capacitor||{},s=i.Plugins=i.Plugins||{},l=()=>t!==null?t.name:Lqe(n),d=()=>l()!=="web",u=E=>{const b=_.get(E);return!!(b!=null&&b.platforms.has(l())||p(E))},p=E=>{var b;return(b=i.PluginHeaders)===null||b===void 0?void 0:b.find(A=>A.name===E)},g=E=>n.console.error(E),_=new Map,y=(E,b={})=>{const A=_.get(E);if(A)return console.warn(`Capacitor plugin "${E}" already registered. Cannot register plugins twice.`),A.proxy;const N=l(),O=p(E);let D;const P=async()=>(!D&&N in b?D=typeof b[N]=="function"?D=await b[N]():D=b[N]:t!==null&&!D&&"web"in b&&(D=typeof b.web=="function"?D=await b.web():D=b.web),D),j=(Y,le)=>{var ae,te;if(O){const de=O==null?void 0:O.methods.find(G=>le===G.name);if(de)return de.rtype==="promise"?G=>i.nativePromise(E,le.toString(),G):(G,ie)=>i.nativeCallback(E,le.toString(),G,ie);if(Y)return(ae=Y[le])===null||ae===void 0?void 0:ae.bind(Y)}else{if(Y)return(te=Y[le])===null||te===void 0?void 0:te.bind(Y);throw new Y$(`"${E}" plugin is not implemented on ${N}`,LR.Unimplemented)}},M=Y=>{let le;const ae=(...te)=>{const de=P().then(G=>{const ie=j(G,Y);if(ie){const _e=ie(...te);return le=_e==null?void 0:_e.remove,_e}else throw new Y$(`"${E}.${Y}()" is not implemented on ${N}`,LR.Unimplemented)});return Y==="addListener"&&(de.remove=async()=>le()),de};return ae.toString=()=>`${Y.toString()}() { [capacitor code] }`,Object.defineProperty(ae,"name",{value:Y,writable:!1,configurable:!1}),ae},V=M("addListener"),H=M("removeListener"),$=(Y,le)=>{const ae=V({eventName:Y},le),te=async()=>{const G=await ae;H({eventName:Y,callbackId:G},le)},de=new Promise(G=>ae.then(()=>G({remove:te})));return de.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await te()},de},Q=new Proxy({},{get(Y,le){switch(le){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return O?$:V;case"removeListener":return H;default:return M(le)}}});return s[E]=Q,_.set(E,{name:E,proxy:Q,platforms:new Set([...Object.keys(b),...O?[N]:[]])}),Q};return i.convertFileSrc||(i.convertFileSrc=E=>E),i.getPlatform=l,i.handleError=g,i.isNativePlatform=d,i.isPluginAvailable=u,i.registerPlugin=y,i.Exception=Y$,i.DEBUG=!!i.DEBUG,i.isLoggingEnabled=!!i.isLoggingEnabled,i},kqe=n=>n.Capacitor=Dqe(n),dY=kqe(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Wo<"u"?Wo:{}),hc=dY.registerPlugin;class N_e{constructor(){this.listeners={},this.retainedEventArguments={},this.windowListeners={}}addListener(t,i){let s=!1;this.listeners[t]||(this.listeners[t]=[],s=!0),this.listeners[t].push(i);const d=this.windowListeners[t];d&&!d.registered&&this.addWindowListener(d),s&&this.sendRetainedArgumentsForEvent(t);const u=async()=>this.removeListener(t,i);return Promise.resolve({remove:u})}async removeAllListeners(){this.listeners={};for(const t in this.windowListeners)this.removeWindowListener(this.windowListeners[t]);this.windowListeners={}}notifyListeners(t,i,s){const l=this.listeners[t];if(!l){if(s){let d=this.retainedEventArguments[t];d||(d=[]),d.push(i),this.retainedEventArguments[t]=d}return}l.forEach(d=>d(i))}hasListeners(t){var i;return!!(!((i=this.listeners[t])===null||i===void 0)&&i.length)}registerWindowListener(t,i){this.windowListeners[i]={registered:!1,windowEventName:t,pluginEventName:i,handler:s=>{this.notifyListeners(i,s)}}}unimplemented(t="not implemented"){return new dY.Exception(t,LR.Unimplemented)}unavailable(t="not available"){return new dY.Exception(t,LR.Unavailable)}async removeListener(t,i){const s=this.listeners[t];if(!s)return;const l=s.indexOf(i);this.listeners[t].splice(l,1),this.listeners[t].length||this.removeWindowListener(this.windowListeners[t])}addWindowListener(t){window.addEventListener(t.windowEventName,t.handler),t.registered=!0}removeWindowListener(t){t&&(window.removeEventListener(t.windowEventName,t.handler),t.registered=!1)}sendRetainedArgumentsForEvent(t){const i=this.retainedEventArguments[t];i&&(delete this.retainedEventArguments[t],i.forEach(s=>{this.notifyListeners(t,s)}))}}const Yhe=n=>encodeURIComponent(n).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),Xhe=n=>n.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class Mqe extends N_e{async getCookies(){const t=document.cookie,i={};return t.split(";").forEach(s=>{if(s.length<=0)return;let[l,d]=s.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");l=Xhe(l).trim(),d=Xhe(d).trim(),i[l]=d}),i}async setCookie(t){try{const i=Yhe(t.key),s=Yhe(t.value),l=`; expires=${(t.expires||"").replace("expires=","")}`,d=(t.path||"/").replace("path=",""),u=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${i}=${s||""}${l}; path=${d}; ${u};`}catch(i){return Promise.reject(i)}}async deleteCookie(t){try{document.cookie=`${t.key}=; Max-Age=0`}catch(i){return Promise.reject(i)}}async clearCookies(){try{const t=document.cookie.split(";")||[];for(const i of t)document.cookie=i.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(t){return Promise.reject(t)}}async clearAllCookies(){try{await this.clearCookies()}catch(t){return Promise.reject(t)}}}hc("CapacitorCookies",{web:()=>new Mqe});const jqe=async n=>new Promise((t,i)=>{const s=new FileReader;s.onload=()=>{const l=s.result;t(l.indexOf(",")>=0?l.split(",")[1]:l)},s.onerror=l=>i(l),s.readAsDataURL(n)}),Uqe=(n={})=>{const t=Object.keys(n);return Object.keys(n).map(l=>l.toLocaleLowerCase()).reduce((l,d,u)=>(l[d]=n[t[u]],l),{})},Fqe=(n,t=!0)=>n?Object.entries(n).reduce((s,l)=>{const[d,u]=l;let p,g;return Array.isArray(u)?(g="",u.forEach(_=>{p=t?encodeURIComponent(_):_,g+=`${d}=${p}&`}),g.slice(0,-1)):(p=t?encodeURIComponent(u):u,g=`${d}=${p}`),`${s}&${g}`},"").substr(1):null,Bqe=(n,t={})=>{const i=Object.assign({method:n.method||"GET",headers:n.headers},t),l=Uqe(n.headers)["content-type"]||"";if(typeof n.data=="string")i.body=n.data;else if(l.includes("application/x-www-form-urlencoded")){const d=new URLSearchParams;for(const[u,p]of Object.entries(n.data||{}))d.set(u,p);i.body=d.toString()}else if(l.includes("multipart/form-data")||n.data instanceof FormData){const d=new FormData;if(n.data instanceof FormData)n.data.forEach((p,g)=>{d.append(g,p)});else for(const p of Object.keys(n.data))d.append(p,n.data[p]);i.body=d;const u=new Headers(i.headers);u.delete("content-type"),i.headers=u}else(l.includes("application/json")||typeof n.data=="object")&&(i.body=JSON.stringify(n.data));return i};class Vqe extends N_e{async request(t){const i=Bqe(t,t.webFetchExtra),s=Fqe(t.params,t.shouldEncodeUrlParams),l=s?`${t.url}?${s}`:t.url,d=await fetch(l,i),u=d.headers.get("content-type")||"";let{responseType:p="text"}=d.ok?t:{};u.includes("application/json")&&(p="json");let g,_;switch(p){case"arraybuffer":case"blob":_=await d.blob(),g=await jqe(_);break;case"json":g=await d.json();break;case"document":case"text":default:g=await d.text()}const y={};return d.headers.forEach((E,b)=>{y[b]=E}),{data:g,headers:y,status:d.status,url:d.url}}async get(t){return this.request(Object.assign(Object.assign({},t),{method:"GET"}))}async post(t){return this.request(Object.assign(Object.assign({},t),{method:"POST"}))}async put(t){return this.request(Object.assign(Object.assign({},t),{method:"PUT"}))}async patch(t){return this.request(Object.assign(Object.assign({},t),{method:"PATCH"}))}async delete(t){return this.request(Object.assign(Object.assign({},t),{method:"DELETE"}))}}hc("CapacitorHttp",{web:()=>new Vqe});const DR=hc("Browser",{web:()=>Xi(()=>import("./web-C7IvoHDb.js"),__vite__mapDeps([])).then(n=>new n.BrowserWeb)}),IE="#00aed9",O_e="#fafafa",Jhe="messageUsers",zqe="messageUserListFetchedOn";function Hqe(){Ii();const[n,t]=k.useState(!1),i=async({queryKey:E})=>{var N,O;const[b,A]=E;try{const D=await hs.getDashboardUserStats(A);return D.data.status==="success"?(console.log("## Dashboard User Stats Res --",D),(O=(N=D.data)==null?void 0:N.data)==null?void 0:O.stats):null}catch{throw new Error("Error fetching quick actions")}},{isFetching:s,isPending:l,isError:d,data:u,error:p,refetch:g}=Qd({queryKey:["dashboardUserStatsQuery",{isRefresh:n}],queryFn:i});async function _(){t(!0)}const y=async E=>{await DR.open({url:E,toolbarColor:IE})};return l?h.jsx(Yn,{className:"pt-1 pb-1 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((E,b)=>h.jsx(ci,{type:"simple-stats",className:"card-theme overflow-hidden card-width-40 me-3"},b))})}):d?h.jsx(Yn,{className:"mb-4",children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more stats"})}):h.jsx(h.Fragment,{children:s&&(u==null?void 0:u.length)===0?h.jsx(h.Fragment,{children:h.jsx(Yn,{className:"pt-1 pb-1 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((E,b)=>h.jsx(ci,{type:"simple-stats",className:"card-theme overflow-hidden card-width-40 me-3"},b))})})}):h.jsx(h.Fragment,{children:(u==null?void 0:u.length)>0&&h.jsxs(Yn,{className:"pt-1 pb-1 py-sm-3",children:[h.jsxs("div",{className:"d-flex align-items-center justify-content-between",children:[h.jsx("h4",{className:"section-title mb-0",children:"Performance stats"}),h.jsx(Pt,{variant:"link",size:"sm",className:"btn-theme font-12 fw-sb pe-0 d-none",children:"View all"})]}),h.jsx("div",{className:"d-flex no-scrollbar flex-nowrap justify-content-betwee overflow-auto py-3 ",children:u.map((E,b)=>h.jsx(XKe,{item:E,className:"card-width-40 shadow-sm dashboard-stats-card",handleStatsCardClick:y},`${E==null?void 0:E.value_title}-${b}`))}),h.jsx("div",{className:"text-center pt-2 pb-1",children:h.jsxs(Pt,{variant:"secondary",size:"sm",className:"btn-theme btn-secondary rounded- font-14",onClick:_,disabled:s,children:[h.jsx(Zt,{tag:"reload3",className:`${s?"rotate-anime":""}`})," ","Reload Stats"]})})]})})})}(function(n){var t={};function i(s){if(t[s])return t[s].exports;var l=t[s]={i:s,l:!1,exports:{}};return n[s].call(l.exports,l,l.exports,i),l.l=!0,l.exports}return i.m=n,i.c=t,i.d=function(s,l,d){i.o(s,l)||Object.defineProperty(s,l,{enumerable:!0,get:d})},i.r=function(s){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})},i.t=function(s,l){if(1&l&&(s=i(s)),8&l||4&l&&typeof s=="object"&&s&&s.__esModule)return s;var d=Object.create(null);if(i.r(d),Object.defineProperty(d,"default",{enumerable:!0,value:s}),2&l&&typeof s!="string")for(var u in s)i.d(d,u,(function(p){return s[p]}).bind(null,u));return d},i.n=function(s){var l=s&&s.__esModule?function(){return s.default}:function(){return s};return i.d(l,"a",l),l},i.o=function(s,l){return Object.prototype.hasOwnProperty.call(s,l)},i.p="",i(i.s=32)})([function(n,t,i){n.exports=i(27)()},function(n,t,i){n.exports=i(25)},function(n,t,i){n.exports=i(21)},function(n,t,i){var s=i(20);n.exports=function(l){for(var d=1;d=ne)return nt.meta.status="rejected_max_files",dt.handleChangeStatus(nt),st.abrupt("return");st.next=13;break;case 13:if(nt.cancel=function(){return dt.handleCancel(nt)},nt.remove=function(){return dt.handleRemove(nt)},nt.restart=function(){return dt.handleRestart(nt)},nt.meta.status="preparing",dt.files.push(nt),dt.handleChangeStatus(nt),dt.forceUpdate(),Ltp(n.item),children:[h.jsx(us,{src:i,alt:`${t} image`,wrapperClassName:"card-img"}),h.jsxs("div",{className:"card-img-overlay bg-primary-overlay p-2 p-sm-3 d-flex flex-column justify-content-end",children:[h.jsx("div",{className:"font-14 fw-sb text-truncate text-white mb-sm-2",children:t}),h.jsx("div",{className:"d-flex align-items-center",children:d!==0&&h.jsxs(h.Fragment,{children:[h.jsx(bQ,{now:u,className:"flex-grow-1"}),h.jsxs("div",{className:"d-flex font-12 ps-2 text-white",children:[h.jsx("span",{className:"fw-b",children:l}),"/",h.jsx("span",{children:d})]})]})})]})]})}function Wqe(n){const t=Ii(),i=async()=>{var _,y;try{const E=await hs.getDashboardMagazines();return E.data.status==="success"?(y=(_=E.data)==null?void 0:_.data)==null?void 0:y.items:null}catch{throw new Error("Error fetching dashboard magazines")}},{isFetching:s,isPending:l,isError:d,data:u,error:p}=Qd({queryKey:["dashboardMagazinesQuery"],queryFn:i});function g(_){console.log("Magazine ID = ",_),_&&t(`/magazines/${_}`,{state:{pageTitle:"Magazine Details"}})}return l?h.jsx(Yn,{className:"pt-2 pb-2 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((_,y)=>h.jsx(ci,{type:"dashboard-magazine",className:"card-theme overflow-hidden card-width-40 me-3"},y))})}):h.jsx(h.Fragment,{children:s&&(u==null?void 0:u.length)===0?h.jsx(h.Fragment,{children:h.jsx(Yn,{className:"pt-2 pb-2 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((_,y)=>h.jsx(ci,{type:"dashboard-magazine",className:"card-theme overflow-hidden card-width-40 me-3"},y))})})}):h.jsx(h.Fragment,{children:(u==null?void 0:u.length)>0&&h.jsxs(Yn,{className:"pt-2 pb-2 py-sm-3",children:[h.jsxs("div",{className:"d-flex align-items-center justify-content-between",children:[h.jsx("h4",{className:"section-title mb-0",children:"Magazines"}),h.jsx(Pt,{variant:"link",size:"sm",className:"btn-theme font-13 fw-sb pe-0",onClick:()=>t("/magazines"),children:"View all"})]}),h.jsx("div",{className:"d-flex no-scrollbar flex-nowrap justify-content-betwee overflow-auto py-3 ",children:u==null?void 0:u.map(_=>h.jsx(Gqe,{item:_,bgImg:_.image,title:_.name,className:"card-width-40 shadow-sm ",handleMagazineCardClick:g},_.id))})]})})})}function $qe(n){var p,g,_,y;let t=n!=null&&n.className?n==null?void 0:n.className:"";const i=n!=null&&n.title?n==null?void 0:n.title:"Default title",s=n!=null&&n.bgImg?n==null?void 0:n.bgImg:"/img/default-bg.jpg",l=(p=n==null?void 0:n.item)!=null&&p.button?(g=n==null?void 0:n.item)==null?void 0:g.button:null,d=(_=n==null?void 0:n.item)!=null&&_.expires_in?(y=n==null?void 0:n.item)==null?void 0:y.expires_in:"";function u(E){console.log("handleClick in Dashbaord Contest = ",E),n.handleContestCardClick(E.id)}return h.jsx(h.Fragment,{children:h.jsxs(et,{className:`border-0 card-theme dashboard-contest-card overflow-hidden me-3 ${t}`,onClick:()=>u(n.item),children:[h.jsx(us,{src:s,alt:`${i} image`,wrapperClassName:"card-img"}),h.jsx("span",{className:"d-flex font-11 expiry-tag position-absolute top- end-0",children:d}),h.jsxs("div",{className:"card-img-overlay bg-gray-overlay p- p-0 d-flex flex-column justify-content-end",children:[h.jsx("div",{className:"font-13 fw-sb text-truncat line-clamp text-white mb-1 mb-sm-3 px-2 px-sm-3",children:i}),h.jsx("div",{className:"d-flex btn-wrap align-items-center justify-content-center",children:h.jsx(Pt,{type:"button",className:"btn btn-theme btn-sm btn-secondary px-1 text-nowrap w-100",children:l==null?void 0:l.title})})]})]})})}function Kqe(n){const t=Ii(),i=async()=>{var _,y;try{const E=await Wa.getAllDashboardContests();return E.data.status==="success"?(y=(_=E.data)==null?void 0:_.data)==null?void 0:y.items:null}catch{throw new Error("Error fetching dashboard contest")}},{isFetching:s,isPending:l,isError:d,data:u,error:p}=Qd({queryKey:["dashboardContestsQuery"],queryFn:i});function g(_){console.log("Contest ID = ",_),_&&t(`/contests/${_}`,{state:{pageTitle:"Detailing Contest Details"}})}return l?h.jsx(Yn,{className:"pt-2 pb-2 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((_,y)=>h.jsx(ci,{type:"dashboard-magazine",className:"card-theme overflow-hidden card-width-40 me-3"},`DCPC-${y}`))})}):h.jsx(h.Fragment,{children:s&&(u==null?void 0:u.length)===0?h.jsx(h.Fragment,{children:h.jsx(Yn,{className:"pt-2 pb-2 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((_,y)=>h.jsx(ci,{type:"dashboard-magazine",className:"card-theme overflow-hidden card-width-40 me-3"},`DCPC-${y}`))})})}):h.jsx(h.Fragment,{children:(u==null?void 0:u.length)>0&&h.jsxs(Yn,{className:"pt-2 pb-2 py-sm-3",children:[h.jsxs("div",{className:"d-flex align-items-center justify-content-between",children:[h.jsx("h4",{className:"section-title mb-0",children:"Detailing Contest"}),h.jsx(Pt,{variant:"link",size:"sm",className:"btn-theme font-12 fw-sb pe-0",onClick:()=>t("/contests"),children:"View all"})]}),h.jsx("div",{className:"d-flex no-scrollbar flex-nowrap justify-content-betwee overflow-auto py-3 ",children:u==null?void 0:u.map(_=>h.jsx(dn.Fragment,{children:h.jsx($qe,{item:_,bgImg:_.cover_image,title:_.title,className:"card-width-40 shadow-sm ",handleContestCardClick:g},_.id)},_.id))})]})})})}function qqe(n){function t(i){console.log("handleURLRedirection url = ",i),window.open(encodeURI(i),"_system","location=yes")}return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,fullscreen:!1,backdrop:"static",keyboard:!1,className:"theme-modal app-version-check-update-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb-2 border-0 d-flex justify-content-center align-items-center",children:h.jsx("div",{className:"heading-icon-wrap flex-shrink-0",children:h.jsx("span",{className:"heading-icon d-flex justify-content-center align-items-center rounded-circle font-24",children:h.jsx(GO,{})})})}),h.jsx(vn.Body,{className:"no-scrollbar text-center d-flex flex-wrap justify-content-center align-items-center",children:n.loading?h.jsx(h.Fragment,{children:h.jsx(Ji,{animation:"border",variant:"dark"})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:"d-flex flex-column justify-content-center align-items-center",children:[h.jsx("div",{className:"w-100 d-block",children:h.jsx("p",{className:"font-15 mb-3",style:{lineHeight:1.6},children:"It appears you're using an older version of our app. To continue, kindly update to the latest version."})}),h.jsx("div",{className:"btn-wrap d-grid gap-3 pt-1",children:(n==null?void 0:n.platform)==="ios"?h.jsx(h.Fragment,{children:h.jsxs(Pt,{type:"button",className:"btn-theme btn-black btn-lg w-100 text-white text-decoration-none rounded-3",onClick:()=>{var i;return t((i=n.appUpdatedInfo)==null?void 0:i.store_link)},children:[h.jsx(h.Fragment,{children:h.jsx(Hje,{className:"font-32 me-2"})}),"Update Now"]})}):h.jsx(h.Fragment,{children:h.jsxs(Pt,{type:"button",className:"btn-theme btn-black btn-lg w-100 text-white text-decoration-none rounded-3",onClick:()=>{var i;return t((i=n.appUpdatedInfo)==null?void 0:i.store_link)},children:[h.jsx(h.Fragment,{children:h.jsx(Wje,{className:"font-30 me-2"})}),"Update Now"]})})})]})})})]})})}function Yqe({contest:n,className:t,handleCompetitionContestBtnClick:i}){const s=n!=null&&n.role?n==null?void 0:n.role:"",l=n!=null&&n.contest_name?n==null?void 0:n.contest_name:"";n!=null&&n.cover_image&&(n==null||n.cover_image);const d=n!=null&&n.points_unit?n==null?void 0:n.points_unit:"Points",u=n!=null&&n.points?n==null?void 0:n.points:0,p=n!=null&&n.team_points?n==null?void 0:n.team_points:0,g=n!=null&&n.team_rank?n==null?void 0:n.team_rank:0,_=n!=null&&n.team_rank_out_of?n==null?void 0:n.team_rank_out_of:0,y=n!=null&&n.rank_in_team?n==null?void 0:n.rank_in_team:0,E=n!=null&&n.rank_in_team_out_of?n==null?void 0:n.rank_in_team_out_of:0;n!=null&&n.team_dashboard&&(n==null||n.team_dashboard);const b=n!=null&&n.contest_dashboard?n==null?void 0:n.contest_dashboard:null,A=n!=null&&n.top3?n==null?void 0:n.top3:[];function N(O,D){console.log("----- Inside handleCardClick ----"),i(O,D)}return h.jsx(h.Fragment,{children:h.jsxs(et,{className:"border-0 shadow-sm card-theme overflow-hidden card-width-90 me-3",onClick:()=>{N(n,b)},children:[h.jsx(et.Header,{className:"font-13 border-bottom-0 p-2",children:l}),h.jsxs(et.Body,{className:"px-2 py-3",children:[s.toLowerCase()==="player"&&h.jsx(h.Fragment,{children:h.jsxs(fn,{className:"row-cols-3 g-0",children:[h.jsxs(Gt,{className:"border-end d-flex flex-column text-center text-gray7 py-2",children:[h.jsx("span",{className:"mb-2",children:h.jsx(Zt,{tag:"insights1",className:"font-24 text-theme-primary"})}),h.jsx("span",{className:"font-20 fw-sb",children:u}),h.jsx("span",{className:"font-13 fw-sb",children:`My ${d}`})]}),h.jsxs(Gt,{className:"border-end d-flex flex-column text-center text-gray7 py-2",children:[h.jsx("span",{className:"mb-2",children:h.jsx(Zt,{tag:"crown1",className:"font-24 text-theme-primary"})}),h.jsxs("div",{className:"font-20 fw-sb",children:[y," ",h.jsxs("span",{className:"font-12 text-gray8",children:["(",E,")"]})]}),h.jsx("span",{className:"font-13 fw-sb",children:"Rank In Team"})]}),h.jsxs(Gt,{className:"d-flex flex-column text-center text-gray7 py-2",children:[h.jsx("span",{className:"mb-2",children:h.jsx(Zt,{tag:"crown1",className:"font-24 text-theme-primary"})}),h.jsxs("div",{className:"font-20 fw-sb",children:[g," ",h.jsxs("span",{className:"font-12 text-gray8",children:["(",_,")"]})]}),h.jsx("span",{className:"font-13 fw-sb",children:"Team Rank"})]})]})}),s.toLowerCase()==="observer"&&h.jsx(h.Fragment,{children:(A==null?void 0:A.length)>0?h.jsx(h.Fragment,{children:h.jsx(fn,{className:"row-cols-3 g-0",children:A==null?void 0:A.map((O,D)=>{const P=O!=null&&O.team_image?O==null?void 0:O.team_image:"/img/default-bg.jpg",j=O!=null&&O.team_name?O==null?void 0:O.team_name:"",M=O!=null&&O.rank?O==null?void 0:O.rank:"";return h.jsx(Gt,{className:"",children:h.jsxs(et,{className:`border-0 campaigns-counter-card bg-primary-lighter bg-transparent rounded-0 h-100 ${D+1!==(A==null?void 0:A.length)?"border-end":""}`,children:[h.jsx(et.Header,{className:"border-0 text-center pt-1 pb-0 px-1 bg-transparent",children:h.jsx("div",{className:"ms-2 font-13 fw-sb text-center lh-sm text-gray6",children:j})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center justify-content-center p-1 pt- position-relative",children:h.jsx("div",{className:"d-flex align-items-center mb-2",children:h.jsx("div",{className:"flex-shrink-0",style:{width:32},children:h.jsx(us,{src:P,alt:j,wrapperClassName:"img-fluid"})})})}),h.jsx(et.Footer,{className:"border-theme-top border-0 p-1 pt-0 bg-transparent text-center",children:h.jsx("div",{className:"btn btn-theme btn-icon btn-sm bg-primary-light-overlay rounded-circle fw-sb shadow-sm",children:M})})]})},O==null?void 0:O.team_name)})})}):h.jsx(h.Fragment,{})}),s.toLowerCase()==="non_player"&&h.jsx(h.Fragment,{children:h.jsxs(fn,{className:"row-cols-2 g-0",children:[h.jsxs(Gt,{className:"border-end d-flex flex-column text-center text-gray7 py-2",children:[h.jsx("span",{className:"mb-2",children:h.jsx(Zt,{tag:"insights1",className:"font-24 text-theme-primary"})}),h.jsx("span",{className:"font-20 fw-sb",children:p}),h.jsx("span",{className:"font-13 fw-sb",children:`Team ${d}`})]}),h.jsxs(Gt,{className:"d-flex flex-column text-center text-gray7 py-2",children:[h.jsx("span",{className:"mb-2",children:h.jsx(Zt,{tag:"crown1",className:"font-24 text-theme-primary"})}),h.jsxs("div",{className:"font-20 fw-sb",children:[g," ",h.jsxs("span",{className:"font-12 text-gray8",children:["(",_,")"]})]}),h.jsx("span",{className:"font-13 fw-sb",children:"Team Rank"})]})]})})]})]})})}function Xqe(){const n=Ii(),t=async()=>{var g,_;try{const y=await Wa.getAllCompetitionContests();return y.data.status==="success"?(_=(g=y.data)==null?void 0:g.data)==null?void 0:_.items:null}catch{throw new Error("Error fetching dashboard competition contest")}},{isFetching:i,isPending:s,isError:l,data:d,error:u}=Qd({queryKey:["dashboardCompetitionContestsQuery"],queryFn:t});function p(g,_){g&&n("/competition-contests/competition-contest-details",{state:{item:g,url:_,pageTitle:g==null?void 0:g.contest_name}})}return s?h.jsx(Yn,{className:"pt-2 pb-2 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((g,_)=>h.jsx(ci,{type:"dashboard-competition-contest",className:"card-theme overflow-hidden card-width-90 me-3"},_))})}):h.jsx(h.Fragment,{children:i&&(d==null?void 0:d.length)===0?h.jsx(h.Fragment,{children:h.jsx(Yn,{className:"pt-2 pb-2 py-sm-3",children:h.jsx("div",{className:"d-flex flex-nowrap justify-content-betwee overflow-auto py-3",children:[0,1].map((g,_)=>h.jsx(ci,{type:"dashboard-competition-contest",className:"card-theme overflow-hidden card-width-90 me-3"},_))})})}):h.jsx(h.Fragment,{children:(d==null?void 0:d.length)>0&&h.jsxs(Yn,{className:"pt-2 pb-2 py-sm-3",children:[h.jsxs("div",{className:"d-flex align-items-center justify-content-between",children:[h.jsx("h4",{className:"section-title mb-0",children:"Contests"}),h.jsx(Yu,{to:"/competition-contests",variant:"link",size:"sm",className:"btn-theme btn-link font-13 fw-sb",children:"View all"})]}),h.jsx("div",{className:"d-flex no-scrollbar flex-nowrap justify-content-betwee overflow-auto py-3 ",children:d==null?void 0:d.map(g=>h.jsx(Yqe,{contest:g,className:"",handleCompetitionContestBtnClick:p},g))})]})})})}function Qhe({loading:n,banners:t,itemClassName:i,className:s}){const l=i||"",d=Ii(),u={shouldSwiperUpdate:!0,rebuildOnUpdate:!0,effect:"slide",autoplay:{delay:4e3,disableOnInteraction:!1},pagination:{el:".swiper-pagination",clickable:!0},spaceBetween:30,grabCursor:!0};async function p(g){if(console.log("Banner clicked = ",g),(g==null?void 0:g.has_cta)!=="no"&&(g==null?void 0:g.has_cta)==="yes")if((g==null?void 0:g.action_type)==="web_view")console.log("Banner action Web view = ",g==null?void 0:g.url),await DR.open({url:g==null?void 0:g.url,toolbarColor:IE});else if((g==null?void 0:g.action_type)==="web_view_with_token"){console.log("Banner action internal = ",g==null?void 0:g.url);let _=`${g==null?void 0:g.url}&authorization=${Ai.getToken()}`;console.log("urlWithToken = ",_),await DR.open({url:_,toolbarColor:IE})}else(g==null?void 0:g.action_type)==="internal_action"&&(console.log("Banner action internal = ",g==null?void 0:g.url),d(g==null?void 0:g.url,{state:null}))}return h.jsx(h.Fragment,{children:n?h.jsx(h.Fragment,{children:h.jsx(ci,{type:"banners"})}):h.jsx(h.Fragment,{children:(t==null?void 0:t.length)>0?h.jsx(h.Fragment,{children:h.jsx(KQ,{...u,containerClass:"swiper-container theme-swiper dashboard-swiper mb-2 position-relative",children:t.map((g,_)=>h.jsx(et,{className:`card-slide border-0 overflow-hidden bg-transparent ${l}`,onClick:()=>{p(g)},children:h.jsx(et.Body,{className:"p-0",children:h.jsx(us,{src:g==null?void 0:g.media_url,alt:`Wall Banner ${_+1}`})})},g==null?void 0:g.id))})}):h.jsx(h.Fragment,{})})})}function Jqe({show:n,handleClose:t,className:i,banners:s}){const l=Ii(),d={shouldSwiperUpdate:!0,rebuildOnUpdate:!0,effect:"slide",pagination:{el:".swiper-pagination",clickable:!0},spaceBetween:30,grabCursor:!0};async function u(p){(p==null?void 0:p.has_cta)!=="no"&&(p==null?void 0:p.has_cta)==="yes"&&((p==null?void 0:p.action_type)==="web_view"?await DR.open({url:p==null?void 0:p.url,toolbarColor:IE}):(p==null?void 0:p.action_type)==="internal_action"&&l(p==null?void 0:p.url,{state:null}))}return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal likes-list-modal",show:n,onHide:t,children:[h.jsx(Pt,{className:"btn-theme btn-icon shadow-sm btn-red rounded-2 position-absolute end-0",style:{zIndex:10},onClick:t,children:h.jsx(Zt,{tag:"delete7",className:"font-24"})}),h.jsx(vn.Body,{className:"no-scrollbar p-1",children:h.jsx(KQ,{...d,containerClass:"swiper-container theme-swiper dashboard-swiper popup-media-swiper mb-0 position-relative",children:s.map((p,g)=>h.jsx(et,{className:"card-slide border-0 overflow-hidden bg-transparent",onClick:()=>{u(p)},children:h.jsx(et.Body,{className:"p-0",children:h.jsx(us,{src:p==null?void 0:p.media_url,alt:`Popup Banner ${g+1}`})})},p==null?void 0:p.id))})})]})})}const Qqe="https://png.pngtree.com/background/20250212/original/pngtree-a-photo-of-rainbow-watercolor-background-with-smoky-texture-picture-image_15774631.jpg";function P_e({show:n,handleClose:t,data:i}){var g,_,y,E;const s=Ii();function l(b){var N,O;if(!(b!=null&&b.payload))return;let A=null;return((N=b==null?void 0:b.payload)==null?void 0:N.type)==="overlay_appreciation"?A={...b,title:b==null?void 0:b.title,description:b==null?void 0:b.description,icon:b==null?void 0:b.icon,time_ago:b==null?void 0:b.time_ago,url:"/appreciations",button_title:"View More"}:((O=b==null?void 0:b.payload)==null?void 0:O.type)==="overlay_badge"&&(A={...b,title:b==null?void 0:b.title,description:b==null?void 0:b.description,icon:b==null?void 0:b.icon,time_ago:b==null?void 0:b.time_ago,url:"/badges",button_title:"View More"}),A}const d=l(i);function u(){s(d==null?void 0:d.url)}const p=(g=i==null?void 0:i.payload)!=null&&g.bg_image?{backgroundImage:`url(${(_=i==null?void 0:i.payload)!=null&&_.bg_image?(y=i==null?void 0:i.payload)==null?void 0:y.bg_image:Qqe})`,backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center center"}:null;return h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal overlay-notification-modal",show:n,onHide:t,children:[h.jsx(Pt,{className:"btn-theme btn-icon shadow-sm btn-light btn-close-modal rounded-2 position-absolute end-0",style:{zIndex:10},onClick:t,children:h.jsx(Zt,{tag:"delete7",className:"font-24"})}),h.jsx(vn.Body,{className:`no-scrollbar d-flex align-items-center ${!((E=i==null?void 0:i.payload)!=null&&E.bg_image)&&"bg-pattern-default"}`,style:p,children:h.jsxs("div",{className:"d-flex flex-column",children:[h.jsx("div",{className:"d-flex justify-content-center overlay-symbol-container mx-auto",children:h.jsx("div",{className:"media-img-wrapper rounded-3 shadow-sm mb-1",children:h.jsx(us,{src:d==null?void 0:d.icon,alt:d==null?void 0:d.title,wrapperClassName:"img-fluid mx-auto"})})}),h.jsx("div",{className:"d-flex justify-content-center align-items-center py-2 font-16 fw-sb text-gray4",children:h.jsx("div",{className:"",children:d==null?void 0:d.time_ago})}),h.jsx("div",{className:"font-22 fw-sb pt-4 pb-2 d-flex justify-content-center text-center",children:d==null?void 0:d.title}),h.jsx("div",{className:"font-18 fw-sb text-gray4 pb-2 px-1 d-flex justify-content-center",children:h.jsx("div",{className:"mx-auto my-3 text-center",children:d==null?void 0:d.description})}),h.jsx("div",{className:"text-center pt-4 pb-2",children:h.jsx(Pt,{type:"button",className:"btn-theme btn-lg btn-white fw-sb",style:{width:"80%"},onClick:u,children:d==null?void 0:d.button_title})})]})})]})}const J4={getAllNotifications:async n=>{const t=n?`&lastkey=${n}`:"";return await On.get(`ums/notification/list?paginate=yes${t}`)},getNotificationStats:async()=>await On.get("ums/notification/stats"),markReadNotification:async n=>{const{id:t}=n;return await On.get(`ums/notification/markread?id=${t}`)}},bC=hc("App",{web:()=>Xi(()=>import("./web-D0EvZq7o.js"),__vite__mapDeps([])).then(n=>new n.AppWeb)});function Zqe(){Ii();const{getNotificationStats:n}=k.useContext(QR);Xo();const[t,i]=k.useState([]),[s,l]=k.useState([]),[d,u]=k.useState([]),[p,g]=k.useState(null),[_,y]=k.useState(!0),[E,b]=k.useState(!0),[A,N]=k.useState(!1),[O,D]=k.useState(!1),[P,j]=k.useState([]),M=()=>{N(!1)},V=()=>{N(!0)},H=()=>{D(!1)},$=()=>{D(!0)};async function Q(G){const ie=await bC.getInfo();b(!0),Ai.appInfoFromServer(G).then(_e=>{var he,Ce;if(console.log("appInfoFromServer called == ",JSON.stringify(_e.data)),_e.data.status==="success"){const fe=(Ce=(he=_e.data)==null?void 0:he.data)==null?void 0:Ce.app_info;g(fe);const me=parseFloat(ie==null?void 0:ie.version).toFixed(2),Ne=parseFloat(fe.min_version).toFixed(2);b(!1),parseFloat(me){console.log("ERROR in appInfoFromServer ",JSON.stringify(_e)),b(!1),g(null)})}async function Y(){var _e,he,Ce,fe,me;const G=[];let ie=null;for(;;){const Ne=await J4.getAllNotifications(ie);if(((_e=Ne.data)==null?void 0:_e.status)!=="success")break;const Fe=((Ce=(he=Ne.data)==null?void 0:he.data)==null?void 0:Ce.notifications)??[];G.push(...Fe);const je=(me=(fe=Ne.data)==null?void 0:fe.data)==null?void 0:me.lastkey;if(!je)break;ie=je}return G}async function le(){try{const ie=(await Y()).filter(_e=>(_e==null?void 0:_e.notification_type)==="overlay"&&!(_e!=null&&_e.is_read));console.log("overlays - ",ie),j(ie)}catch(G){console.log("Error in loadUnreadOverlayNotifications = ",G),j([])}}const ae=()=>{j(G=>G.slice(1))};async function te(){hs.getDashboardWallBanners().then(G=>{var ie,_e;if(console.log("getDashboardWallBanners RES = ",G.data),G.data.status==="success"){let he=(_e=(ie=G.data)==null?void 0:ie.data)==null?void 0:_e.items,Ce=he.length>0?he.filter(Ne=>Ne.position==="default"):[],fe=he.length>0?he.filter(Ne=>Ne.position!=="default"&&Ne.position!=="popup"):[],me=he.length>0?he.filter(Ne=>Ne.position==="popup"):[];i(Ce),l(fe),u(me),y(!1)}}).catch(G=>{y(!1),i([]),l([]),u([]),console.log("Error in getDashboardWallBanners = ",G)})}k.useEffect(()=>{te(),n(),le(),Q({platform:Ai.getDevicePlatform(),package_name:Ai.getAppID()})},[]);const de=P[0]??null;return k.useEffect(()=>{de!=null&&de.id&&J4.markReadNotification({id:de.id}).then(G=>{var ie;((ie=G.data)==null?void 0:ie.status)==="success"&&n()}).catch(G=>console.log("Error marking overlay notification read = ",G))},[de==null?void 0:de.id]),k.useEffect(()=>{sessionStorage.getItem("showPopup")||d.length>0&&setTimeout(()=>{$(),sessionStorage.setItem("showPopup",!0)},500)},[d]),h.jsxs(qi,{className:"dashboard-content-wrapper",children:[h.jsxs(Yn,{className:"mb-2 banner-container bg-primary-lighter",children:[h.jsxs(fn,{className:"row-cols-2 gx-2 mb-1 justify-content-center px-4",children:[h.jsx(Gt,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm h-100",style:{background:"var(--color-kudos-light)"},children:h.jsx(Yu,{to:"/appreciations",children:h.jsxs(et.Body,{className:"p-2 text-center d-flex align-items-center",children:[h.jsx("div",{className:"pe-none icon-wrap wrap-sm",style:{background:"var(--color-kudos)"},children:h.jsx("img",{src:"/img/appreciations-icon.png",alt:"Appreciations Icon"})}),h.jsx("span",{className:"d-block font-12 ms-2 text-truncate",children:"Appreciations"})]})})})}),h.jsx(Gt,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm h-100",style:{background:"var(--color-badges-light)"},children:h.jsx(Yu,{to:"/badges",children:h.jsxs(et.Body,{className:"p-2 text-center d-flex align-items-center",children:[h.jsx("div",{className:"pe-none icon-wrap wrap-sm",style:{background:"var(--color-badges)"},children:h.jsx("img",{src:"/img/badges-icon.png",alt:"Badges Icon"})}),h.jsx("span",{className:"d-block font-12 ms-2",children:"Badges"})]})})})})]}),h.jsxs("section",{className:`${t.length>0?"py-1 pb-3 py-sm-3":""}`,children:[_&&h.jsx(ci,{type:"banners"}),!_&&t.length>0&&h.jsx(Qhe,{loading:_,banners:t,itemClassName:"rounded-1 shadow-none",className:""})]})]}),h.jsx(Hqe,{}),(s==null?void 0:s.length)>0&&h.jsxs("section",{className:`overflow-hidden ${s.length>0?"py-3 px-4 py-sm-3 bg-red-lighter1":"d-none"}`,children:[_&&h.jsx(ci,{type:"banners"}),!_&&s.length>0&&h.jsx(Qhe,{loading:_,banners:s,itemClassName:"rounded-4 shadow-sm cta-slide"})]}),h.jsx(Xqe,{}),h.jsx(Wqe,{}),h.jsx(Kqe,{}),h.jsx(Jqe,{show:O,loading:_,banners:d,handleClose:H}),h.jsx(qqe,{show:A,loading:E,handleClose:M,platform:Ai.getDevicePlatform(),appUpdatedInfo:p}),h.jsx(P_e,{show:!!de,handleClose:ae,data:de}),h.jsx("div",{className:"d-block",style:{height:150}})]})}/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */var uY=function(n,t){return uY=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,s){i.__proto__=s}||function(i,s){for(var l in s)s.hasOwnProperty(l)&&(i[l]=s[l])},uY(n,t)};function eYe(n,t){uY(n,t);function i(){this.constructor=n}n.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}var g4=function(){return g4=Object.assign||function(t){for(var i,s=1,l=arguments.length;sn?A():t!==!0&&(l=setTimeout(s?N:A,s===void 0?n-E:n))}return _.cancel=g,_}var CC={Pixel:"Pixel",Percent:"Percent"},Zhe={unit:CC.Percent,value:.8};function efe(n){return typeof n=="number"?{unit:CC.Percent,value:n*100}:typeof n=="string"?n.match(/^(\d*(\.\d+)?)px$/)?{unit:CC.Pixel,value:parseFloat(n)}:n.match(/^(\d*(\.\d+)?)%$/)?{unit:CC.Percent,value:parseFloat(n)}:(console.warn('scrollThreshold format is invalid. Valid formats: "120px", "50%"...'),Zhe):(console.warn("scrollThreshold should be string or number"),Zhe)}var L_e=function(n){eYe(t,n);function t(i){var s=n.call(this,i)||this;return s.lastScrollTop=0,s.actionTriggered=!1,s.startY=0,s.currentY=0,s.dragging=!1,s.maxPullDownDistance=0,s.getScrollableTarget=function(){return s.props.scrollableTarget instanceof HTMLElement?s.props.scrollableTarget:typeof s.props.scrollableTarget=="string"?document.getElementById(s.props.scrollableTarget):(s.props.scrollableTarget===null&&console.warn(`You are trying to pass scrollableTarget but it is null. This might + happen because the element may not have been added to DOM yet. + See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info. + `),null)},s.onStart=function(l){s.lastScrollTop||(s.dragging=!0,l instanceof MouseEvent?s.startY=l.pageY:l instanceof TouchEvent&&(s.startY=l.touches[0].pageY),s.currentY=s.startY,s._infScroll&&(s._infScroll.style.willChange="transform",s._infScroll.style.transition="transform 0.2s cubic-bezier(0,0,0.31,1)"))},s.onMove=function(l){s.dragging&&(l instanceof MouseEvent?s.currentY=l.pageY:l instanceof TouchEvent&&(s.currentY=l.touches[0].pageY),!(s.currentY=Number(s.props.pullDownToRefreshThreshold)&&s.setState({pullToRefreshThresholdBreached:!0}),!(s.currentY-s.startY>s.maxPullDownDistance*1.5)&&s._infScroll&&(s._infScroll.style.overflow="visible",s._infScroll.style.transform="translate3d(0px, "+(s.currentY-s.startY)+"px, 0px)")))},s.onEnd=function(){s.startY=0,s.currentY=0,s.dragging=!1,s.state.pullToRefreshThresholdBreached&&(s.props.refreshFunction&&s.props.refreshFunction(),s.setState({pullToRefreshThresholdBreached:!1})),requestAnimationFrame(function(){s._infScroll&&(s._infScroll.style.overflow="auto",s._infScroll.style.transform="none",s._infScroll.style.willChange="unset")})},s.onScrollListener=function(l){typeof s.props.onScroll=="function"&&setTimeout(function(){return s.props.onScroll&&s.props.onScroll(l)},0);var d=s.props.height||s._scrollableNode?l.target:document.documentElement.scrollTop?document.documentElement:document.body;if(!s.actionTriggered){var u=s.props.inverse?s.isElementAtTop(d,s.props.scrollThreshold):s.isElementAtBottom(d,s.props.scrollThreshold);u&&s.props.hasMore&&(s.actionTriggered=!0,s.setState({showLoader:!0}),s.props.next&&s.props.next()),s.lastScrollTop=d.scrollTop}},s.state={showLoader:!1,pullToRefreshThresholdBreached:!1,prevDataLength:i.dataLength},s.throttledOnScrollListener=tYe(150,s.onScrollListener).bind(s),s.onStart=s.onStart.bind(s),s.onMove=s.onMove.bind(s),s.onEnd=s.onEnd.bind(s),s}return t.prototype.componentDidMount=function(){if(typeof this.props.dataLength>"u")throw new Error('mandatory prop "dataLength" is missing. The prop is needed when loading more content. Check README.md for usage');if(this._scrollableNode=this.getScrollableTarget(),this.el=this.props.height?this._infScroll:this._scrollableNode||window,this.el&&this.el.addEventListener("scroll",this.throttledOnScrollListener),typeof this.props.initialScrollY=="number"&&this.el&&this.el instanceof HTMLElement&&this.el.scrollHeight>this.props.initialScrollY&&this.el.scrollTo(0,this.props.initialScrollY),this.props.pullDownToRefresh&&this.el&&(this.el.addEventListener("touchstart",this.onStart),this.el.addEventListener("touchmove",this.onMove),this.el.addEventListener("touchend",this.onEnd),this.el.addEventListener("mousedown",this.onStart),this.el.addEventListener("mousemove",this.onMove),this.el.addEventListener("mouseup",this.onEnd),this.maxPullDownDistance=this._pullDown&&this._pullDown.firstChild&&this._pullDown.firstChild.getBoundingClientRect().height||0,this.forceUpdate(),typeof this.props.refreshFunction!="function"))throw new Error(`Mandatory prop "refreshFunction" missing. + Pull Down To Refresh functionality will not work + as expected. Check README.md for usage'`)},t.prototype.componentWillUnmount=function(){this.el&&(this.el.removeEventListener("scroll",this.throttledOnScrollListener),this.props.pullDownToRefresh&&(this.el.removeEventListener("touchstart",this.onStart),this.el.removeEventListener("touchmove",this.onMove),this.el.removeEventListener("touchend",this.onEnd),this.el.removeEventListener("mousedown",this.onStart),this.el.removeEventListener("mousemove",this.onMove),this.el.removeEventListener("mouseup",this.onEnd)))},t.prototype.componentDidUpdate=function(i){this.props.dataLength!==i.dataLength&&(this.actionTriggered=!1,this.setState({showLoader:!1}))},t.getDerivedStateFromProps=function(i,s){var l=i.dataLength!==s.prevDataLength;return l?g4(g4({},s),{prevDataLength:i.dataLength}):null},t.prototype.isElementAtTop=function(i,s){s===void 0&&(s=.8);var l=i===document.body||i===document.documentElement?window.screen.availHeight:i.clientHeight,d=efe(s);return d.unit===CC.Pixel?i.scrollTop<=d.value+l-i.scrollHeight+1:i.scrollTop<=d.value/100+l-i.scrollHeight+1},t.prototype.isElementAtBottom=function(i,s){s===void 0&&(s=.8);var l=i===document.body||i===document.documentElement?window.screen.availHeight:i.clientHeight,d=efe(s);return d.unit===CC.Pixel?i.scrollTop+l>=i.scrollHeight-d.value:i.scrollTop+l>=d.value/100*i.scrollHeight},t.prototype.render=function(){var i=this,s=g4({height:this.props.height||"auto",overflow:"auto",WebkitOverflowScrolling:"touch"},this.props.style),l=this.props.hasChildren||!!(this.props.children&&this.props.children instanceof Array&&this.props.children.length),d=this.props.pullDownToRefresh&&this.props.height?{overflow:"auto"}:{};return dn.createElement("div",{style:d,className:"infinite-scroll-component__outerdiv"},dn.createElement("div",{className:"infinite-scroll-component "+(this.props.className||""),ref:function(u){return i._infScroll=u},style:s},this.props.pullDownToRefresh&&dn.createElement("div",{style:{position:"relative"},ref:function(u){return i._pullDown=u}},dn.createElement("div",{style:{position:"absolute",left:0,right:0,top:-1*this.maxPullDownDistance}},this.state.pullToRefreshThresholdBreached?this.props.releaseToRefreshContent:this.props.pullDownToRefreshContent)),this.props.children,!this.state.showLoader&&!l&&this.props.hasMore&&this.props.loader,this.state.showLoader&&this.props.hasMore&&this.props.loader,!this.props.hasMore&&this.props.endMessage))},t}(k.Component);const Ck=[{type:"form_approval",icon:"details4",color:"#ca8a04",bgColor:"#f9edd1"},{type:"form_reminder",icon:"details4",color:"#ca8a04",bgColor:"#f9edd1"},{type:"form_approved",icon:"details4",color:"#ca8a04",bgColor:"#f9edd1"},{type:"form_reject",icon:"details4",color:"#ca8a04",bgColor:"#f9edd1"},{type:"form_submitted",icon:"details4",color:"#ca8a04",bgColor:"#f9edd1"},{type:"broadcast_created",icon:"invitation2",color:"#32ad7c",bgColor:"#baf6dc"},{type:"broadcast_liked",icon:"invitation2",color:"#32ad7c",bgColor:"#baf6dc"},{type:"broadcast_comment",icon:"invitation2",color:"#32ad7c",bgColor:"#baf6dc"},{type:"magazine_created",icon:"dictionary2",color:"#5970ac",bgColor:"#91a7df"},{type:"magazine_media_created",icon:"dictionary2",color:"#5970ac",bgColor:"#91a7df"},{type:"appreciation_recieved",icon:"upvote3",color:"#da5570",bgColor:"#ffd8e1"},{type:"overlay_appreciation",icon:"upvote3",color:"#da5570",bgColor:"#ffd8e1"},{type:"detailing_contest_created",icon:"notifications2",color:"#1099bb",bgColor:"#d9f7ff"},{type:"detailing_contest_upload_response",icon:"notifications2",color:"#1099bb",bgColor:"#d9f7ff"},{type:"detailing_contest_evaluated",icon:"notifications2",color:"#1099bb",bgColor:"#d9f7ff"},{type:"badge_recieved",icon:"insights8",color:"#5970ac",bgColor:"#ccd9fe"},{type:"overlay_badge",icon:"insights8",color:"#5970ac",bgColor:"#ccd9fe"},{type:"target_achieved",icon:"insights16",color:"#32ad7c",bgColor:"#baf6dc"}];function YO({text:n,linesToShow:t=2,containerClass:i="",buttonClass:s="",buttonStyles:l=null}){const d={WebkitLineClamp:t,WebkitBoxOrient:"vertical",overflow:"hidden",display:"-webkit-box"},[u,p]=k.useState(!1),[g,_]=k.useState(!1),y=k.useRef(null);return k.useEffect(()=>{if(y.current){const E=y.current.scrollHeight!==y.current.clientHeight;_(E)}},[]),h.jsxs(h.Fragment,{children:[h.jsx("div",{className:`${i}`,style:u?null:d,ref:y,children:n}),g&&h.jsx("button",{type:"button",className:`${s}`,style:l,onClick:E=>{E.stopPropagation(),p(!u)},children:u?"Read less":"Read more"})]})}function nYe(n){var O,D,P,j,M,V,H,$,Q,Y,le,ae,te,de,G,ie,_e,he,Ce,fe,me,Ne;const t=Ii();k.useState(null);const[i,s]=k.useState(!1),l=n.className?n.className:"";((O=n.data)==null?void 0:O.icon)!==""&&((D=n.data)==null||D.icon),(P=n.data)!=null&&P.bg_color&&`${(j=n.data)==null?void 0:j.bg_color}`;const d=(M=n.data)!=null&&M.title?(V=n.data)==null?void 0:V.title:"Default Title",u=(H=n.data)!=null&&H.description?($=n.data)==null?void 0:$.description:"",p=(Q=n.data)!=null&&Q.time_ago?(Y=n.data)==null?void 0:Y.time_ago:"",g=(le=n.data)!=null&&le.payload?(te=(ae=n.data)==null?void 0:ae.payload)==null?void 0:te.type:"";(de=n.data)!=null&&de.payload&&((ie=(G=n.data)==null?void 0:G.payload)==null||ie.entity_id);const _=b(g),y=()=>{s(!1)},E=()=>{s(!0)};function b(Fe){let je=[];return Fe&&(Ck==null?void 0:Ck.length)>0&&(je=Ck.filter(Ve=>Ve.type===Fe)),je.length>0?je[0]:je}async function A(){var je,Ve,Re,Be,Xe,we,Ge,rt,pt,Ze,Je,_t;if(console.log("handleButtonClick called..."),(je=n==null?void 0:n.data)!=null&&je.is_read||n==null||n.markReadNotification({id:(Ve=n==null?void 0:n.data)==null?void 0:Ve.id}),((Re=n==null?void 0:n.data)==null?void 0:Re.notification_type)==="overlay"){E();return}let Fe=v1e((Be=n.data)==null?void 0:Be.payload);if(console.log("handleRedirection url =",Fe),((we=(Xe=n.data)==null?void 0:Xe.payload)==null?void 0:we.type)===O8e||((rt=(Ge=n.data)==null?void 0:Ge.payload)==null?void 0:rt.type)===P8e||((Ze=(pt=n.data)==null?void 0:pt.payload)==null?void 0:Ze.type)===L8e||((_t=(Je=n.data)==null?void 0:Je.payload)==null?void 0:_t.type)===D8e){console.log("Do nothing");return}t(Fe)}const N=h.jsx(Pt,{type:"button",className:`btn-theme btn-sm btn-green stretched-link ${((he=(_e=n.data)==null?void 0:_e.payload)==null?void 0:he.type)!==Due&&"opacity-0"}`,onClick:A,children:((fe=(Ce=n.data)==null?void 0:Ce.payload)==null?void 0:fe.type)===Due?"Approve / Reject":"Details"});return h.jsxs(h.Fragment,{children:[h.jsx(et,{className:`media-list-card notification-list-card border-0 ${l}`,children:h.jsx(et.Body,{className:"px-0 py-2",children:h.jsxs("div",{className:"d-flex align-items-start",children:[h.jsxs("div",{className:"flex-shrink-0 media-icon-wrapper d-flex align-items-center justify-content-center position-relative",style:{backgroundColor:`${_.bgColor}`},children:[!((me=n==null?void 0:n.data)!=null&&me.is_read)&&h.jsx("span",{className:"unread-badge"}),h.jsx(Zt,{tag:_.icon||"notifications2",style:{color:`${_.color}`},className:""})]}),h.jsxs("div",{className:"flex-grow-1 ms-3 media-content-wrapper",children:[h.jsx("div",{className:"font-13 fw-sb mb-1",children:d}),h.jsx(YO,{text:u,linesToShow:1,containerClass:"font-13 text-gray7",buttonClass:"btn btn-theme btn-link btn-sm btn-gray position-relative ps-0",buttonStyles:{zIndex:1}}),h.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[h.jsx("span",{className:"text-start media-time-text",children:p}),((Ne=n.data)==null?void 0:Ne.payload)&&h.jsx(h.Fragment,{children:N})]})]})]})})}),h.jsx(P_e,{show:i,handleClose:y,data:n.data})]})}function D_e(){return h.jsx("div",{className:"d-flex align-items-center justify-content-center w-100 p-3",children:h.jsxs("div",{className:"d-flex align-items-center py-2 px-3 rounded-3 bg-gray-normal-overlay text-white font-15",style:{maxWidth:300},children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ",h.jsx("span",{className:"ms-2",children:"Loading more..."})]})})}function iYe(){const{getNotificationStats:n}=k.useContext(QR),[t,i]=k.useState([]),[s,l]=k.useState(0),[d,u]=k.useState(null),[p,g]=k.useState(!0);function _(){console.log("handleNotificationAction Button Clicked...")}async function y(){let b;d&&(b=d),J4.getAllNotifications(b).then(A=>{var N,O,D,P,j,M;if(console.log("getAllNotifications RES = ",A.data),A.data.status==="success"){const V=(O=(N=A.data)==null?void 0:N.data)==null?void 0:O.notifications,H=(P=(D=A.data)==null?void 0:D.data)==null?void 0:P.count,$=(M=(j=A.data)==null?void 0:j.data)==null?void 0:M.lastkey;i(Q=>[...Q,...V]),l(H),u($),g(!1)}}).catch(A=>{g(!1),i([]),l(0),u(null),console.log("Error in getAllNotifications = ",A)})}async function E(b){const A=t.map((N,O)=>(N==null?void 0:N.id)===(b==null?void 0:b.id)?{...N,is_read:!0}:N);i(A),J4.markReadNotification(b).then(N=>{if(console.log("markReadNotification RES = ",N.data),N.data.status==="success"&&n(),N.data.status==="failed"){const O=t.map((D,P)=>(D==null?void 0:D.id)===(b==null?void 0:b.id)?{...D,is_read:!1}:D);i(O)}}).catch(N=>{console.log("Error in markReadNotification = ",N);const O=t.map((D,P)=>(D==null?void 0:D.id)===(b==null?void 0:b.id)?{...D,is_read:!1}:D);i(O)})}return k.useEffect(()=>{y()},[]),h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:p?h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-2",children:[0,1,2].map((b,A)=>h.jsx(ci,{type:"notifications-list"},`notification-list-card-${A}`))})}):h.jsx(h.Fragment,{children:t.length>0?h.jsx(h.Fragment,{children:h.jsx(L_e,{dataLength:t.length,next:y,scrollThreshold:1,hasMore:!!d,loader:h.jsx(D_e,{}),children:h.jsx("div",{className:"d-grid gap-2",children:t.map((b,A)=>h.jsx(nYe,{cardType:"list",data:b,handlePrimaryAction:_,markReadNotification:E,className:"rounded-0 border-bottom bg-transparent"},b.id))})})}):h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more notifications"})})})})}function Ga({children:n,size:t,className:i}){let s=i||"",l="",d="heading";switch(t){case"xs":l=`${d}-xs`;break;case"sm":l=`${d}-sm`;break;case"md":l=`${d}-md`;break;case"lg":l=`${d}-lg`;break;case"xl":l=`${d}-xl`;break;case"2xl":l=`${d}-2xl`;break;case"3xl":l=`${d}-3xl`;break;case"4xl":l=`${d}-4xl`;break;case"5xl":l=`${d}-5xl`;break;default:l=""}return h.jsx(h.Fragment,{children:h.jsx("div",{className:`section-heading ${l} ${s}`,children:n})})}function hY(n){const t=n.message_title?n.message_title:"",i=n.message_text?n.message_text:"This is a sample message text.",s=n.show_action_button?n.show_action_button:!1,l={closeButton:!0};return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",className:"theme-modal confirmation-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb-2",...l,children:h.jsxs(vn.Title,{className:"d-flex align-items-center",children:[h.jsx("div",{className:"heading-icon-wrap flex-shrink-0",children:h.jsx("span",{className:"heading-icon d-flex justify-content-center align-items-center rounded-circle font-24",children:h.jsx(GO,{})})}),h.jsx("div",{className:"heading flex-grow-1 ms-3",children:t!==""?h.jsx(h.Fragment,{children:t}):"Information"})]})}),h.jsxs(vn.Body,{children:[h.jsx("div",{className:"modal-helper-text",children:i}),s&&h.jsx("div",{className:"btn-wrap d-flex align-items-center pt-3 pb-1 text-en",children:h.jsx(Pt,{type:"submit",className:`btn-theme + btn-gray btn-md flex-grow-1 text-capitalize`,onClick:n.handleClose,children:"Cancel"})})]})]})})}function rYe(n){n.CapacitorUtils.Synapse=new Proxy({},{get(t,i){return new Proxy({},{get(s,l){return(d,u,p)=>{const g=n.Capacitor.Plugins[i];if(g===void 0){p(new Error(`Capacitor plugin ${i} not found`));return}if(typeof g[l]!="function"){p(new Error(`Method ${l} not found in Capacitor plugin ${i}`));return}(async()=>{try{const _=await g[l](d);u(_)}catch(_){p(_)}})()}}})}})}function sYe(n){n.CapacitorUtils.Synapse=new Proxy({},{get(t,i){return n.cordova.plugins[i]}})}function aYe(n=!1){typeof window>"u"||(window.CapacitorUtils=window.CapacitorUtils||{},window.Capacitor!==void 0&&!n?rYe(window):window.cordova!==void 0&&sYe(window))}const X$=hc("Geolocation",{web:()=>Xi(()=>import("./web-CihKQVmt.js"),__vite__mapDeps([])).then(n=>new n.GeolocationWeb)});aYe();function oYe(n){var A,N;Ii(),k.useState(null);const[t,i]=k.useState(!1),[s,l]=k.useState(!1);n!=null&&n.className&&(n==null||n.className);const d=(A=n==null?void 0:n.item)!=null&&A.name?(N=n==null?void 0:n.item)==null?void 0:N.name:"Default title",u=n!=null&&n.item.icon?n==null?void 0:n.item.icon:"/img/quick-action-icon.png";n!=null&&n.item.url&&(n==null||n.item.url);const p=()=>{i(!1)},g=()=>{i(!0)},_=()=>{l(!1)},y=()=>{l(!0)};async function E(O){console.log("HandleClick item =",O);let D=O!=null&&O.action_type?O==null?void 0:O.action_type:"web_view",P=O!=null&&O.url?`${O==null?void 0:O.url}`:O!=null&&O.route?O==null?void 0:O.route:"";const j=(O==null?void 0:O.requires_location)||!1;if(console.log("url = ",P),console.log("actionType = ",D),!j)n.handleQuickAction(P,D);else{console.log("Inside Else part of if (!requiresGeo)....");try{const M=await X$.checkPermissions();if(console.log("check permission data - ",JSON.stringify(M)),(M==null?void 0:M.location)!=="granted"){const V=await X$.requestPermissions();if(console.log("requestPermissions data - ",JSON.stringify(V)),(V==null?void 0:V.location)==="granted"){const H=await b();if(H){console.log("**--** coordData:",H.coords);let $=H.coords,Q=P+`?latitude=${$.latitude}&longitude=${$.longitude}`;console.log("newUrl -- ",Q),n.handleQuickAction(Q,D)}else g()}else console.log("Inside if (reqPermissionResult?.location === 'granted') else ....NEED PERMISSIONS"),g()}else{const V=await b();if(console.log("**--** coordData:",V),V){console.log("In If **--** coordData:",V.coords);let H=V.coords,$=P+`?latitude=${H.latitude}&longitude=${H.longitude}`;console.log("newUrl -- ",$),n.handleQuickAction($,D)}else console.log("Inside if (coordData) else ....NEED PERMISSIONS"),g()}}catch(M){y(),console.log("## --- LOCATION ERROR -- ",M)}}}const b=async()=>{try{const O=await X$.getCurrentPosition();return console.log("**--** User coordinates:",O.coords),O}catch(O){console.error("Error fetching coordinates:",O)}};return h.jsxs(h.Fragment,{children:[h.jsx(et,{className:"border-0 shadow-sm h-100 action-card",onClick:()=>E(n.item),children:h.jsxs(et.Body,{className:"text-center px-1",children:[h.jsx("img",{src:u,alt:`${d} Form Icon`,className:"mx-auto img-fluid"}),h.jsx("div",{className:"d-flex align-items-center justify-content-center w-100 pt-1",children:h.jsx("div",{className:"pt-1 font-12 fw-sb overflow-hidden line-clamp",children:d})})]})}),h.jsx(hY,{show:t,handleClose:p,message_title:"Required Location",message_text:"This form requires access to your location. Please enable location access by going to your phone's Settings > Apps > T3 Unstoppables > Permissions, and allow Location access. On iOS, go to Settings > T3 Unstoppables > Location, and choose 'While Using the App' or 'Always'."}),h.jsx(hY,{show:s,handleClose:_,message_title:"Location is Off",message_text:"Location not available. Please check if your device location is turned on."})]})}var x7={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */x7.exports;(function(n,t){(function(){var i,s="4.17.21",l=200,d="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",u="Expected a function",p="Invalid `variable` option passed into `_.template`",g="__lodash_hash_undefined__",_=500,y="__lodash_placeholder__",E=1,b=2,A=4,N=1,O=2,D=1,P=2,j=4,M=8,V=16,H=32,$=64,Q=128,Y=256,le=512,ae=30,te="...",de=800,G=16,ie=1,_e=2,he=3,Ce=1/0,fe=9007199254740991,me=17976931348623157e292,Ne=NaN,Fe=4294967295,je=Fe-1,Ve=Fe>>>1,Re=[["ary",Q],["bind",D],["bindKey",P],["curry",M],["curryRight",V],["flip",le],["partial",H],["partialRight",$],["rearg",Y]],Be="[object Arguments]",Xe="[object Array]",we="[object AsyncFunction]",Ge="[object Boolean]",rt="[object Date]",pt="[object DOMException]",Ze="[object Error]",Je="[object Function]",_t="[object GeneratorFunction]",Xt="[object Map]",Ht="[object Number]",gn="[object Null]",It="[object Object]",xt="[object Promise]",mt="[object Proxy]",dt="[object RegExp]",it="[object Set]",Me="[object String]",We="[object Symbol]",bt="[object Undefined]",St="[object WeakMap]",Lt="[object WeakSet]",tn="[object ArrayBuffer]",un="[object DataView]",an="[object Float32Array]",ye="[object Float64Array]",J="[object Int8Array]",ne="[object Int16Array]",Se="[object Int32Array]",Ue="[object Uint8Array]",tt="[object Uint8ClampedArray]",Te="[object Uint16Array]",Pe="[object Uint32Array]",Qe=/\b__p \+= '';/g,nt=/\b(__p \+=) '' \+/g,$e=/(__e\(.*?\)|\b__t\)) \+\n'';/g,st=/&(?:amp|lt|gt|quot|#39);/g,_n=/[&<>"']/g,Dt=RegExp(st.source),nn=RegExp(_n.source),en=/<%-([\s\S]+?)%>/g,qt=/<%([\s\S]+?)%>/g,Jt=/<%=([\s\S]+?)%>/g,mn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Kn=/^\w*$/,Nn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tn=/[\\^$.*+?()[\]{}|]/g,Ui=RegExp(Tn.source),xr=/^\s+/,bi=/\s/,Ia=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Sl=/\{\n\/\* \[wrapped with (.+)\] \*/,mc=/,? & /,nu=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,To=/[()=,{}\[\]\/\s]/,Fg=/\\(\\)?/g,Bg=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ka=/\w*$/,ew=/^[-+]0x[0-9a-f]+$/i,$v=/^0b[01]+$/i,tw=/^\[object .+?Constructor\]$/,mf=/^0o[0-7]+$/i,sx=/^(?:0|[1-9]\d*)$/,ax=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ro=/($^)/,ox=/['\n\r\u2028\u2029\\]/g,Vg="\\ud800-\\udfff",fs="\\u0300-\\u036f",lx="\\ufe20-\\ufe2f",cx="\\u20d0-\\u20ff",nw=fs+lx+cx,iw="\\u2700-\\u27bf",zg="a-z\\xdf-\\xf6\\xf8-\\xff",rw="\\xac\\xb1\\xd7\\xf7",sw="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",dx="\\u2000-\\u206f",ah=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",iu="A-Z\\xc0-\\xd6\\xd8-\\xde",qa="\\ufe0e\\ufe0f",Hp=rw+sw+dx+ah,Kv="['’]",Qi="["+Vg+"]",qv="["+Hp+"]",oh="["+nw+"]",gf="\\d+",Hg="["+iw+"]",Gg="["+zg+"]",Yv="[^"+Vg+Hp+gf+iw+zg+iu+"]",Wg="\\ud83c[\\udffb-\\udfff]",vf="(?:"+oh+"|"+Wg+")",yf="[^"+Vg+"]",ru="(?:\\ud83c[\\udde6-\\uddff]){2}",Gp="[\\ud800-\\udbff][\\udc00-\\udfff]",rd="["+iu+"]",$g="\\u200d",Wp="(?:"+Gg+"|"+Yv+")",aw="(?:"+rd+"|"+Yv+")",ux="(?:"+Kv+"(?:d|ll|m|re|s|t|ve))?",uP="(?:"+Kv+"(?:D|LL|M|RE|S|T|VE))?",hP=vf+"?",fP="["+qa+"]?",dF="(?:"+$g+"(?:"+[yf,ru,Gp].join("|")+")"+fP+hP+")*",uF="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",hF="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",pP=fP+hP+dF,fF="(?:"+[Hg,ru,Gp].join("|")+")"+pP,mP="(?:"+[yf+oh+"?",oh,ru,Gp,Qi].join("|")+")",pF=RegExp(Kv,"g"),mF=RegExp(oh,"g"),hx=RegExp(Wg+"(?="+Wg+")|"+mP+pP,"g"),Xv=RegExp([rd+"?"+Gg+"+"+ux+"(?="+[qv,rd,"$"].join("|")+")",aw+"+"+uP+"(?="+[qv,rd+Wp,"$"].join("|")+")",rd+"?"+Wp+"+"+ux,rd+"+"+uP,hF,uF,gf,fF].join("|"),"g"),gF=RegExp("["+$g+Vg+nw+qa+"]"),vF=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,yF=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],_F=-1,Gr={};Gr[an]=Gr[ye]=Gr[J]=Gr[ne]=Gr[Se]=Gr[Ue]=Gr[tt]=Gr[Te]=Gr[Pe]=!0,Gr[Be]=Gr[Xe]=Gr[tn]=Gr[Ge]=Gr[un]=Gr[rt]=Gr[Ze]=Gr[Je]=Gr[Xt]=Gr[Ht]=Gr[It]=Gr[dt]=Gr[it]=Gr[Me]=Gr[St]=!1;var Wr={};Wr[Be]=Wr[Xe]=Wr[tn]=Wr[un]=Wr[Ge]=Wr[rt]=Wr[an]=Wr[ye]=Wr[J]=Wr[ne]=Wr[Se]=Wr[Xt]=Wr[Ht]=Wr[It]=Wr[dt]=Wr[it]=Wr[Me]=Wr[We]=Wr[Ue]=Wr[tt]=Wr[Te]=Wr[Pe]=!0,Wr[Ze]=Wr[Je]=Wr[St]=!1;var EF={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},wF={"&":"&","<":"<",">":">",'"':""","'":"'"},_f={"&":"&","<":"<",">":">",""":'"',"'":"'"},gc={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},gP=parseFloat,SF=parseInt,vP=typeof Vs=="object"&&Vs&&Vs.Object===Object&&Vs,bF=typeof self=="object"&&self&&self.Object===Object&&self,dr=vP||bF||Function("return this")(),fx=t&&!t.nodeType&&t,$p=fx&&!0&&n&&!n.nodeType&&n,yP=$p&&$p.exports===fx,Kg=yP&&vP.process,bl=function(){try{var ot=$p&&$p.require&&$p.require("util").types;return ot||Kg&&Kg.binding&&Kg.binding("util")}catch{}}(),_P=bl&&bl.isArrayBuffer,ow=bl&&bl.isDate,EP=bl&&bl.isMap,lw=bl&&bl.isRegExp,cw=bl&&bl.isSet,dw=bl&&bl.isTypedArray;function Cl(ot,Ot,Et){switch(Et.length){case 0:return ot.call(Ot);case 1:return ot.call(Ot,Et[0]);case 2:return ot.call(Ot,Et[0],Et[1]);case 3:return ot.call(Ot,Et[0],Et[1],Et[2])}return ot.apply(Ot,Et)}function CF(ot,Ot,Et,Cn){for(var di=-1,ur=ot==null?0:ot.length;++di-1}function px(ot,Ot,Et){for(var Cn=-1,di=ot==null?0:ot.length;++Cn-1;);return Et}function xP(ot,Ot){for(var Et=ot.length;Et--&&Yg(Ot,ot[Et],0)>-1;);return Et}function AF(ot,Ot){for(var Et=ot.length,Cn=0;Et--;)ot[Et]===Ot&&++Cn;return Cn}var vc=Jv(EF),IF=Jv(wF);function NF(ot){return"\\"+gc[ot]}function OF(ot,Ot){return ot==null?i:ot[Ot]}function Jg(ot){return gF.test(ot)}function AP(ot){return vF.test(ot)}function PF(ot){for(var Ot,Et=[];!(Ot=ot.next()).done;)Et.push(Ot.value);return Et}function Ex(ot){var Ot=-1,Et=Array(ot.size);return ot.forEach(function(Cn,di){Et[++Ot]=[di,Cn]}),Et}function wx(ot,Ot){return function(Et){return ot(Ot(Et))}}function su(ot,Ot){for(var Et=-1,Cn=ot.length,di=0,ur=[];++Et-1}function rB(S,I){var B=this.__data__,se=hy(B,S);return se<0?(++this.size,B.push([S,I])):B[se][1]=I,this}au.prototype.clear=tB,au.prototype.delete=nB,au.prototype.get=iB,au.prototype.has=Rx,au.prototype.set=rB;function ch(S){var I=-1,B=S==null?0:S.length;for(this.clear();++I=I?S:I)),S}function wc(S,I,B,se,ge,Ie){var ze,Ye=I&E,ct=I&b,jt=I&A;if(B&&(ze=ge?B(S,se,ge,Ie):B(S)),ze!==i)return ze;if(!ps(S))return S;var Ft=ui(S);if(Ft){if(ze=UB(S),!Ye)return Jo(S,ze)}else{var Yt=Oa(S),yn=Yt==Je||Yt==_t;if(ld(S))return Tf(S,Ye);if(Yt==It||Yt==Be||yn&&!ge){if(ze=ct||yn?{}:Ty(S),!Ye)return ct?o6(S,pB(ze,S)):OB(S,s0(ze,S))}else{if(!Wr[Yt])return ge?S:{};ze=FB(S,Yt,Ye)}}Ie||(Ie=new Ec);var Pn=Ie.get(S);if(Pn)return Pn;Ie.set(S,ze),hL(S)?S.forEach(function(ei){ze.add(wc(ei,I,B,ei,S,Ie))}):cL(S)&&S.forEach(function(ei,Bi){ze.set(Bi,wc(ei,I,B,Bi,S,Ie))});var qn=jt?ct?Sy:c0:ct?Zo:Ea,Ci=Ft?i:qn(S);return ta(Ci||S,function(ei,Bi){Ci&&(Bi=ei,ei=S[Bi]),r0(ze,Bi,wc(ei,I,B,Bi,S,Ie))}),ze}function VP(S){var I=Ea(S);return function(B){return zP(B,S,I)}}function zP(S,I,B){var se=B.length;if(S==null)return!se;for(S=Dr(S);se--;){var ge=B[se],Ie=I[ge],ze=S[ge];if(ze===i&&!(ge in S)||!Ie(ze))return!1}return!0}function HP(S,I,B){if(typeof S!="function")throw new yc(u);return mh(function(){S.apply(i,B)},I)}function fy(S,I,B,se){var ge=-1,Ie=hw,ze=!0,Ye=S.length,ct=[],jt=I.length;if(!Ye)return ct;B&&(I=ss(I,Rl(B))),se?(Ie=px,ze=!1):I.length>=l&&(Ie=Xg,ze=!1,I=new Xp(I));e:for(;++gege?0:ge+B),se=se===i||se>ge?ge:wi(se),se<0&&(se+=ge),se=B>se?0:AA(se);B0&&B(Ye)?I>1?Na(Ye,I-1,B,se,ge):Tl(ge,Ye):se||(ge[ge.length]=Ye)}return ge}var Ax=l6(),Ix=l6(!0);function ou(S,I){return S&&Ax(S,I,Ea)}function Mw(S,I){return S&&Ix(S,I,Ea)}function jw(S,I){return Ef(I,function(B){return gh(S[B])})}function Zp(S,I){I=Ol(I,S);for(var B=0,se=I.length;S!=null&&BI}function gB(S,I){return S!=null&&Tr.call(S,I)}function vB(S,I){return S!=null&&I in Dr(S)}function yB(S,I,B){return S>=Ya(I,B)&&S=120&&Ft.length>=120)?new Xp(ze&&Ft):i}Ft=S[0];var Yt=-1,yn=Ye[0];e:for(;++Yt-1;)Ye!==S&&ey.call(Ye,ct,1),ey.call(S,ct,1);return S}function Bw(S,I){for(var B=S?I.length:0,se=B-1;B--;){var ge=I[B];if(B==se||ge!==Ie){var Ie=ge;cu(ge)?ey.call(S,ge,1):yy(S,ge)}}return S}function Mx(S,I){return S+ny(kP()*(I-S+1))}function RB(S,I,B,se){for(var ge=-1,Ie=ia(ty((I-S)/(B||1)),0),ze=Et(Ie);Ie--;)ze[se?Ie:++ge]=S,S+=B;return ze}function jx(S,I){var B="";if(!S||I<1||I>fe)return B;do I%2&&(B+=S),I=ny(I/2),I&&(S+=S);while(I);return B}function Oi(S,I){return iS(x6(S,I,el),S+"")}function xB(S){return Lw(dm(S))}function Vw(S,I){var B=dm(S);return Ry(B,Jp(I,0,B.length))}function vy(S,I,B,se){if(!ps(S))return S;I=Ol(I,S);for(var ge=-1,Ie=I.length,ze=Ie-1,Ye=S;Ye!=null&&++gege?0:ge+I),B=B>ge?ge:B,B<0&&(B+=ge),ge=I>B?0:B-I>>>0,I>>>=0;for(var Ie=Et(ge);++se>>1,ze=S[Ie];ze!==null&&!Dl(ze)&&(B?ze<=I:ze=l){var jt=I?null:DB(S);if(jt)return vw(jt);ze=!1,ge=Xg,ct=new Xp}else ct=I?[]:Ye;e:for(;++se=se?S:Xa(S,I,B)}var Vx=VF||function(S){return dr.clearTimeout(S)};function Tf(S,I){if(I)return S.slice();var B=S.length,se=Tw?Tw(B):new S.constructor(B);return S.copy(se),se}function _y(S){var I=new S.constructor(S.byteLength);return new Cw(I).set(new Cw(S)),I}function AB(S,I){var B=I?_y(S.buffer):S.buffer;return new S.constructor(B,S.byteOffset,S.byteLength)}function s6(S){var I=new S.constructor(S.source,Ka.exec(S));return I.lastIndex=S.lastIndex,I}function IB(S){return qp?Dr(qp.call(S)):{}}function Xw(S,I){var B=I?_y(S.buffer):S.buffer;return new S.constructor(B,S.byteOffset,S.length)}function zx(S,I){if(S!==I){var B=S!==i,se=S===null,ge=S===S,Ie=Dl(S),ze=I!==i,Ye=I===null,ct=I===I,jt=Dl(I);if(!Ye&&!jt&&!Ie&&S>I||Ie&&ze&&ct&&!Ye&&!jt||se&&ze&&ct||!B&&ct||!ge)return 1;if(!se&&!Ie&&!jt&&S=Ye)return ct;var jt=B[se];return ct*(jt=="desc"?-1:1)}}return S.index-I.index}function hh(S,I,B,se){for(var ge=-1,Ie=S.length,ze=B.length,Ye=-1,ct=I.length,jt=ia(Ie-ze,0),Ft=Et(ct+jt),Yt=!se;++Ye1?B[ge-1]:i,ze=ge>2?B[2]:i;for(Ie=S.length>3&&typeof Ie=="function"?(ge--,Ie):i,ze&&xo(B[0],B[1],ze)&&(Ie=ge<3?i:Ie,ge=1),I=Dr(I);++se-1?ge[Ie?I[ze]:ze]:i}}function h6(S){return ph(function(I){var B=I.length,se=B,ge=Il.prototype.thru;for(S&&I.reverse();se--;){var Ie=I[se];if(typeof Ie!="function")throw new yc(u);if(ge&&!ze&&im(Ie)=="wrapper")var ze=new Il([],!0)}for(se=ze?se:B;++se1&&Yi.reverse(),Ft&&ctYe))return!1;var jt=Ie.get(S),Ft=Ie.get(I);if(jt&&Ft)return jt==I&&Ft==S;var Yt=-1,yn=!0,Pn=B&O?new Xp:i;for(Ie.set(S,I),Ie.set(I,S);++Yt1?"& ":"")+I[se],I=I.join(B>2?", ":" "),S.replace(Ia,`{ +/* [wrapped with `+I+`] */ +`)}function VB(S){return ui(S)||If(S)||!!(Cx&&S&&S[Cx])}function cu(S,I){var B=typeof S;return I=I??fe,!!I&&(B=="number"||B!="symbol"&&sx.test(S))&&S>-1&&S%1==0&&S0){if(++I>=de)return arguments[0]}else I=0;return S.apply(i,arguments)}}function Ry(S,I){var B=-1,se=S.length,ge=se-1;for(I=I===i?se:I;++B1?S[I-1]:i;return B=typeof B=="function"?(S.pop(),B):i,fA(S,B)});function xf(S){var I=be(S);return I.__chain__=!0,I}function $6(S,I){return I(S),S}function hS(S,I){return I(S)}var hV=ph(function(S){var I=S.length,B=I?S[0]:0,se=this.__wrapped__,ge=function(Ie){return kw(Ie,S)};return I>1||this.__actions__.length||!(se instanceof Fi)||!cu(B)?this.thru(ge):(se=se.slice(B,+B+(I?1:0)),se.__actions__.push({func:hS,args:[ge],thisArg:i}),new Il(se,this.__chain__).thru(function(Ie){return I&&!Ie.length&&Ie.push(i),Ie}))});function Ay(){return xf(this)}function fV(){return new Il(this.value(),this.__chain__)}function pV(){this.__values__===i&&(this.__values__=fL(this.value()));var S=this.__index__>=this.__values__.length,I=S?i:this.__values__[this.__index__++];return{done:S,value:I}}function mV(){return this}function gV(S){for(var I,B=this;B instanceof cy;){var se=I6(B);se.__index__=0,se.__values__=i,I?ge.__wrapped__=se:I=se;var ge=se;B=B.__wrapped__}return ge.__wrapped__=S,I}function vV(){var S=this.__wrapped__;if(S instanceof Fi){var I=S;return this.__actions__.length&&(I=new Fi(this)),I=I.reverse(),I.__actions__.push({func:hS,args:[oS],thisArg:i}),new Il(I,this.__chain__)}return this.thru(oS)}function yV(){return r6(this.__wrapped__,this.__actions__)}var mA=Jw(function(S,I,B){Tr.call(S,B)?++S[B]:dh(S,B,1)});function K6(S,I,B){var se=ui(S)?wP:mB;return B&&xo(S,I,B)&&(I=i),se(S,Xn(I,3))}function _V(S,I){var B=ui(S)?Ef:WP;return B(S,Xn(I,3))}var q6=u6(P6),Y6=u6(nA);function EV(S,I){return Na(cm(S,I),1)}function Iy(S,I){return Na(cm(S,I),Ce)}function du(S,I,B){return B=B===i?1:wi(B),Na(cm(S,I),B)}function gA(S,I){var B=ui(S)?ta:bf;return B(S,Xn(I,3))}function X6(S,I){var B=ui(S)?uw:GP;return B(S,Xn(I,3))}var wV=Jw(function(S,I,B){Tr.call(S,B)?S[B].push(I):dh(S,B,[I])});function vA(S,I,B,se){S=Ao(S)?S:dm(S),B=B&&!se?wi(B):0;var ge=S.length;return B<0&&(B=ia(ge+B,0)),ES(S)?B<=ge&&S.indexOf(I,B)>-1:!!ge&&Yg(S,I,B)>-1}var J6=Oi(function(S,I,B){var se=-1,ge=typeof I=="function",Ie=Ao(S)?Et(S.length):[];return bf(S,function(ze){Ie[++se]=ge?Cl(I,ze,B):em(ze,I,B)}),Ie}),SV=Jw(function(S,I,B){dh(S,B,I)});function cm(S,I){var B=ui(S)?ss:my;return B(S,Xn(I,3))}function Af(S,I,B,se){return S==null?[]:(ui(I)||(I=I==null?[]:[I]),B=se?i:B,ui(B)||(B=B==null?[]:[B]),e6(S,I,B))}var Ny=Jw(function(S,I,B){S[B?0:1].push(I)},function(){return[[],[]]});function bV(S,I,B){var se=ui(S)?mx:TP,ge=arguments.length<3;return se(S,Xn(I,4),B,ge,bf)}function CV(S,I,B){var se=ui(S)?qg:TP,ge=arguments.length<3;return se(S,Xn(I,4),B,ge,GP)}function TV(S,I){var B=ui(S)?Ef:WP;return B(S,gS(Xn(I,3)))}function RV(S){var I=ui(S)?Lw:xB;return I(S)}function yA(S,I,B){(B?xo(S,I,B):I===i)?I=1:I=wi(I);var se=ui(S)?xx:Vw;return se(S,I)}function xV(S){var I=ui(S)?BP:zw;return I(S)}function AV(S){if(S==null)return 0;if(Ao(S))return ES(S)?Qg(S):S.length;var I=Oa(S);return I==Xt||I==it?S.size:Lx(S).length}function IV(S,I,B){var se=ui(S)?fw:Hw;return B&&xo(S,I,B)&&(I=i),se(S,Xn(I,3))}var Q6=Oi(function(S,I){if(S==null)return[];var B=I.length;return B>1&&xo(S,I[0],I[1])?I=[]:B>2&&xo(I[0],I[1],I[2])&&(I=[I[0]]),e6(S,Na(I,1),[])}),p0=OP||function(){return dr.Date.now()};function NV(S,I){if(typeof I!="function")throw new yc(u);return S=wi(S),function(){if(--S<1)return I.apply(this,arguments)}}function Z6(S,I,B){return I=B?i:I,I=S&&I==null?S.length:I,fh(S,Q,i,i,i,i,I)}function eL(S,I){var B;if(typeof I!="function")throw new yc(u);return S=wi(S),function(){return--S>0&&(B=I.apply(this,arguments)),S<=1&&(I=i),B}}var fS=Oi(function(S,I,B){var se=D;if(B.length){var ge=su(B,rm(fS));se|=H}return fh(S,se,I,B,ge)}),pS=Oi(function(S,I,B){var se=D|P;if(B.length){var ge=su(B,rm(pS));se|=H}return fh(I,se,S,B,ge)});function _A(S,I,B){I=B?i:I;var se=fh(S,M,i,i,i,i,i,I);return se.placeholder=_A.placeholder,se}function EA(S,I,B){I=B?i:I;var se=fh(S,V,i,i,i,i,i,I);return se.placeholder=EA.placeholder,se}function Oy(S,I,B){var se,ge,Ie,ze,Ye,ct,jt=0,Ft=!1,Yt=!1,yn=!0;if(typeof S!="function")throw new yc(u);I=bc(I)||0,ps(B)&&(Ft=!!B.leading,Yt="maxWait"in B,Ie=Yt?ia(bc(B.maxWait)||0,I):Ie,yn="trailing"in B?!!B.trailing:yn);function Pn(Cs){var cd=se,yh=ge;return se=ge=i,jt=Cs,ze=S.apply(yh,cd),ze}function qn(Cs){return jt=Cs,Ye=mh(Bi,I),Ft?Pn(Cs):ze}function Ci(Cs){var cd=Cs-ct,yh=Cs-jt,s8=I-cd;return Yt?Ya(s8,Ie-yh):s8}function ei(Cs){var cd=Cs-ct,yh=Cs-jt;return ct===i||cd>=I||cd<0||Yt&&yh>=Ie}function Bi(){var Cs=p0();if(ei(Cs))return Yi(Cs);Ye=mh(Bi,Ci(Cs))}function Yi(Cs){return Ye=i,yn&&se?Pn(Cs):(se=ge=i,ze)}function nl(){Ye!==i&&Vx(Ye),jt=0,se=ct=ge=Ye=i}function Qa(){return Ye===i?ze:Yi(p0())}function Gs(){var Cs=p0(),cd=ei(Cs);if(se=arguments,ge=this,ct=Cs,cd){if(Ye===i)return qn(ct);if(Yt)return Vx(Ye),Ye=mh(Bi,I),Pn(ct)}return Ye===i&&(Ye=mh(Bi,I)),ze}return Gs.cancel=nl,Gs.flush=Qa,Gs}var tL=Oi(function(S,I){return HP(S,1,I)}),OV=Oi(function(S,I,B){return HP(S,bc(I)||0,B)});function wA(S){return fh(S,le)}function mS(S,I){if(typeof S!="function"||I!=null&&typeof I!="function")throw new yc(u);var B=function(){var se=arguments,ge=I?I.apply(this,se):se[0],Ie=B.cache;if(Ie.has(ge))return Ie.get(ge);var ze=S.apply(this,se);return B.cache=Ie.set(ge,ze)||Ie,ze};return B.cache=new(mS.Cache||ch),B}mS.Cache=ch;function gS(S){if(typeof S!="function")throw new yc(u);return function(){var I=arguments;switch(I.length){case 0:return!S.call(this);case 1:return!S.call(this,I[0]);case 2:return!S.call(this,I[0],I[1]);case 3:return!S.call(this,I[0],I[1],I[2])}return!S.apply(this,I)}}function Py(S){return eL(2,S)}var SA=nm(function(S,I){I=I.length==1&&ui(I[0])?ss(I[0],Rl(Xn())):ss(Na(I,1),Rl(Xn()));var B=I.length;return Oi(function(se){for(var ge=-1,Ie=Ya(se.length,B);++ge=I}),If=KP(function(){return arguments}())?KP:function(S){return bs(S)&&Tr.call(S,"callee")&&!_c.call(S,"callee")},ui=Et.isArray,MV=_P?Rl(_P):qP;function Ao(S){return S!=null&&_S(S.length)&&!gh(S)}function Ds(S){return bs(S)&&Ao(S)}function jV(S){return S===!0||S===!1||bs(S)&&_a(S)==Ge}var ld=PP||KA,UV=ow?Rl(ow):EB;function FV(S){return bs(S)&&S.nodeType===1&&!Ly(S)}function BV(S){if(S==null)return!0;if(Ao(S)&&(ui(S)||typeof S=="string"||typeof S.splice=="function"||ld(S)||g0(S)||If(S)))return!S.length;var I=Oa(S);if(I==Xt||I==it)return!S.size;if(d0(S))return!Lx(S).length;for(var B in S)if(Tr.call(S,B))return!1;return!0}function VV(S,I){return a0(S,I)}function zV(S,I,B){B=typeof B=="function"?B:i;var se=B?B(S,I):i;return se===i?a0(S,I,i,B):!!se}function RA(S){if(!bs(S))return!1;var I=_a(S);return I==Ze||I==pt||typeof S.message=="string"&&typeof S.name=="string"&&!Ly(S)}function HV(S){return typeof S=="number"&&LP(S)}function gh(S){if(!ps(S))return!1;var I=_a(S);return I==Je||I==_t||I==we||I==mt}function lL(S){return typeof S=="number"&&S==wi(S)}function _S(S){return typeof S=="number"&&S>-1&&S%1==0&&S<=fe}function ps(S){var I=typeof S;return S!=null&&(I=="object"||I=="function")}function bs(S){return S!=null&&typeof S=="object"}var cL=EP?Rl(EP):SB;function GV(S,I){return S===I||Px(S,I,Cy(I))}function WV(S,I,B){return B=typeof B=="function"?B:i,Px(S,I,Cy(I),B)}function $V(S){return uL(S)&&S!=+S}function KV(S){if(zB(S))throw new di(d);return YP(S)}function dL(S){return S===null}function qV(S){return S==null}function uL(S){return typeof S=="number"||bs(S)&&_a(S)==Ht}function Ly(S){if(!bs(S)||_a(S)!=It)return!1;var I=Rw(S);if(I===null)return!0;var B=Tr.call(I,"constructor")&&I.constructor;return typeof B=="function"&&B instanceof B&&Ew.call(B)==Sw}var xA=lw?Rl(lw):bB;function YV(S){return lL(S)&&S>=-fe&&S<=fe}var hL=cw?Rl(cw):CB;function ES(S){return typeof S=="string"||!ui(S)&&bs(S)&&_a(S)==Me}function Dl(S){return typeof S=="symbol"||bs(S)&&_a(S)==We}var g0=dw?Rl(dw):XP;function XV(S){return S===i}function JV(S){return bs(S)&&Oa(S)==St}function QV(S){return bs(S)&&_a(S)==Lt}var ZV=eS(Dx),ez=eS(function(S,I){return S<=I});function fL(S){if(!S)return[];if(Ao(S))return ES(S)?sd(S):Jo(S);if(Sf&&S[Sf])return PF(S[Sf]());var I=Oa(S),B=I==Xt?Ex:I==it?vw:dm;return B(S)}function vh(S){if(!S)return S===0?S:0;if(S=bc(S),S===Ce||S===-Ce){var I=S<0?-1:1;return I*me}return S===S?S:0}function wi(S){var I=vh(S),B=I%1;return I===I?B?I-B:I:0}function AA(S){return S?Jp(wi(S),0,Fe):0}function bc(S){if(typeof S=="number")return S;if(Dl(S))return Ne;if(ps(S)){var I=typeof S.valueOf=="function"?S.valueOf():S;S=ps(I)?I+"":I}if(typeof S!="string")return S===0?S:+S;S=RP(S);var B=$v.test(S);return B||mf.test(S)?SF(S.slice(2),B?2:8):ew.test(S)?Ne:+S}function wS(S){return lu(S,Zo(S))}function tz(S){return S?Jp(wi(S),-fe,fe):S===0?S:0}function Sr(S){return S==null?"":Nl(S)}var nz=Rf(function(S,I){if(d0(I)||Ao(I)){lu(I,Ea(I),S);return}for(var B in I)Tr.call(I,B)&&r0(S,B,I[B])}),pL=Rf(function(S,I){lu(I,Zo(I),S)}),Dy=Rf(function(S,I,B,se){lu(I,Zo(I),S,se)}),iz=Rf(function(S,I,B,se){lu(I,Ea(I),S,se)}),IA=ph(kw);function rz(S,I){var B=i0(S);return I==null?B:s0(B,I)}var sz=Oi(function(S,I){S=Dr(S);var B=-1,se=I.length,ge=se>2?I[2]:i;for(ge&&xo(I[0],I[1],ge)&&(se=1);++B1),Ie}),lu(S,Sy(S),B),se&&(B=wc(B,E|b|A,kB));for(var ge=I.length;ge--;)yy(B,I[ge]);return B});function EL(S,I){return kA(S,gS(Xn(I)))}var DA=ph(function(S,I){return S==null?{}:Fw(S,I)});function kA(S,I){if(S==null)return{};var B=ss(Sy(S),function(se){return[se]});return I=Xn(I),t6(S,B,function(se,ge){return I(se,ge[0])})}function Ct(S,I,B){I=Ol(I,S);var se=-1,ge=I.length;for(ge||(ge=1,S=i);++seI){var se=S;S=I,I=se}if(B||S%1||I%1){var ge=kP();return Ya(S+ge*(I-S+gP("1e-"+((ge+"").length-1))),I)}return Mx(S,I)}var NL=l0(function(S,I,B){return I=I.toLowerCase(),S+(B?bS(I):I)});function bS(S){return ky(Sr(S).toLowerCase())}function FA(S){return S=Sr(S),S&&S.replace(ax,vc).replace(mF,"")}function OL(S,I,B){S=Sr(S),I=Nl(I);var se=S.length;B=B===i?se:Jp(wi(B),0,se);var ge=B;return B-=I.length,B>=0&&S.slice(B,ge)==I}function PL(S){return S=Sr(S),S&&nn.test(S)?S.replace(_n,IF):S}function LL(S){return S=Sr(S),S&&Ui.test(S)?S.replace(Tn,"\\$&"):S}var DL=l0(function(S,I,B){return S+(B?"-":"")+I.toLowerCase()}),kL=l0(function(S,I,B){return S+(B?" ":"")+I.toLowerCase()}),ML=d6("toLowerCase");function jL(S,I,B){S=Sr(S),I=wi(I);var se=I?Qg(S):0;if(!I||se>=I)return S;var ge=(I-se)/2;return Zw(ny(ge),B)+S+Zw(ty(ge),B)}function UL(S,I,B){S=Sr(S),I=wi(I);var se=I?Qg(S):0;return I&&se>>0,B?(S=Sr(S),S&&(typeof I=="string"||I!=null&&!xA(I))&&(I=Nl(I),!I&&Jg(S))?uh(sd(S),0,B):S.split(I,B)):[]}var WL=l0(function(S,I,B){return S+(B?" ":"")+ky(I)});function $L(S,I,B){return S=Sr(S),B=B==null?0:Jp(wi(B),0,S.length),I=Nl(I),S.slice(B,B+I.length)==I}function KL(S,I,B){var se=be.templateSettings;B&&xo(S,I,B)&&(I=i),S=Sr(S),I=Dy({},I,se,g6);var ge=Dy({},I.imports,se.imports,g6),Ie=Ea(ge),ze=_x(ge,Ie),Ye,ct,jt=0,Ft=I.interpolate||Ro,Yt="__p += '",yn=Qv((I.escape||Ro).source+"|"+Ft.source+"|"+(Ft===Jt?Bg:Ro).source+"|"+(I.evaluate||Ro).source+"|$","g"),Pn="//# sourceURL="+(Tr.call(I,"sourceURL")?(I.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++_F+"]")+` +`;S.replace(yn,function(ei,Bi,Yi,nl,Qa,Gs){return Yi||(Yi=nl),Yt+=S.slice(jt,Gs).replace(ox,NF),Bi&&(Ye=!0,Yt+=`' + +__e(`+Bi+`) + +'`),Qa&&(ct=!0,Yt+=`'; +`+Qa+`; +__p += '`),Yi&&(Yt+=`' + +((__t = (`+Yi+`)) == null ? '' : __t) + +'`),jt=Gs+ei.length,ei}),Yt+=`'; +`;var qn=Tr.call(I,"variable")&&I.variable;if(!qn)Yt=`with (obj) { +`+Yt+` +} +`;else if(To.test(qn))throw new di(p);Yt=(ct?Yt.replace(Qe,""):Yt).replace(nt,"$1").replace($e,"$1;"),Yt="function("+(qn||"obj")+`) { +`+(qn?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(Ye?", __e = _.escape":"")+(ct?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Yt+`return __p +}`;var Ci=QL(function(){return ur(Ie,Pn+"return "+Yt).apply(i,ze)});if(Ci.source=Yt,RA(Ci))throw Ci;return Ci}function qL(S){return Sr(S).toLowerCase()}function YL(S){return Sr(S).toUpperCase()}function gz(S,I,B){if(S=Sr(S),S&&(B||I===i))return RP(S);if(!S||!(I=Nl(I)))return S;var se=sd(S),ge=sd(I),Ie=gw(se,ge),ze=xP(se,ge)+1;return uh(se,Ie,ze).join("")}function vz(S,I,B){if(S=Sr(S),S&&(B||I===i))return S.slice(0,ad(S)+1);if(!S||!(I=Nl(I)))return S;var se=sd(S),ge=xP(se,sd(I))+1;return uh(se,0,ge).join("")}function BA(S,I,B){if(S=Sr(S),S&&(B||I===i))return S.replace(xr,"");if(!S||!(I=Nl(I)))return S;var se=sd(S),ge=gw(se,sd(I));return uh(se,ge).join("")}function XL(S,I){var B=ae,se=te;if(ps(I)){var ge="separator"in I?I.separator:ge;B="length"in I?wi(I.length):B,se="omission"in I?Nl(I.omission):se}S=Sr(S);var Ie=S.length;if(Jg(S)){var ze=sd(S);Ie=ze.length}if(B>=Ie)return S;var Ye=B-Qg(se);if(Ye<1)return se;var ct=ze?uh(ze,0,Ye).join(""):S.slice(0,Ye);if(ge===i)return ct+se;if(ze&&(Ye+=ct.length-Ye),xA(ge)){if(S.slice(Ye).search(ge)){var jt,Ft=ct;for(ge.global||(ge=Qv(ge.source,Sr(Ka.exec(ge))+"g")),ge.lastIndex=0;jt=ge.exec(Ft);)var Yt=jt.index;ct=ct.slice(0,Yt===i?Ye:Yt)}}else if(S.indexOf(Nl(ge),Ye)!=Ye){var yn=ct.lastIndexOf(ge);yn>-1&&(ct=ct.slice(0,yn))}return ct+se}function yz(S){return S=Sr(S),S&&Dt.test(S)?S.replace(st,kF):S}var _z=l0(function(S,I,B){return S+(B?" ":"")+I.toUpperCase()}),ky=d6("toUpperCase");function JL(S,I,B){return S=Sr(S),I=B?i:I,I===i?AP(S)?jF(S):RF(S):S.match(I)||[]}var QL=Oi(function(S,I){try{return Cl(S,i,I)}catch(B){return RA(B)?B:new di(B)}}),Ez=ph(function(S,I){return ta(I,function(B){B=Pl(B),dh(S,B,fS(S[B],S))}),S});function ZL(S){var I=S==null?0:S.length,B=Xn();return S=I?ss(S,function(se){if(typeof se[1]!="function")throw new yc(u);return[B(se[0]),se[1]]}):[],Oi(function(se){for(var ge=-1;++gefe)return[];var B=Fe,se=Ya(S,Fe);I=Xn(I),S-=Fe;for(var ge=yx(se,I);++B0||I<0)?new Fi(B):(S<0?B=B.takeRight(-S):S&&(B=B.drop(S)),I!==i&&(I=wi(I),B=I<0?B.dropRight(-I):B.take(I-S)),B)},Fi.prototype.takeRightWhile=function(S){return this.reverse().takeWhile(S).reverse()},Fi.prototype.toArray=function(){return this.take(Fe)},ou(Fi.prototype,function(S,I){var B=/^(?:filter|find|map|reject)|While$/.test(I),se=/^(?:head|last)$/.test(I),ge=be[se?"take"+(I=="last"?"Right":""):I],Ie=se||/^find/.test(I);ge&&(be.prototype[I]=function(){var ze=this.__wrapped__,Ye=se?[1]:arguments,ct=ze instanceof Fi,jt=Ye[0],Ft=ct||ui(ze),Yt=function(Bi){var Yi=ge.apply(be,Tl([Bi],Ye));return se&&yn?Yi[0]:Yi};Ft&&B&&typeof jt=="function"&&jt.length!=1&&(ct=Ft=!1);var yn=this.__chain__,Pn=!!this.__actions__.length,qn=Ie&&!yn,Ci=ct&&!Pn;if(!Ie&&Ft){ze=Ci?ze:new Fi(this);var ei=S.apply(ze,Ye);return ei.__actions__.push({func:hS,args:[Yt],thisArg:i}),new Il(ei,yn)}return qn&&Ci?S.apply(this,Ye):(ei=this.thru(Yt),qn?se?ei.value()[0]:ei.value():ei)})}),ta(["pop","push","shift","sort","splice","unshift"],function(S){var I=Tt[S],B=/^(?:push|sort|unshift)$/.test(S)?"tap":"thru",se=/^(?:pop|shift)$/.test(S);be.prototype[S]=function(){var ge=arguments;if(se&&!this.__chain__){var Ie=this.value();return I.apply(ui(Ie)?Ie:[],ge)}return this[B](function(ze){return I.apply(ui(ze)?ze:[],ge)})}}),ou(Fi.prototype,function(S,I){var B=be[I];if(B){var se=B.name+"";Tr.call(n0,se)||(n0[se]=[]),n0[se].push({name:I,func:B})}}),n0[Qw(i,P).name]=[{name:"wrapper",func:i}],Fi.prototype.clone=qF,Fi.prototype.reverse=YF,Fi.prototype.value=dy,be.prototype.at=hV,be.prototype.chain=Ay,be.prototype.commit=fV,be.prototype.next=pV,be.prototype.plant=gV,be.prototype.reverse=vV,be.prototype.toJSON=be.prototype.valueOf=be.prototype.value=yV,be.prototype.first=be.prototype.head,Sf&&(be.prototype[Sf]=mV),be},Zg=UF();$p?(($p.exports=Zg)._=Zg,fx._=Zg):dr._=Zg}).call(Vs)})(x7,x7.exports);var tx=x7.exports;const XO=({filters:n,onSearch:t,className:i=""})=>{var p;const s=i||"",l=k.useRef(),d=()=>{l.current&&(l.current.value="",t(""))},u=tx.debounce(g=>{t(g)},500);return h.jsx("div",{className:`search-bar position-relative pb-1 ${s}`,children:h.jsxs(kt.Group,{className:"form-group rounded_corners search_field autocomplete_field mb-1 position-relative px-0",children:[h.jsx(kt.Control,{type:"text",name:"searchInput",onChange:g=>{u(g.target.value)},ref:l,placeholder:"Search",style:{backgroundImage:"url(/img/search-icon.png)",backgroundRepeat:"no-repeat",backgroundPosition:"center right 12px"},autoComplete:"off",className:"mb-"}),((p=l==null?void 0:l.current)==null?void 0:p.value.length)>0&&h.jsx(Pt,{onClick:d,className:"btn-theme btn-icon btn-sm btn-gray position-absolute",style:{top:4,right:6,fontSize:18},type:"button",children:h.jsx(VE,{})},"search-clear-btn")]})})};function lYe(){const n=Ii(),[t,i]=k.useState(""),s=["name","target"],l=async()=>{var b,A;try{const N=await hs.getFormQuickActions();return N.data.status==="success"?(console.log("## actionRes --",N),(A=(b=N.data)==null?void 0:b.data)==null?void 0:A.actions):null}catch{throw new Error("Error fetching quick actions")}},{isFetching:d,isPending:u,isError:p,data:g,error:_}=Qd({queryKey:["formQuickActionsQuery"],queryFn:l}),y=k.useMemo(()=>FO(g,t,s),[g,t]),E=async(b,A)=>{if(console.log("handleUrl is called...",b," ",A),A==="internal_action"){let N=null;b.includes("send-message")&&(console.log('url.includes("send-message") = ',b.includes("send-message")),N={pageTitle:"Send a Message",hideFooterNav:!0}),n(b,{state:N})}else await DR.open({url:b,toolbarColor:IE})};return u?h.jsx(qi,{className:"position-relative",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(fn,{className:"row-cols-3 g-3 mb-4",children:[0,1,2].map((b,A)=>h.jsx(Gt,{children:h.jsx(ci,{type:"quick-actions"})},A))})})}):p?h.jsx(qi,{className:"position-relative",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more actions"})})}):h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[(g==null?void 0:g.length)>0?h.jsx(h.Fragment,{children:h.jsx("div",{className:"py-0 pt-2 sticky-to",style:{},children:h.jsxs("div",{className:"pb-0",children:[h.jsx(XO,{filters:s,onSearch:b=>i(b),className:"mb-"}),(y==null?void 0:y.length)>0&&t.length>0&&h.jsx(Ga,{size:"sm",className:"px-1 text-gray9",children:`Results found ${y==null?void 0:y.length}`})]})})}):h.jsx(h.Fragment,{}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-2",children:d&&(y==null?void 0:y.length)===0?h.jsx(fn,{className:"row-cols-3 g-3 mb-4",children:[0,1,2].map((b,A)=>h.jsx(Gt,{children:h.jsx(ci,{type:"quick-actions"})},A))}):h.jsx(h.Fragment,{children:h.jsx(fn,{className:"row-cols-3 g-3 mb-4",children:y==null?void 0:y.map((b,A)=>h.jsx(Gt,{children:h.jsx(oYe,{className:"",item:b,handleQuickAction:E})},(b==null?void 0:b.form_id)+(b==null?void 0:b.name)))})})})]})})}function ZQ({btnTitle:n,className:t,isWide:i,icon:s,style:l,primaryActionHandler:d}){const u=k.useRef(null),p=i||!1,g=s||"add3",_=n||"Add",y=t||"",E={bottom:120,right:10},b=l?{...E,...l}:E;function A(){const N=window.scrollY;Math.round(N)>=100?u.current.classList.remove("expanded"):u.current.classList.add("expanded")}return k.useEffect(()=>(A(),window.addEventListener("scroll",A),()=>{window.removeEventListener("scroll",A)}),[]),h.jsx(h.Fragment,{children:h.jsxs(Pt,{type:"button",ref:u,className:`btn-theme btn-icon btn-lg btn-secondary btn-quick-action position-fixed border-0 rounded-5 shadow expanded ${y} ${p?"btn-wide":""}`,style:b,onClick:d,children:[h.jsx(Zt,{tag:g,className:"font-22"}),h.jsx("span",{className:"text-white fw-sb font-14 btn-title",children:_})]})})}function k_e(n){var u,p,g;const t=n!=null&&n.className?n==null?void 0:n.className:"",i=n!=null&&n.bodyClassName?n==null?void 0:n.bodyClassName:"",s=(u=n.item)==null?void 0:u.name,l=(p=n.item)==null?void 0:p.avatar,d=(g=n.item)==null?void 0:g.date;return h.jsx(h.Fragment,{children:h.jsx(et,{className:`list-view-card list-view-card-sm border-0 border-bottom rounded-0 shado ${t}`,children:h.jsx(et.Body,{className:`p-2 ${i}`,children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"flex-shrink-0 list-icon-container position-relative d-flex align-items-center",children:h.jsx("div",{className:"list-icon-wrapper rounded-circle overflow-hidden",children:h.jsx("img",{src:l,alt:`${s} image`,className:"img-fluid"})})}),h.jsxs("div",{className:"text-start flex-grow-1 ms-2 list-info-container",children:[h.jsx("span",{className:"font-13 fw-sb",children:`${s} `}),h.jsx("span",{className:"d-block font-12 text-gray9",children:d})]})]})})})})}function nx({isLiked:n,loadingMediaLike:t,loadingLikesList:i,likesData:s,likeActionHandler:l,parentId:d}){return h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"d-flex justify-content-between align-items-center p-2 bg-gray-lighter3 rounded-3 mb-2",children:[h.jsx("span",{className:"font-13 fw-sb",children:n?"You liked it":"You did not like it yet!"}),h.jsxs(Pt,{className:`btn-theme btn-sm btn-likes-light ms-2 px-2 ${n&&"active"}`,onClick:()=>l(d),children:[t?h.jsx(Ji,{size:"sm",className:"me-1"}):h.jsx(Zt,{tag:"favorite3",className:"font-18 me-1"}),h.jsx("span",{className:"",children:n?"Dislike now":"Like now"})]})]}),i&&h.jsx("div",{className:"d-grid gap-2",children:h.jsx(h.Fragment,{children:[0,1,2].map((u,p)=>h.jsx(ci,{type:"likes-list"},p))})}),!i&&(s==null?void 0:s.length)>0&&h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-2",children:h.jsx(h.Fragment,{children:s.map(u=>h.jsx(k_e,{item:u,className:"",bodyClassName:"px-0"},u.name+u.date))})})})]})}function cYe(n,t){k.useEffect(()=>{if(n){console.log("textAreaRef = ",n);const i=n.scrollHeight;console.log("scrollHeight = ",i),i<=100&&(n.style.height="0px",n.style.height=i+"px")}},[n,t])}const So={getAllWallMessages:async n=>{const t=n?`&lastkey=${n}`:"";return await On.get(`wall/wallmessage/list?paginate=yes${t}`)},getWallMessageDetails:async n=>await On.get(`wall/wallmessage/details?id=${n}`),getAllWallMessageRecipients:async()=>await On.get("ums/users/recipients"),sendWallMessage:async n=>await On.post("wall/wallmessage/sendbroadcast",n),getWallMessageLike:async n=>await On.get(`wall/wallmessage/like?id=${n}`),getWallMessageLikesList:async n=>await On.get(`wall/wallmessage/likes?id=${n}`),getAllWallMessageCommentList:async n=>await On.get(`wall/wallmessage/comments?id=${n}`),addWallMessageComment:async n=>await On.post("wall/wallmessage/comment",n)},dYe=40;function uYe(n){const[t,i]=k.useState(!1),[s,l]=k.useState(""),[d,u]=k.useState(!1),p=k.useRef(null);cYe(p.current,s);const g=b=>{var N;console.log("handleTextAreaChange called ...",b),u(!1);const A=(N=b.target)==null?void 0:N.value;l(A),A!==""&&u(!0)},_=b=>{l(""),i(!1),u(!1)};let y="";switch(n.addPlacement){case"modal":y="";break;case"fixed-bottom":y="fixed-bottom";break}const E=async b=>{if(b.preventDefault(),s===""){handleAlert("Comment should not be empty!","error"),u(!1);return}i(!0);let A={comment:s};switch(console.log("handleSubmit called...",b),n.comment_type){case"media":A={...A,media_id:n.parent_id},console.log("Calling add thread comment..."),hs.addMagazineMediaComment(A).then(N=>{console.log("addMagazineMediaComment RES = ",N.data),N.data.status==="success"?(console.log('Inside AddComment case "thread" : ',N.data),n.setCommentsCount(O=>O+1),n.handleCommentList(n.parent_id),i(!1),_()):N.data.status==="failed"&&(console.log("ERROR:",N.data.error),handleAlert("Failed to add a comment!","error"),i(!1),_())}).catch(N=>{console.log(N)});break;case"message":A={...A,message_id:n.parent_id},console.log("Calling add message comment..."),So.addWallMessageComment(A).then(N=>{N.data.status==="success"?(console.log(N.data),n.setCommentsCount(O=>O+1),n.handleCommentList(n.parent_id),i(!1),_()):N.data.status==="failed"&&(console.log("ERROR:",N.data.error),handleAlert("Failed to add a comment!","error"),i(!1),_())}).catch(N=>{console.log(N)});break;case"contest":A={...A,submission_id:n.parent_id},console.log("Calling add contest comment..."),Wa.addContestSubmissionComment(A).then(N=>{N.data.status==="success"?(console.log(N.data),n.setCommentsCount(O=>O+1),n.handleCommentList(n.parent_id),i(!1),_()):N.data.status==="failed"&&(console.log("ERROR:",N.data.error),handleAlert("Failed to add a comment!","error"),i(!1),_())}).catch(N=>{console.log(N)});break}};return h.jsx(h.Fragment,{children:h.jsx(et,{className:`border-0 pt-3 pb-2 px-0 add_comment_card ${y}`,children:h.jsx(kt,{className:"form_style",onSubmit:E,children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"flex-fill pe-2",children:h.jsx(kt.Group,{className:"form-group rounded_corners mb-0",children:h.jsx(kt.Control,{as:"textarea",ref:p,rows:1,style:{height:s===""&&dYe,resize:"auto"},placeholder:"Add comment",name:"comment",value:s,onChange:g,autoComplete:"off"})})}),h.jsx("div",{className:"btn-wrap",children:h.jsx(Pt,{type:"submit",className:"btn btn-theme btn-primary btn_comment_submit",disabled:!d,children:t?h.jsx(h.Fragment,{children:h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})}):h.jsx(Eye,{})})})]})})})})}function hYe(n){var i,s,l,d,u,p;const t=((i=n.comment)==null?void 0:i.avatar)!=="NULL"?(s=n.comment)==null?void 0:s.avatar:"/img/profile-pic.png";return h.jsx(h.Fragment,{children:h.jsxs(et,{className:"comment_card border- shadow-s mb-0 overflow-hidden",children:[h.jsx(et.Body,{className:"pb-0",children:h.jsx("p",{className:"mb-0 font-14 text-gray5 ps-1",children:(l=n.comment)==null?void 0:l.comment})}),h.jsx(et.Header,{className:"bg_transparent border-0 pt-2",children:h.jsxs("div",{className:"media",children:[h.jsx("div",{className:"media_icon_wrap d-flex justify-content-center align-items-center align-self-start",children:h.jsx("img",{src:t,className:"rounded-circle media_img",alt:`${(d=n.comment)==null?void 0:d.name} profile`})}),h.jsxs("div",{className:"media_body ms-1 d-flex justify-content-betwee align-items-center",children:[h.jsx("div",{className:"mb-0 font-12 text-gray6 fw-",children:(u=n.comment)==null?void 0:u.name}),h.jsx("span",{className:"dot-seperator"}),h.jsx("div",{className:"font-12 text-gray6",children:(p=n.comment)==null?void 0:p.date})]})]})})]})})}function fYe(n){var t;return h.jsxs("div",{className:"d-grid gap-3 comment_list_wrap px-0 pt-0",children:[h.jsx(uYe,{comment_type:n.comment_type,parent_id:n.parent_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:n.addPlacement}),n.loading?h.jsx(h.Fragment,{children:[0,1,2].map((i,s)=>h.jsx(ci,{type:"comment-list"},`placeholder-comment-card-${s}`))}):h.jsxs(h.Fragment,{children:[!((t=n.comments)!=null&&t.length)>0&&h.jsxs(h.Fragment,{children:[" ",h.jsx("div",{className:"font-14 fw-sb",children:"No more comments!"})]}),n.comments.length>0&&n.comments.map(i=>h.jsx(hYe,{comment_type:n.comment_type,comment:i,parent_owner_id:n.parent_owner_id},n.parent_id+i.name+i.date))]})]})}function YE(n){const t=n.addPlacement?n.addPlacement:"modal";return h.jsx("div",{className:"position-relative pb-3 h-100",children:h.jsx(fYe,{loading:n.loading,comment_type:n.comment_type,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:t})})}function pYe(n){var g,_,y,E,b,A;const[t,i]=k.useState("msg_likes_tab"),s=((g=n.badge)==null?void 0:g.image)!==""?(_=n.badge)==null?void 0:_.image:"star-icon.png",l=((y=n.data)==null?void 0:y.title)&&((E=n.data)==null?void 0:E.title),d=n.likeCount?n.likeCount:(b=n.data)==null?void 0:b.likes_count,u=n.commentsCount?n.commentsCount:(A=n.data)==null?void 0:A.comments_count;k.useEffect(()=>{n.likesListHandler(n.parent_id)},[n.parent_id]);const p=N=>{console.log("Key in handleSelectedTab =",N),N=="msg_likes_tab"&&(console.log("Entering into msg_likes_tab",n.parent_id),n.likesListHandler(n.parent_id)),N=="msg_comments_tab"&&n.handleCommentList(n.parent_id),i(N)};return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom media-viewer-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb border-0",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:n.badge.title})}),h.jsx(vn.Body,{className:"no-scrollbar pt-2",children:n.loadingData?h.jsx(h.Fragment,{children:h.jsx(ci,{type:"details"})}):h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"d-flex justify-content-center badge-symbol-container mx-auto",children:h.jsx("div",{className:"media-img-wrapper rounded-3",children:h.jsx(us,{src:s,alt:n.badge.title,wrapperClassName:"img-fluid mx-auto "})})}),h.jsxs("div",{className:"d-flex justify-content-center align-items-center py-2 font-14 fw-sb text-gray9",children:[h.jsxs("div",{className:"",children:[n.badge.points," points"]}),h.jsx("div",{className:"dot-seperator"}),h.jsx("div",{className:"",children:n.badge.date})]}),h.jsx("div",{className:"font-14 fw-sb text-gray6 pb-2 d-flex justify-content-center",children:h.jsx("div",{className:"mx-auto my-3 text-center",children:l})}),h.jsxs(Zn.Container,{id:"msg-tabs",className:"main_tabs",activeKey:t,onSelect:N=>p(N),mountOnEnter:!0,unmountOnExit:!0,children:[h.jsx("div",{className:"tab_links",children:h.jsxs(jn,{variant:"pills",className:"nav-justified",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"",children:`${d} ${d===1?"Like":"Likes"}`})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"",children:`${u} ${u===1?"Comment":"Comments"}`})})})]})}),h.jsxs(Zn.Content,{className:"p-2",children:[h.jsx(Zn.Pane,{className:"",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(nx,{isLiked:n.isLiked,loadingMediaLike:n.loadingMediaLike,loadingLikesList:n.loadingLikesList,likesData:n.likesData,likeActionHandler:n.likeActionHandler,parentId:n.parent_id})})}),h.jsx(Zn.Pane,{className:"",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(YE,{comment_type:n.comment_type,loading:n.loadingCommentsList,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:"fixed-bottom"})})})]})]})]})})]})})}function mYe({badge:n,className:t}){const[i,s]=k.useState(!1),[l,d]=k.useState(null),[u,p]=k.useState(l==null?void 0:l.is_liked),[g,_]=k.useState(l==null?void 0:l.likes_count),[y,E]=k.useState([]),[b,A]=k.useState(!0),[N,O]=k.useState(!1),[D,P]=k.useState(!1),[j,M]=k.useState(l==null?void 0:l.comments_count),[V,H]=k.useState([]),[$,Q]=k.useState(!0),Y=t||"",le=(n==null?void 0:n.image)!==""?n==null?void 0:n.image:"/img/warranty-icon.png",ae=(n==null?void 0:n.title)&&(n==null?void 0:n.title);n!=null&&n.points&&(n==null||n.points);const te=(n==null?void 0:n.date)&&(n==null?void 0:n.date);function de(me){ie(me)}const G=()=>{s(!1)},ie=me=>{const Ne=me.wall_message_id;_e(Ne),s(!0)};async function _e(me){P(!0),So.getWallMessageDetails(me).then(Ne=>{var Fe,je,Ve;if(console.log("getWallMessageDetails RES = ",(Fe=Ne.data)==null?void 0:Fe.data),Ne.data.status==="success"){const Re=(Ve=(je=Ne.data)==null?void 0:je.data)==null?void 0:Ve.message;d(Re),P(!1)}}).catch(Ne=>{P(!1),d(null),console.log("Error in getWallMessageDetails = ",Ne)})}async function he(me){O(!0),me&&So.getWallMessageLike(me).then(Ne=>{var Fe,je;Ne.data.status==="success"&&(console.log("Success in getWallMessageLike =",Ne.data.data),p((Fe=Ne.data.data)==null?void 0:Fe.is_liked),_((je=Ne.data.data)==null?void 0:je.likes_count),O(!1),Ce(me))}).catch(Ne=>{O(!1),p(appreciationDetails==null?void 0:appreciationDetails.is_liked),_(appreciationDetails==null?void 0:appreciationDetails.likes_count),console.log("Error in getWallMessageLike = ",Ne)})}async function Ce(me){me&&So.getWallMessageLikesList(me).then(Ne=>{var Fe;Ne.data.status==="success"&&(E((Fe=Ne.data.data)==null?void 0:Fe.likes),A(!1))}).catch(Ne=>{A(!1),E([]),console.log("Error in getWallMessageLikesList = ",Ne)})}async function fe(me){Q(!0),me&&So.getAllWallMessageCommentList(me).then(Ne=>{var Fe;Ne.data.status==="success"&&(H((Fe=Ne.data.data)==null?void 0:Fe.comments),Q(!1))}).catch(Ne=>{Q(!1),H([]),console.log("Error in getAllWallMessageCommentList = ",Ne)})}return h.jsxs(h.Fragment,{children:[h.jsx(et,{className:`card-theme media-card badge-card border-0 ${Y}`,onClick:()=>de(n),children:h.jsxs(et.Body,{className:"p-2 text-center",children:[h.jsx("div",{className:"flex-shrink-0 media-icon-wrapper text-center mx-auto",children:h.jsx("img",{src:le,alt:`${ae} Badge Icon`,className:"img-fluid"})}),h.jsxs("div",{className:"d-flex flex-column align-items-center justify-content-center w-100 pt-2 media-content-wrapper",children:[h.jsx("p",{className:"fw-sb",children:ae}),h.jsx("div",{className:"d-flex justify-content-betwee align-items-center",children:h.jsx("span",{className:"media-time-text",children:te})})]})]})}),h.jsx(pYe,{show:i,handleClose:G,badge:n,data:l,loadingData:D,likesData:y,likeCount:g,isLiked:u,likeActionHandler:he,loadingMediaLike:N,likesListHandler:Ce,loadingLikesList:b,comment_type:"message",loadingCommentsList:$,parent_id:n==null?void 0:n.wall_message_id,parent_owner_id:null,comments:V,handleCommentList:fe,setCommentsCount:M,commentsCount:j})]})}const Q4={getAllBadges:async()=>await On.get("recognition/badge/list"),getBadgeCreationHelpers:async()=>(console.log("Inside Service getBadgeCreationHelpers() ..."),await On.get("recognition/badge/createhelper")),sendBadge:async n=>(console.log("Inside Service sendBadge() ...",n),await On.post("recognition/badge/create",n))};function gYe(){var g,_,y;const n=Ii(),t=async()=>{var E;try{const b=await Q4.getAllBadges();return b.data.status==="success"?(E=b.data)==null?void 0:E.data:null}catch{throw new Error("Error fetching badges")}},{isFetching:i,isPending:s,isError:l,data:d,error:u}=Qd({queryKey:["allBadgesQuery"],queryFn:t}),p=()=>{n("/badges/send-badges",{state:{pageTitle:"Send a Badge",hideFooterNav:!0}})};return s?h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"pt-1 pb-1 py-sm-3",children:h.jsx(fn,{className:"row-cols-2 g-3 mb-4",children:[0,1].map((E,b)=>h.jsx(Gt,{children:h.jsx(ci,{type:"quick-actions",className:"card-theme overflow-hidden"})},b))})})}):l?h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more badges"})})}):h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[i&&((g=d==null?void 0:d.received)==null?void 0:g.length)===0?h.jsx(h.Fragment,{children:h.jsx(fn,{className:"row-cols-2 g-3 mb-4",children:[0,1].map((E,b)=>h.jsx(Gt,{children:h.jsx(ci,{type:"quick-actions",className:"card-theme overflow-hidden"})},b))})}):h.jsx(h.Fragment,{children:((_=d==null?void 0:d.received)==null?void 0:_.length)>0?h.jsx(fn,{className:"row-cols-2 g-3 mb-4",children:(y=d==null?void 0:d.received)==null?void 0:y.map(E=>h.jsx(Gt,{className:"",children:h.jsx(mYe,{badge:E,className:"shadow-sm"})},E==null?void 0:E.id))}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more badges"})})}),(d==null?void 0:d.cansend)&&h.jsx(ZQ,{btnTitle:"Send",className:"",isWide:!1,icon:"send2",primaryActionHandler:p})]})})}function vYe(n){var l,d,u,p;const t=n.className?n.className:"",i=((l=n.reward)==null?void 0:l.text)&&((d=n.reward)==null?void 0:d.text),s=((u=n.reward)==null?void 0:u.points)&&((p=n.reward)==null?void 0:p.points);return h.jsx(et,{className:`card-theme reward-card border-0 me-3 w-100 ${t}`,children:h.jsxs(et.Body,{className:"px-2 text-center d-flex flex-column justify-content-between",children:[h.jsx("div",{className:"font-14 text-gray7",children:i}),h.jsx("span",{className:"font-16 fw-sb",children:s})]})})}const fY=[{id:"reward-1",type:"reward",text:"Available points",time:"2 hours ago",points:1562,icon:"",isActionBtn:!1},{id:"reward-2",type:"reward",text:"Redeemed till date",time:"1 day ago",points:3452,icon:"",isActionBtn:!1},{id:"reward-3",type:"reward",text:"Available points",time:"1 day ago",points:1562,icon:"",isActionBtn:!1},{id:"reward-4",type:"reward",text:"Redeemed till date",time:"5 hours ago",points:3452,icon:"",isActionBtn:!1}];function yYe(n){const[t,i]=k.useState(fY);return console.log("Rewards data = ",fY),h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(fn,{className:"row-cols-3 g-3 mb-4",children:t.map((s,l)=>h.jsx(Gt,{className:"",children:h.jsx(vYe,{reward:s,className:"shadow-sm"})},s.id))})})})}function _Ye(n){var b,A,N,O,D,P,j,M,V,H,$,Q,Y,le,ae,te,de;const[t,i]=k.useState("msg_details_tab"),s=((b=n.data)==null?void 0:b.icon)!==""?(A=n.data)==null?void 0:A.icon:"/img/star-icon.png",l=(N=n.data)!=null&&N.sender?(O=n.data)==null?void 0:O.sender:"",d=((D=n.data)==null?void 0:D.sender_avatar)!==""?(P=n.data)==null?void 0:P.sender_avatar:"/img/user-profile.jpg",u=(j=n.data)!=null&&j.receiver?(M=n.data)==null?void 0:M.receiver:"",p=((V=n.data)==null?void 0:V.receiver_avatar)!==""?(H=n.data)==null?void 0:H.receiver_avatar:"/img/user-profile.jpg",g=(($=n.data)==null?void 0:$.message)&&((Q=n.data)==null?void 0:Q.message),_=n.likeCount?n.likeCount:(Y=n.data)==null?void 0:Y.likes_count,y=n.commentsCount?n.commentsCount:(le=n.data)==null?void 0:le.comments_count,E=G=>{var ie;console.log("Key in handleSelectedTab =",G),G=="msg_likes_tab"&&n.likesListHandler((ie=n.data)==null?void 0:ie.wall_message_id),G=="msg_comments_tab"&&n.handleCommentList(n.parent_id),i(G)};return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom media-viewer-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb border-0",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:"Appreciation Details"})}),h.jsx(vn.Body,{className:"no-scrollbar pt-2",children:n.loadingData?h.jsx(h.Fragment,{children:h.jsx(ci,{type:"details"})}):h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"d-flex w-100 justify-content-center appreciation-symbol-container",children:[h.jsx("div",{className:"flex-shrink-0 media-img-wrapper symbol-left",children:h.jsx("img",{src:`${d}`,alt:`${l} avatar`,className:"img-fluid"})}),h.jsx("div",{className:"flex-shrink-0 media-icon-wrapper symbol-center",children:h.jsx("img",{src:`${s}`,alt:"Star Icon",className:"img-fluid"})}),h.jsx("div",{className:"flex-shrink-0 media-img-wrapper symbol-right",children:h.jsx("img",{src:`${p}`,alt:`${u} avatar`,className:"img-fluid"})})]}),h.jsx("div",{className:"font-14 text-gray6 pb-2 d-flex justify-content-between",children:h.jsxs("div",{className:"mx-auto my-3",children:[h.jsx("span",{className:"fw-sb text-theme-primary",children:l}),h.jsx("small",{className:"mx-1",children:"appreciated"}),h.jsx("span",{className:"fw-sb text-theme-primary",children:u})]})}),h.jsxs(Zn.Container,{id:"msg-tabs",className:"main_tabs",activeKey:t,onSelect:G=>E(G),mountOnEnter:!0,unmountOnExit:!0,children:[h.jsx("div",{className:"tab_links",children:h.jsxs(jn,{variant:"pills",className:"nav-justified",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_details_tab",children:h.jsx("div",{className:"",children:"Details"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"",children:`${_} ${_===1?"Like":"Likes"}`})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"",children:`${y} ${y===1?"Comment":"Comments"}`})})})]})}),h.jsxs(Zn.Content,{className:"p-2",children:[h.jsx(Zn.Pane,{className:"",eventKey:"msg_details_tab",children:h.jsx("div",{className:"py-2",children:((ae=n.data)==null?void 0:ae.image)&&h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"media-container text-center mb-2",children:h.jsx(us,{src:(te=n.data)==null?void 0:te.image,alt:"appreciation image",wrapperClassName:"img-fluid mx-auto"})}),h.jsxs("div",{className:"font-14 fst-italic text-gray6 pb-2 d-block text-start",children:[h.jsxs("div",{className:"",children:[h.jsx("span",{className:"fw-sb",children:l}),h.jsx("small",{className:"mx-1",children:"appreciated"}),h.jsx("span",{className:"fw-sb",children:u})]}),h.jsx("div",{className:"font-14 my-1",children:"for"}),h.jsx("div",{className:"fw-sb",children:g})]})]})})}),h.jsx(Zn.Pane,{className:"",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(nx,{isLiked:n.isLiked,loadingMediaLike:n.loadingMediaLike,loadingLikesList:n.loadingLikesList,likesData:n.likesData,likeActionHandler:n.likeActionHandler,parentId:(de=n.data)==null?void 0:de.wall_message_id})})}),h.jsx(Zn.Pane,{className:"",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(YE,{comment_type:n.comment_type,loading:n.loadingCommentsList,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:"fixed-bottom"})})})]})]})]})})]})})}const Z4={getAllAppreciations:async()=>await On.get("recognition/appreciation/list"),getAppreciationDetails:async n=>await On.get(`recognition/appreciation/detail?id=${n}`),getAppreciationCreationHelpers:async()=>(console.log("Inside Service getAppreciationCreationHelpers() ..."),await On.get("recognition/appreciation/createhelper")),sendAppreciation:async n=>(console.log("Inside Service sendAppreciation() ...",n),await On.post("recognition/appreciation/create",n))};function M_e(n){var me,Ne,Fe,je,Ve,Re;const[t,i]=k.useState(!1),[s,l]=k.useState(null),[d,u]=k.useState(!1),[p,g]=k.useState(s==null?void 0:s.is_liked),[_,y]=k.useState(s==null?void 0:s.likes_count),[E,b]=k.useState([]),[A,N]=k.useState(!0),[O,D]=k.useState(!1),[P,j]=k.useState(s==null?void 0:s.comments_count),[M,V]=k.useState([]),[H,$]=k.useState(!0),Q=n.className?n.className:"",Y=((me=n.data)==null?void 0:me.icon)!==""?(Ne=n.data)==null?void 0:Ne.icon:"/img/star-icon.png",le=(Fe=n.data)!=null&&Fe.sender?(je=n.data)==null?void 0:je.sender:"",ae=(Ve=n.data)!=null&&Ve.receiver?(Re=n.data)==null?void 0:Re.receiver:"";n.data.text&&n.data.text;const te=n.data.date&&n.data.date;function de(Be){ie(Be)}const G=()=>{i(!1)},ie=Be=>{const Xe=Be.id;_e(Xe),i(!0)};async function _e(Be){u(!0),Z4.getAppreciationDetails(Be).then(Xe=>{var we,Ge,rt;if(console.log("getAppreciationDetails RES = ",(we=Xe.data)==null?void 0:we.data),Xe.data.status==="success"){const pt=(rt=(Ge=Xe.data)==null?void 0:Ge.data)==null?void 0:rt.appreciation;l(pt),u(!1)}}).catch(Xe=>{u(!1),l(null),console.log("Error in getAppreciationDetails = ",Xe)})}async function he(Be){D(!0),Be&&So.getWallMessageLike(Be).then(Xe=>{var we,Ge;Xe.data.status==="success"&&(console.log("Success in getWallMessageLike =",Xe.data.data),g((we=Xe.data.data)==null?void 0:we.is_liked),y((Ge=Xe.data.data)==null?void 0:Ge.likes_count),D(!1),Ce(Be))}).catch(Xe=>{D(!1),g(s==null?void 0:s.is_liked),y(s==null?void 0:s.likes_count),console.log("Error in getWallMessageLike = ",Xe)})}async function Ce(Be){Be&&So.getWallMessageLikesList(Be).then(Xe=>{var we;console.log("getWallMessageLikesList RES = ",Xe.data),Xe.data.status==="success"&&(b((we=Xe.data.data)==null?void 0:we.likes),N(!1))}).catch(Xe=>{N(!1),b([]),console.log("Error in getWallMessageLikesList = ",Xe)})}async function fe(Be){$(!0),Be&&So.getAllWallMessageCommentList(Be).then(Xe=>{var we;Xe.data.status==="success"&&(V((we=Xe.data.data)==null?void 0:we.comments),$(!1))}).catch(Xe=>{$(!1),V([]),console.log("Error in getAllWallMessageCommentList = ",Xe)})}return h.jsxs(h.Fragment,{children:[h.jsx(et,{className:`card-theme media-list-card appreciation-list-card border-0 ${Q}`,onClick:()=>de(n.data),children:h.jsx(et.Body,{className:"p-2",children:h.jsxs("div",{className:"d-flex align-items-start",children:[h.jsx("div",{className:"flex-shrink-0 media-icon-wrapper",children:h.jsx("img",{src:`${Y}`,alt:"Star Icon",className:"img-fluid"})}),h.jsxs("div",{className:"flex-grow-1 ms-3 media-content-wrapper",children:[h.jsxs("p",{children:[h.jsx("span",{className:"fw-sb me-1",children:le}),h.jsx("small",{children:"appreciated"})," ",h.jsx("br",{}),h.jsx("span",{className:"fw-sb",children:ae})]}),h.jsx("div",{className:"d-flex justify-content-between align-items-center",children:h.jsx("span",{className:"text-start media-time-text",children:te})})]}),n.showRightIcon&&h.jsx(Zt,{tag:"arrow-right1",className:"font-22 align-self-center text-theme-primary"})]})})}),h.jsx(_Ye,{show:t,handleClose:G,data:s,loadingData:d,likesData:E,likeCount:_,isLiked:p,likeActionHandler:he,loadingMediaLike:O,likesListHandler:Ce,loadingLikesList:A,comment_type:"message",loadingCommentsList:H,parent_id:s==null?void 0:s.wall_message_id,parent_owner_id:null,comments:M,handleCommentList:fe,setCommentsCount:j,commentsCount:P})]})}function EYe({appreciations:n,loading:t,getAppreciationDetails:i}){return h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-3",children:t?h.jsx(h.Fragment,{children:[0,1,2].map((s,l)=>h.jsx(ci,{type:"appreciations-list"},`appreciation-${l}`))}):h.jsx(h.Fragment,{children:(n==null?void 0:n.length)>0?h.jsx(h.Fragment,{children:n==null?void 0:n.map(s=>h.jsx(M_e,{cardType:"list",data:s,showRightIcon:!0,className:"card-theme shadow-sm",getAppreciationDetails:i},s==null?void 0:s.id))}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more appreciations"})})})})})}function wYe({appreciations:n,loading:t}){return h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-3",children:t?h.jsx(h.Fragment,{children:[0,1,2].map((i,s)=>h.jsx(ci,{type:"appreciations-list"},`appreciation-${s}`))}):h.jsx(h.Fragment,{children:(n==null?void 0:n.length)>0?h.jsx(h.Fragment,{children:n==null?void 0:n.map((i,s)=>h.jsx(M_e,{cardType:"list",data:i,showRightIcon:!0,className:"card-theme shadow-sm"},i==null?void 0:i.id))}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more appreciations"})})})})})}function SYe(){var b;const n=Ii(),t=Xo(),[i,s]=k.useState(((b=t==null?void 0:t.state)==null?void 0:b.data)==="sent"?"appreciations-sent":"appreciations-received"),l=async()=>{var A;try{const N=await Z4.getAllAppreciations();return N.data.status==="success"?(A=N.data)==null?void 0:A.data:null}catch{throw new Error("Error fetching appreciations")}},{isFetching:d,isPending:u,isError:p,data:g,error:_}=Qd({queryKey:["allAppreciationsQuery"],queryFn:l}),y=A=>{s(A)},E=()=>{n("/appreciations/send-appreciations",{state:{pageTitle:"Send an Appreciation",hideFooterNav:!0}})};return u?h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"pt-1 pb-1 py-sm-3",children:h.jsx("div",{className:"d-grid gap-3",children:[0,1,2].map((A,N)=>h.jsx(ci,{type:"appreciations-list"},`appreciation-${N}`))})})}):p?h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(Card,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more appreciations"})})}):h.jsx(h.Fragment,{children:h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[h.jsxs(vU,{activeKey:i,variant:"pills",justify:!0,id:"uncontrolled-tab-example",className:"mb-3 theme-tabs",onSelect:A=>{y(A)},children:[h.jsx(Zn,{eventKey:"appreciations-received",title:"Appreciations received",children:h.jsx(EYe,{appreciations:g==null?void 0:g.received,loading:u})}),h.jsx(Zn,{eventKey:"appreciations-sent",title:"Appreciations sent",children:h.jsx(wYe,{appreciations:g==null?void 0:g.sent,loading:u})})]}),(g==null?void 0:g.cansend)&&h.jsx(ZQ,{btnTitle:"Send",className:"",isWide:!1,icon:"send2",primaryActionHandler:E})]})})})}function tfe(n){let t="default",i=(n==null?void 0:n.contactType.split("").map((l,d)=>d===0?l.toUpperCase():l).join(""))||"Type",s=(n==null?void 0:n.contactValue)||"NA";switch(n==null?void 0:n.contactType){case"email":t="message5";break;case"mobile":t="call1";break;default:t="call1"}return h.jsx(h.Fragment,{children:h.jsx(et,{className:"media-list-card profile-contact-list-card border-0 rounded-0 bg-transparent",children:h.jsx(et.Body,{className:"p-0",children:h.jsxs("div",{className:"d-flex align-items-start",children:[h.jsx("div",{className:"flex-shrink-0 media-icon-wrapper align-items-center d-flex justify-content-center",children:h.jsx(Zt,{tag:t,className:"font-20"})}),h.jsx("div",{className:"flex-grow-1 ms-3 media-content-wrapper",children:h.jsxs("span",{className:"welcome-user font-14 text-gray7",children:[`${i} `,h.jsx("span",{className:"d-block fw-sb text-gray3",children:s})]})})]})})})})}function bYe(n){const[t,i]=k.useState(!0),[s,l]=k.useState([]);k.useEffect(()=>{const u=Object.entries(n==null?void 0:n.userProfile).map(([g,_])=>{let y="";return y=g.split("").map((E,b)=>b===0?E.toUpperCase():E).join(""),{key:y,value:_}}),p=u.filter(g=>{if(["hq","territory","area","region","zone","city","state","pincode","address"].includes(g.key.toLowerCase()))return console.log("Item Key = ",g.key),{key:g.key,value:g.value}});l(p),console.log("userAdd = ",u),console.log("userAdd2 = ",p)},[n.userProfile]);function d(){console.log("handleProfileInfoCollapseToggle called..."),i(!t)}return h.jsxs(h.Fragment,{children:[h.jsx(pQ,{in:t,children:h.jsx("div",{id:"profile-info-collapse",className:"profile-other-info font-14",children:h.jsx(et,{className:"bg-transparent border-0",children:s.length>0?h.jsx(xMe,{hover:!0,className:"bg-transparent",children:h.jsx("tbody",{children:s.map((u,p)=>h.jsxs("tr",{children:[h.jsxs("td",{className:"text-gray7",children:[u.key,":"]}),h.jsx("td",{className:"fw-sb",children:u.value})]},p))})}):h.jsx("p",{children:"No more info..."})})})}),h.jsx("div",{className:"d-flex justify-content-end d-none",children:h.jsxs(Pt,{variant:"link",size:"sm",className:"btn-theme font-12 fw-sb text-decoration-none","aria-controls":"profile-info-collapse","aria-expanded":t,onClick:d,children:[t?"See less":"See more"," ",h.jsx(Zt,{tag:"arrow-down1",className:`font-10 theme-transition ${t&&"rotate-180"}`})]})})]})}function CYe(n){const[t,i]=k.useState(!1),[s,l]=k.useState({}),d=n.isAddMode,u=[{key:"Male",value:"male"},{key:"Female",value:"female"},{key:"Other",value:"other"}],p={firstname:"",lastname:"",email:"",phone:"",designation:"",gender:"male",date_of_birth:null,city:"",state:"",pincode:"",address:"",avatar:""},g=uc({firstname:hf().required("Required"),lastname:hf().required("Required")});k.useEffect(()=>{if(console.log("currentUser = ",n.currentUser),!d&&n.currentUser){let y={firstname:n.currentUser.firstname?n.currentUser.firstname:"",lastname:n.currentUser.lastname?n.currentUser.lastname:"",phone:n.currentUser.phone?n.currentUser.phone:"",gender:n.currentUser.gender?n.currentUser.gender:"male",date_of_birth:n.currentUser.date_of_birth?n.currentUser.date_of_birth:"",city:n.currentUser.city?n.currentUser.city:"",state:n.currentUser.state?n.currentUser.state:"",pincode:n.currentUser.pincode?n.currentUser.pincode:"",address:n.currentUser.address?n.currentUser.address:""};l(y)}},[n.currentUser]);const _=async(y,{resetForm:E})=>{i(!0),console.log("Form Values :",y),y.address&&y.address;const b={...y,city:y.city,state:y.state,pincode:y.pincode,date_of_birth:y.date_of_birth},A=Object.entries(b).reduce((N,[O,D])=>(D&&(N[O]=D),N),{});console.log("New values in Update Settings =",b),console.log("All Falsy removed in Update Settings =",A),d||(console.log("Updating existing user details"),hs.updateUserProfile(A).then(N=>{if(console.log(N),N.data.status==="success"){console.log("Suucess res from update = ",N.data.data.profile);const O=N.data.data.profile;Qt("You have successfully updated user details!","success"),E({}),i(!1),n.handleClose(),n.getUserProfile();const D={avatar:O.avatar,firstname:O.firstname,lastname:O.lastname,name:`${O.firstname} ${O.lastname}`,phone:O.phone};Ai.setAuthUser(D)}else N.data.status==="failed"&&(console.log("ERROR:",N.data.error),Qt("User details updation failed!","error"),E({}),i(!1),n.handleClose())}).catch(N=>{console.log(N)}))};return h.jsx(h.Fragment,{children:h.jsx(id,{initialValues:d?p:s,validationSchema:g,onSubmit:_,enableReinitialize:!0,children:y=>h.jsxs(kt,{className:"form_style",onSubmit:y.handleSubmit,children:[h.jsxs(fn,{className:"row-cols-1 row-cols-md-",children:[h.jsx(Gt,{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"First name"}),h.jsx(kt.Control,{type:"text",placeholder:"First name",name:"firstname",...y.getFieldProps("firstname"),autoComplete:"off"}),y.touched.firstname&&y.errors.firstname?h.jsx("p",{className:"error-state-text font-12 text-danger",children:y.errors.firstname}):null]})}),h.jsx(Gt,{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"Last name"}),h.jsx(kt.Control,{type:"text",placeholder:"Last name",name:"lastname",...y.getFieldProps("lastname"),autoComplete:"off"}),y.touched.lastname&&y.errors.lastname?h.jsx("p",{className:"error-state-text font-12 text-danger",children:y.errors.lastname}):null]})})]}),h.jsxs(fn,{className:"row-cols-1 row-cols-md-",children:[h.jsx(Gt,{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"Phone"}),h.jsx(kt.Control,{type:"text",placeholder:"Phone",name:"phone",...y.getFieldProps("phone"),autoComplete:"off"}),y.touched.phone&&y.errors.phone?h.jsx("p",{className:"error-state-text font-12 text-danger",children:y.errors.phone}):null]})}),h.jsx(Gt,{children:h.jsxs(kt.Group,{className:"form-group rounded_corners px-0 inline_radio_fields mb-2",children:[h.jsx("div",{className:"font-14 mb-1 fw-sb",children:"Gender"}),h.jsx("div",{className:"px-1",children:u.map(E=>{var b;return h.jsx(kt.Check,{inline:!0,label:E.key,name:"gender",type:"radio",id:`gender-${E.key}`,value:E.value,onChange:y.handleChange,onBlur:y.handleBlur,checked:((b=y.values)==null?void 0:b.gender)===E.value.toString()},E.value)})}),y.touched.gender&&y.errors.gender?h.jsx("p",{className:"error-state-text",children:y.errors.gender}):null]})})]}),h.jsx(fn,{children:h.jsx(Gt,{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"Date of Birth"}),h.jsx(kt.Control,{type:"date",placeholder:"Date of Birth",name:"date_of_birth",...y.getFieldProps("date_of_birth"),autoComplete:"off",pattern:"\\d{4}-\\d{2}-\\d{2}"}),y.touched.date_of_birth&&y.errors.date_of_birth?h.jsx("p",{className:"error-state-text",children:y.errors.date_of_birth}):null]})})}),h.jsxs(fn,{className:"row-cols-1 row-cols-md-",children:[h.jsxs(Gt,{children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"City"}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Control,{type:"text",placeholder:"City",name:"city",...y.getFieldProps("city"),autoComplete:"off"}),y.touched.city&&y.errors.city?h.jsx("p",{className:"error-state-text",children:y.errors.city}):null]})]}),h.jsxs(Gt,{children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"State"}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Control,{type:"text",placeholder:"State",name:"state",...y.getFieldProps("state"),autoComplete:"off"}),y.touched.state&&y.errors.state?h.jsx("p",{className:"error-state-text",children:y.errors.state}):null]})]})]}),h.jsx(fn,{className:"row-cols-1 row-cols-md-",children:h.jsxs(Gt,{children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"Pincode"}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Control,{type:"text",placeholder:"Pincode",name:"pincode",...y.getFieldProps("pincode"),autoComplete:"off"}),y.touched.pincode&&y.errors.pincode?h.jsx("p",{className:"error-state-text",children:y.errors.pincode}):null]})]})}),h.jsx(fn,{children:h.jsx(Gt,{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb mb-1",children:"Address"}),h.jsx(kt.Control,{type:"text",placeholder:"Addres",name:"address",...y.getFieldProps("address"),autoComplete:"off"}),y.touched.address&&y.errors.address?h.jsx("p",{className:"error-state-text",children:y.errors.address}):null]})})}),h.jsx("div",{className:"btn-wrap position-fixed px-2 pt-3 pb-4 bg-white",style:{bottom:0,left:0,right:0,zIndex:1},children:h.jsx(Pt,{type:"submit",className:"btn btn-theme btn-primary btn-md w-100",children:t?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Updating"]}):"Update"})})]})})})}function TYe(n){return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom update-profile-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:"Update Profile"})}),h.jsx(vn.Body,{className:"no-scrollbar",style:{paddingBottom:100},children:h.jsx(CYe,{isAddMode:!1,currentUser:n.userProfile,handleClose:n.handleClose,getUserProfile:n.getUserProfile})})]})})}/** + * filesize + * + * @copyright 2023 Jason Mulligan + * @license BSD-3-Clause + * @version 10.1.0 + */const RYe="array",xYe="bit",nfe="bits",AYe="byte",ife="bytes",Ob="",IYe="exponent",NYe="function",rfe="iec",OYe="Invalid number",PYe="Invalid rounding method",J$="jedec",LYe="object",sfe=".",DYe="round",kYe="s",MYe="si",jYe="kbit",UYe="kB",FYe=" ",BYe="string",VYe="0",Q$={symbol:{iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},fullform:{iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]}};function kR(n,{bits:t=!1,pad:i=!1,base:s=-1,round:l=2,locale:d=Ob,localeOptions:u={},separator:p=Ob,spacer:g=FYe,symbols:_={},standard:y=Ob,output:E=BYe,fullform:b=!1,fullforms:A=[],exponent:N=-1,roundingMethod:O=DYe,precision:D=0}={}){let P=N,j=Number(n),M=[],V=0,H=Ob;y===MYe?(s=10,y=J$):y===rfe||y===J$?s=2:s===2?y=rfe:(s=10,y=J$);const $=s===10?1e3:1024,Q=b===!0,Y=j<0,le=Math[O];if(typeof n!="bigint"&&isNaN(n))throw new TypeError(OYe);if(typeof le!==NYe)throw new TypeError(PYe);if(Y&&(j=-j),(P===-1||isNaN(P))&&(P=Math.floor(Math.log(j)/Math.log($)),P<0&&(P=0)),P>8&&(D>0&&(D+=8-P),P=8),E===IYe)return P;if(j===0)M[0]=0,H=M[1]=Q$.symbol[y][t?nfe:ife][P];else{V=j/(s===2?Math.pow(2,P*10):Math.pow(1e3,P)),t&&(V=V*8,V>=$&&P<8&&(V=V/$,P++));const ae=Math.pow(10,P>0?l:0);M[0]=le(V*ae)/ae,M[0]===$&&P<8&&N===-1&&(M[0]=1,P++),H=M[1]=s===10&&P===1?t?jYe:UYe:Q$.symbol[y][t?nfe:ife][P]}if(Y&&(M[0]=-M[0]),D>0&&(M[0]=M[0].toPrecision(D)),M[1]=_[M[1]]||M[1],d===!0?M[0]=M[0].toLocaleString():d.length>0?M[0]=M[0].toLocaleString(d,u):p.length>0&&(M[0]=M[0].toString().replace(sfe,p)),i&&Number.isInteger(M[0])===!1&&l>0){const ae=p||sfe,te=M[0].toString().split(ae),de=te[1]||Ob,G=de.length,ie=l-G;M[0]=`${te[0]}${ae}${de.padEnd(G+ie,VYe)}`}return Q&&(M[1]=A[P]?A[P]:Q$.fullform[y][P]+(t?xYe:AYe)+(M[0]===1?Ob:kYe)),E===RYe?M:E===LYe?{value:M[0],symbol:M[1],exponent:P,unit:H}:M.join(g)}const A7={x:0,y:0,width:0,height:0,unit:"px"},Pb=(n,t,i)=>Math.min(Math.max(n,t),i),zYe=(...n)=>n.filter(t=>t&&typeof t=="string").join(" "),afe=(n,t)=>n===t||n.width===t.width&&n.height===t.height&&n.x===t.x&&n.y===t.y&&n.unit===t.unit;function HYe(n,t,i,s){const l=np(n,i,s);return n.width&&(l.height=l.width/t),n.height&&(l.width=l.height*t),l.y+l.height>s&&(l.height=s-l.y,l.width=l.height*t),l.x+l.width>i&&(l.width=i-l.x,l.height=l.width/t),n.unit==="%"?a1(l,i,s):l}function GYe(n,t,i){const s=np(n,t,i);return s.x=(t-s.width)/2,s.y=(i-s.height)/2,n.unit==="%"?a1(s,t,i):s}function a1(n,t,i){return n.unit==="%"?{...A7,...n,unit:"%"}:{unit:"%",x:n.x?n.x/t*100:0,y:n.y?n.y/i*100:0,width:n.width?n.width/t*100:0,height:n.height?n.height/i*100:0}}function np(n,t,i){return n.unit?n.unit==="px"?{...A7,...n,unit:"px"}:{unit:"px",x:n.x?n.x*t/100:0,y:n.y?n.y*i/100:0,width:n.width?n.width*t/100:0,height:n.height?n.height*i/100:0}:{...A7,...n,unit:"px"}}function ofe(n,t,i,s,l,d=0,u=0,p=s,g=l){const _={...n};let y=Math.min(d,s),E=Math.min(u,l),b=Math.min(p,s),A=Math.min(g,l);t&&(t>1?(y=u?u*t:y,E=y/t,b=p*t):(E=d?d/t:E,y=E*t,A=g/t)),_.y<0&&(_.height=Math.max(_.height+_.y,E),_.y=0),_.x<0&&(_.width=Math.max(_.width+_.x,y),_.x=0);const N=s-(_.x+_.width);N<0&&(_.x=Math.min(_.x,s-y),_.width+=N);const O=l-(_.y+_.height);if(O<0&&(_.y=Math.min(_.y,l-E),_.height+=O),_.widthb&&((i==="sw"||i=="nw")&&(_.x-=b-_.width),_.width=b),_.height>A&&((i==="nw"||i=="ne")&&(_.y-=A-_.height),_.height=A),t){const D=_.width/_.height;if(Dt){const P=Math.max(_.height*t,y);(i==="sw"||i=="nw")&&(_.x-=P-_.width),_.width=P}}return _}function WYe(n,t,i,s){const l={...n};return t==="ArrowLeft"?s==="nw"?(l.x-=i,l.y-=i,l.width+=i,l.height+=i):s==="w"?(l.x-=i,l.width+=i):s==="sw"?(l.x-=i,l.width+=i,l.height+=i):s==="ne"?(l.y+=i,l.width-=i,l.height-=i):s==="e"?l.width-=i:s==="se"&&(l.width-=i,l.height-=i):t==="ArrowRight"&&(s==="nw"?(l.x+=i,l.y+=i,l.width-=i,l.height-=i):s==="w"?(l.x+=i,l.width-=i):s==="sw"?(l.x+=i,l.width-=i,l.height-=i):s==="ne"?(l.y-=i,l.width+=i,l.height+=i):s==="e"?l.width+=i:s==="se"&&(l.width+=i,l.height+=i)),t==="ArrowUp"?s==="nw"?(l.x-=i,l.y-=i,l.width+=i,l.height+=i):s==="n"?(l.y-=i,l.height+=i):s==="ne"?(l.y-=i,l.width+=i,l.height+=i):s==="sw"?(l.x+=i,l.width-=i,l.height-=i):s==="s"?l.height-=i:s==="se"&&(l.width-=i,l.height-=i):t==="ArrowDown"&&(s==="nw"?(l.x+=i,l.y+=i,l.width-=i,l.height-=i):s==="n"?(l.y+=i,l.height-=i):s==="ne"?(l.y+=i,l.width-=i,l.height-=i):s==="sw"?(l.x-=i,l.width+=i,l.height+=i):s==="s"?l.height+=i:s==="se"&&(l.width+=i,l.height+=i)),l}const Lb={capture:!0,passive:!1};let $Ye=0;const t1=class Mh extends k.PureComponent{constructor(){super(...arguments),this.docMoveBound=!1,this.mouseDownOnCrop=!1,this.dragStarted=!1,this.evData={startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0},this.componentRef=k.createRef(),this.mediaRef=k.createRef(),this.initChangeCalled=!1,this.instanceId=`rc-${$Ye++}`,this.state={cropIsActive:!1,newCropIsBeingDrawn:!1},this.onCropPointerDown=t=>{const{crop:i,disabled:s}=this.props,l=this.getBox();if(!i)return;const d=np(i,l.width,l.height);if(s)return;t.cancelable&&t.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const u=t.target.dataset.ord,p=!!u;let g=t.clientX,_=t.clientY,y=d.x,E=d.y;if(u){const b=t.clientX-l.x,A=t.clientY-l.y;let N=0,O=0;u==="ne"||u=="e"?(N=b-(d.x+d.width),O=A-d.y,y=d.x,E=d.y+d.height):u==="se"||u==="s"?(N=b-(d.x+d.width),O=A-(d.y+d.height),y=d.x,E=d.y):u==="sw"||u=="w"?(N=b-d.x,O=A-(d.y+d.height),y=d.x+d.width,E=d.y):(u==="nw"||u=="n")&&(N=b-d.x,O=A-d.y,y=d.x+d.width,E=d.y+d.height),g=y+l.x+N,_=E+l.y+O}this.evData={startClientX:g,startClientY:_,startCropX:y,startCropY:E,clientX:t.clientX,clientY:t.clientY,isResize:p,ord:u},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})},this.onComponentPointerDown=t=>{const{crop:i,disabled:s,locked:l,keepSelection:d,onChange:u}=this.props,p=this.getBox();if(s||l||d&&i)return;t.cancelable&&t.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const g=t.clientX-p.x,_=t.clientY-p.y,y={unit:"px",x:g,y:_,width:0,height:0};this.evData={startClientX:t.clientX,startClientY:t.clientY,startCropX:g,startCropY:_,clientX:t.clientX,clientY:t.clientY,isResize:!0},this.mouseDownOnCrop=!0,u(np(y,p.width,p.height),a1(y,p.width,p.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})},this.onDocPointerMove=t=>{const{crop:i,disabled:s,onChange:l,onDragStart:d}=this.props,u=this.getBox();if(s||!i||!this.mouseDownOnCrop)return;t.cancelable&&t.preventDefault(),this.dragStarted||(this.dragStarted=!0,d&&d(t));const{evData:p}=this;p.clientX=t.clientX,p.clientY=t.clientY;let g;p.isResize?g=this.resizeCrop():g=this.dragCrop(),afe(i,g)||l(np(g,u.width,u.height),a1(g,u.width,u.height))},this.onComponentKeyDown=t=>{const{crop:i,disabled:s,onChange:l,onComplete:d}=this.props;if(s)return;const u=t.key;let p=!1;if(!i)return;const g=this.getBox(),_=this.makePixelCrop(g),y=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?Mh.nudgeStepLarge:t.shiftKey?Mh.nudgeStepMedium:Mh.nudgeStep;if(u==="ArrowLeft"?(_.x-=y,p=!0):u==="ArrowRight"?(_.x+=y,p=!0):u==="ArrowUp"?(_.y-=y,p=!0):u==="ArrowDown"&&(_.y+=y,p=!0),p){t.cancelable&&t.preventDefault(),_.x=Pb(_.x,0,g.width-_.width),_.y=Pb(_.y,0,g.height-_.height);const E=np(_,g.width,g.height),b=a1(_,g.width,g.height);l(E,b),d&&d(E,b)}},this.onHandlerKeyDown=(t,i)=>{const{aspect:s=0,crop:l,disabled:d,minWidth:u=0,minHeight:p=0,maxWidth:g,maxHeight:_,onChange:y,onComplete:E}=this.props,b=this.getBox();if(d||!l)return;if(t.key==="ArrowUp"||t.key==="ArrowDown"||t.key==="ArrowLeft"||t.key==="ArrowRight")t.stopPropagation(),t.preventDefault();else return;const A=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?Mh.nudgeStepLarge:t.shiftKey?Mh.nudgeStepMedium:Mh.nudgeStep,N=np(l,b.width,b.height),O=WYe(N,t.key,A,i),D=ofe(O,s,i,b.width,b.height,u,p,g,_);if(!afe(l,D)){const P=a1(D,b.width,b.height);y(D,P),E&&E(D,P)}},this.onDocPointerDone=t=>{const{crop:i,disabled:s,onComplete:l,onDragEnd:d}=this.props,u=this.getBox();this.unbindDocMove(),!(s||!i)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,d&&d(t),l&&l(np(i,u.width,u.height),a1(i,u.width,u.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))},this.onDragFocus=()=>{var t;(t=this.componentRef.current)==null||t.scrollTo(0,0)}}get document(){return document}getBox(){const t=this.mediaRef.current;if(!t)return{x:0,y:0,width:0,height:0};const{x:i,y:s,width:l,height:d}=t.getBoundingClientRect();return{x:i,y:s,width:l,height:d}}componentDidUpdate(t){const{crop:i,onComplete:s}=this.props;if(s&&!t.crop&&i){const{width:l,height:d}=this.getBox();l&&d&&s(np(i,l,d),a1(i,l,d))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,Lb),this.document.addEventListener("pointerup",this.onDocPointerDone,Lb),this.document.addEventListener("pointercancel",this.onDocPointerDone,Lb),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,Lb),this.document.removeEventListener("pointerup",this.onDocPointerDone,Lb),this.document.removeEventListener("pointercancel",this.onDocPointerDone,Lb),this.docMoveBound=!1)}getCropStyle(){const{crop:t}=this.props;if(t)return{top:`${t.y}${t.unit}`,left:`${t.x}${t.unit}`,width:`${t.width}${t.unit}`,height:`${t.height}${t.unit}`}}dragCrop(){const{evData:t}=this,i=this.getBox(),s=this.makePixelCrop(i),l=t.clientX-t.startClientX,d=t.clientY-t.startClientY;return s.x=Pb(t.startCropX+l,0,i.width-s.width),s.y=Pb(t.startCropY+d,0,i.height-s.height),s}getPointRegion(t,i,s,l){const{evData:d}=this,u=d.clientX-t.x,p=d.clientY-t.y;let g;l&&i?g=i==="nw"||i==="n"||i==="ne":g=p1?d?[d,d/i]:[u*i,u]:u?[u*i,u]:[d,d/i]}resizeCrop(){const{evData:t}=this,{aspect:i=0,maxWidth:s,maxHeight:l}=this.props,d=this.getBox(),[u,p]=this.resolveMinDimensions(d,i,this.props.minWidth,this.props.minHeight);let g=this.makePixelCrop(d);const _=this.getPointRegion(d,t.ord,u,p),y=t.ord||_;let E=t.clientX-t.startClientX,b=t.clientY-t.startClientY;(u&&y==="nw"||y==="w"||y==="sw")&&(E=Math.min(E,-u)),(p&&y==="nw"||y==="n"||y==="ne")&&(b=Math.min(b,-p));const A={unit:"px",x:0,y:0,width:0,height:0};_==="ne"?(A.x=t.startCropX,A.width=E,i?(A.height=A.width/i,A.y=t.startCropY-A.height):(A.height=Math.abs(b),A.y=t.startCropY-A.height)):_==="se"?(A.x=t.startCropX,A.y=t.startCropY,A.width=E,i?A.height=A.width/i:A.height=b):_==="sw"?(A.x=t.startCropX+E,A.y=t.startCropY,A.width=Math.abs(E),i?A.height=A.width/i:A.height=b):_==="nw"&&(A.x=t.startCropX+E,A.width=Math.abs(E),i?(A.height=A.width/i,A.y=t.startCropY-A.height):(A.height=Math.abs(b),A.y=t.startCropY+b));const N=ofe(A,i,_,d.width,d.height,u,p,s,l);return i||Mh.xyOrds.indexOf(y)>-1?g=N:Mh.xOrds.indexOf(y)>-1?(g.x=N.x,g.width=N.width):Mh.yOrds.indexOf(y)>-1&&(g.y=N.y,g.height=N.height),g.x=Pb(g.x,0,d.width-g.width),g.y=Pb(g.y,0,d.height-g.height),g}renderCropSelection(){const{ariaLabels:t=Mh.defaultProps.ariaLabels,disabled:i,locked:s,renderSelectionAddon:l,ruleOfThirds:d,crop:u}=this.props,p=this.getCropStyle();if(u)return dn.createElement("div",{style:p,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":t.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!i&&!s&&dn.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},dn.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),dn.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),dn.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),dn.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":t.nwDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"nw"),role:"button"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":t.nDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"n"),role:"button"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":t.neDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"ne"),role:"button"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":t.eDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"e"),role:"button"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":t.seDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"se"),role:"button"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":t.sDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"s"),role:"button"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":t.swDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"sw"),role:"button"}),dn.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":t.wDragHandle,onKeyDown:g=>this.onHandlerKeyDown(g,"w"),role:"button"})),l&&dn.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:g=>g.stopPropagation()},l(this.state)),d&&dn.createElement(dn.Fragment,null,dn.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),dn.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(t){const i={...A7,...this.props.crop||{}};return np(i,t.width,t.height)}render(){const{aspect:t,children:i,circularCrop:s,className:l,crop:d,disabled:u,locked:p,style:g,ruleOfThirds:_}=this.props,{cropIsActive:y,newCropIsBeingDrawn:E}=this.state,b=d?this.renderCropSelection():null,A=zYe("ReactCrop",l,y&&"ReactCrop--active",u&&"ReactCrop--disabled",p&&"ReactCrop--locked",E&&"ReactCrop--new-crop",d&&t&&"ReactCrop--fixed-aspect",d&&s&&"ReactCrop--circular-crop",d&&_&&"ReactCrop--rule-of-thirds",!this.dragStarted&&d&&!d.width&&!d.height&&"ReactCrop--invisible-crop",s&&"ReactCrop--no-animate");return dn.createElement("div",{ref:this.componentRef,className:A,style:g},dn.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},i),d?dn.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},dn.createElement("defs",null,dn.createElement("mask",{id:`hole-${this.instanceId}`},dn.createElement("rect",{width:"100%",height:"100%",fill:"white"}),s?dn.createElement("ellipse",{cx:`${d.x+d.width/2}${d.unit}`,cy:`${d.y+d.height/2}${d.unit}`,rx:`${d.width/2}${d.unit}`,ry:`${d.height/2}${d.unit}`,fill:"black"}):dn.createElement("rect",{x:`${d.x}${d.unit}`,y:`${d.y}${d.unit}`,width:`${d.width}${d.unit}`,height:`${d.height}${d.unit}`,fill:"black"}))),dn.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,b)}};t1.xOrds=["e","w"],t1.yOrds=["n","s"],t1.xyOrds=["nw","ne","se","sw"],t1.nudgeStep=1,t1.nudgeStepMedium=10,t1.nudgeStepLarge=100,t1.defaultProps={ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}};let KYe=t1;function qYe(n,t,i){k.useEffect(()=>{const s=setTimeout(()=>{n.apply(void 0,i)},t);return()=>{clearTimeout(s)}},i)}const YYe=Math.PI/180;async function XYe(n,t,i,s=1,l=0){const d=t.getContext("2d");if(!d)throw new Error("No 2d context");const u=n.naturalWidth/n.width,p=n.naturalHeight/n.height,g=window.devicePixelRatio;t.width=Math.floor(i.width*u*g),t.height=Math.floor(i.height*p*g),d.scale(g,g),d.imageSmoothingQuality="low";const _=i.x*u,y=i.y*p,E=l*YYe,b=n.naturalWidth/2,A=n.naturalHeight/2;d.save(),d.translate(-_,-y),d.translate(b,A),d.rotate(E),d.scale(s,s),d.translate(-b,-A),d.drawImage(n,0,0,n.naturalWidth,n.naturalHeight,0,0,n.naturalWidth,n.naturalHeight),d.restore()}function JYe(n,t,i){return GYe(HYe({unit:"%",width:90},i,n,t),n,t)}function QYe({src:n,fileExtension:t,fileType:i,setCropFile:s,setCropFileURL:l,setShowCropper:d}){const[u,p]=k.useState(""),[g,_]=k.useState(),[y,E]=k.useState(),[b,A]=k.useState(1),[N,O]=k.useState(0),[D,P]=k.useState(1),j=k.useRef(null),M=k.useRef(null),V=k.useRef("");k.useRef(null),k.useEffect(()=>{p(n)},[n]);function H(Y){if(D){const{width:le,height:ae}=Y.currentTarget;_(JYe(le,ae,D))}}function $(){console.log("handleCancelCrop"),p(""),_(null),E(null),d(!1)}qYe(async()=>{y!=null&&y.width&&(y!=null&&y.height)&&j.current&&M.current&&(console.log(j.current),console.log(M.current),XYe(j.current,M.current,y,b,N))},100,[y,b,N]);async function Q(){console.log("handleSaveCrop called...");const Y=j.current,le=M.current;if(!Y||!le||!y)throw new Error("Crop canvas does not exist");console.log(le,"previewCanvas --");const ae=Y.naturalWidth/Y.width,te=Y.naturalHeight/Y.height;console.log("scaleX = ",ae),console.log("scaleY = ",te);const de=new OffscreenCanvas(y.width*b,y.height*b),G=de.getContext("2d");if(!G)throw new Error("No 2d context");G.drawImage(le,0,0,le.width,le.height,0,0,de.width,de.height);const ie=await de.convertToBlob(()=>{},{type:i||"image/jpg"});console.log("blob = ",ie),s(ie),V.current&&URL.revokeObjectURL(V.current),V.current=URL.createObjectURL(ie),l(V.current),d(!1),console.log("Download url = ",V.current)}return h.jsx(h.Fragment,{children:h.jsxs("div",{children:[!!y&&h.jsx(h.Fragment,{children:h.jsxs("div",{className:"d-flex justify-content-center mb-2 position-relative",children:[h.jsx(Pt,{type:"button",onClick:$,className:"btn-theme btn-gray flex-grow-1 me-1",children:"Cancel"},"cancel-crop"),h.jsx(Pt,{type:"button",onClick:Q,className:"btn-theme btn-secondary flex-grow-1 ms-1",children:"Submit"},"download-crop")]})}),!!u&&h.jsx(KYe,{crop:g,onChange:(Y,le)=>_(le),onComplete:Y=>{E(Y)},aspect:D,minHeight:100,children:h.jsx("img",{ref:j,alt:"Crop me",src:u,style:{transform:`scale(${b}) rotate(${N}deg)`},onLoad:H})}),!!y&&h.jsx(h.Fragment,{children:h.jsx("div",{className:"opacity-0 visibility-hidden",style:{height:.1},children:h.jsx("canvas",{ref:M,style:{border:"1px solid black",objectFit:"contain",width:y.width,height:y.height}})})})]})})}function ZYe({mediaType:n,mediaSource:t,className:i,contestId:s,handleClose:l,getUserProfile:d}){Ii();const[p,g]=k.useState(),[_,y]=k.useState(!1),[E,b]=k.useState(0),[A,N]=k.useState(null),[O,D]=k.useState(""),[P,j]=k.useState(!1);k.useState(!1);const[M,V]=k.useState(!1);k.useState();const[H,$]=k.useState(),[Q,Y]=k.useState(),[le,ae]=k.useState(),[te,de]=k.useState(!1),G=k.useRef(null),ie=k.useRef(null),_e=k.useRef(null),he={title:""},Ce=uc({}),fe=n?n==="pdf"?".pdf":`${n}/*`:"image/*",me=n!==""?"user":"",Ne=n?`${n}-gallery-file`:"media-gallery-file",Fe=n?`${n}-camera-file`:"media-camera-file";function je(Be){if(console.log("Inside handleChange =",Be.target.files[0]),Be.target.files[0]){g(Be.target.files[0]),y(!0);const Xe=kR(Be.target.files[0].size,{standard:"jedec"});switch(console.log("fileSize = ",Xe," type = ",typeof Xe),N(Xe),n==="image"&&Be.target.files[0].size>25*1024*1024?D(""):D(Be.target.files[0].name),n){case"image":console.log("Image Preview =",G.current);let we=URL.createObjectURL(Be.target.files[0]);$(we),de(!0);break;default:console.log("No case matched...")}}}function Ve(){if(p)switch(g(null),y(!1),D(""),ie.current&&(ie.current.value=""),_e.current&&(_e.current.value=""),n){case"image":console.log("Image Preview =",G.current),G.current.src="",G.current.className="d-none",Y(null),ae("");break;default:console.log("No case matched...")}}const Re=async(Be,{resetForm:Xe})=>{if(console.log("Form Values :",Be),console.log("mediaUrl in onSubmit =",O),O===""){Qt("Upload Valid File","error");return}j(!0);const we={fileextention:p.name.substring(p.name.lastIndexOf(".")+1),modulename:"profile"};console.log("data for getSignedUrl = ",we);const Ge=await hs.getSignedUploadUrl(we),rt=Q,pt={headers:{},onUploadProgress:function(Je){const _t=Math.round(Je.loaded*100/Je.total);b(_t)}};console.log(pt);const Ze=await zr.put(Ge.data.data.uploadURL,rt,pt);if(console.log("result =",Ze),console.log("result status =",Ze.status),Ze.status===200){console.log("uploadProgress =",E);const Je={avatar:Ge.data.data.resourceUrl};console.log("uploadResponseData = ",Je),hs.updateUserProfile(Je).then(_t=>{if(console.log(_t),_t.data.status==="success"){console.log("Suucess res from update = ",_t.data.data.profile);const Xt=_t.data.data.profile;Qt("Profile Photo Updated","success"),Xe({}),V(!1),b(0),j(!1),g(null),y(!1),l(),d();const Ht={avatar:Xt.avatar,firstname:Xt.firstname,lastname:Xt.lastname,name:`${Xt.firstname} ${Xt.lastname}`,phone:Xt.phone};Ai.setAuthUser(Ht)}else _t.data.status==="failed"&&(console.log("ERROR:",_t.data.error),Qt("Failed to update Profile Photo!","error"),Xe({}),V(!1),b(0),j(!1),g(null),y(!1),l())}).catch(_t=>{console.log(_t)})}console.log("Outside if uploadProgress =",E)};return h.jsxs(h.Fragment,{children:[h.jsx(et,{className:"mb-1",children:h.jsxs(et.Body,{className:"p-1 font-13 text-gray4",style:{background:"var(--color-yellow-lighter)"},children:[h.jsx("span",{className:"fw-b font-13",children:"Note: "}),"Upload file size should not exceeds"," ",h.jsx("span",{className:"fw-b text-danger",children:"25 mb"})," ","."]})}),h.jsx(id,{initialValues:he,validationSchema:Ce,onSubmit:Re,children:Be=>{var Xe,we;return h.jsxs(kt,{className:"form_style",onSubmit:Be.handleSubmit,children:[h.jsxs(kt.Group,{className:`form-group rounded_corners mb-2 ${te?"opacity-0 visibility-hidden":""}`,style:{height:te?"0px":"auto"},children:[h.jsx("div",{className:"font-13",children:"Choose upload type"}),h.jsx("div",{className:"btn-wrap d-flex justify-content- mb-1 pt-2",children:h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:ie,name:Fe,id:Fe,className:"uploadMediafile",capture:me,accept:fe,onChange:je}),h.jsx("label",{htmlFor:Fe,className:"justify-content-center px-3 capture-btn",children:"Camera"})]}),h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:_e,name:Ne,id:Ne,className:"uploadMediafile",accept:fe,onChange:je}),h.jsx("label",{htmlFor:Ne,className:"justify-content-center px-3 gallery-btn",children:"Gallery"})]})]})})]}),E>0&&h.jsxs("div",{className:"d-flex justify-content-center align-items-center p-2 pb-0",children:[h.jsx("progress",{value:E,max:"100"}),h.jsx("span",{className:"font-12 fw-sb ps-2",children:`${E}%`})]}),!te&&le&&h.jsxs("div",{className:"preview-container-wrapper position-relative",children:[h.jsx(Pt,{type:"button",className:`btn-theme btn-red btn-sm btn-icon position-absolute rounded-circle ${_?"d-block":"d-none"}`,style:{right:"-10px",top:"-10px",zIndex:1},onClick:Ve,children:h.jsx(Zt,{tag:"delete7",className:"font-26"})}),h.jsx(Jd,{aspectRatio:"1x1",className:"preview-container",children:h.jsx(h.Fragment,{children:n==="image"&&h.jsx("img",{ref:G,src:le,alt:"preview image",className:`img-fluid mx-auto ${le?"d-block":"d-none"} `})})})]}),h.jsx("div",{className:`btn-wrap pt-3 d-flex justify-content-center position-fixed bg-white border-top pt-3 pb-4 px-3 ${te?"opacity-0 visibility-hidden":""}`,style:{bottom:0,right:0,left:0},children:h.jsx(Pt,{type:"submit",disabled:!Be.isValid,className:"btn-theme btn-primary btn-md w-100",children:P?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):(Be.isValid,"Update")})}),te&&h.jsx("div",{className:"my-1",children:H&&h.jsx(QYe,{src:H,fileExtension:(we=p==null?void 0:p.name)==null?void 0:we.substring(((Xe=p==null?void 0:p.name)==null?void 0:Xe.lastIndexOf("."))+1),fileType:p==null?void 0:p.type,setCropFile:Y,setCropFileURL:ae,setShowCropper:de})})]})}})]})}function eXe(n){return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom -modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:"Update Profile Photo"})}),h.jsx(vn.Body,{className:"no-scrollbar",style:{paddingBottom:100},children:h.jsx(ZYe,{mediaType:"image",handleClose:n.handleClose,getUserProfile:n.getUserProfile})})]})})}function tXe(n){var A,N,O,D,P,j,M;const[t,i]=k.useState(!1),[s,l]=k.useState(!1),d=Pv((A=n.userProfile)==null?void 0:A.firstname,(N=n.userProfile)==null?void 0:N.lastname),u=$R((O=n.userProfile)==null?void 0:O.designation),p=(D=n.userProfile)!=null&&D.phone?(P=n.userProfile)==null?void 0:P.phone:"",g=()=>{i(!1)},_=()=>{i(!0)},y=()=>{l(!1)},E=V=>{l(!0)},b=()=>{console.log("handleShowLikesBtnClick called..."),_()};return h.jsxs(h.Fragment,{children:[h.jsxs("div",{children:[h.jsx(TQ,{userProfile:n.userProfile,profileImg:(j=n.userProfile)==null?void 0:j.avatar,profileName:d,profileDesig:u,isEdit:!0,handleEditProfile:b,handleShowUpdateProfilePhotoModal:E}),h.jsxs("div",{className:"profile-quick-contact py-3 d-grid gap-2",children:[h.jsx(tfe,{contactType:"email",contactValue:(M=n.userProfile)==null?void 0:M.email}),h.jsx(tfe,{contactType:"mobile",contactValue:p}),h.jsx(bYe,{userProfile:n.userProfile})]})]}),h.jsx(TYe,{show:t,handleClose:g,userProfile:n.userProfile,getUserProfile:n.getUserProfile}),h.jsx(eXe,{show:s,handleClose:y,getUserProfile:n.getUserProfile})]})}const nXe=[{id:"appre-1",type:"appreciation",text:"Vishal Jagtap appreciated Sourabh Penkar",sender:"Vishal Jagtap",receiver:"Sourabh Penkar",time:"2 hours ago",icon:"star-icon.png",isActionBtn:!1},{id:"appre-2",type:"appreciation",text:"Vishal Jagtap appreciated Sourabh Penkar",sender:"Vishal Jagtap",receiver:"Sourabh Penkar",time:"5 hours ago",icon:"star-icon.png",isActionBtn:!1},{id:"appre-3",type:"appreciation",text:"Vishal Jagtap appreciated Sourabh Penkar",sender:"Vishal Jagtap",receiver:"Sourabh Penkar",time:"1 day ago",icon:"star-icon.png",isActionBtn:!1},{id:"appre-4",type:"appreciation",text:"Vishal Jagtap appreciated Sourabh Penkar",sender:"Vishal Jagtap",receiver:"Sourabh Penkar",time:"1 day ago",icon:"star-icon.png",isActionBtn:!1}],iXe=[{id:"badge-1",type:"badge",text:"Fatest fifty",time:"2 hours ago",points:44,icon:"warranty-icon.png",isActionBtn:!1},{id:"badge-2",type:"badge",text:"Fatest fifty",time:"1 day ago",points:44,icon:"warranty-icon.png",isActionBtn:!1},{id:"badge-3",type:"badge",text:"Fatest fifty",time:"1 day ago",points:44,icon:"warranty-icon.png",isActionBtn:!1},{id:"badge-4",type:"badge",text:"Fatest fifty",time:"5 hours ago",points:44,icon:"warranty-icon.png",isActionBtn:!1}];function rXe(n){k.useState(nXe),k.useState(iXe),k.useState(fY);const[t,i]=k.useState(null),[s,l]=k.useState(!1);k.useContext(QR);async function d(){l(!0),hs.getUserProfile().then(u=>{var p;u.data.status==="success"&&u.data.data&&(console.log("getUserProfile success =",u.data.data),i((p=u.data.data)==null?void 0:p.profile))}).catch(u=>{console.log("getUserProfile() catch block error =",u)}).finally(()=>{l(!1)})}return k.useEffect(()=>{d()},[]),h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[!t&&s&&h.jsx(ci,{type:""}),!t&&!s&&h.jsx(et,{className:"card-theme",children:h.jsx(et.Body,{children:"No data found."})}),t&&h.jsx(tXe,{userProfile:t,getUserProfile:d})]})})}function sXe(){const[n,t]=k.useState(!0),{state:i}=Xo();return console.log("Data passed via navigate = ",i),h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"rati0 ratio-1x1 position-relativ px-0",style:{height:"calc(100vh - 160px)",zIndex:1},children:[n?h.jsx(ci,{type:"iframe-loader"}):null,h.jsx("iframe",{src:`${i.url}`,title:"Metric Reports",onLoad:()=>t(!1),className:`no-scrollbar ${n?"opacity-0":""}`,sandbox:"allow-scripts",height:"100%",width:"100%"})]})})}function aXe(){k.useState(!0);const{state:n}=Xo();return console.log("url = ",n.url),h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"ratio ratio-1x1 position-relative",style:{height:"calc(100vh - 160px)",zIndex:1},children:h.jsx("iframe",{src:`${n.url}`,"default-src":"*",title:"QuickActionContent",height:"100%",width:"100%"})})})}function oXe(n){var N,O,D,P,j,M,V,H,$,Q,Y,le,ae,te,de,G,ie,_e,he,Ce,fe,me,Ne,Fe,je,Ve,Re,Be,Xe,we,Ge,rt,pt,Ze,Je,_t,Xt,Ht,gn,It;k.useState(!1);const t=(N=n==null?void 0:n.item)!=null&&N.name?(O=n==null?void 0:n.item)==null?void 0:O.name:"Default title",i=(D=n.item)!=null&&D.image?(P=n.item)==null?void 0:P.image:"/img/default-bg.jpg",s=(j=n.item)!=null&&j.description?(M=n.item)==null?void 0:M.description:"",l=(H=(V=n.item)==null?void 0:V.user_info)!=null&&H.name?(Q=($=n.item)==null?void 0:$.user_info)==null?void 0:Q.name:"";(le=(Y=n.item)==null?void 0:Y.user_info)!=null&&le.avatar&&((te=(ae=n.item)==null?void 0:ae.user_info)==null||te.avatar);const d=(de=n.item)!=null&&de.comment_count?(G=n.item)==null?void 0:G.comment_count:0,u=(ie=n.item)!=null&&ie.likes_count?(_e=n.item)==null?void 0:_e.likes_count:0,p=(Ce=(he=n.item)==null?void 0:he.completion)!=null&&Ce.count?(me=(fe=n.item)==null?void 0:fe.completion)==null?void 0:me.count:0,g=(Fe=(Ne=n.item)==null?void 0:Ne.completion)!=null&&Fe.total?(Ve=(je=n.item)==null?void 0:je.completion)==null?void 0:Ve.total:0,_=isNaN(Math.round(p/g*100))?0:Math.round(p/g*100);(Re=n.item)!=null&&Re.has_expiry&&((Be=n.item)==null||Be.has_expiry);const y=(we=(Xe=n.item)==null?void 0:Xe.expiry_date)!=null&&we.day?(rt=(Ge=n.item)==null?void 0:Ge.expiry_date)==null?void 0:rt.day:"",E=(Ze=(pt=n.item)==null?void 0:pt.expiry_date)!=null&&Ze.month?(_t=(Je=n.item)==null?void 0:Je.expiry_date)==null?void 0:_t.month:"";(Ht=(Xt=n.item)==null?void 0:Xt.expiry_date)!=null&&Ht.year&&((It=(gn=n.item)==null?void 0:gn.expiry_date)==null||It.year);let b=n!=null&&n.className?n==null?void 0:n.className:"";function A(xt){n.handleMagazineCardClick(xt.id)}return h.jsxs(et,{className:`border-0 card-theme magazine-card overflow-hidden ${b}`,onClick:()=>A(n.item),children:[h.jsx(et.Header,{className:"border-bottom-0 p-2 p-sm-3",children:t}),h.jsx(us,{src:i,alt:`${t} image`,wrapperClassName:"card-img"}),h.jsx(et.Body,{className:"p-2 p-sm-3",children:h.jsxs("div",{className:"font-13 mb-1",children:[h.jsxs("div",{className:"mb-1",children:[h.jsx("span",{className:"text-theme-primary mb-2",children:"Published By: "})," ",l]}),h.jsx(YO,{text:s,linesToShow:2,containerClass:"magazine-info text-gray7",buttonClass:"btn btn-theme btn-link btn-sm btn-gray position-relative ps-0"})]})}),h.jsxs(et.Footer,{className:"px-2 px-sm-3 py-2 py-sm-3 d-flex justify-content-between",children:[h.jsx("div",{className:"d-flex align-items-center flex-grow-1",style:{maxWidth:"120px"},children:g!==0&&h.jsxs(h.Fragment,{children:[h.jsx(bQ,{now:_,className:"flex-grow-1"}),h.jsxs("div",{className:"d-flex font-12 ps-2",children:[h.jsx("span",{className:"fw-b",children:p}),"/",h.jsx("span",{children:g})]})]})}),h.jsxs("div",{className:"btn-wrap ms-2",children:[h.jsxs(Pt,{className:"btn-theme btn-sm btn-likes-light px-2 pe-none visibility-hidden opacity-0",children:[h.jsx(Zt,{tag:"favorite3",className:"font-18"})," ",u]}),h.jsxs(Pt,{className:"btn-theme btn-sm btn-gray px-2 pe-none visibility-hidden opacity-0",children:[h.jsx(Zt,{tag:"message8",className:"font-18"})," ",d]}),h.jsxs(Pt,{className:"btn-theme btn-sm btn-date btn-transparent px-0 pe-none",children:[h.jsx(Zt,{tag:"events1",className:"font-20"})," ",h.jsx("span",{className:"",children:`${y} ${E}`})]})]})]})]})}function lXe(){const n=Ii(),[t,i]=k.useState(""),s=["name","user_info.name"],l=async()=>{var A,N;try{const O=await hs.getAllMagazines();return console.log("fetchAllMagazines RES - ",O),O.data.status==="success"?(console.log("## Dashboard Mags res --",O),(N=(A=O.data)==null?void 0:A.data)==null?void 0:N.magazines):[]}catch{throw new Error("Error fetching all magazines")}},{isPending:d,isFetching:u,isError:p,data:g,error:_}=Qd({queryKey:["allMagazinesQuery"],queryFn:l});console.log("## fetchAllMagazines - ",g);const y=(A,N)=>N.split(".").reduce((O,D)=>O&&O[D],A);k.useMemo(()=>{if(!t.trim())return g;const A=t.toLowerCase();return g.filter(N=>s.some(O=>{const D=y(N,O);return D==null?void 0:D.toLowerCase().includes(A)}))},[g,t]),k.useMemo(()=>{if(!t.trim())return g;const A=t.toLowerCase().split(" ").filter(Boolean);return g.filter(N=>A.some(O=>s.some(D=>{const P=y(N,D);return P==null?void 0:P.toLowerCase().includes(O)})))},[g,t]);const E=k.useMemo(()=>FO(g,t,s),[g,t]);console.log("filteredData3 - ",E);function b(A){A&&n(`/magazines/${A}`,{state:{pageTitle:"Magazine Details"}})}return d?h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"pt-1 pb-1 py-sm-3",children:h.jsx("div",{className:"d-grid gap-3",children:[0,1].map((A,N)=>h.jsx(ci,{type:"magazine",className:"card-theme overflow-hidden"},N))})})}):p?h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx("div",{className:"d-grid gap-3",children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No more responses found."})})})})})}):h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[(g==null?void 0:g.length)>0?h.jsx(h.Fragment,{children:h.jsx("div",{className:"py-0 pt-2 sticky-to",style:{},children:h.jsxs("div",{className:"pb-0",children:[h.jsx(XO,{filters:s,onSearch:A=>i(A),className:"mb-"}),(E==null?void 0:E.length)>0&&t.length>0&&h.jsx(Ga,{size:"sm",className:"px-1 text-gray9",children:`Results found ${E==null?void 0:E.length}`})]})})}):h.jsx(h.Fragment,{}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-2",children:u&&(E==null?void 0:E.length)===0?h.jsx(h.Fragment,{children:[0,1].map((A,N)=>h.jsx(ci,{type:"magazine",className:"card-theme overflow-hidden"},N))}):h.jsx(h.Fragment,{children:(E==null?void 0:E.length)>0?h.jsx("div",{className:"d-grid gap-3",children:E==null?void 0:E.map((A,N)=>h.jsx(oXe,{item:A,className:"shadow-sm ",handleMagazineCardClick:b},A.id))}):h.jsx("div",{className:"d-grid gap-3",children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"Data not found."})})})})})})]})})}var j_e=function(t,i,s){var l=document.head||document.getElementsByTagName("head")[0],d=document.createElement("script");typeof i=="function"&&(s=i,i={}),i=i||{},s=s||function(){},d.type=i.type||"text/javascript",d.charset=i.charset||"utf8",d.async="async"in i?!!i.async:!0,d.src=t,i.attrs&&cXe(d,i.attrs),i.text&&(d.text=""+i.text);var u="onload"in d?lfe:dXe;u(d,s),d.onload||lfe(d,s),l.appendChild(d)};function cXe(n,t){for(var i in t)n.setAttribute(i,t[i])}function lfe(n,t){n.onload=function(){this.onerror=this.onload=null,t(null,n)},n.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),n)}}function dXe(n,t){n.onreadystatechange=function(){this.readyState!="complete"&&this.readyState!="loaded"||(this.onreadystatechange=null,t(null,n))}}var uXe=function(t){return hXe(t)&&!fXe(t)};function hXe(n){return!!n&&typeof n=="object"}function fXe(n){var t=Object.prototype.toString.call(n);return t==="[object RegExp]"||t==="[object Date]"||gXe(n)}var pXe=typeof Symbol=="function"&&Symbol.for,mXe=pXe?Symbol.for("react.element"):60103;function gXe(n){return n.$$typeof===mXe}function vXe(n){return Array.isArray(n)?[]:{}}function eN(n,t){return t.clone!==!1&&t.isMergeableObject(n)?MR(vXe(n),n,t):n}function yXe(n,t,i){return n.concat(t).map(function(s){return eN(s,i)})}function _Xe(n,t){if(!t.customMerge)return MR;var i=t.customMerge(n);return typeof i=="function"?i:MR}function EXe(n){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(n).filter(function(t){return Object.propertyIsEnumerable.call(n,t)}):[]}function cfe(n){return Object.keys(n).concat(EXe(n))}function U_e(n,t){try{return t in n}catch{return!1}}function wXe(n,t){return U_e(n,t)&&!(Object.hasOwnProperty.call(n,t)&&Object.propertyIsEnumerable.call(n,t))}function SXe(n,t,i){var s={};return i.isMergeableObject(n)&&cfe(n).forEach(function(l){s[l]=eN(n[l],i)}),cfe(t).forEach(function(l){wXe(n,l)||(U_e(n,l)&&i.isMergeableObject(t[l])?s[l]=_Xe(l,i)(n[l],t[l],i):s[l]=eN(t[l],i))}),s}function MR(n,t,i){i=i||{},i.arrayMerge=i.arrayMerge||yXe,i.isMergeableObject=i.isMergeableObject||uXe,i.cloneUnlessOtherwiseSpecified=eN;var s=Array.isArray(t),l=Array.isArray(n),d=s===l;return d?s?i.arrayMerge(n,t,i):SXe(n,t,i):eN(t,i)}MR.all=function(t,i){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(s,l){return MR(s,l,i)},{})};var bXe=MR,UU=bXe,CXe=Object.create,FU=Object.defineProperty,TXe=Object.getOwnPropertyDescriptor,RXe=Object.getOwnPropertyNames,xXe=Object.getPrototypeOf,AXe=Object.prototype.hasOwnProperty,IXe=(n,t)=>{for(var i in t)FU(n,i,{get:t[i],enumerable:!0})},F_e=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of RXe(t))!AXe.call(n,l)&&l!==i&&FU(n,l,{get:()=>t[l],enumerable:!(s=TXe(t,l))||s.enumerable});return n},eZ=(n,t,i)=>(i=n!=null?CXe(xXe(n)):{},F_e(t||!n||!n.__esModule?FU(i,"default",{value:n,enumerable:!0}):i,n)),NXe=n=>F_e(FU({},"__esModule",{value:!0}),n),B_e={};IXe(B_e,{callPlayer:()=>$Xe,getConfig:()=>GXe,getSDK:()=>HXe,isBlobUrl:()=>qXe,isMediaStream:()=>KXe,lazy:()=>DXe,omit:()=>WXe,parseEndTime:()=>BXe,parseStartTime:()=>FXe,queryString:()=>zXe,randomString:()=>VXe,supportsWebKitPresentationMode:()=>YXe});var BU=NXe(B_e),OXe=eZ(k),PXe=eZ(j_e),LXe=eZ(UU);const DXe=n=>OXe.default.lazy(async()=>{const t=await n();return typeof t.default=="function"?t:t.default}),kXe=/[?&#](?:start|t)=([0-9hms]+)/,MXe=/[?&#]end=([0-9hms]+)/,pY=/(\d+)(h|m|s)/g,jXe=/^\d+$/;function V_e(n,t){if(n instanceof Array)return;const i=n.match(t);if(i){const s=i[1];if(s.match(pY))return UXe(s);if(jXe.test(s))return parseInt(s)}}function UXe(n){let t=0,i=pY.exec(n);for(;i!==null;){const[,s,l]=i;l==="h"&&(t+=parseInt(s,10)*60*60),l==="m"&&(t+=parseInt(s,10)*60),l==="s"&&(t+=parseInt(s,10)),i=pY.exec(n)}return t}function FXe(n){return V_e(n,kXe)}function BXe(n){return V_e(n,MXe)}function VXe(){return Math.random().toString(36).substr(2,5)}function zXe(n){return Object.keys(n).map(t=>`${t}=${n[t]}`).join("&")}function Z$(n){return window[n]?window[n]:window.exports&&window.exports[n]?window.exports[n]:window.module&&window.module.exports&&window.module.exports[n]?window.module.exports[n]:null}const Db={},HXe=function(t,i,s=null,l=()=>!0,d=PXe.default){const u=Z$(i);return u&&l(u)?Promise.resolve(u):new Promise((p,g)=>{if(Db[t]){Db[t].push({resolve:p,reject:g});return}Db[t]=[{resolve:p,reject:g}];const _=y=>{Db[t].forEach(E=>E.resolve(y))};if(s){const y=window[s];window[s]=function(){y&&y(),_(Z$(i))}}d(t,y=>{y?(Db[t].forEach(E=>E.reject(y)),Db[t]=null):s||_(Z$(i))})})};function GXe(n,t){return(0,LXe.default)(t.config,n.config)}function WXe(n,...t){const i=[].concat(...t),s={},l=Object.keys(n);for(const d of l)i.indexOf(d)===-1&&(s[d]=n[d]);return s}function $Xe(n,...t){if(!this.player||!this.player[n]){let i=`ReactPlayer: ${this.constructor.displayName} player could not call %c${n}%c – `;return this.player?this.player[n]||(i+="The method was not available"):i+="The player was not available",console.warn(i,"font-weight: bold",""),null}return this.player[n](...t)}function KXe(n){return typeof window<"u"&&typeof window.MediaStream<"u"&&n instanceof window.MediaStream}function qXe(n){return/^blob:/.test(n)}function YXe(n=document.createElement("video")){const t=/iPhone|iPod/.test(navigator.userAgent)===!1;return n.webkitSupportsPresentationMode&&typeof n.webkitSetPresentationMode=="function"&&t}var tZ=Object.defineProperty,XXe=Object.getOwnPropertyDescriptor,JXe=Object.getOwnPropertyNames,QXe=Object.prototype.hasOwnProperty,ZXe=(n,t)=>{for(var i in t)tZ(n,i,{get:t[i],enumerable:!0})},eJe=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of JXe(t))!QXe.call(n,l)&&l!==i&&tZ(n,l,{get:()=>t[l],enumerable:!(s=XXe(t,l))||s.enumerable});return n},tJe=n=>eJe(tZ({},"__esModule",{value:!0}),n),z_e={};ZXe(z_e,{AUDIO_EXTENSIONS:()=>nZ,DASH_EXTENSIONS:()=>t2e,FLV_EXTENSIONS:()=>n2e,HLS_EXTENSIONS:()=>rZ,MATCH_URL_DAILYMOTION:()=>J_e,MATCH_URL_FACEBOOK:()=>W_e,MATCH_URL_FACEBOOK_WATCH:()=>$_e,MATCH_URL_KALTURA:()=>e2e,MATCH_URL_MIXCLOUD:()=>Q_e,MATCH_URL_SOUNDCLOUD:()=>H_e,MATCH_URL_STREAMABLE:()=>K_e,MATCH_URL_TWITCH_CHANNEL:()=>X_e,MATCH_URL_TWITCH_VIDEO:()=>Y_e,MATCH_URL_VIDYARD:()=>Z_e,MATCH_URL_VIMEO:()=>G_e,MATCH_URL_WISTIA:()=>q_e,MATCH_URL_YOUTUBE:()=>mY,VIDEO_EXTENSIONS:()=>iZ,canPlay:()=>iJe});var nJe=tJe(z_e),dfe=BU;const mY=/(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//,H_e=/(?:soundcloud\.com|snd\.sc)\/[^.]+$/,G_e=/vimeo\.com\/(?!progressive_redirect).+/,W_e=/^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/,$_e=/^https?:\/\/fb\.watch\/.+$/,K_e=/streamable\.com\/([a-z0-9]+)$/,q_e=/(?:wistia\.(?:com|net)|wi\.st)\/(?:medias|embed)\/(?:iframe\/)?([^?]+)/,Y_e=/(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/,X_e=/(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/,J_e=/^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/,Q_e=/mixcloud\.com\/([^/]+\/[^/]+)/,Z_e=/vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/,e2e=/^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/,nZ=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,iZ=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,rZ=/\.(m3u8)($|\?)/i,t2e=/\.(mpd)($|\?)/i,n2e=/\.(flv)($|\?)/i,gY=n=>{if(n instanceof Array){for(const t of n)if(typeof t=="string"&&gY(t)||gY(t.src))return!0;return!1}return(0,dfe.isMediaStream)(n)||(0,dfe.isBlobUrl)(n)?!0:nZ.test(n)||iZ.test(n)||rZ.test(n)||t2e.test(n)||n2e.test(n)},iJe={youtube:n=>n instanceof Array?n.every(t=>mY.test(t)):mY.test(n),soundcloud:n=>H_e.test(n)&&!nZ.test(n),vimeo:n=>G_e.test(n)&&!iZ.test(n)&&!rZ.test(n),facebook:n=>W_e.test(n)||$_e.test(n),streamable:n=>K_e.test(n),wistia:n=>q_e.test(n),twitch:n=>Y_e.test(n)||X_e.test(n),dailymotion:n=>J_e.test(n),mixcloud:n=>Q_e.test(n),vidyard:n=>Z_e.test(n),kaltura:n=>e2e.test(n),file:gY};var sZ=Object.defineProperty,rJe=Object.getOwnPropertyDescriptor,sJe=Object.getOwnPropertyNames,aJe=Object.prototype.hasOwnProperty,oJe=(n,t)=>{for(var i in t)sZ(n,i,{get:t[i],enumerable:!0})},lJe=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of sJe(t))!aJe.call(n,l)&&l!==i&&sZ(n,l,{get:()=>t[l],enumerable:!(s=rJe(t,l))||s.enumerable});return n},cJe=n=>lJe(sZ({},"__esModule",{value:!0}),n),i2e={};oJe(i2e,{default:()=>uJe});var dJe=cJe(i2e),Ed=BU,jc=nJe,uJe=[{key:"youtube",name:"YouTube",canPlay:jc.canPlay.youtube,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./YouTube-DOJoJw1y.js").then(n=>n.Y),__vite__mapDeps([])))},{key:"soundcloud",name:"SoundCloud",canPlay:jc.canPlay.soundcloud,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./SoundCloud-BHo3DXFQ.js").then(n=>n.S),__vite__mapDeps([])))},{key:"vimeo",name:"Vimeo",canPlay:jc.canPlay.vimeo,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Vimeo-7wPXSkaO.js").then(n=>n.V),__vite__mapDeps([])))},{key:"facebook",name:"Facebook",canPlay:jc.canPlay.facebook,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Facebook-GdwjnNFJ.js").then(n=>n.F),__vite__mapDeps([])))},{key:"streamable",name:"Streamable",canPlay:jc.canPlay.streamable,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Streamable-CLR8-BXj.js").then(n=>n.S),__vite__mapDeps([])))},{key:"wistia",name:"Wistia",canPlay:jc.canPlay.wistia,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Wistia-C0mY-yNe.js").then(n=>n.W),__vite__mapDeps([])))},{key:"twitch",name:"Twitch",canPlay:jc.canPlay.twitch,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Twitch-D8aS7IV_.js").then(n=>n.T),__vite__mapDeps([])))},{key:"dailymotion",name:"DailyMotion",canPlay:jc.canPlay.dailymotion,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./DailyMotion-i-TJ9DOC.js").then(n=>n.D),__vite__mapDeps([])))},{key:"mixcloud",name:"Mixcloud",canPlay:jc.canPlay.mixcloud,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Mixcloud-c3jBxJWc.js").then(n=>n.M),__vite__mapDeps([])))},{key:"vidyard",name:"Vidyard",canPlay:jc.canPlay.vidyard,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Vidyard-D-tpEbuM.js").then(n=>n.V),__vite__mapDeps([])))},{key:"kaltura",name:"Kaltura",canPlay:jc.canPlay.kaltura,lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./Kaltura-DDJp8-tW.js").then(n=>n.K),__vite__mapDeps([])))},{key:"file",name:"FilePlayer",canPlay:jc.canPlay.file,canEnablePIP:n=>jc.canPlay.file(n)&&(document.pictureInPictureEnabled||(0,Ed.supportsWebKitPresentationMode)())&&!jc.AUDIO_EXTENSIONS.test(n),lazyPlayer:(0,Ed.lazy)(()=>Xi(()=>import("./FilePlayer-BgLtBIje.js").then(n=>n.F),__vite__mapDeps([])))}],ufe=Number.isNaN||function(t){return typeof t=="number"&&t!==t};function hJe(n,t){return!!(n===t||ufe(n)&&ufe(t))}function fJe(n,t){if(n.length!==t.length)return!1;for(var i=0;i{for(var i in t)zU(n,i,{get:t[i],enumerable:!0})},s2e=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of SJe(t))!CJe.call(n,l)&&l!==i&&zU(n,l,{get:()=>t[l],enumerable:!(s=wJe(t,l))||s.enumerable});return n},RJe=(n,t,i)=>(i=n!=null?EJe(bJe(n)):{},s2e(t||!n||!n.__esModule?zU(i,"default",{value:n,enumerable:!0}):i,n)),xJe=n=>s2e(zU({},"__esModule",{value:!0}),n),a2e={};TJe(a2e,{defaultProps:()=>NJe,propTypes:()=>IJe});var o2e=xJe(a2e),AJe=RJe(uQ);const{string:Vl,bool:zl,number:kb,array:eK,oneOfType:gI,shape:Lu,object:Hl,func:Ma,node:hfe}=AJe.default,IJe={url:gI([Vl,eK,Hl]),playing:zl,loop:zl,controls:zl,volume:kb,muted:zl,playbackRate:kb,width:gI([Vl,kb]),height:gI([Vl,kb]),style:Hl,progressInterval:kb,playsinline:zl,pip:zl,stopOnUnmount:zl,light:gI([zl,Vl,Hl]),playIcon:hfe,previewTabIndex:kb,fallback:hfe,oEmbedUrl:Vl,wrapper:gI([Vl,Ma,Lu({render:Ma.isRequired})]),config:Lu({soundcloud:Lu({options:Hl}),youtube:Lu({playerVars:Hl,embedOptions:Hl,onUnstarted:Ma}),facebook:Lu({appId:Vl,version:Vl,playerId:Vl,attributes:Hl}),dailymotion:Lu({params:Hl}),vimeo:Lu({playerOptions:Hl,title:Vl}),file:Lu({attributes:Hl,tracks:eK,forceVideo:zl,forceAudio:zl,forceHLS:zl,forceSafariHLS:zl,forceDisableHls:zl,forceDASH:zl,forceFLV:zl,hlsOptions:Hl,hlsVersion:Vl,dashVersion:Vl,flvVersion:Vl}),wistia:Lu({options:Hl,playerId:Vl,customControls:eK}),mixcloud:Lu({options:Hl}),twitch:Lu({options:Hl,playerId:Vl}),vidyard:Lu({options:Hl})}),onReady:Ma,onStart:Ma,onPlay:Ma,onPause:Ma,onBuffer:Ma,onBufferEnd:Ma,onEnded:Ma,onError:Ma,onDuration:Ma,onSeek:Ma,onPlaybackRateChange:Ma,onPlaybackQualityChange:Ma,onProgress:Ma,onClickPreview:Ma,onEnablePIP:Ma,onDisablePIP:Ma},Lo=()=>{},NJe={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:"640px",height:"360px",style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:"div",previewTabIndex:0,oEmbedUrl:"https://noembed.com/embed?url={url}",config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:Lo},facebook:{appId:"1309697205772819",version:"v3.3",playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:"1.1.4",dashVersion:"3.1.3",flvVersion:"1.5.0",forceDisableHls:!1},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:Lo,onStart:Lo,onPlay:Lo,onPause:Lo,onBuffer:Lo,onBufferEnd:Lo,onEnded:Lo,onError:Lo,onDuration:Lo,onSeek:Lo,onPlaybackRateChange:Lo,onPlaybackQualityChange:Lo,onProgress:Lo,onClickPreview:Lo,onEnablePIP:Lo,onDisablePIP:Lo};var OJe=Object.create,JO=Object.defineProperty,PJe=Object.getOwnPropertyDescriptor,LJe=Object.getOwnPropertyNames,DJe=Object.getPrototypeOf,kJe=Object.prototype.hasOwnProperty,MJe=(n,t,i)=>t in n?JO(n,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[t]=i,jJe=(n,t)=>{for(var i in t)JO(n,i,{get:t[i],enumerable:!0})},l2e=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of LJe(t))!kJe.call(n,l)&&l!==i&&JO(n,l,{get:()=>t[l],enumerable:!(s=PJe(t,l))||s.enumerable});return n},c2e=(n,t,i)=>(i=n!=null?OJe(DJe(n)):{},l2e(t||!n||!n.__esModule?JO(i,"default",{value:n,enumerable:!0}):i,n)),UJe=n=>l2e(JO({},"__esModule",{value:!0}),n),ca=(n,t,i)=>(MJe(n,typeof t!="symbol"?t+"":t,i),i),d2e={};jJe(d2e,{default:()=>HU});var FJe=UJe(d2e),ffe=c2e(k),BJe=c2e(VU),u2e=o2e,VJe=BU;const zJe=5e3;let HU=class extends ffe.Component{constructor(){super(...arguments),ca(this,"mounted",!1),ca(this,"isReady",!1),ca(this,"isPlaying",!1),ca(this,"isLoading",!0),ca(this,"loadOnReady",null),ca(this,"startOnPlay",!0),ca(this,"seekOnPlay",null),ca(this,"onDurationCalled",!1),ca(this,"handlePlayerMount",t=>{if(this.player){this.progress();return}this.player=t,this.player.load(this.props.url),this.progress()}),ca(this,"getInternalPlayer",t=>this.player?this.player[t]:null),ca(this,"progress",()=>{if(this.props.url&&this.player&&this.isReady){const t=this.getCurrentTime()||0,i=this.getSecondsLoaded(),s=this.getDuration();if(s){const l={playedSeconds:t,played:t/s};i!==null&&(l.loadedSeconds=i,l.loaded=i/s),(l.playedSeconds!==this.prevPlayed||l.loadedSeconds!==this.prevLoaded)&&this.props.onProgress(l),this.prevPlayed=l.playedSeconds,this.prevLoaded=l.loadedSeconds}}this.progressTimeout=setTimeout(this.progress,this.props.progressFrequency||this.props.progressInterval)}),ca(this,"handleReady",()=>{if(!this.mounted)return;this.isReady=!0,this.isLoading=!1;const{onReady:t,playing:i,volume:s,muted:l}=this.props;t(),!l&&s!==null&&this.player.setVolume(s),this.loadOnReady?(this.player.load(this.loadOnReady,!0),this.loadOnReady=null):i&&this.player.play(),this.handleDurationCheck()}),ca(this,"handlePlay",()=>{this.isPlaying=!0,this.isLoading=!1;const{onStart:t,onPlay:i,playbackRate:s}=this.props;this.startOnPlay&&(this.player.setPlaybackRate&&s!==1&&this.player.setPlaybackRate(s),t(),this.startOnPlay=!1),i(),this.seekOnPlay&&(this.seekTo(this.seekOnPlay),this.seekOnPlay=null),this.handleDurationCheck()}),ca(this,"handlePause",t=>{this.isPlaying=!1,this.isLoading||this.props.onPause(t)}),ca(this,"handleEnded",()=>{const{activePlayer:t,loop:i,onEnded:s}=this.props;t.loopOnEnded&&i&&this.seekTo(0),i||(this.isPlaying=!1,s())}),ca(this,"handleError",(...t)=>{this.isLoading=!1,this.props.onError(...t)}),ca(this,"handleDurationCheck",()=>{clearTimeout(this.durationCheckTimeout);const t=this.getDuration();t?this.onDurationCalled||(this.props.onDuration(t),this.onDurationCalled=!0):this.durationCheckTimeout=setTimeout(this.handleDurationCheck,100)}),ca(this,"handleLoaded",()=>{this.isLoading=!1})}componentDidMount(){this.mounted=!0}componentWillUnmount(){clearTimeout(this.progressTimeout),clearTimeout(this.durationCheckTimeout),this.isReady&&this.props.stopOnUnmount&&(this.player.stop(),this.player.disablePIP&&this.player.disablePIP()),this.mounted=!1}componentDidUpdate(t){if(!this.player)return;const{url:i,playing:s,volume:l,muted:d,playbackRate:u,pip:p,loop:g,activePlayer:_,disableDeferredLoading:y}=this.props;if(!(0,BJe.default)(t.url,i)){if(this.isLoading&&!_.forceLoad&&!y&&!(0,VJe.isMediaStream)(i)){console.warn(`ReactPlayer: the attempt to load ${i} is being deferred until the player has loaded`),this.loadOnReady=i;return}this.isLoading=!0,this.startOnPlay=!0,this.onDurationCalled=!1,this.player.load(i,this.isReady)}!t.playing&&s&&!this.isPlaying&&this.player.play(),t.playing&&!s&&this.isPlaying&&this.player.pause(),!t.pip&&p&&this.player.enablePIP&&this.player.enablePIP(),t.pip&&!p&&this.player.disablePIP&&this.player.disablePIP(),t.volume!==l&&l!==null&&this.player.setVolume(l),t.muted!==d&&(d?this.player.mute():(this.player.unmute(),l!==null&&setTimeout(()=>this.player.setVolume(l)))),t.playbackRate!==u&&this.player.setPlaybackRate&&this.player.setPlaybackRate(u),t.loop!==g&&this.player.setLoop&&this.player.setLoop(g)}getDuration(){return this.isReady?this.player.getDuration():null}getCurrentTime(){return this.isReady?this.player.getCurrentTime():null}getSecondsLoaded(){return this.isReady?this.player.getSecondsLoaded():null}seekTo(t,i,s){if(!this.isReady){t!==0&&(this.seekOnPlay=t,setTimeout(()=>{this.seekOnPlay=null},zJe));return}if(i?i==="fraction":t>0&&t<1){const d=this.player.getDuration();if(!d){console.warn("ReactPlayer: could not seek using fraction – duration not yet available");return}this.player.seekTo(d*t,s);return}this.player.seekTo(t,s)}render(){const t=this.props.activePlayer;return t?ffe.default.createElement(t,{...this.props,onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError}):null}};ca(HU,"displayName","Player");ca(HU,"propTypes",u2e.propTypes);ca(HU,"defaultProps",u2e.defaultProps);var HJe=Object.create,QO=Object.defineProperty,GJe=Object.getOwnPropertyDescriptor,WJe=Object.getOwnPropertyNames,$Je=Object.getPrototypeOf,KJe=Object.prototype.hasOwnProperty,qJe=(n,t,i)=>t in n?QO(n,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[t]=i,YJe=(n,t)=>{for(var i in t)QO(n,i,{get:t[i],enumerable:!0})},h2e=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of WJe(t))!KJe.call(n,l)&&l!==i&&QO(n,l,{get:()=>t[l],enumerable:!(s=GJe(t,l))||s.enumerable});return n},ZO=(n,t,i)=>(i=n!=null?HJe($Je(n)):{},h2e(t||!n||!n.__esModule?QO(i,"default",{value:n,enumerable:!0}):i,n)),XJe=n=>h2e(QO({},"__esModule",{value:!0}),n),oa=(n,t,i)=>(qJe(n,typeof t!="symbol"?t+"":t,i),i),f2e={};YJe(f2e,{createReactPlayer:()=>sQe});var JJe=XJe(f2e),zb=ZO(k),QJe=ZO(UU),tK=ZO(r2e),pfe=ZO(VU),kI=o2e,p2e=BU,ZJe=ZO(FJe);const eQe=(0,p2e.lazy)(()=>Xi(()=>import("./Preview-CRUaPRKG.js").then(n=>n.P),__vite__mapDeps([]))),tQe=typeof window<"u"&&window.document,nQe=typeof Vs<"u"&&Vs.window&&Vs.window.document,iQe=Object.keys(kI.propTypes),rQe=tQe||nQe?zb.Suspense:()=>null,vI=[],sQe=(n,t)=>{var i;return i=class extends zb.Component{constructor(){super(...arguments),oa(this,"state",{showPreview:!!this.props.light}),oa(this,"references",{wrapper:s=>{this.wrapper=s},player:s=>{this.player=s}}),oa(this,"handleClickPreview",s=>{this.setState({showPreview:!1}),this.props.onClickPreview(s)}),oa(this,"showPreview",()=>{this.setState({showPreview:!0})}),oa(this,"getDuration",()=>this.player?this.player.getDuration():null),oa(this,"getCurrentTime",()=>this.player?this.player.getCurrentTime():null),oa(this,"getSecondsLoaded",()=>this.player?this.player.getSecondsLoaded():null),oa(this,"getInternalPlayer",(s="player")=>this.player?this.player.getInternalPlayer(s):null),oa(this,"seekTo",(s,l,d)=>{if(!this.player)return null;this.player.seekTo(s,l,d)}),oa(this,"handleReady",()=>{this.props.onReady(this)}),oa(this,"getActivePlayer",(0,tK.default)(s=>{for(const l of[...vI,...n])if(l.canPlay(s))return l;return t||null})),oa(this,"getConfig",(0,tK.default)((s,l)=>{const{config:d}=this.props;return QJe.default.all([kI.defaultProps.config,kI.defaultProps.config[l]||{},d,d[l]||{}])})),oa(this,"getAttributes",(0,tK.default)(s=>(0,p2e.omit)(this.props,iQe))),oa(this,"renderActivePlayer",s=>{if(!s)return null;const l=this.getActivePlayer(s);if(!l)return null;const d=this.getConfig(s,l.key);return zb.default.createElement(ZJe.default,{...this.props,key:l.key,ref:this.references.player,config:d,activePlayer:l.lazyPlayer||l,onReady:this.handleReady})})}shouldComponentUpdate(s,l){return!(0,pfe.default)(this.props,s)||!(0,pfe.default)(this.state,l)}componentDidUpdate(s){const{light:l}=this.props;!s.light&&l&&this.setState({showPreview:!0}),s.light&&!l&&this.setState({showPreview:!1})}renderPreview(s){if(!s)return null;const{light:l,playIcon:d,previewTabIndex:u,oEmbedUrl:p}=this.props;return zb.default.createElement(eQe,{url:s,light:l,playIcon:d,previewTabIndex:u,oEmbedUrl:p,onClick:this.handleClickPreview})}render(){const{url:s,style:l,width:d,height:u,fallback:p,wrapper:g}=this.props,{showPreview:_}=this.state,y=this.getAttributes(s),E=typeof g=="string"?this.references.wrapper:void 0;return zb.default.createElement(g,{ref:E,style:{...l,width:d,height:u},...y},zb.default.createElement(rQe,{fallback:p},_?this.renderPreview(s):this.renderActivePlayer(s)))}},oa(i,"displayName","ReactPlayer"),oa(i,"propTypes",kI.propTypes),oa(i,"defaultProps",kI.defaultProps),oa(i,"addCustomPlayer",s=>{vI.push(s)}),oa(i,"removeCustomPlayers",()=>{vI.length=0}),oa(i,"canPlay",s=>{for(const l of[...vI,...n])if(l.canPlay(s))return!0;return!1}),oa(i,"canEnablePIP",s=>{for(const l of[...vI,...n])if(l.canEnablePIP&&l.canEnablePIP(s))return!0;return!1}),i};var aQe=Object.create,GU=Object.defineProperty,oQe=Object.getOwnPropertyDescriptor,lQe=Object.getOwnPropertyNames,cQe=Object.getPrototypeOf,dQe=Object.prototype.hasOwnProperty,uQe=(n,t)=>{for(var i in t)GU(n,i,{get:t[i],enumerable:!0})},m2e=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of lQe(t))!dQe.call(n,l)&&l!==i&&GU(n,l,{get:()=>t[l],enumerable:!(s=oQe(t,l))||s.enumerable});return n},hQe=(n,t,i)=>(i=n!=null?aQe(cQe(n)):{},m2e(t||!n||!n.__esModule?GU(i,"default",{value:n,enumerable:!0}):i,n)),fQe=n=>m2e(GU({},"__esModule",{value:!0}),n),g2e={};uQe(g2e,{default:()=>vQe});var pQe=fQe(g2e),vY=hQe(dJe),mQe=JJe;const gQe=vY.default[vY.default.length-1];var vQe=(0,mQe.createReactPlayer)(vY.default,gQe);const XE=Mv(pQe),ec=typeof ic=="object"&&ic+""=="[object process]"&&!ic.versions.nw&&!(ic.versions.electron&&ic.type&&ic.type!=="browser"),yY=[.001,0,0,.001,0,0],nK=1.35,Fd={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},c1={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},v2e="pdfjs_internal_editor_",_i={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,SIGNATURE:101,COMMENT:102},cr={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_THICKNESS:32,HIGHLIGHT_FREE:33,HIGHLIGHT_SHOW_ALL:34,DRAW_STEP:41},yQe={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},hl={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},rM={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},Ta={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},Hb={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},WU={ERRORS:0,WARNINGS:1,INFOS:5},I7={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93,rawFillPath:94},Tk={moveTo:0,lineTo:1,curveTo:2,closePath:3},_Qe={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let $U=WU.WARNINGS;function EQe(n){Number.isInteger(n)&&($U=n)}function wQe(){return $U}function KU(n){$U>=WU.INFOS&&console.log(`Info: ${n}`)}function Ei(n){$U>=WU.WARNINGS&&console.log(`Warning: ${n}`)}function Zr(n){throw new Error(n)}function Aa(n,t){n||Zr(t)}function SQe(n){switch(n==null?void 0:n.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function y2e(n,t=null,i=null){if(!n)return null;if(i&&typeof n=="string"){if(i.addDefaultProtocol&&n.startsWith("www.")){const l=n.match(/\./g);(l==null?void 0:l.length)>=2&&(n=`http://${n}`)}if(i.tryConvertEncoding)try{n=xQe(n)}catch{}}const s=t?URL.parse(n,t):URL.parse(n);return SQe(s)?s:null}function _2e(n,t,i=!1){const s=URL.parse(n);return s?(s.hash=t,s.href):i&&y2e(n,"http://example.com")?n.split("#",1)[0]+`${t?`#${t}`:""}`:""}function Ki(n,t,i,s=!1){return Object.defineProperty(n,t,{value:i,enumerable:!s,configurable:!0,writable:!1}),i}const JE=function(){function t(i,s){this.message=i,this.name=s}return t.prototype=new Error,t.constructor=t,t}();class mfe extends JE{constructor(t,i){super(t,"PasswordException"),this.code=i}}class iK extends JE{constructor(t,i){super(t,"UnknownErrorException"),this.details=i}}class _Y extends JE{constructor(t){super(t,"InvalidPDFException")}}class N7 extends JE{constructor(t,i,s){super(t,"ResponseException"),this.status=i,this.missing=s}}class bQe extends JE{constructor(t){super(t,"FormatError")}}class Dv extends JE{constructor(t){super(t,"AbortException")}}function E2e(n){(typeof n!="object"||(n==null?void 0:n.length)===void 0)&&Zr("Invalid argument for bytesToString");const t=n.length,i=8192;if(t>24&255,n>>16&255,n>>8&255,n&255)}function TQe(){const n=new Uint8Array(4);return n[0]=1,new Uint32Array(n.buffer,0,1)[0]===1}function RQe(){try{return new Function(""),!0}catch{return!1}}class qo{static get isLittleEndian(){return Ki(this,"isLittleEndian",TQe())}static get isEvalSupported(){return Ki(this,"isEvalSupported",RQe())}static get isOffscreenCanvasSupported(){return Ki(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas<"u")}static get isImageDecoderSupported(){return Ki(this,"isImageDecoderSupported",typeof ImageDecoder<"u")}static get platform(){const{platform:t,userAgent:i}=navigator;return Ki(this,"platform",{isAndroid:i.includes("Android"),isLinux:t.includes("Linux"),isMac:t.includes("Mac"),isWindows:t.includes("Win"),isFirefox:i.includes("Firefox")})}static get isCSSRoundSupported(){var t,i;return Ki(this,"isCSSRoundSupported",(i=(t=globalThis.CSS)==null?void 0:t.supports)==null?void 0:i.call(t,"width: round(1.5px, 1px)"))}}const rK=Array.from(Array(256).keys(),n=>n.toString(16).padStart(2,"0"));var BC,sM,gN,EY;class zn{static makeHexColor(t,i,s){return`#${rK[t]}${rK[i]}${rK[s]}`}static scaleMinMax(t,i){let s;t[0]?(t[0]<0&&(s=i[0],i[0]=i[2],i[2]=s),i[0]*=t[0],i[2]*=t[0],t[3]<0&&(s=i[1],i[1]=i[3],i[3]=s),i[1]*=t[3],i[3]*=t[3]):(s=i[0],i[0]=i[1],i[1]=s,s=i[2],i[2]=i[3],i[3]=s,t[1]<0&&(s=i[1],i[1]=i[3],i[3]=s),i[1]*=t[1],i[3]*=t[1],t[2]<0&&(s=i[0],i[0]=i[2],i[2]=s),i[0]*=t[2],i[2]*=t[2]),i[0]+=t[4],i[1]+=t[5],i[2]+=t[4],i[3]+=t[5]}static transform(t,i){return[t[0]*i[0]+t[2]*i[1],t[1]*i[0]+t[3]*i[1],t[0]*i[2]+t[2]*i[3],t[1]*i[2]+t[3]*i[3],t[0]*i[4]+t[2]*i[5]+t[4],t[1]*i[4]+t[3]*i[5]+t[5]]}static applyTransform(t,i,s=0){const l=t[s],d=t[s+1];t[s]=l*i[0]+d*i[2]+i[4],t[s+1]=l*i[1]+d*i[3]+i[5]}static applyTransformToBezier(t,i,s=0){const l=i[0],d=i[1],u=i[2],p=i[3],g=i[4],_=i[5];for(let y=0;y<6;y+=2){const E=t[s+y],b=t[s+y+1];t[s+y]=E*l+b*u+g,t[s+y+1]=E*d+b*p+_}}static applyInverseTransform(t,i){const s=t[0],l=t[1],d=i[0]*i[3]-i[1]*i[2];t[0]=(s*i[3]-l*i[2]+i[2]*i[5]-i[4]*i[3])/d,t[1]=(-s*i[1]+l*i[0]+i[4]*i[1]-i[5]*i[0])/d}static axialAlignedBoundingBox(t,i,s){const l=i[0],d=i[1],u=i[2],p=i[3],g=i[4],_=i[5],y=t[0],E=t[1],b=t[2],A=t[3];let N=l*y+g,O=N,D=l*b+g,P=D,j=p*E+_,M=j,V=p*A+_,H=V;if(d!==0||u!==0){const $=d*y,Q=d*b,Y=u*E,le=u*A;N+=Y,P+=Y,D+=le,O+=le,j+=$,H+=$,V+=Q,M+=Q}s[0]=Math.min(s[0],N,D,O,P),s[1]=Math.min(s[1],j,V,M,H),s[2]=Math.max(s[2],N,D,O,P),s[3]=Math.max(s[3],j,V,M,H)}static inverseTransform(t){const i=t[0]*t[3]-t[1]*t[2];return[t[3]/i,-t[1]/i,-t[2]/i,t[0]/i,(t[2]*t[5]-t[4]*t[3])/i,(t[4]*t[1]-t[5]*t[0])/i]}static singularValueDecompose2dScale(t,i){const s=t[0],l=t[1],d=t[2],u=t[3],p=s**2+l**2,g=s*d+l*u,_=d**2+u**2,y=(p+_)/2,E=Math.sqrt(y**2-(p*_-g**2));i[0]=Math.sqrt(y+E||1),i[1]=Math.sqrt(y-E||1)}static normalizeRect(t){const i=t.slice(0);return t[0]>t[2]&&(i[0]=t[2],i[2]=t[0]),t[1]>t[3]&&(i[1]=t[3],i[3]=t[1]),i}static intersect(t,i){const s=Math.max(Math.min(t[0],t[2]),Math.min(i[0],i[2])),l=Math.min(Math.max(t[0],t[2]),Math.max(i[0],i[2]));if(s>l)return null;const d=Math.max(Math.min(t[1],t[3]),Math.min(i[1],i[3])),u=Math.min(Math.max(t[1],t[3]),Math.max(i[1],i[3]));return d>u?null:[s,d,l,u]}static pointBoundingBox(t,i,s){s[0]=Math.min(s[0],t),s[1]=Math.min(s[1],i),s[2]=Math.max(s[2],t),s[3]=Math.max(s[3],i)}static rectBoundingBox(t,i,s,l,d){d[0]=Math.min(d[0],t,s),d[1]=Math.min(d[1],i,l),d[2]=Math.max(d[2],t,s),d[3]=Math.max(d[3],i,l)}static bezierBoundingBox(t,i,s,l,d,u,p,g,_){_[0]=Math.min(_[0],t,p),_[1]=Math.min(_[1],i,g),_[2]=Math.max(_[2],t,p),_[3]=Math.max(_[3],i,g),pe(this,gN,EY).call(this,t,s,d,p,i,l,u,g,3*(-t+3*(s-d)+p),6*(t-2*s+d),3*(s-t),_),pe(this,gN,EY).call(this,t,s,d,p,i,l,u,g,3*(-i+3*(l-u)+g),6*(i-2*l+u),3*(l-i),_)}}BC=new WeakSet,sM=function(t,i,s,l,d,u,p,g,_,y){if(_<=0||_>=1)return;const E=1-_,b=_*_,A=b*_,N=E*(E*(E*t+3*_*i)+3*b*s)+A*l,O=E*(E*(E*d+3*_*u)+3*b*p)+A*g;y[0]=Math.min(y[0],N),y[1]=Math.min(y[1],O),y[2]=Math.max(y[2],N),y[3]=Math.max(y[3],O)},gN=new WeakSet,EY=function(t,i,s,l,d,u,p,g,_,y,E,b){if(Math.abs(_)<1e-12){Math.abs(y)>=1e-12&&pe(this,BC,sM).call(this,t,i,s,l,d,u,p,g,-E/y,b);return}const A=y**2-4*E*_;if(A<0)return;const N=Math.sqrt(A),O=2*_;pe(this,BC,sM).call(this,t,i,s,l,d,u,p,g,(-y+N)/O,b),pe(this,BC,sM).call(this,t,i,s,l,d,u,p,g,(-y-N)/O,b)},ee(zn,BC),ee(zn,gN);function xQe(n){return decodeURIComponent(escape(n))}let sK=null,gfe=null;function AQe(n){return sK||(sK=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,gfe=new Map([["ſt","ſt"]])),n.replaceAll(sK,(t,i,s)=>i?i.normalize("NFKC"):gfe.get(s))}function w2e(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const n=new Uint8Array(32);return crypto.getRandomValues(n),E2e(n)}const aZ="pdfjs_internal_id_";function IQe(n,t,i){if(!Array.isArray(i)||i.length<2)return!1;const[s,l,...d]=i;if(!n(s)&&!Number.isInteger(s)||!t(l))return!1;const u=d.length;let p=!0;switch(l.name){case"XYZ":if(u<2||u>3)return!1;break;case"Fit":case"FitB":return u===0;case"FitH":case"FitBH":case"FitV":case"FitBV":if(u>1)return!1;break;case"FitR":if(u!==4)return!1;p=!1;break;default:return!1}for(const g of d)if(!(typeof g=="number"||p&&g===null))return!1;return!0}function tc(n,t,i){return Math.min(Math.max(n,t),i)}function S2e(n){return Uint8Array.prototype.toBase64?n.toBase64():btoa(E2e(n))}function NQe(n){return Uint8Array.fromBase64?Uint8Array.fromBase64(n):eP(atob(n))}typeof Promise.try!="function"&&(Promise.try=function(n,...t){return new Promise(i=>{i(n(...t))})});typeof Math.sumPrecise!="function"&&(Math.sumPrecise=function(n){return n.reduce((t,i)=>t+i,0)});const Im="http://www.w3.org/2000/svg",x_=class x_{};sn(x_,"CSS",96),sn(x_,"PDF",72),sn(x_,"PDF_TO_CSS_UNITS",x_.CSS/x_.PDF);let kv=x_;async function tP(n,t="text"){if(MI(n,document.baseURI)){const i=await fetch(n);if(!i.ok)throw new Error(i.statusText);switch(t){case"arraybuffer":return i.arrayBuffer();case"blob":return i.blob();case"json":return i.json()}return i.text()}return new Promise((i,s)=>{const l=new XMLHttpRequest;l.open("GET",n,!0),l.responseType=t,l.onreadystatechange=()=>{if(l.readyState===XMLHttpRequest.DONE){if(l.status===200||l.status===0){switch(t){case"arraybuffer":case"blob":case"json":i(l.response);return}i(l.responseText);return}s(new Error(l.statusText))}},l.send(null)})}class nP{constructor({viewBox:t,userUnit:i,scale:s,rotation:l,offsetX:d=0,offsetY:u=0,dontFlip:p=!1}){this.viewBox=t,this.userUnit=i,this.scale=s,this.rotation=l,this.offsetX=d,this.offsetY=u,s*=i;const g=(t[2]+t[0])/2,_=(t[3]+t[1])/2;let y,E,b,A;switch(l%=360,l<0&&(l+=360),l){case 180:y=-1,E=0,b=0,A=1;break;case 90:y=0,E=1,b=1,A=0;break;case 270:y=0,E=-1,b=-1,A=0;break;case 0:y=1,E=0,b=0,A=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}p&&(b=-b,A=-A);let N,O,D,P;y===0?(N=Math.abs(_-t[1])*s+d,O=Math.abs(g-t[0])*s+u,D=(t[3]-t[1])*s,P=(t[2]-t[0])*s):(N=Math.abs(g-t[0])*s+d,O=Math.abs(_-t[1])*s+u,D=(t[2]-t[0])*s,P=(t[3]-t[1])*s),this.transform=[y*s,E*s,b*s,A*s,N-y*s*g-b*s*_,O-E*s*g-A*s*_],this.width=D,this.height=P}get rawDims(){const t=this.viewBox;return Ki(this,"rawDims",{pageWidth:t[2]-t[0],pageHeight:t[3]-t[1],pageX:t[0],pageY:t[1]})}clone({scale:t=this.scale,rotation:i=this.rotation,offsetX:s=this.offsetX,offsetY:l=this.offsetY,dontFlip:d=!1}={}){return new nP({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:t,rotation:i,offsetX:s,offsetY:l,dontFlip:d})}convertToViewportPoint(t,i){const s=[t,i];return zn.applyTransform(s,this.transform),s}convertToViewportRectangle(t){const i=[t[0],t[1]];zn.applyTransform(i,this.transform);const s=[t[2],t[3]];return zn.applyTransform(s,this.transform),[i[0],i[1],s[0],s[1]]}convertToPdfPoint(t,i){const s=[t,i];return zn.applyInverseTransform(s,this.transform),s}}class oZ extends JE{constructor(t,i=0){super(t,"RenderingCancelledException"),this.extraDelay=i}}function qU(n){const t=n.length;let i=0;for(;i{try{return new URL(p)}catch{try{return new URL(decodeURIComponent(p))}catch{try{return new URL(p,"https://foo.bar")}catch{try{return new URL(decodeURIComponent(p),"https://foo.bar")}catch{return null}}}}})(n);if(!s)return t;const l=p=>{try{let g=decodeURIComponent(p);return g.includes("/")?(g=g.split("/").at(-1),g.test(/^\.pdf$/i)?g:p):g}catch{return p}},d=/\.pdf$/i,u=s.pathname.split("/").at(-1);if(d.test(u))return l(u);if(s.searchParams.size>0){const p=Array.from(s.searchParams.values()).reverse();for(const _ of p)if(d.test(_))return l(_);const g=Array.from(s.searchParams.keys()).reverse();for(const _ of g)if(d.test(_))return l(_)}if(s.hash){const g=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i.exec(s.hash);if(g)return l(g[0])}return t}class vfe{constructor(){sn(this,"started",Object.create(null));sn(this,"times",[])}time(t){t in this.started&&Ei(`Timer is already running for ${t}`),this.started[t]=Date.now()}timeEnd(t){t in this.started||Ei(`Timer has not been started for ${t}`),this.times.push({name:t,start:this.started[t],end:Date.now()}),delete this.started[t]}toString(){const t=[];let i=0;for(const{name:s}of this.times)i=Math.max(s.length,i);for(const{name:s,start:l,end:d}of this.times)t.push(`${s.padEnd(i)} ${d-l}ms +`);return t.join("")}}function MI(n,t){const i=t?URL.parse(n,t):URL.parse(n);return(i==null?void 0:i.protocol)==="http:"||(i==null?void 0:i.protocol)==="https:"}function rh(n){n.preventDefault()}function Ra(n){n.preventDefault(),n.stopPropagation()}function LQe(n){console.log("Deprecated API usage: "+n)}var vN;class O7{static toDateObject(t){if(t instanceof Date)return t;if(!t||typeof t!="string")return null;T(this,vN)||re(this,vN,new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?"));const i=T(this,vN).exec(t);if(!i)return null;const s=parseInt(i[1],10);let l=parseInt(i[2],10);l=l>=1&&l<=12?l-1:0;let d=parseInt(i[3],10);d=d>=1&&d<=31?d:1;let u=parseInt(i[4],10);u=u>=0&&u<=23?u:0;let p=parseInt(i[5],10);p=p>=0&&p<=59?p:0;let g=parseInt(i[6],10);g=g>=0&&g<=59?g:0;const _=i[7]||"Z";let y=parseInt(i[8],10);y=y>=0&&y<=23?y:0;let E=parseInt(i[9],10)||0;return E=E>=0&&E<=59?E:0,_==="-"?(u+=y,p+=E):_==="+"&&(u-=y,p-=E),new Date(Date.UTC(s,l,d,u,p,g))}}vN=new WeakMap,ee(O7,vN,void 0);function DQe(n,{scale:t=1,rotation:i=0}){const{width:s,height:l}=n.attributes.style,d=[0,0,parseInt(s),parseInt(l)];return new nP({viewBox:d,userUnit:1,scale:t,rotation:i})}function YU(n){if(n.startsWith("#")){const t=parseInt(n.slice(1),16);return[(t&16711680)>>16,(t&65280)>>8,t&255]}return n.startsWith("rgb(")?n.slice(4,-1).split(",").map(t=>parseInt(t)):n.startsWith("rgba(")?n.slice(5,-1).split(",").map(t=>parseInt(t)).slice(0,3):(Ei(`Not a valid color format: "${n}"`),[0,0,0])}function kQe(n){const t=document.createElement("span");t.style.visibility="hidden",t.style.colorScheme="only light",document.body.append(t);for(const i of n.keys()){t.style.color=i;const s=window.getComputedStyle(t).color;n.set(i,YU(s))}t.remove()}function Fs(n){const{a:t,b:i,c:s,d:l,e:d,f:u}=n.getTransform();return[t,i,s,l,d,u]}function Jf(n){const{a:t,b:i,c:s,d:l,e:d,f:u}=n.getTransform().invertSelf();return[t,i,s,l,d,u]}function NE(n,t,i=!1,s=!0){if(t instanceof nP){const{pageWidth:l,pageHeight:d}=t.rawDims,{style:u}=n,p=qo.isCSSRoundSupported,g=`var(--total-scale-factor) * ${l}px`,_=`var(--total-scale-factor) * ${d}px`,y=p?`round(down, ${g}, var(--scale-round-x))`:`calc(${g})`,E=p?`round(down, ${_}, var(--scale-round-y))`:`calc(${_})`;!i||t.rotation%180===0?(u.width=y,u.height=E):(u.width=E,u.height=y)}s&&n.setAttribute("data-main-rotation",t.rotation)}class Up{constructor(){const{pixelRatio:t}=Up;this.sx=t,this.sy=t}get scaled(){return this.sx!==1||this.sy!==1}get symmetric(){return this.sx===this.sy}limitCanvas(t,i,s,l,d=-1){let u=1/0,p=1/0,g=1/0;s=Up.capPixels(s,d),s>0&&(u=Math.sqrt(s/(t*i))),l!==-1&&(p=l/t,g=l/i);const _=Math.min(u,p,g);return this.sx>_||this.sy>_?(this.sx=_,this.sy=_,!0):!1}static get pixelRatio(){return globalThis.devicePixelRatio||1}static capPixels(t,i){if(i>=0){const s=Math.ceil(window.screen.availWidth*window.screen.availHeight*this.pixelRatio**2*(1+i/100));return t>0?Math.min(t,s):s}return t}}const wY=["image/apng","image/avif","image/bmp","image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/x-icon"];var v1,y1,Bu,Fm,yN,VC,zC,_N,W7,b2e,$7,C2e,K7,T2e,_1,Gb,W_,jI;const Dm=class Dm{constructor(t){ee(this,$7);ee(this,K7);ee(this,_1);ee(this,W_);ee(this,v1,null);ee(this,y1,null);ee(this,Bu,void 0);ee(this,Fm,null);ee(this,yN,null);ee(this,VC,null);ee(this,zC,null);re(this,Bu,t),T(Dm,_N)||re(Dm,_N,Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button",signature:"pdfjs-editor-remove-signature-button"}))}render(){const t=re(this,v1,document.createElement("div"));t.classList.add("editToolbar","hidden"),t.setAttribute("role","toolbar");const i=T(this,Bu)._uiManager._signal;t.addEventListener("contextmenu",rh,{signal:i}),t.addEventListener("pointerdown",pe(Dm,W7,b2e),{signal:i});const s=re(this,Fm,document.createElement("div"));s.className="buttons",t.append(s);const l=T(this,Bu).toolbarPosition;if(l){const{style:d}=t,u=T(this,Bu)._uiManager.direction==="ltr"?1-l[0]:l[0];d.insetInlineEnd=`${100*u}%`,d.top=`calc(${100*l[1]}% + var(--editor-toolbar-vert-offset))`}return t}get div(){return T(this,v1)}hide(){var t;T(this,v1).classList.add("hidden"),(t=T(this,y1))==null||t.hideDropdown()}show(){var t,i;T(this,v1).classList.remove("hidden"),(t=T(this,yN))==null||t.shown(),(i=T(this,VC))==null||i.shown()}addDeleteButton(){const{editorType:t,_uiManager:i}=T(this,Bu),s=document.createElement("button");s.className="delete",s.tabIndex=0,s.setAttribute("data-l10n-id",T(Dm,_N)[t]),pe(this,_1,Gb).call(this,s),s.addEventListener("click",l=>{i.delete()},{signal:i._signal}),T(this,Fm).append(s)}async addAltText(t){const i=await t.render();pe(this,_1,Gb).call(this,i),T(this,Fm).append(i,T(this,W_,jI)),re(this,yN,t)}addComment(t){if(T(this,VC))return;const i=t.render();i&&(pe(this,_1,Gb).call(this,i),T(this,Fm).prepend(i,T(this,W_,jI)),re(this,VC,t),t.toolbar=this)}addColorPicker(t){if(T(this,y1))return;re(this,y1,t);const i=t.renderButton();pe(this,_1,Gb).call(this,i),T(this,Fm).append(i,T(this,W_,jI))}async addEditSignatureButton(t){const i=re(this,zC,await t.renderEditButton(T(this,Bu)));pe(this,_1,Gb).call(this,i),T(this,Fm).append(i,T(this,W_,jI))}async addButton(t,i){switch(t){case"colorPicker":this.addColorPicker(i);break;case"altText":await this.addAltText(i);break;case"editSignature":await this.addEditSignatureButton(i);break;case"delete":this.addDeleteButton();break;case"comment":this.addComment(i);break}}updateEditSignatureButton(t){T(this,zC)&&(T(this,zC).title=t)}remove(){var t;T(this,v1).remove(),(t=T(this,y1))==null||t.destroy(),re(this,y1,null)}};v1=new WeakMap,y1=new WeakMap,Bu=new WeakMap,Fm=new WeakMap,yN=new WeakMap,VC=new WeakMap,zC=new WeakMap,_N=new WeakMap,W7=new WeakSet,b2e=function(t){t.stopPropagation()},$7=new WeakSet,C2e=function(t){T(this,Bu)._focusEventsAllowed=!1,Ra(t)},K7=new WeakSet,T2e=function(t){T(this,Bu)._focusEventsAllowed=!0,Ra(t)},_1=new WeakSet,Gb=function(t){const i=T(this,Bu)._uiManager._signal;t.addEventListener("focusin",pe(this,$7,C2e).bind(this),{capture:!0,signal:i}),t.addEventListener("focusout",pe(this,K7,T2e).bind(this),{capture:!0,signal:i}),t.addEventListener("contextmenu",rh,{signal:i})},W_=new WeakSet,jI=function(){const t=document.createElement("div");return t.className="divider",t},ee(Dm,W7),ee(Dm,_N,null);let SY=Dm;var EN,$_,K_,q7,R2e,Y7,x2e,X7,A2e;class MQe{constructor(t){ee(this,q7);ee(this,Y7);ee(this,X7);ee(this,EN,null);ee(this,$_,null);ee(this,K_,void 0);re(this,K_,t)}show(t,i,s){const[l,d]=pe(this,Y7,x2e).call(this,i,s),{style:u}=T(this,$_)||re(this,$_,pe(this,q7,R2e).call(this));t.append(T(this,$_)),u.insetInlineEnd=`${100*l}%`,u.top=`calc(${100*d}% + var(--editor-toolbar-vert-offset))`}hide(){T(this,$_).remove()}}EN=new WeakMap,$_=new WeakMap,K_=new WeakMap,q7=new WeakSet,R2e=function(){const t=re(this,$_,document.createElement("div"));t.className="editToolbar",t.setAttribute("role","toolbar"),t.addEventListener("contextmenu",rh,{signal:T(this,K_)._signal});const i=re(this,EN,document.createElement("div"));return i.className="buttons",t.append(i),pe(this,X7,A2e).call(this),t},Y7=new WeakSet,x2e=function(t,i){let s=0,l=0;for(const d of t){const u=d.y+d.height;if(us){l=p,s=u;continue}i?p>l&&(l=p):p{T(this,K_).highlightSelection("floating_button")},{signal:s}),T(this,EN).append(t)};function I2e(n,t,i){for(const s of i)t.addEventListener(s,n[s].bind(n))}var J7;class jQe{constructor(){ee(this,J7,0)}get id(){return`${v2e}${ao(this,J7)._++}`}}J7=new WeakMap;var HC,wN,pl,GC,aM;const qZ=class qZ{constructor(){ee(this,GC);ee(this,HC,w2e());ee(this,wN,0);ee(this,pl,null)}static get _isSVGFittingCanvas(){const t='data:image/svg+xml;charset=UTF-8,',s=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),l=new Image;l.src=t;const d=l.decode().then(()=>(s.drawImage(l,0,0,1,1,0,0,1,3),new Uint32Array(s.getImageData(0,0,1,1).data.buffer)[0]===0));return Ki(this,"_isSVGFittingCanvas",d)}async getFromFile(t){const{lastModified:i,name:s,size:l,type:d}=t;return pe(this,GC,aM).call(this,`${i}_${s}_${l}_${d}`,t)}async getFromUrl(t){return pe(this,GC,aM).call(this,t,t)}async getFromBlob(t,i){const s=await i;return pe(this,GC,aM).call(this,t,s)}async getFromId(t){T(this,pl)||re(this,pl,new Map);const i=T(this,pl).get(t);if(!i)return null;if(i.bitmap)return i.refCounter+=1,i;if(i.file)return this.getFromFile(i.file);if(i.blobPromise){const{blobPromise:s}=i;return delete i.blobPromise,this.getFromBlob(i.id,s)}return this.getFromUrl(i.url)}getFromCanvas(t,i){T(this,pl)||re(this,pl,new Map);let s=T(this,pl).get(t);if(s!=null&&s.bitmap)return s.refCounter+=1,s;const l=new OffscreenCanvas(i.width,i.height);return l.getContext("2d").drawImage(i,0,0),s={bitmap:l.transferToImageBitmap(),id:`image_${T(this,HC)}_${ao(this,wN)._++}`,refCounter:1,isSvg:!1},T(this,pl).set(t,s),T(this,pl).set(s.id,s),s}getSvgUrl(t){const i=T(this,pl).get(t);return i!=null&&i.isSvg?i.svgUrl:null}deleteId(t){var l;T(this,pl)||re(this,pl,new Map);const i=T(this,pl).get(t);if(!i||(i.refCounter-=1,i.refCounter!==0))return;const{bitmap:s}=i;if(!i.url&&!i.file){const d=new OffscreenCanvas(s.width,s.height);d.getContext("bitmaprenderer").transferFromImageBitmap(s),i.blobPromise=d.convertToBlob()}(l=s.close)==null||l.call(s),i.bitmap=null}isValidId(t){return t.startsWith(`image_${T(this,HC)}_`)}};HC=new WeakMap,wN=new WeakMap,pl=new WeakMap,GC=new WeakSet,aM=async function(t,i){T(this,pl)||re(this,pl,new Map);let s=T(this,pl).get(t);if(s===null)return null;if(s!=null&&s.bitmap)return s.refCounter+=1,s;try{s||(s={bitmap:null,id:`image_${T(this,HC)}_${ao(this,wN)._++}`,refCounter:0,isSvg:!1});let l;if(typeof i=="string"?(s.url=i,l=await tP(i,"blob")):i instanceof File?l=s.file=i:i instanceof Blob&&(l=i),l.type==="image/svg+xml"){const d=qZ._isSVGFittingCanvas,u=new FileReader,p=new Image,g=new Promise((_,y)=>{p.onload=()=>{s.bitmap=p,s.isSvg=!0,_()},u.onload=async()=>{const E=s.svgUrl=u.result;p.src=await d?`${E}#svgView(preserveAspectRatio(none))`:E},p.onerror=u.onerror=y});u.readAsDataURL(l),await g}else s.bitmap=await createImageBitmap(l);s.refCounter=1}catch(l){Ei(l),s=null}return T(this,pl).set(t,s),s&&T(this,pl).set(s.id,s),s};let bY=qZ;var ua,E1,SN,Us;class UQe{constructor(t=128){ee(this,ua,[]);ee(this,E1,!1);ee(this,SN,void 0);ee(this,Us,-1);re(this,SN,t)}add({cmd:t,undo:i,post:s,mustExec:l,type:d=NaN,overwriteIfSameType:u=!1,keepUndo:p=!1}){if(l&&t(),T(this,E1))return;const g={cmd:t,undo:i,post:s,type:d};if(T(this,Us)===-1){T(this,ua).length>0&&(T(this,ua).length=0),re(this,Us,0),T(this,ua).push(g);return}if(u&&T(this,ua)[T(this,Us)].type===d){p&&(g.undo=T(this,ua)[T(this,Us)].undo),T(this,ua)[T(this,Us)]=g;return}const _=T(this,Us)+1;_===T(this,SN)?T(this,ua).splice(0,1):(re(this,Us,_),_=0;i--)if(T(this,ua)[i].type!==t){T(this,ua).splice(i+1,T(this,Us)-i),re(this,Us,i);return}T(this,ua).length=0,re(this,Us,-1)}}destroy(){re(this,ua,null)}}ua=new WeakMap,E1=new WeakMap,SN=new WeakMap,Us=new WeakMap;var Q7,N2e;class iP{constructor(t){ee(this,Q7);this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:i}=qo.platform;for(const[s,l,d={}]of t)for(const u of s){const p=u.startsWith("mac+");i&&p?(this.callbacks.set(u.slice(4),{callback:l,options:d}),this.allKeys.add(u.split("+").at(-1))):!i&&!p&&(this.callbacks.set(u,{callback:l,options:d}),this.allKeys.add(u.split("+").at(-1)))}}exec(t,i){if(!this.allKeys.has(i.key))return;const s=this.callbacks.get(pe(this,Q7,N2e).call(this,i));if(!s)return;const{callback:l,options:{bubbles:d=!1,args:u=[],checker:p=null}}=s;p&&!p(t,i)||(l.bind(t,...u,i)(),d||Ra(i))}}Q7=new WeakSet,N2e=function(t){t.altKey&&this.buffer.push("alt"),t.ctrlKey&&this.buffer.push("ctrl"),t.metaKey&&this.buffer.push("meta"),t.shiftKey&&this.buffer.push("shift"),this.buffer.push(t.key);const i=this.buffer.join("+");return this.buffer.length=0,i};const Z7=class Z7{get _colors(){const t=new Map([["CanvasText",null],["Canvas",null]]);return kQe(t),Ki(this,"_colors",t)}convert(t){const i=YU(t);if(!window.matchMedia("(forced-colors: active)").matches)return i;for(const[s,l]of this._colors)if(l.every((d,u)=>d===i[u]))return Z7._colorsMapping.get(s);return i}getHexCode(t){const i=this._colors.get(t);return i?zn.makeHexColor(...i):t}};sn(Z7,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]));let CY=Z7;var WC,Cd,Fa,ko,$C,Bm,KC,Vu,q_,w1,S1,qC,Y_,cp,Hh,X_,bN,CN,YC,TN,dp,b1,XC,C1,up,e9,T1,RN,R1,J_,JC,x1,xN,co,Fr,Vm,A1,I1,AN,IN,N1,hp,zm,NN,ON,zu,QC,oM,PN,TY,t9,O2e,n9,P2e,ZC,lM,i9,L2e,r9,D2e,s9,k2e,LN,RY,a9,M2e,DN,xY,kN,AY,o9,j2e,Mo,Kl,Gh,Nm,l9,U2e,c9,F2e,MN,IY,d9,B2e,Q_,UI,jN,NY;const pC=class pC{constructor(t,i,s,l,d,u,p,g,_,y,E,b,A,N,O,D){ee(this,QC);ee(this,PN);ee(this,t9);ee(this,n9);ee(this,ZC);ee(this,i9);ee(this,r9);ee(this,s9);ee(this,LN);ee(this,a9);ee(this,DN);ee(this,kN);ee(this,o9);ee(this,Mo);ee(this,Gh);ee(this,l9);ee(this,c9);ee(this,MN);ee(this,d9);ee(this,Q_);ee(this,jN);ee(this,WC,new AbortController);ee(this,Cd,null);ee(this,Fa,new Map);ee(this,ko,new Map);ee(this,$C,null);ee(this,Bm,null);ee(this,KC,null);ee(this,Vu,new UQe);ee(this,q_,null);ee(this,w1,null);ee(this,S1,null);ee(this,qC,0);ee(this,Y_,new Set);ee(this,cp,null);ee(this,Hh,null);ee(this,X_,new Set);sn(this,"_editorUndoBar",null);ee(this,bN,!1);ee(this,CN,!1);ee(this,YC,!1);ee(this,TN,null);ee(this,dp,null);ee(this,b1,null);ee(this,XC,null);ee(this,C1,!1);ee(this,up,null);ee(this,e9,new jQe);ee(this,T1,!1);ee(this,RN,!1);ee(this,R1,null);ee(this,J_,null);ee(this,JC,null);ee(this,x1,null);ee(this,xN,null);ee(this,co,_i.NONE);ee(this,Fr,new Set);ee(this,Vm,null);ee(this,A1,null);ee(this,I1,null);ee(this,AN,null);ee(this,IN,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1});ee(this,N1,[0,0]);ee(this,hp,null);ee(this,zm,null);ee(this,NN,null);ee(this,ON,null);ee(this,zu,null);const P=this._signal=T(this,WC).signal;re(this,zm,t),re(this,NN,i),re(this,ON,s),re(this,$C,l),re(this,q_,d),re(this,A1,u),this._eventBus=p,p._on("editingaction",this.onEditingAction.bind(this),{signal:P}),p._on("pagechanging",this.onPageChanging.bind(this),{signal:P}),p._on("scalechanging",this.onScaleChanging.bind(this),{signal:P}),p._on("rotationchanging",this.onRotationChanging.bind(this),{signal:P}),p._on("setpreference",this.onSetPreference.bind(this),{signal:P}),p._on("switchannotationeditorparams",j=>this.updateParams(j.type,j.value),{signal:P}),pe(this,i9,L2e).call(this),pe(this,o9,j2e).call(this),pe(this,LN,RY).call(this),re(this,Bm,g.annotationStorage),re(this,TN,g.filterFactory),re(this,I1,_),re(this,XC,y||null),re(this,bN,E),re(this,CN,b),re(this,YC,A),re(this,xN,N||null),this.viewParameters={realScale:kv.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=O||null,this._supportsPinchToZoom=D!==!1}static get _keyboardManager(){const t=pC.prototype,i=u=>T(u,zm).contains(document.activeElement)&&document.activeElement.tagName!=="BUTTON"&&u.hasSomethingToControl(),s=(u,{target:p})=>{if(p instanceof HTMLInputElement){const{type:g}=p;return g!=="text"&&g!=="number"}return!0},l=this.TRANSLATE_SMALL,d=this.TRANSLATE_BIG;return Ki(this,"_keyboardManager",new iP([[["ctrl+a","mac+meta+a"],t.selectAll,{checker:s}],[["ctrl+z","mac+meta+z"],t.undo,{checker:s}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],t.redo,{checker:s}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],t.delete,{checker:s}],[["Enter","mac+Enter"],t.addNewEditorFromKeyboard,{checker:(u,{target:p})=>!(p instanceof HTMLButtonElement)&&T(u,zm).contains(p)&&!u.isEnterHandled}],[[" ","mac+ "],t.addNewEditorFromKeyboard,{checker:(u,{target:p})=>!(p instanceof HTMLButtonElement)&&T(u,zm).contains(document.activeElement)}],[["Escape","mac+Escape"],t.unselectAll],[["ArrowLeft","mac+ArrowLeft"],t.translateSelectedEditors,{args:[-l,0],checker:i}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t.translateSelectedEditors,{args:[-d,0],checker:i}],[["ArrowRight","mac+ArrowRight"],t.translateSelectedEditors,{args:[l,0],checker:i}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t.translateSelectedEditors,{args:[d,0],checker:i}],[["ArrowUp","mac+ArrowUp"],t.translateSelectedEditors,{args:[0,-l],checker:i}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t.translateSelectedEditors,{args:[0,-d],checker:i}],[["ArrowDown","mac+ArrowDown"],t.translateSelectedEditors,{args:[0,l],checker:i}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t.translateSelectedEditors,{args:[0,d],checker:i}]]))}destroy(){var t,i,s,l,d,u,p,g,_;(t=T(this,zu))==null||t.resolve(),re(this,zu,null),(i=T(this,WC))==null||i.abort(),re(this,WC,null),this._signal=null;for(const y of T(this,ko).values())y.destroy();T(this,ko).clear(),T(this,Fa).clear(),T(this,X_).clear(),(s=T(this,x1))==null||s.clear(),re(this,Cd,null),T(this,Fr).clear(),T(this,Vu).destroy(),(l=T(this,$C))==null||l.destroy(),(d=T(this,q_))==null||d.destroy(),(u=T(this,A1))==null||u.destroy(),(p=T(this,up))==null||p.hide(),re(this,up,null),(g=T(this,JC))==null||g.destroy(),re(this,JC,null),T(this,dp)&&(clearTimeout(T(this,dp)),re(this,dp,null)),T(this,hp)&&(clearTimeout(T(this,hp)),re(this,hp,null)),(_=this._editorUndoBar)==null||_.destroy()}combinedSignal(t){return AbortSignal.any([this._signal,t.signal])}get mlManager(){return T(this,xN)}get useNewAltTextFlow(){return T(this,CN)}get useNewAltTextWhenAddingImage(){return T(this,YC)}get hcmFilter(){return Ki(this,"hcmFilter",T(this,I1)?T(this,TN).addHCMFilter(T(this,I1).foreground,T(this,I1).background):"none")}get direction(){return Ki(this,"direction",getComputedStyle(T(this,zm)).direction)}get _highlightColors(){return Ki(this,"_highlightColors",T(this,XC)?new Map(T(this,XC).split(",").map(t=>(t=t.split("=").map(i=>i.trim()),t[1]=t[1].toUpperCase(),t))):null)}get highlightColors(){const{_highlightColors:t}=this;if(!t)return Ki(this,"highlightColors",null);const i=new Map,s=!!T(this,I1);for(const[l,d]of t){const u=l.endsWith("_HCM");if(s&&u){i.set(l.replace("_HCM",""),d);continue}!s&&!u&&i.set(l,d)}return Ki(this,"highlightColors",i)}get highlightColorNames(){return Ki(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,t=>t.reverse())):null)}getNonHCMColor(t){if(!this._highlightColors)return t;const i=this.highlightColorNames.get(t);return this._highlightColors.get(i)||t}getNonHCMColorName(t){return this.highlightColorNames.get(t)||t}setCurrentDrawingSession(t){t?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),re(this,S1,t)}setMainHighlightColorPicker(t){re(this,JC,t)}editAltText(t,i=!1){var s;(s=T(this,$C))==null||s.editAltText(this,t,i)}hasCommentManager(){return!!T(this,q_)}editComment(t,i){var s;(s=T(this,q_))==null||s.open(this,t,i)}getSignature(t){var i;(i=T(this,A1))==null||i.getSignature({uiManager:this,editor:t})}get signatureManager(){return T(this,A1)}switchToMode(t,i){this._eventBus.on("annotationeditormodechanged",i,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:t})}setPreference(t,i){this._eventBus.dispatch("setpreference",{source:this,name:t,value:i})}onSetPreference({name:t,value:i}){switch(t){case"enableNewAltTextWhenAddingImage":re(this,YC,i);break}}onPageChanging({pageNumber:t}){re(this,qC,t-1)}focusMainContainer(){T(this,zm).focus()}findParent(t,i){for(const s of T(this,ko).values()){const{x:l,y:d,width:u,height:p}=s.div.getBoundingClientRect();if(t>=l&&t<=l+u&&i>=d&&i<=d+p)return s}return null}disableUserSelect(t=!1){T(this,NN).classList.toggle("noUserSelect",t)}addShouldRescale(t){T(this,X_).add(t)}removeShouldRescale(t){T(this,X_).delete(t)}onScaleChanging({scale:t}){var i;this.commitOrRemove(),this.viewParameters.realScale=t*kv.PDF_TO_CSS_UNITS;for(const s of T(this,X_))s.onScaleChanging();(i=T(this,S1))==null||i.onScaleChanging()}onRotationChanging({pagesRotation:t}){this.commitOrRemove(),this.viewParameters.rotation=t}highlightSelection(t=""){const i=document.getSelection();if(!i||i.isCollapsed)return;const{anchorNode:s,anchorOffset:l,focusNode:d,focusOffset:u}=i,p=i.toString(),_=pe(this,QC,oM).call(this,i).closest(".textLayer"),y=this.getSelectionBoxes(_);if(!y)return;i.empty();const E=pe(this,PN,TY).call(this,_),b=T(this,co)===_i.NONE,A=()=>{E==null||E.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:t,boxes:y,anchorNode:s,anchorOffset:l,focusNode:d,focusOffset:u,text:p}),b&&this.showAllEditors("highlight",!0,!0)};if(b){this.switchToMode(_i.HIGHLIGHT,A);return}A()}addToAnnotationStorage(t){!t.isEmpty()&&T(this,Bm)&&!T(this,Bm).has(t.id)&&T(this,Bm).setValue(t.id,t)}a11yAlert(t,i=null){const s=T(this,ON);s&&(s.setAttribute("data-l10n-id",t),i?s.setAttribute("data-l10n-args",JSON.stringify(i)):s.removeAttribute("data-l10n-args"))}blur(){if(this.isShiftKeyDown=!1,T(this,C1)&&(re(this,C1,!1),pe(this,ZC,lM).call(this,"main_toolbar")),!this.hasSelection)return;const{activeElement:t}=document;for(const i of T(this,Fr))if(i.div.contains(t)){re(this,J_,[i,t]),i._focusEventsAllowed=!1;break}}focus(){if(!T(this,J_))return;const[t,i]=T(this,J_);re(this,J_,null),i.addEventListener("focusin",()=>{t._focusEventsAllowed=!0},{once:!0,signal:this._signal}),i.focus()}addEditListeners(){pe(this,LN,RY).call(this),pe(this,DN,xY).call(this)}removeEditListeners(){pe(this,a9,M2e).call(this),pe(this,kN,AY).call(this)}dragOver(t){for(const{type:i}of t.dataTransfer.items)for(const s of T(this,Hh))if(s.isHandlingMimeForPasting(i)){t.dataTransfer.dropEffect="copy",t.preventDefault();return}}drop(t){for(const i of t.dataTransfer.items)for(const s of T(this,Hh))if(s.isHandlingMimeForPasting(i.type)){s.paste(i,this.currentLayer),t.preventDefault();return}}copy(t){var s;if(t.preventDefault(),(s=T(this,Cd))==null||s.commitOrRemove(),!this.hasSelection)return;const i=[];for(const l of T(this,Fr)){const d=l.serialize(!0);d&&i.push(d)}i.length!==0&&t.clipboardData.setData("application/pdfjs",JSON.stringify(i))}cut(t){this.copy(t),this.delete()}async paste(t){t.preventDefault();const{clipboardData:i}=t;for(const d of i.items)for(const u of T(this,Hh))if(u.isHandlingMimeForPasting(d.type)){u.paste(d,this.currentLayer);return}let s=i.getData("application/pdfjs");if(!s)return;try{s=JSON.parse(s)}catch(d){Ei(`paste: "${d.message}".`);return}if(!Array.isArray(s))return;this.unselectAll();const l=this.currentLayer;try{const d=[];for(const g of s){const _=await l.deserialize(g);if(!_)return;d.push(_)}const u=()=>{for(const g of d)pe(this,MN,IY).call(this,g);pe(this,jN,NY).call(this,d)},p=()=>{for(const g of d)g.remove()};this.addCommands({cmd:u,undo:p,mustExec:!0})}catch(d){Ei(`paste: "${d.message}".`)}}keydown(t){!this.isShiftKeyDown&&t.key==="Shift"&&(this.isShiftKeyDown=!0),T(this,co)!==_i.NONE&&!this.isEditorHandlingKeyboard&&pC._keyboardManager.exec(this,t)}keyup(t){this.isShiftKeyDown&&t.key==="Shift"&&(this.isShiftKeyDown=!1,T(this,C1)&&(re(this,C1,!1),pe(this,ZC,lM).call(this,"main_toolbar")))}onEditingAction({name:t}){switch(t){case"undo":case"redo":case"delete":case"selectAll":this[t]();break;case"highlightSelection":this.highlightSelection("context_menu");break}}setEditingState(t){t?(pe(this,r9,D2e).call(this),pe(this,DN,xY).call(this),pe(this,Mo,Kl).call(this,{isEditing:T(this,co)!==_i.NONE,isEmpty:pe(this,Q_,UI).call(this),hasSomethingToUndo:T(this,Vu).hasSomethingToUndo(),hasSomethingToRedo:T(this,Vu).hasSomethingToRedo(),hasSelectedEditor:!1})):(pe(this,s9,k2e).call(this),pe(this,kN,AY).call(this),pe(this,Mo,Kl).call(this,{isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(t){if(!T(this,Hh)){re(this,Hh,t);for(const i of T(this,Hh))pe(this,Gh,Nm).call(this,i.defaultPropertiesToUpdate)}}getId(){return T(this,e9).id}get currentLayer(){return T(this,ko).get(T(this,qC))}getLayer(t){return T(this,ko).get(t)}get currentPageIndex(){return T(this,qC)}addLayer(t){T(this,ko).set(t.pageIndex,t),T(this,T1)?t.enable():t.disable()}removeLayer(t){T(this,ko).delete(t.pageIndex)}async updateMode(t,i=null,s=!1,l=!1,d=!1){var u,p,g;if(T(this,co)!==t&&!(T(this,zu)&&(await T(this,zu).promise,!T(this,zu)))){if(re(this,zu,Promise.withResolvers()),(u=T(this,S1))==null||u.commitOrRemove(),re(this,co,t),t===_i.NONE){this.setEditingState(!1),pe(this,c9,F2e).call(this),(p=this._editorUndoBar)==null||p.hide(),T(this,zu).resolve();return}t===_i.SIGNATURE&&await((g=T(this,A1))==null?void 0:g.loadSignatures()),this.setEditingState(!0),await pe(this,l9,U2e).call(this),this.unselectAll();for(const _ of T(this,ko).values())_.updateMode(t);if(!i){s&&this.addNewEditorFromKeyboard(),T(this,zu).resolve();return}for(const _ of T(this,Fa).values())_.annotationElementId===i||_.id===i?(this.setSelected(_),d?_.editComment():l&&_.enterInEditMode()):_.unselect();T(this,zu).resolve()}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(t){t.mode!==T(this,co)&&this._eventBus.dispatch("switchannotationeditormode",{source:this,...t})}updateParams(t,i){if(T(this,Hh)){switch(t){case cr.CREATE:this.currentLayer.addNewEditor(i);return;case cr.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(T(this,AN)||re(this,AN,new Map)).set(t,i),this.showAllEditors("highlight",i);break}if(this.hasSelection)for(const s of T(this,Fr))s.updateParams(t,i);else for(const s of T(this,Hh))s.updateDefaultParams(t,i)}}showAllEditors(t,i,s=!1){var d;for(const u of T(this,Fa).values())u.editorType===t&&u.show(i);(((d=T(this,AN))==null?void 0:d.get(cr.HIGHLIGHT_SHOW_ALL))??!0)!==i&&pe(this,Gh,Nm).call(this,[[cr.HIGHLIGHT_SHOW_ALL,i]])}enableWaiting(t=!1){if(T(this,RN)!==t){re(this,RN,t);for(const i of T(this,ko).values())t?i.disableClick():i.enableClick(),i.div.classList.toggle("waiting",t)}}getEditors(t){const i=[];for(const s of T(this,Fa).values())s.pageIndex===t&&i.push(s);return i}getEditor(t){return T(this,Fa).get(t)}addEditor(t){T(this,Fa).set(t.id,t)}removeEditor(t){var i,s;t.div.contains(document.activeElement)&&(T(this,dp)&&clearTimeout(T(this,dp)),re(this,dp,setTimeout(()=>{this.focusMainContainer(),re(this,dp,null)},0))),T(this,Fa).delete(t.id),t.annotationElementId&&((i=T(this,x1))==null||i.delete(t.annotationElementId)),this.unselect(t),(!t.annotationElementId||!T(this,Y_).has(t.annotationElementId))&&((s=T(this,Bm))==null||s.remove(t.id))}addDeletedAnnotationElement(t){T(this,Y_).add(t.annotationElementId),this.addChangedExistingAnnotation(t),t.deleted=!0}isDeletedAnnotationElement(t){return T(this,Y_).has(t)}removeDeletedAnnotationElement(t){T(this,Y_).delete(t.annotationElementId),this.removeChangedExistingAnnotation(t),t.deleted=!1}setActiveEditor(t){T(this,Cd)!==t&&(re(this,Cd,t),t&&pe(this,Gh,Nm).call(this,t.propertiesToUpdate))}updateUI(t){T(this,d9,B2e)===t&&pe(this,Gh,Nm).call(this,t.propertiesToUpdate)}updateUIForDefaultProperties(t){pe(this,Gh,Nm).call(this,t.defaultPropertiesToUpdate)}toggleSelected(t){if(T(this,Fr).has(t)){T(this,Fr).delete(t),t.unselect(),pe(this,Mo,Kl).call(this,{hasSelectedEditor:this.hasSelection});return}T(this,Fr).add(t),t.select(),pe(this,Gh,Nm).call(this,t.propertiesToUpdate),pe(this,Mo,Kl).call(this,{hasSelectedEditor:!0})}setSelected(t){var i;this.updateToolbar({mode:t.mode,editId:t.id}),(i=T(this,S1))==null||i.commitOrRemove();for(const s of T(this,Fr))s!==t&&s.unselect();T(this,Fr).clear(),T(this,Fr).add(t),t.select(),pe(this,Gh,Nm).call(this,t.propertiesToUpdate),pe(this,Mo,Kl).call(this,{hasSelectedEditor:!0})}isSelected(t){return T(this,Fr).has(t)}get firstSelectedEditor(){return T(this,Fr).values().next().value}unselect(t){t.unselect(),T(this,Fr).delete(t),pe(this,Mo,Kl).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return T(this,Fr).size!==0}get isEnterHandled(){return T(this,Fr).size===1&&this.firstSelectedEditor.isEnterHandled}undo(){var t;T(this,Vu).undo(),pe(this,Mo,Kl).call(this,{hasSomethingToUndo:T(this,Vu).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:pe(this,Q_,UI).call(this)}),(t=this._editorUndoBar)==null||t.hide()}redo(){T(this,Vu).redo(),pe(this,Mo,Kl).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:T(this,Vu).hasSomethingToRedo(),isEmpty:pe(this,Q_,UI).call(this)})}addCommands(t){T(this,Vu).add(t),pe(this,Mo,Kl).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:pe(this,Q_,UI).call(this)})}cleanUndoStack(t){T(this,Vu).cleanType(t)}delete(){var d;this.commitOrRemove();const t=(d=this.currentLayer)==null?void 0:d.endDrawingSession(!0);if(!this.hasSelection&&!t)return;const i=t?[t]:[...T(this,Fr)],s=()=>{var u;(u=this._editorUndoBar)==null||u.show(l,i.length===1?i[0].editorType:i.length);for(const p of i)p.remove()},l=()=>{for(const u of i)pe(this,MN,IY).call(this,u)};this.addCommands({cmd:s,undo:l,mustExec:!0})}commitOrRemove(){var t;(t=T(this,Cd))==null||t.commitOrRemove()}hasSomethingToControl(){return T(this,Cd)||this.hasSelection}selectAll(){for(const t of T(this,Fr))t.commit();pe(this,jN,NY).call(this,T(this,Fa).values())}unselectAll(){var t;if(!(T(this,Cd)&&(T(this,Cd).commitOrRemove(),T(this,co)!==_i.NONE))&&!((t=T(this,S1))!=null&&t.commitOrRemove())&&this.hasSelection){for(const i of T(this,Fr))i.unselect();T(this,Fr).clear(),pe(this,Mo,Kl).call(this,{hasSelectedEditor:!1})}}translateSelectedEditors(t,i,s=!1){if(s||this.commitOrRemove(),!this.hasSelection)return;T(this,N1)[0]+=t,T(this,N1)[1]+=i;const[l,d]=T(this,N1),u=[...T(this,Fr)],p=1e3;T(this,hp)&&clearTimeout(T(this,hp)),re(this,hp,setTimeout(()=>{re(this,hp,null),T(this,N1)[0]=T(this,N1)[1]=0,this.addCommands({cmd:()=>{for(const g of u)T(this,Fa).has(g.id)&&(g.translateInPage(l,d),g.translationDone())},undo:()=>{for(const g of u)T(this,Fa).has(g.id)&&(g.translateInPage(-l,-d),g.translationDone())},mustExec:!1})},p));for(const g of u)g.translateInPage(t,i),g.translationDone()}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0),re(this,cp,new Map);for(const t of T(this,Fr))T(this,cp).set(t,{savedX:t.x,savedY:t.y,savedPageIndex:t.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!T(this,cp))return!1;this.disableUserSelect(!1);const t=T(this,cp);re(this,cp,null);let i=!1;for(const[{x:l,y:d,pageIndex:u},p]of t)p.newX=l,p.newY=d,p.newPageIndex=u,i||(i=l!==p.savedX||d!==p.savedY||u!==p.savedPageIndex);if(!i)return!1;const s=(l,d,u,p)=>{if(T(this,Fa).has(l.id)){const g=T(this,ko).get(p);g?l._setParentAndPosition(g,d,u):(l.pageIndex=p,l.x=d,l.y=u)}};return this.addCommands({cmd:()=>{for(const[l,{newX:d,newY:u,newPageIndex:p}]of t)s(l,d,u,p)},undo:()=>{for(const[l,{savedX:d,savedY:u,savedPageIndex:p}]of t)s(l,d,u,p)},mustExec:!0}),!0}dragSelectedEditors(t,i){if(T(this,cp))for(const s of T(this,cp).keys())s.drag(t,i)}rebuild(t){if(t.parent===null){const i=this.getLayer(t.pageIndex);i?(i.changeParent(t),i.addOrRebuild(t)):(this.addEditor(t),this.addToAnnotationStorage(t),t.rebuild())}else t.parent.addOrRebuild(t)}get isEditorHandlingKeyboard(){var t;return((t=this.getActive())==null?void 0:t.shouldGetKeyboardEvents())||T(this,Fr).size===1&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(t){return T(this,Cd)===t}getActive(){return T(this,Cd)}getMode(){return T(this,co)}get imageManager(){return Ki(this,"imageManager",new bY)}getSelectionBoxes(t){if(!t)return null;const i=document.getSelection();for(let _=0,y=i.rangeCount;_({x:(y-l)/u,y:1-(_+E-s)/d,width:b/u,height:E/d});break;case"180":p=(_,y,E,b)=>({x:1-(_+E-s)/d,y:1-(y+b-l)/u,width:E/d,height:b/u});break;case"270":p=(_,y,E,b)=>({x:1-(y+b-l)/u,y:(_-s)/d,width:b/u,height:E/d});break;default:p=(_,y,E,b)=>({x:(_-s)/d,y:(y-l)/u,width:E/d,height:b/u});break}const g=[];for(let _=0,y=i.rangeCount;_{b.type==="pointerup"&&b.button!==0||(_.abort(),g==null||g.toggleDrawing(!0),b.type==="pointerup"&&pe(this,ZC,lM).call(this,"main_toolbar"))};window.addEventListener("pointerup",E,{signal:y}),window.addEventListener("blur",E,{signal:y})}},ZC=new WeakSet,lM=function(t=""){T(this,co)===_i.HIGHLIGHT?this.highlightSelection(t):T(this,bN)&&pe(this,t9,O2e).call(this)},i9=new WeakSet,L2e=function(){document.addEventListener("selectionchange",pe(this,n9,P2e).bind(this),{signal:this._signal})},r9=new WeakSet,D2e=function(){if(T(this,b1))return;re(this,b1,new AbortController);const t=this.combinedSignal(T(this,b1));window.addEventListener("focus",this.focus.bind(this),{signal:t}),window.addEventListener("blur",this.blur.bind(this),{signal:t})},s9=new WeakSet,k2e=function(){var t;(t=T(this,b1))==null||t.abort(),re(this,b1,null)},LN=new WeakSet,RY=function(){if(T(this,R1))return;re(this,R1,new AbortController);const t=this.combinedSignal(T(this,R1));window.addEventListener("keydown",this.keydown.bind(this),{signal:t}),window.addEventListener("keyup",this.keyup.bind(this),{signal:t})},a9=new WeakSet,M2e=function(){var t;(t=T(this,R1))==null||t.abort(),re(this,R1,null)},DN=new WeakSet,xY=function(){if(T(this,w1))return;re(this,w1,new AbortController);const t=this.combinedSignal(T(this,w1));document.addEventListener("copy",this.copy.bind(this),{signal:t}),document.addEventListener("cut",this.cut.bind(this),{signal:t}),document.addEventListener("paste",this.paste.bind(this),{signal:t})},kN=new WeakSet,AY=function(){var t;(t=T(this,w1))==null||t.abort(),re(this,w1,null)},o9=new WeakSet,j2e=function(){const t=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:t}),document.addEventListener("drop",this.drop.bind(this),{signal:t})},Mo=new WeakSet,Kl=function(t){Object.entries(t).some(([s,l])=>T(this,IN)[s]!==l)&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(T(this,IN),t)}),T(this,co)===_i.HIGHLIGHT&&t.hasSelectedEditor===!1&&pe(this,Gh,Nm).call(this,[[cr.HIGHLIGHT_FREE,!0]]))},Gh=new WeakSet,Nm=function(t){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:t})},l9=new WeakSet,U2e=async function(){if(!T(this,T1)){re(this,T1,!0);const t=[];for(const i of T(this,ko).values())t.push(i.enable());await Promise.all(t);for(const i of T(this,Fa).values())i.enable()}},c9=new WeakSet,F2e=function(){if(this.unselectAll(),T(this,T1)){re(this,T1,!1);for(const t of T(this,ko).values())t.disable();for(const t of T(this,Fa).values())t.disable()}},MN=new WeakSet,IY=function(t){const i=T(this,ko).get(t.pageIndex);i?i.addOrRebuild(t):(this.addEditor(t),this.addToAnnotationStorage(t))},d9=new WeakSet,B2e=function(){let t=null;for(t of T(this,Fr));return t},Q_=new WeakSet,UI=function(){if(T(this,Fa).size===0)return!0;if(T(this,Fa).size===1)for(const t of T(this,Fa).values())return t.isEmpty();return!1},jN=new WeakSet,NY=function(t){for(const i of T(this,Fr))i.unselect();T(this,Fr).clear();for(const i of t)i.isEmpty()||(T(this,Fr).add(i),i.select());pe(this,Mo,Kl).call(this,{hasSelectedEditor:this.hasSelection})},sn(pC,"TRANSLATE_SMALL",1),sn(pC,"TRANSLATE_BIG",10);let OE=pC;var uo,fp,Wh,eT,pp,Td,tT,mp,Gc,Hm,Z_,gp,O1,e2,FI,nT,cM;const ql=class ql{constructor(t){ee(this,e2);ee(this,nT);ee(this,uo,null);ee(this,fp,!1);ee(this,Wh,null);ee(this,eT,null);ee(this,pp,null);ee(this,Td,null);ee(this,tT,!1);ee(this,mp,null);ee(this,Gc,null);ee(this,Hm,null);ee(this,Z_,null);ee(this,gp,!1);re(this,Gc,t),re(this,gp,t._uiManager.useNewAltTextFlow),T(ql,O1)||re(ql,O1,Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"}))}static initialize(t){ql._l10n??(ql._l10n=t)}async render(){const t=re(this,Wh,document.createElement("button"));t.className="altText",t.tabIndex="0";const i=re(this,eT,document.createElement("span"));t.append(i),T(this,gp)?(t.classList.add("new"),t.setAttribute("data-l10n-id",T(ql,O1).missing),i.setAttribute("data-l10n-id",T(ql,O1)["missing-label"])):(t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button"),i.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label"));const s=T(this,Gc)._uiManager._signal;t.addEventListener("contextmenu",rh,{signal:s}),t.addEventListener("pointerdown",d=>d.stopPropagation(),{signal:s});const l=d=>{d.preventDefault(),T(this,Gc)._uiManager.editAltText(T(this,Gc)),T(this,gp)&&T(this,Gc)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:T(this,e2,FI)}})};return t.addEventListener("click",l,{capture:!0,signal:s}),t.addEventListener("keydown",d=>{d.target===t&&d.key==="Enter"&&(re(this,tT,!0),l(d))},{signal:s}),await pe(this,nT,cM).call(this),t}finish(){T(this,Wh)&&(T(this,Wh).focus({focusVisible:T(this,tT)}),re(this,tT,!1))}isEmpty(){return T(this,gp)?T(this,uo)===null:!T(this,uo)&&!T(this,fp)}hasData(){return T(this,gp)?T(this,uo)!==null||!!T(this,Hm):this.isEmpty()}get guessedText(){return T(this,Hm)}async setGuessedText(t){T(this,uo)===null&&(re(this,Hm,t),re(this,Z_,await ql._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:t})),pe(this,nT,cM).call(this))}toggleAltTextBadge(t=!1){var i;if(!T(this,gp)||T(this,uo)){(i=T(this,mp))==null||i.remove(),re(this,mp,null);return}if(!T(this,mp)){const s=re(this,mp,document.createElement("div"));s.className="noAltTextBadge",T(this,Gc).div.append(s)}T(this,mp).classList.toggle("hidden",!t)}serialize(t){let i=T(this,uo);return!t&&T(this,Hm)===i&&(i=T(this,Z_)),{altText:i,decorative:T(this,fp),guessedText:T(this,Hm),textWithDisclaimer:T(this,Z_)}}get data(){return{altText:T(this,uo),decorative:T(this,fp)}}set data({altText:t,decorative:i,guessedText:s,textWithDisclaimer:l,cancel:d=!1}){s&&(re(this,Hm,s),re(this,Z_,l)),!(T(this,uo)===t&&T(this,fp)===i)&&(d||(re(this,uo,t),re(this,fp,i)),pe(this,nT,cM).call(this))}toggle(t=!1){T(this,Wh)&&(!t&&T(this,Td)&&(clearTimeout(T(this,Td)),re(this,Td,null)),T(this,Wh).disabled=!t)}shown(){T(this,Gc)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:T(this,e2,FI)}})}destroy(){var t,i;(t=T(this,Wh))==null||t.remove(),re(this,Wh,null),re(this,eT,null),re(this,pp,null),(i=T(this,mp))==null||i.remove(),re(this,mp,null)}};uo=new WeakMap,fp=new WeakMap,Wh=new WeakMap,eT=new WeakMap,pp=new WeakMap,Td=new WeakMap,tT=new WeakMap,mp=new WeakMap,Gc=new WeakMap,Hm=new WeakMap,Z_=new WeakMap,gp=new WeakMap,O1=new WeakMap,e2=new WeakSet,FI=function(){return T(this,uo)&&"added"||T(this,uo)===null&&this.guessedText&&"review"||"missing"},nT=new WeakSet,cM=async function(){var l,d,u;const t=T(this,Wh);if(!t)return;if(T(this,gp)){if(t.classList.toggle("done",!!T(this,uo)),t.setAttribute("data-l10n-id",T(ql,O1)[T(this,e2,FI)]),(l=T(this,eT))==null||l.setAttribute("data-l10n-id",T(ql,O1)[`${T(this,e2,FI)}-label`]),!T(this,uo)){(d=T(this,pp))==null||d.remove();return}}else{if(!T(this,uo)&&!T(this,fp)){t.classList.remove("done"),(u=T(this,pp))==null||u.remove();return}t.classList.add("done"),t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let i=T(this,pp);if(!i){re(this,pp,i=document.createElement("span")),i.className="tooltip",i.setAttribute("role","tooltip"),i.id=`alt-text-tooltip-${T(this,Gc).id}`;const p=100,g=T(this,Gc)._uiManager._signal;g.addEventListener("abort",()=>{clearTimeout(T(this,Td)),re(this,Td,null)},{once:!0}),t.addEventListener("mouseenter",()=>{re(this,Td,setTimeout(()=>{re(this,Td,null),T(this,pp).classList.add("show"),T(this,Gc)._reportTelemetry({action:"alt_text_tooltip"})},p))},{signal:g}),t.addEventListener("mouseleave",()=>{var _;T(this,Td)&&(clearTimeout(T(this,Td)),re(this,Td,null)),(_=T(this,pp))==null||_.classList.remove("show")},{signal:g})}T(this,fp)?i.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(i.removeAttribute("data-l10n-id"),i.textContent=T(this,uo)),i.parentNode||t.append(i);const s=T(this,Gc).getElementForAltText();s==null||s.setAttribute("aria-describedby",i.id)},ee(ql,O1,null),sn(ql,"_l10n",null);let P7=ql;var vp,t2,$h,UN,Gm,iT,P1;class Rk{constructor(t){ee(this,vp,null);ee(this,t2,!1);ee(this,$h,null);ee(this,UN,null);ee(this,Gm,null);ee(this,iT,null);ee(this,P1,!1);re(this,$h,t),this.toolbar=null}render(){if(!T(this,$h)._uiManager.hasCommentManager())return null;const t=re(this,vp,document.createElement("button"));t.className="comment",t.tabIndex="0",t.setAttribute("data-l10n-id","pdfjs-editor-edit-comment-button");const i=T(this,$h)._uiManager._signal;t.addEventListener("contextmenu",rh,{signal:i}),t.addEventListener("pointerdown",l=>l.stopPropagation(),{signal:i});const s=l=>{l.preventDefault(),this.edit()};return t.addEventListener("click",s,{capture:!0,signal:i}),t.addEventListener("keydown",l=>{l.target===t&&l.key==="Enter"&&(re(this,t2,!0),s(l))},{signal:i}),t}edit(){const{bottom:t,left:i,right:s}=T(this,$h).getClientDimensions(),l={top:t};T(this,$h)._uiManager.direction==="ltr"?l.right=s:l.left=i,T(this,$h)._uiManager.editComment(T(this,$h),l)}finish(){T(this,vp)&&(T(this,vp).focus({focusVisible:T(this,t2)}),re(this,t2,!1))}isDeleted(){return T(this,P1)||T(this,Gm)===""}hasBeenEdited(){return this.isDeleted()||T(this,Gm)!==T(this,UN)}serialize(){return this.data}get data(){return{text:T(this,Gm),date:T(this,iT),deleted:T(this,P1)}}set data(t){if(t===null){re(this,Gm,""),re(this,P1,!0);return}re(this,Gm,t),re(this,iT,new Date),re(this,P1,!1)}setInitialText(t){re(this,UN,t),this.data=t}toggle(t=!1){T(this,vp)&&(T(this,vp).disabled=!t)}shown(){}destroy(){var t;(t=T(this,vp))==null||t.remove(),re(this,vp,null),re(this,Gm,""),re(this,iT,null),re(this,$h,null),re(this,t2,!1),re(this,P1,!1)}}vp=new WeakMap,t2=new WeakMap,$h=new WeakMap,UN=new WeakMap,Gm=new WeakMap,iT=new WeakMap,P1=new WeakMap;var rT,n2,FN,BN,VN,zN,HN,Wm,i2,$m,r2,Km,u9,V2e,h9,z2e,f9,H2e;const YZ=class YZ{constructor({container:t,isPinchingDisabled:i=null,isPinchingStopped:s=null,onPinchStart:l=null,onPinching:d=null,onPinchEnd:u=null,signal:p}){ee(this,u9);ee(this,h9);ee(this,f9);ee(this,rT,void 0);ee(this,n2,!1);ee(this,FN,null);ee(this,BN,void 0);ee(this,VN,void 0);ee(this,zN,void 0);ee(this,HN,void 0);ee(this,Wm,null);ee(this,i2,void 0);ee(this,$m,null);ee(this,r2,void 0);ee(this,Km,null);re(this,rT,t),re(this,FN,s),re(this,BN,i),re(this,VN,l),re(this,zN,d),re(this,HN,u),re(this,r2,new AbortController),re(this,i2,AbortSignal.any([p,T(this,r2).signal])),t.addEventListener("touchstart",pe(this,u9,V2e).bind(this),{passive:!1,signal:T(this,i2)})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return 35/Up.pixelRatio}destroy(){var t,i;(t=T(this,r2))==null||t.abort(),re(this,r2,null),(i=T(this,Wm))==null||i.abort(),re(this,Wm,null)}};rT=new WeakMap,n2=new WeakMap,FN=new WeakMap,BN=new WeakMap,VN=new WeakMap,zN=new WeakMap,HN=new WeakMap,Wm=new WeakMap,i2=new WeakMap,$m=new WeakMap,r2=new WeakMap,Km=new WeakMap,u9=new WeakSet,V2e=function(t){var l,d,u;if((l=T(this,BN))!=null&&l.call(this))return;if(t.touches.length===1){if(T(this,Wm))return;const p=re(this,Wm,new AbortController),g=AbortSignal.any([T(this,i2),p.signal]),_=T(this,rT),y={capture:!0,signal:g,passive:!1},E=b=>{var A;b.pointerType==="touch"&&((A=T(this,Wm))==null||A.abort(),re(this,Wm,null))};_.addEventListener("pointerdown",b=>{b.pointerType==="touch"&&(Ra(b),E(b))},y),_.addEventListener("pointerup",E,y),_.addEventListener("pointercancel",E,y);return}if(!T(this,Km)){re(this,Km,new AbortController);const p=AbortSignal.any([T(this,i2),T(this,Km).signal]),g=T(this,rT),_={signal:p,capture:!1,passive:!1};g.addEventListener("touchmove",pe(this,h9,z2e).bind(this),_);const y=pe(this,f9,H2e).bind(this);g.addEventListener("touchend",y,_),g.addEventListener("touchcancel",y,_),_.capture=!0,g.addEventListener("pointerdown",Ra,_),g.addEventListener("pointermove",Ra,_),g.addEventListener("pointercancel",Ra,_),g.addEventListener("pointerup",Ra,_),(d=T(this,VN))==null||d.call(this)}if(Ra(t),t.touches.length!==2||(u=T(this,FN))!=null&&u.call(this)){re(this,$m,null);return}let[i,s]=t.touches;i.identifier>s.identifier&&([i,s]=[s,i]),re(this,$m,{touch0X:i.screenX,touch0Y:i.screenY,touch1X:s.screenX,touch1Y:s.screenY})},h9=new WeakSet,z2e=function(t){var V;if(!T(this,$m)||t.touches.length!==2)return;Ra(t);let[i,s]=t.touches;i.identifier>s.identifier&&([i,s]=[s,i]);const{screenX:l,screenY:d}=i,{screenX:u,screenY:p}=s,g=T(this,$m),{touch0X:_,touch0Y:y,touch1X:E,touch1Y:b}=g,A=E-_,N=b-y,O=u-l,D=p-d,P=Math.hypot(O,D)||1,j=Math.hypot(A,N)||1;if(!T(this,n2)&&Math.abs(j-P)<=YZ.MIN_TOUCH_DISTANCE_TO_PINCH)return;if(g.touch0X=l,g.touch0Y=d,g.touch1X=u,g.touch1Y=p,!T(this,n2)){re(this,n2,!0);return}const M=[(l+u)/2,(d+p)/2];(V=T(this,zN))==null||V.call(this,M,j,P)},f9=new WeakSet,H2e=function(t){var i;t.touches.length>=2||(T(this,Km)&&(T(this,Km).abort(),re(this,Km,null),(i=T(this,HN))==null||i.call(this)),T(this,$m)&&(Ra(t),re(this,$m,null),re(this,n2,!1)))};let L7=YZ;var s2,Kh,Os,jo,sT,L1,GN,a2,Uo,o2,qm,D1,WN,l2,Rd,$N,c2,Ym,yp,aT,oT,Hu,d2,KN,p9,qN,OY,YN,PY,lT,dM,m9,G2e,g9,W2e,XN,LY,cT,uM,JN,DY,v9,$2e,y9,K2e,_9,q2e,QN,kY,E9,Y2e,ZN,MY,w9,X2e,S9,J2e,b9,Q2e,e5,jY,u2,BI;const Vi=class Vi{constructor(t){ee(this,qN);ee(this,lT);ee(this,m9);ee(this,g9);ee(this,XN);ee(this,cT);ee(this,JN);ee(this,v9);ee(this,y9);ee(this,_9);ee(this,QN);ee(this,E9);ee(this,ZN);ee(this,w9);ee(this,S9);ee(this,b9);ee(this,e5);ee(this,u2);ee(this,s2,null);ee(this,Kh,null);ee(this,Os,null);ee(this,jo,null);ee(this,sT,!1);ee(this,L1,null);ee(this,GN,"");ee(this,a2,!1);ee(this,Uo,null);ee(this,o2,null);ee(this,qm,null);ee(this,D1,null);ee(this,WN,"");ee(this,l2,!1);ee(this,Rd,null);ee(this,$N,!1);ee(this,c2,!1);ee(this,Ym,!1);ee(this,yp,null);ee(this,aT,0);ee(this,oT,0);ee(this,Hu,null);ee(this,d2,null);sn(this,"isSelected",!1);sn(this,"_isCopy",!1);sn(this,"_editToolbar",null);sn(this,"_initialOptions",Object.create(null));sn(this,"_initialData",null);sn(this,"_isVisible",!0);sn(this,"_uiManager",null);sn(this,"_focusEventsAllowed",!0);ee(this,KN,!1);ee(this,p9,Vi._zIndex++);this.parent=t.parent,this.id=t.id,this.width=this.height=null,this.pageIndex=t.parent.pageIndex,this.name=t.name,this.div=null,this._uiManager=t.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=t.isCentered,this._structTreeParentId=null,this.annotationElementId=t.annotationElementId||null;const{rotation:i,rawDims:{pageWidth:s,pageHeight:l,pageX:d,pageY:u}}=this.parent.viewport;this.rotation=i,this.pageRotation=(360+i-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[s,l],this.pageTranslation=[d,u];const[p,g]=this.parentDimensions;this.x=t.x/p,this.y=t.y/g,this.isAttachedToDOM=!1,this.deleted=!1}static get _resizerKeyboardManager(){const t=Vi.prototype._resizeWithKeyboard,i=OE.TRANSLATE_SMALL,s=OE.TRANSLATE_BIG;return Ki(this,"_resizerKeyboardManager",new iP([[["ArrowLeft","mac+ArrowLeft"],t,{args:[-i,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t,{args:[-s,0]}],[["ArrowRight","mac+ArrowRight"],t,{args:[i,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t,{args:[s,0]}],[["ArrowUp","mac+ArrowUp"],t,{args:[0,-i]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t,{args:[0,-s]}],[["ArrowDown","mac+ArrowDown"],t,{args:[0,i]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t,{args:[0,s]}],[["Escape","mac+Escape"],Vi.prototype._stopResizingWithKeyboard]]))}get editorType(){return Object.getPrototypeOf(this).constructor._type}get mode(){return Object.getPrototypeOf(this).constructor._editorType}static get isDrawer(){return!1}static get _defaultLineColor(){return Ki(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(t){const i=new FQe({id:t.parent.getNextId(),parent:t.parent,uiManager:t._uiManager});i.annotationElementId=t.annotationElementId,i.deleted=!0,i._uiManager.addToAnnotationStorage(i)}static initialize(t,i){if(Vi._l10n??(Vi._l10n=t),Vi._l10nResizer||(Vi._l10nResizer=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"})),Vi._borderLineWidth!==-1)return;const s=getComputedStyle(document.documentElement);Vi._borderLineWidth=parseFloat(s.getPropertyValue("--outline-width"))||0}static updateDefaultParams(t,i){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(t){return!1}static paste(t,i){Zr("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return T(this,KN)}set _isDraggable(t){var i;re(this,KN,t),(i=this.div)==null||i.classList.toggle("draggable",t)}get isEnterHandled(){return!0}center(){const[t,i]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*i/(t*2),this.y+=this.width*t/(i*2);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*i/(t*2),this.y-=this.width*t/(i*2);break;default:this.x-=this.width/2,this.y-=this.height/2;break}this.fixAndSetPosition()}addCommands(t){this._uiManager.addCommands(t)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=T(this,p9)}setParent(t){t!==null?(this.pageIndex=t.pageIndex,this.pageDimensions=t.pageDimensions):pe(this,u2,BI).call(this),this.parent=t}focusin(t){this._focusEventsAllowed&&(T(this,l2)?re(this,l2,!1):this.parent.setSelected(this))}focusout(t){var s;if(!this._focusEventsAllowed||!this.isAttachedToDOM)return;const i=t.relatedTarget;i!=null&&i.closest(`#${this.id}`)||(t.preventDefault(),(s=this.parent)!=null&&s.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.isInEditMode()&&this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(t,i,s,l){const[d,u]=this.parentDimensions;[s,l]=this.screenToPageTranslation(s,l),this.x=(t+s)/d,this.y=(i+l)/u,this.fixAndSetPosition()}_moveAfterPaste(t,i){const[s,l]=this.parentDimensions;this.setAt(t*s,i*l,this.width*s,this.height*l),this._onTranslated()}translate(t,i){pe(this,qN,OY).call(this,this.parentDimensions,t,i)}translateInPage(t,i){T(this,Rd)||re(this,Rd,[this.x,this.y,this.width,this.height]),pe(this,qN,OY).call(this,this.pageDimensions,t,i),this.div.scrollIntoView({block:"nearest"})}translationDone(){this._onTranslated(this.x,this.y)}drag(t,i){T(this,Rd)||re(this,Rd,[this.x,this.y,this.width,this.height]);const{div:s,parentDimensions:[l,d]}=this;if(this.x+=t/l,this.y+=i/d,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:E,y:b}=this.div.getBoundingClientRect();this.parent.findNewParent(this,E,b)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:u,y:p}=this;const[g,_]=this.getBaseTranslation();u+=g,p+=_;const{style:y}=s;y.left=`${(100*u).toFixed(2)}%`,y.top=`${(100*p).toFixed(2)}%`,this._onTranslating(u,p),s.scrollIntoView({block:"nearest"})}_onTranslating(t,i){}_onTranslated(t,i){}get _hasBeenMoved(){return!!T(this,Rd)&&(T(this,Rd)[0]!==this.x||T(this,Rd)[1]!==this.y)}get _hasBeenResized(){return!!T(this,Rd)&&(T(this,Rd)[2]!==this.width||T(this,Rd)[3]!==this.height)}getBaseTranslation(){const[t,i]=this.parentDimensions,{_borderLineWidth:s}=Vi,l=s/t,d=s/i;switch(this.rotation){case 90:return[-l,d];case 180:return[l,d];case 270:return[l,-d];default:return[-l,-d]}}get _mustFixPosition(){return!0}fixAndSetPosition(t=this.rotation){const{div:{style:i},pageDimensions:[s,l]}=this;let{x:d,y:u,width:p,height:g}=this;if(p*=s,g*=l,d*=s,u*=l,this._mustFixPosition)switch(t){case 0:d=tc(d,0,s-p),u=tc(u,0,l-g);break;case 90:d=tc(d,0,s-g),u=tc(u,p,l);break;case 180:d=tc(d,p,s),u=tc(u,g,l);break;case 270:d=tc(d,g,s),u=tc(u,0,l-p);break}this.x=d/=s,this.y=u/=l;const[_,y]=this.getBaseTranslation();d+=_,u+=y,i.left=`${(100*d).toFixed(2)}%`,i.top=`${(100*u).toFixed(2)}%`,this.moveInDOM()}screenToPageTranslation(t,i){var s;return pe(s=Vi,YN,PY).call(s,t,i,this.parentRotation)}pageTranslationToScreen(t,i){var s;return pe(s=Vi,YN,PY).call(s,t,i,360-this.parentRotation)}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){const{parentScale:t,pageDimensions:[i,s]}=this;return[i*t,s*t]}setDims(t,i){const[s,l]=this.parentDimensions,{style:d}=this.div;d.width=`${(100*t/s).toFixed(2)}%`,T(this,a2)||(d.height=`${(100*i/l).toFixed(2)}%`)}fixDims(){const{style:t}=this.div,{height:i,width:s}=t,l=s.endsWith("%"),d=!T(this,a2)&&i.endsWith("%");if(l&&d)return;const[u,p]=this.parentDimensions;l||(t.width=`${(100*parseFloat(s)/u).toFixed(2)}%`),!T(this,a2)&&!d&&(t.height=`${(100*parseFloat(i)/p).toFixed(2)}%`)}getInitialTranslation(){return[0,0]}_onResized(){}static _round(t){return Math.round(t*1e4)/1e4}_onResizing(){}altTextFinish(){var t;(t=T(this,Os))==null||t.finish()}get toolbarButtons(){return null}async addEditToolbar(){if(this._editToolbar||T(this,c2))return this._editToolbar;this._editToolbar=new SY(this),this.div.append(this._editToolbar.render()),this._editToolbar.addButton("comment",this.addCommentButton());const{toolbarButtons:t}=this;if(t)for(const[i,s]of t)await this._editToolbar.addButton(i,s);return this._editToolbar.addButton("delete"),this._editToolbar}removeEditToolbar(){var t;this._editToolbar&&(this._editToolbar.remove(),this._editToolbar=null,(t=T(this,Os))==null||t.destroy())}addContainer(t){var s;const i=(s=this._editToolbar)==null?void 0:s.div;i?i.before(t):this.div.append(t)}getClientDimensions(){return this.div.getBoundingClientRect()}createAltText(){return T(this,Os)||(P7.initialize(Vi._l10n),re(this,Os,new P7(this)),T(this,s2)&&(T(this,Os).data=T(this,s2),re(this,s2,null))),T(this,Os)}get altTextData(){var t;return(t=T(this,Os))==null?void 0:t.data}set altTextData(t){T(this,Os)&&(T(this,Os).data=t)}get guessedAltText(){var t;return(t=T(this,Os))==null?void 0:t.guessedText}async setGuessedAltText(t){var i;await((i=T(this,Os))==null?void 0:i.setGuessedText(t))}serializeAltText(t){var i;return(i=T(this,Os))==null?void 0:i.serialize(t)}hasAltText(){return!!T(this,Os)&&!T(this,Os).isEmpty()}hasAltTextData(){var t;return((t=T(this,Os))==null?void 0:t.hasData())??!1}addCommentButton(){return T(this,jo)?T(this,jo):re(this,jo,new Rk(this))}get commentColor(){return null}get comment(){const t=T(this,jo);return{text:t.data.text,date:t.data.date,deleted:t.isDeleted(),color:this.commentColor}}set comment(t){T(this,jo)||re(this,jo,new Rk(this)),T(this,jo).data=t}setCommentData(t){T(this,jo)||re(this,jo,new Rk(this)),T(this,jo).setInitialText(t)}get hasEditedComment(){var t;return(t=T(this,jo))==null?void 0:t.hasBeenEdited()}async editComment(){T(this,jo)||re(this,jo,new Rk(this)),T(this,jo).edit()}addComment(t){this.hasEditedComment&&(t.popup={contents:this.comment.text,deleted:this.comment.deleted})}render(){var u;const t=this.div=document.createElement("div");t.setAttribute("data-editor-rotation",(360-this.rotation)%360),t.className=this.name,t.setAttribute("id",this.id),t.tabIndex=T(this,sT)?-1:0,t.setAttribute("role","application"),this.defaultL10nId&&t.setAttribute("data-l10n-id",this.defaultL10nId),this._isVisible||t.classList.add("hidden"),this.setInForeground(),pe(this,ZN,MY).call(this);const[i,s]=this.parentDimensions;this.parentRotation%180!==0&&(t.style.maxWidth=`${(100*s/i).toFixed(2)}%`,t.style.maxHeight=`${(100*i/s).toFixed(2)}%`);const[l,d]=this.getInitialTranslation();return this.translate(l,d),I2e(this,t,["keydown","pointerdown","dblclick"]),this.isResizable&&this._uiManager._supportsPinchToZoom&&(T(this,d2)||re(this,d2,new L7({container:t,isPinchingDisabled:()=>!this.isSelected,onPinchStart:pe(this,v9,$2e).bind(this),onPinching:pe(this,y9,K2e).bind(this),onPinchEnd:pe(this,_9,q2e).bind(this),signal:this._uiManager._signal}))),(u=this._uiManager._editorUndoBar)==null||u.hide(),t}pointerdown(t){const{isMac:i}=qo.platform;if(t.button!==0||t.ctrlKey&&i){t.preventDefault();return}if(re(this,l2,!0),this._isDraggable){pe(this,E9,Y2e).call(this,t);return}pe(this,QN,kY).call(this,t)}_onStartDragging(){}_onStopDragging(){}moveInDOM(){T(this,yp)&&clearTimeout(T(this,yp)),re(this,yp,setTimeout(()=>{var t;re(this,yp,null),(t=this.parent)==null||t.moveEditorInDOM(this)},0))}_setParentAndPosition(t,i,s){t.changeParent(this),this.x=i,this.y=s,this.fixAndSetPosition(),this._onTranslated()}getRect(t,i,s=this.rotation){const l=this.parentScale,[d,u]=this.pageDimensions,[p,g]=this.pageTranslation,_=t/l,y=i/l,E=this.x*d,b=this.y*u,A=this.width*d,N=this.height*u;switch(s){case 0:return[E+_+p,u-b-y-N+g,E+_+A+p,u-b-y+g];case 90:return[E+y+p,u-b+_+g,E+y+N+p,u-b+_+A+g];case 180:return[E-_-A+p,u-b+y+g,E-_+p,u-b+y+N+g];case 270:return[E-y-N+p,u-b-_-A+g,E-y+p,u-b-_+g];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(t,i){const[s,l,d,u]=t,p=d-s,g=u-l;switch(this.rotation){case 0:return[s,i-u,p,g];case 90:return[s,i-l,g,p];case 180:return[d,i-l,p,g];case 270:return[d,i-u,g,p];default:throw new Error("Invalid rotation")}}onceAdded(t){}isEmpty(){return!1}enableEditMode(){return this.isInEditMode()?!1:(this.parent.setEditingState(!1),re(this,c2,!0),!0)}disableEditMode(){return this.isInEditMode()?(this.parent.setEditingState(!0),re(this,c2,!1),!0):!1}isInEditMode(){return T(this,c2)}shouldGetKeyboardEvents(){return T(this,Ym)}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){const{top:t,left:i,bottom:s,right:l}=this.getClientDimensions(),{innerHeight:d,innerWidth:u}=window;return i0&&t0}rebuild(){pe(this,ZN,MY).call(this)}rotate(t){}resize(){}serializeDeleted(){var t;return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:((t=this._initialData)==null?void 0:t.popupRef)||""}}serialize(t=!1,i=null){Zr("An editor must be serializable")}static async deserialize(t,i,s){const l=new this.prototype.constructor({parent:i,id:i.getNextId(),uiManager:s,annotationElementId:t.annotationElementId});l.rotation=t.rotation,re(l,s2,t.accessibilityData),l._isCopy=t.isCopy||!1;const[d,u]=l.pageDimensions,[p,g,_,y]=l.getRectInCurrentCoords(t.rect,u);return l.x=p/d,l.y=g/u,l.width=_/d,l.height=y/u,l}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||this.serialize()!==null)}remove(){var t,i;if((t=T(this,D1))==null||t.abort(),re(this,D1,null),this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),T(this,yp)&&(clearTimeout(T(this,yp)),re(this,yp,null)),pe(this,u2,BI).call(this),this.removeEditToolbar(),T(this,Hu)){for(const s of T(this,Hu).values())clearTimeout(s);re(this,Hu,null)}this.parent=null,(i=T(this,d2))==null||i.destroy(),re(this,d2,null)}get isResizable(){return!1}makeResizable(){this.isResizable&&(pe(this,m9,G2e).call(this),T(this,Uo).classList.remove("hidden"))}get toolbarPosition(){return null}keydown(t){if(!this.isResizable||t.target!==this.div||t.key!=="Enter")return;this._uiManager.setSelected(this),re(this,qm,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const i=T(this,Uo).children;if(!T(this,Kh)){re(this,Kh,Array.from(i));const u=pe(this,w9,X2e).bind(this),p=pe(this,S9,J2e).bind(this),g=this._uiManager._signal;for(const _ of T(this,Kh)){const y=_.getAttribute("data-resizer-name");_.setAttribute("role","spinbutton"),_.addEventListener("keydown",u,{signal:g}),_.addEventListener("blur",p,{signal:g}),_.addEventListener("focus",pe(this,b9,Q2e).bind(this,y),{signal:g}),_.setAttribute("data-l10n-id",Vi._l10nResizer[y])}}const s=T(this,Kh)[0];let l=0;for(const u of i){if(u===s)break;l++}const d=(360-this.rotation+this.parentRotation)%360/90*(T(this,Kh).length/4);if(d!==l){if(dl)for(let p=0;p{var l,d;(l=this.div)!=null&&l.classList.contains("selectedEditor")&&((d=this._editToolbar)==null||d.show())});return}(i=this._editToolbar)==null||i.show(),(s=T(this,Os))==null||s.toggleAltTextBadge(!1)}}unselect(){var t,i,s,l,d;this.isSelected&&(this.isSelected=!1,(t=T(this,Uo))==null||t.classList.add("hidden"),(i=this.div)==null||i.classList.remove("selectedEditor"),(s=this.div)!=null&&s.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),(l=this._editToolbar)==null||l.hide(),(d=T(this,Os))==null||d.toggleAltTextBadge(!0))}updateParams(t,i){}disableEditing(){}enableEditing(){}get canChangeContent(){return!1}enterInEditMode(){this.canChangeContent&&(this.enableEditMode(),this.div.focus())}dblclick(t){this.enterInEditMode(),this.parent.updateToolbar({mode:this.constructor._editorType,editId:this.id})}getElementForAltText(){return this.div}get contentDiv(){return this.div}get isEditing(){return T(this,$N)}set isEditing(t){re(this,$N,t),this.parent&&(t?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}setAspectRatio(t,i){re(this,a2,!0);const s=t/i,{style:l}=this.div;l.aspectRatio=s,l.height="auto"}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(t,i=!1){if(i){T(this,Hu)||re(this,Hu,new Map);const{action:s}=t;let l=T(this,Hu).get(s);l&&clearTimeout(l),l=setTimeout(()=>{this._reportTelemetry(t),T(this,Hu).delete(s),T(this,Hu).size===0&&re(this,Hu,null)},Vi._telemetryTimeout),T(this,Hu).set(s,l);return}t.type||(t.type=this.editorType),this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:t}})}show(t=this._isVisible){this.div.classList.toggle("hidden",!t),this._isVisible=t}enable(){this.div&&(this.div.tabIndex=0),re(this,sT,!1)}disable(){this.div&&(this.div.tabIndex=-1),re(this,sT,!0)}renderAnnotationElement(t){let i=t.container.querySelector(".annotationContent");if(!i)i=document.createElement("div"),i.classList.add("annotationContent",this.editorType),t.container.prepend(i);else if(i.nodeName==="CANVAS"){const s=i;i=document.createElement("div"),i.classList.add("annotationContent",this.editorType),s.before(i)}return i}resetAnnotationElement(t){const{firstChild:i}=t.container;(i==null?void 0:i.nodeName)==="DIV"&&i.classList.contains("annotationContent")&&i.remove()}};s2=new WeakMap,Kh=new WeakMap,Os=new WeakMap,jo=new WeakMap,sT=new WeakMap,L1=new WeakMap,GN=new WeakMap,a2=new WeakMap,Uo=new WeakMap,o2=new WeakMap,qm=new WeakMap,D1=new WeakMap,WN=new WeakMap,l2=new WeakMap,Rd=new WeakMap,$N=new WeakMap,c2=new WeakMap,Ym=new WeakMap,yp=new WeakMap,aT=new WeakMap,oT=new WeakMap,Hu=new WeakMap,d2=new WeakMap,KN=new WeakMap,p9=new WeakMap,qN=new WeakSet,OY=function([t,i],s,l){[s,l]=this.screenToPageTranslation(s,l),this.x+=s/t,this.y+=l/i,this._onTranslating(this.x,this.y),this.fixAndSetPosition()},YN=new WeakSet,PY=function(t,i,s){switch(s){case 90:return[i,-t];case 180:return[-t,-i];case 270:return[-i,t];default:return[t,i]}},lT=new WeakSet,dM=function(t){switch(t){case 90:{const[i,s]=this.pageDimensions;return[0,-i/s,s/i,0]}case 180:return[-1,0,0,-1];case 270:{const[i,s]=this.pageDimensions;return[0,i/s,-s/i,0]}default:return[1,0,0,1]}},m9=new WeakSet,G2e=function(){if(T(this,Uo))return;re(this,Uo,document.createElement("div")),T(this,Uo).classList.add("resizers");const t=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],i=this._uiManager._signal;for(const s of t){const l=document.createElement("div");T(this,Uo).append(l),l.classList.add("resizer",s),l.setAttribute("data-resizer-name",s),l.addEventListener("pointerdown",pe(this,g9,W2e).bind(this,s),{signal:i}),l.addEventListener("contextmenu",rh,{signal:i}),l.tabIndex=-1}this.div.prepend(T(this,Uo))},g9=new WeakSet,W2e=function(t,i){var y;i.preventDefault();const{isMac:s}=qo.platform;if(i.button!==0||i.ctrlKey&&s)return;(y=T(this,Os))==null||y.toggle(!1);const l=this._isDraggable;this._isDraggable=!1,re(this,o2,[i.screenX,i.screenY]);const d=new AbortController,u=this._uiManager.combinedSignal(d);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",pe(this,JN,DY).bind(this,t),{passive:!0,capture:!0,signal:u}),window.addEventListener("touchmove",Ra,{passive:!1,signal:u}),window.addEventListener("contextmenu",rh,{signal:u}),re(this,qm,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const p=this.parent.div.style.cursor,g=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(i.target).cursor;const _=()=>{var E;d.abort(),this.parent.togglePointerEvents(!0),(E=T(this,Os))==null||E.toggle(!0),this._isDraggable=l,this.parent.div.style.cursor=p,this.div.style.cursor=g,pe(this,cT,uM).call(this)};window.addEventListener("pointerup",_,{signal:u}),window.addEventListener("blur",_,{signal:u})},XN=new WeakSet,LY=function(t,i,s,l){this.width=s,this.height=l,this.x=t,this.y=i;const[d,u]=this.parentDimensions;this.setDims(d*s,u*l),this.fixAndSetPosition(),this._onResized()},cT=new WeakSet,uM=function(){if(!T(this,qm))return;const{savedX:t,savedY:i,savedWidth:s,savedHeight:l}=T(this,qm);re(this,qm,null);const d=this.x,u=this.y,p=this.width,g=this.height;d===t&&u===i&&p===s&&g===l||this.addCommands({cmd:pe(this,XN,LY).bind(this,d,u,p,g),undo:pe(this,XN,LY).bind(this,t,i,s,l),mustExec:!0})},JN=new WeakSet,DY=function(t,i){const[s,l]=this.parentDimensions,d=this.x,u=this.y,p=this.width,g=this.height,_=Vi.MIN_SIZE/s,y=Vi.MIN_SIZE/l,E=pe(this,lT,dM).call(this,this.rotation),b=(he,Ce)=>[E[0]*he+E[2]*Ce,E[1]*he+E[3]*Ce],A=pe(this,lT,dM).call(this,360-this.rotation),N=(he,Ce)=>[A[0]*he+A[2]*Ce,A[1]*he+A[3]*Ce];let O,D,P=!1,j=!1;switch(t){case"topLeft":P=!0,O=(he,Ce)=>[0,0],D=(he,Ce)=>[he,Ce];break;case"topMiddle":O=(he,Ce)=>[he/2,0],D=(he,Ce)=>[he/2,Ce];break;case"topRight":P=!0,O=(he,Ce)=>[he,0],D=(he,Ce)=>[0,Ce];break;case"middleRight":j=!0,O=(he,Ce)=>[he,Ce/2],D=(he,Ce)=>[0,Ce/2];break;case"bottomRight":P=!0,O=(he,Ce)=>[he,Ce],D=(he,Ce)=>[0,0];break;case"bottomMiddle":O=(he,Ce)=>[he/2,Ce],D=(he,Ce)=>[he/2,0];break;case"bottomLeft":P=!0,O=(he,Ce)=>[0,Ce],D=(he,Ce)=>[he,0];break;case"middleLeft":j=!0,O=(he,Ce)=>[0,Ce/2],D=(he,Ce)=>[he,Ce/2];break}const M=O(p,g),V=D(p,g);let H=b(...V);const $=Vi._round(d+H[0]),Q=Vi._round(u+H[1]);let Y=1,le=1,ae,te;if(i.fromKeyboard)({deltaX:ae,deltaY:te}=i);else{const{screenX:he,screenY:Ce}=i,[fe,me]=T(this,o2);[ae,te]=this.screenToPageTranslation(he-fe,Ce-me),T(this,o2)[0]=he,T(this,o2)[1]=Ce}if([ae,te]=N(ae/s,te/l),P){const he=Math.hypot(p,g);Y=le=Math.max(Math.min(Math.hypot(V[0]-M[0]-ae,V[1]-M[1]-te)/he,1/p,1/g),_/p,y/g)}else j?Y=tc(Math.abs(V[0]-M[0]-ae),_,1)/p:le=tc(Math.abs(V[1]-M[1]-te),y,1)/g;const de=Vi._round(p*Y),G=Vi._round(g*le);H=b(...D(de,G));const ie=$-H[0],_e=Q-H[1];T(this,Rd)||re(this,Rd,[this.x,this.y,this.width,this.height]),this.width=de,this.height=G,this.x=ie,this.y=_e,this.setDims(s*de,l*G),this.fixAndSetPosition(),this._onResizing()},v9=new WeakSet,$2e=function(){var t;re(this,qm,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height}),(t=T(this,Os))==null||t.toggle(!1),this.parent.togglePointerEvents(!1)},y9=new WeakSet,K2e=function(t,i,s){let d=.7*(s/i)+1-.7;if(d===1)return;const u=pe(this,lT,dM).call(this,this.rotation),p=($,Q)=>[u[0]*$+u[2]*Q,u[1]*$+u[3]*Q],[g,_]=this.parentDimensions,y=this.x,E=this.y,b=this.width,A=this.height,N=Vi.MIN_SIZE/g,O=Vi.MIN_SIZE/_;d=Math.max(Math.min(d,1/b,1/A),N/b,O/A);const D=Vi._round(b*d),P=Vi._round(A*d);if(D===b&&P===A)return;T(this,Rd)||re(this,Rd,[y,E,b,A]);const j=p(b/2,A/2),M=Vi._round(y+j[0]),V=Vi._round(E+j[1]),H=p(D/2,P/2);this.x=M-H[0],this.y=V-H[1],this.width=D,this.height=P,this.setDims(g*D,_*P),this.fixAndSetPosition(),this._onResizing()},_9=new WeakSet,q2e=function(){var t;(t=T(this,Os))==null||t.toggle(!0),this.parent.togglePointerEvents(!0),pe(this,cT,uM).call(this)},QN=new WeakSet,kY=function(t){const{isMac:i}=qo.platform;t.ctrlKey&&!i||t.shiftKey||t.metaKey&&i?this.parent.toggleSelected(this):this.parent.setSelected(this)},E9=new WeakSet,Y2e=function(t){const{isSelected:i}=this;this._uiManager.setUpDragSession();let s=!1;const l=new AbortController,d=this._uiManager.combinedSignal(l),u={capture:!0,passive:!1,signal:d},p=_=>{l.abort(),re(this,L1,null),re(this,l2,!1),this._uiManager.endDragSession()||pe(this,QN,kY).call(this,_),s&&this._onStopDragging()};i&&(re(this,aT,t.clientX),re(this,oT,t.clientY),re(this,L1,t.pointerId),re(this,GN,t.pointerType),window.addEventListener("pointermove",_=>{s||(s=!0,this._onStartDragging());const{clientX:y,clientY:E,pointerId:b}=_;if(b!==T(this,L1)){Ra(_);return}const[A,N]=this.screenToPageTranslation(y-T(this,aT),E-T(this,oT));re(this,aT,y),re(this,oT,E),this._uiManager.dragSelectedEditors(A,N)},u),window.addEventListener("touchmove",Ra,u),window.addEventListener("pointerdown",_=>{_.pointerType===T(this,GN)&&(T(this,d2)||_.isPrimary)&&p(_),Ra(_)},u));const g=_=>{if(!T(this,L1)||T(this,L1)===_.pointerId){p(_);return}Ra(_)};window.addEventListener("pointerup",g,{signal:d}),window.addEventListener("blur",g,{signal:d})},ZN=new WeakSet,MY=function(){if(T(this,D1)||!this.div)return;re(this,D1,new AbortController);const t=this._uiManager.combinedSignal(T(this,D1));this.div.addEventListener("focusin",this.focusin.bind(this),{signal:t}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:t})},w9=new WeakSet,X2e=function(t){Vi._resizerKeyboardManager.exec(this,t)},S9=new WeakSet,J2e=function(t){var i;T(this,Ym)&&((i=t.relatedTarget)==null?void 0:i.parentNode)!==T(this,Uo)&&pe(this,u2,BI).call(this)},b9=new WeakSet,Q2e=function(t){re(this,WN,T(this,Ym)?t:"")},e5=new WeakSet,jY=function(t){if(T(this,Kh))for(const i of T(this,Kh))i.tabIndex=t},u2=new WeakSet,BI=function(){re(this,Ym,!1),pe(this,e5,jY).call(this,-1),pe(this,cT,uM).call(this)},ee(Vi,YN),sn(Vi,"_l10n",null),sn(Vi,"_l10nResizer",null),sn(Vi,"_borderLineWidth",-1),sn(Vi,"_colorManager",new CY),sn(Vi,"_zIndex",1),sn(Vi,"_telemetryTimeout",1e3);let ds=Vi;class FQe extends ds{constructor(t){super(t),this.annotationElementId=t.annotationElementId,this.deleted=!0}serialize(){return this.serializeDeleted()}}const yfe=3285377520,Du=4294901760,Qf=65535;class Z2e{constructor(t){this.h1=t?t&4294967295:yfe,this.h2=t?t&4294967295:yfe}update(t){let i,s;if(typeof t=="string"){i=new Uint8Array(t.length*2),s=0;for(let O=0,D=t.length;O>>8,i[s++]=P&255)}}else if(ArrayBuffer.isView(t))i=t.slice(),s=i.byteLength;else throw new Error("Invalid data format, must be a string or TypedArray.");const l=s>>2,d=s-l*4,u=new Uint32Array(i.buffer,0,l);let p=0,g=0,_=this.h1,y=this.h2;const E=3432918353,b=461845907,A=E&Qf,N=b&Qf;for(let O=0;O>>17,p=p*b&Du|p*N&Qf,_^=p,_=_<<13|_>>>19,_=_*5+3864292196):(g=u[O],g=g*E&Du|g*A&Qf,g=g<<15|g>>>17,g=g*b&Du|g*N&Qf,y^=g,y=y<<13|y>>>19,y=y*5+3864292196);switch(p=0,d){case 3:p^=i[l*4+2]<<16;case 2:p^=i[l*4+1]<<8;case 1:p^=i[l*4],p=p*E&Du|p*A&Qf,p=p<<15|p>>>17,p=p*b&Du|p*N&Qf,l&1?_^=p:y^=p}this.h1=_,this.h2=y}hexdigest(){let t=this.h1,i=this.h2;return t^=i>>>1,t=t*3981806797&Du|t*36045&Qf,i=i*4283543511&Du|((i<<16|t>>>16)*2950163797&Du)>>>16,t^=i>>>1,t=t*444984403&Du|t*60499&Qf,i=i*3301882366&Du|((i<<16|t>>>16)*3120437893&Du)>>>16,t^=i>>>1,(t>>>0).toString(16).padStart(8,"0")+(i>>>0).toString(16).padStart(8,"0")}}const UY=Object.freeze({map:null,hash:"",transfer:void 0});var h2,f2,Fo,C9,eEe;class cZ{constructor(){ee(this,C9);ee(this,h2,!1);ee(this,f2,null);ee(this,Fo,new Map);this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(t,i){const s=T(this,Fo).get(t);return s===void 0?i:Object.assign(i,s)}getRawValue(t){return T(this,Fo).get(t)}remove(t){if(T(this,Fo).delete(t),T(this,Fo).size===0&&this.resetModified(),typeof this.onAnnotationEditor=="function"){for(const i of T(this,Fo).values())if(i instanceof ds)return;this.onAnnotationEditor(null)}}setValue(t,i){const s=T(this,Fo).get(t);let l=!1;if(s!==void 0)for(const[d,u]of Object.entries(i))s[d]!==u&&(l=!0,s[d]=u);else l=!0,T(this,Fo).set(t,i);l&&pe(this,C9,eEe).call(this),i instanceof ds&&typeof this.onAnnotationEditor=="function"&&this.onAnnotationEditor(i.constructor._type)}has(t){return T(this,Fo).has(t)}get size(){return T(this,Fo).size}resetModified(){T(this,h2)&&(re(this,h2,!1),typeof this.onResetModified=="function"&&this.onResetModified())}get print(){return new tEe(this)}get serializable(){if(T(this,Fo).size===0)return UY;const t=new Map,i=new Z2e,s=[],l=Object.create(null);let d=!1;for(const[u,p]of T(this,Fo)){const g=p instanceof ds?p.serialize(!1,l):p;g&&(t.set(u,g),i.update(`${u}:${JSON.stringify(g)}`),d||(d=!!g.bitmap))}if(d)for(const u of t.values())u.bitmap&&s.push(u.bitmap);return t.size>0?{map:t,hash:i.hexdigest(),transfer:s}:UY}get editorStats(){let t=null;const i=new Map;for(const s of T(this,Fo).values()){if(!(s instanceof ds))continue;const l=s.telemetryFinalData;if(!l)continue;const{type:d}=l;i.has(d)||i.set(d,Object.getPrototypeOf(s).constructor),t||(t=Object.create(null));const u=t[d]||(t[d]=new Map);for(const[p,g]of Object.entries(l)){if(p==="type")continue;let _=u.get(p);_||(_=new Map,u.set(p,_));const y=_.get(g)??0;_.set(g,y+1)}}for(const[s,l]of i)t[s]=l.computeTelemetryFinalData(t[s]);return t}resetModifiedIds(){re(this,f2,null)}get modifiedIds(){if(T(this,f2))return T(this,f2);const t=[];for(const i of T(this,Fo).values())!(i instanceof ds)||!i.annotationElementId||!i.serialize()||t.push(i.annotationElementId);return re(this,f2,{ids:new Set(t),hash:t.join(",")})}[Symbol.iterator](){return T(this,Fo).entries()}}h2=new WeakMap,f2=new WeakMap,Fo=new WeakMap,C9=new WeakSet,eEe=function(){T(this,h2)||(re(this,h2,!0),typeof this.onSetModified=="function"&&this.onSetModified())};var t5;class tEe extends cZ{constructor(i){super();ee(this,t5,void 0);const{map:s,hash:l,transfer:d}=i.serializable,u=structuredClone(s,d?{transfer:d}:null);re(this,t5,{map:u,hash:l,transfer:d})}get print(){Zr("Should not call PrintAnnotationStorage.print")}get serializable(){return T(this,t5)}get modifiedIds(){return Ki(this,"modifiedIds",{ids:new Set,hash:""})}}t5=new WeakMap;var dT;class BQe{constructor({ownerDocument:t=globalThis.document,styleElement:i=null}){ee(this,dT,new Set);this._document=t,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(t){this.nativeFontFaces.add(t),this._document.fonts.add(t)}removeNativeFontFace(t){this.nativeFontFaces.delete(t),this._document.fonts.delete(t)}insertRule(t){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));const i=this.styleElement.sheet;i.insertRule(t,i.cssRules.length)}clear(){for(const t of this.nativeFontFaces)this._document.fonts.delete(t);this.nativeFontFaces.clear(),T(this,dT).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}async loadSystemFont({systemFontInfo:t,disableFontFace:i,_inspectFont:s}){if(!(!t||T(this,dT).has(t.loadedName))){if(Aa(!i,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){const{loadedName:l,src:d,style:u}=t,p=new FontFace(l,d,u);this.addNativeFontFace(p);try{await p.load(),T(this,dT).add(l),s==null||s(t)}catch{Ei(`Cannot load system font: ${t.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(p)}return}Zr("Not implemented: loadSystemFont without the Font Loading API.")}}async bind(t){if(t.attached||t.missingFile&&!t.systemFontInfo)return;if(t.attached=!0,t.systemFontInfo){await this.loadSystemFont(t);return}if(this.isFontLoadingAPISupported){const s=t.createNativeFontFace();if(s){this.addNativeFontFace(s);try{await s.loaded}catch(l){throw Ei(`Failed to load font '${s.family}': '${l}'.`),t.disableFontFace=!0,l}}return}const i=t.createFontFaceRule();if(i){if(this.insertRule(i),this.isSyncFontLoadingSupported)return;await new Promise(s=>{const l=this._queueLoadingCallback(s);this._prepareFontLoadEvent(t,l)})}}get isFontLoadingAPISupported(){var i;const t=!!((i=this._document)!=null&&i.fonts);return Ki(this,"isFontLoadingAPISupported",t)}get isSyncFontLoadingSupported(){return Ki(this,"isSyncFontLoadingSupported",ec||qo.platform.isFirefox)}_queueLoadingCallback(t){function i(){for(Aa(!l.done,"completeRequest() cannot be called twice."),l.done=!0;s.length>0&&s[0].done;){const d=s.shift();setTimeout(d.callback,0)}}const{loadingRequests:s}=this,l={done:!1,complete:i,callback:t};return s.push(l),l}get _loadTestFont(){const t=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return Ki(this,"_loadTestFont",t)}_prepareFontLoadEvent(t,i){function s(V,H){return V.charCodeAt(H)<<24|V.charCodeAt(H+1)<<16|V.charCodeAt(H+2)<<8|V.charCodeAt(H+3)&255}function l(V,H,$,Q){const Y=V.substring(0,H),le=V.substring(H+$);return Y+Q+le}let d,u;const p=this._document.createElement("canvas");p.width=1,p.height=1;const g=p.getContext("2d");let _=0;function y(V,H){if(++_>30){Ei("Load test font never loaded."),H();return}if(g.font="30px "+V,g.fillText(".",0,20),g.getImageData(0,0,1,1).data[3]>0){H();return}setTimeout(y.bind(null,V,H))}const E=`lt${Date.now()}${this.loadTestFontId++}`;let b=this._loadTestFont;b=l(b,976,E.length,E);const N=16,O=1482184792;let D=s(b,N);for(d=0,u=E.length-3;d{M.remove(),i.complete()})}}dT=new WeakMap;class VQe{constructor(t,i=null){this.compiledGlyphs=Object.create(null);for(const s in t)this[s]=t[s];this._inspectFont=i}createNativeFontFace(){var i;if(!this.data||this.disableFontFace)return null;let t;if(!this.cssFontInfo)t=new FontFace(this.loadedName,this.data,{});else{const s={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(s.style=`oblique ${this.cssFontInfo.italicAngle}deg`),t=new FontFace(this.cssFontInfo.fontFamily,this.data,s)}return(i=this._inspectFont)==null||i.call(this,this),t}createFontFaceRule(){var s;if(!this.data||this.disableFontFace)return null;const t=`url(data:${this.mimetype};base64,${S2e(this.data)});`;let i;if(!this.cssFontInfo)i=`@font-face {font-family:"${this.loadedName}";src:${t}}`;else{let l=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(l+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),i=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${l}src:${t}}`}return(s=this._inspectFont)==null||s.call(this,this,t),i}getPathGenerator(t,i){if(this.compiledGlyphs[i]!==void 0)return this.compiledGlyphs[i];const s=this.loadedName+"_path_"+i;let l;try{l=t.get(s)}catch(u){Ei(`getPathGenerator - ignoring character: "${u}".`)}const d=new Path2D(l||"");return this.fontExtraProperties||t.delete(s),this.compiledGlyphs[i]=d}}function zQe(n){if(n instanceof URL)return n.href;if(typeof n=="string"){if(ec)return n;const t=URL.parse(n,window.location);if(t)return t.href}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function HQe(n){if(ec&&typeof o7<"u"&&n instanceof o7)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(n instanceof Uint8Array&&n.byteLength===n.buffer.byteLength)return n;if(typeof n=="string")return eP(n);if(n instanceof ArrayBuffer||ArrayBuffer.isView(n)||typeof n=="object"&&!isNaN(n==null?void 0:n.length))return new Uint8Array(n);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}function xk(n){if(typeof n!="string")return null;if(n.endsWith("/"))return n;throw new Error(`Invalid factory url: "${n}" must include trailing slash.`)}const FY=n=>typeof n=="object"&&Number.isInteger(n==null?void 0:n.num)&&n.num>=0&&Number.isInteger(n==null?void 0:n.gen)&&n.gen>=0,GQe=n=>typeof n=="object"&&typeof(n==null?void 0:n.name)=="string",WQe=IQe.bind(null,FY,GQe);var Xm,T9;class $Qe{constructor(){ee(this,Xm,new Map);ee(this,T9,Promise.resolve())}postMessage(t,i){const s={data:structuredClone(t,i?{transfer:i}:null)};T(this,T9).then(()=>{for(const[l]of T(this,Xm))l.call(this,s)})}addEventListener(t,i,s=null){let l=null;if((s==null?void 0:s.signal)instanceof AbortSignal){const{signal:d}=s;if(d.aborted){Ei("LoopbackPort - cannot use an `aborted` signal.");return}const u=()=>this.removeEventListener(t,i);l=()=>d.removeEventListener("abort",u),d.addEventListener("abort",u)}T(this,Xm).set(i,l)}removeEventListener(t,i){const s=T(this,Xm).get(i);s==null||s(),T(this,Xm).delete(i)}terminate(){for(const[,t]of T(this,Xm))t==null||t();T(this,Xm).clear()}}Xm=new WeakMap,T9=new WeakMap;const Ak={DATA:1,ERROR:2},Ca={CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function _fe(){}function Vc(n){if(n instanceof Dv||n instanceof _Y||n instanceof mfe||n instanceof N7||n instanceof iK)return n;switch(n instanceof Error||typeof n=="object"&&n!==null||Zr('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),n.name){case"AbortException":return new Dv(n.message);case"InvalidPDFException":return new _Y(n.message);case"PasswordException":return new mfe(n.message,n.code);case"ResponseException":return new N7(n.message,n.status,n.missing);case"UnknownErrorException":return new iK(n.message,n.details)}return new iK(n.message,n.toString())}var uT,R9,nEe,x9,iEe,A9,rEe,hT,hM;class VI{constructor(t,i,s){ee(this,R9);ee(this,x9);ee(this,A9);ee(this,hT);ee(this,uT,new AbortController);this.sourceName=t,this.targetName=i,this.comObj=s,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),s.addEventListener("message",pe(this,R9,nEe).bind(this),{signal:T(this,uT).signal})}on(t,i){const s=this.actionHandler;if(s[t])throw new Error(`There is already an actionName called "${t}"`);s[t]=i}send(t,i,s){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:i},s)}sendWithPromise(t,i,s){const l=this.callbackId++,d=Promise.withResolvers();this.callbackCapabilities[l]=d;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:l,data:i},s)}catch(u){d.reject(u)}return d.promise}sendWithStream(t,i,s,l){const d=this.streamId++,u=this.sourceName,p=this.targetName,g=this.comObj;return new ReadableStream({start:_=>{const y=Promise.withResolvers();return this.streamControllers[d]={controller:_,startCall:y,pullCall:null,cancelCall:null,isClosed:!1},g.postMessage({sourceName:u,targetName:p,action:t,streamId:d,data:i,desiredSize:_.desiredSize},l),y.promise},pull:_=>{const y=Promise.withResolvers();return this.streamControllers[d].pullCall=y,g.postMessage({sourceName:u,targetName:p,stream:Ca.PULL,streamId:d,desiredSize:_.desiredSize}),y.promise},cancel:_=>{Aa(_ instanceof Error,"cancel must have a valid reason");const y=Promise.withResolvers();return this.streamControllers[d].cancelCall=y,this.streamControllers[d].isClosed=!0,g.postMessage({sourceName:u,targetName:p,stream:Ca.CANCEL,streamId:d,reason:Vc(_)}),y.promise}},s)}destroy(){var t;(t=T(this,uT))==null||t.abort(),re(this,uT,null)}}uT=new WeakMap,R9=new WeakSet,nEe=function({data:t}){if(t.targetName!==this.sourceName)return;if(t.stream){pe(this,A9,rEe).call(this,t);return}if(t.callback){const s=t.callbackId,l=this.callbackCapabilities[s];if(!l)throw new Error(`Cannot resolve callback ${s}`);if(delete this.callbackCapabilities[s],t.callback===Ak.DATA)l.resolve(t.data);else if(t.callback===Ak.ERROR)l.reject(Vc(t.reason));else throw new Error("Unexpected callback case");return}const i=this.actionHandler[t.action];if(!i)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const s=this.sourceName,l=t.sourceName,d=this.comObj;Promise.try(i,t.data).then(function(u){d.postMessage({sourceName:s,targetName:l,callback:Ak.DATA,callbackId:t.callbackId,data:u})},function(u){d.postMessage({sourceName:s,targetName:l,callback:Ak.ERROR,callbackId:t.callbackId,reason:Vc(u)})});return}if(t.streamId){pe(this,x9,iEe).call(this,t);return}i(t.data)},x9=new WeakSet,iEe=function(t){const i=t.streamId,s=this.sourceName,l=t.sourceName,d=this.comObj,u=this,p=this.actionHandler[t.action],g={enqueue(_,y=1,E){if(this.isCancelled)return;const b=this.desiredSize;this.desiredSize-=y,b>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),d.postMessage({sourceName:s,targetName:l,stream:Ca.ENQUEUE,streamId:i,chunk:_},E)},close(){this.isCancelled||(this.isCancelled=!0,d.postMessage({sourceName:s,targetName:l,stream:Ca.CLOSE,streamId:i}),delete u.streamSinks[i])},error(_){Aa(_ instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,d.postMessage({sourceName:s,targetName:l,stream:Ca.ERROR,streamId:i,reason:Vc(_)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};g.sinkCapability.resolve(),g.ready=g.sinkCapability.promise,this.streamSinks[i]=g,Promise.try(p,t.data,g).then(function(){d.postMessage({sourceName:s,targetName:l,stream:Ca.START_COMPLETE,streamId:i,success:!0})},function(_){d.postMessage({sourceName:s,targetName:l,stream:Ca.START_COMPLETE,streamId:i,reason:Vc(_)})})},A9=new WeakSet,rEe=function(t){const i=t.streamId,s=this.sourceName,l=t.sourceName,d=this.comObj,u=this.streamControllers[i],p=this.streamSinks[i];switch(t.stream){case Ca.START_COMPLETE:t.success?u.startCall.resolve():u.startCall.reject(Vc(t.reason));break;case Ca.PULL_COMPLETE:t.success?u.pullCall.resolve():u.pullCall.reject(Vc(t.reason));break;case Ca.PULL:if(!p){d.postMessage({sourceName:s,targetName:l,stream:Ca.PULL_COMPLETE,streamId:i,success:!0});break}p.desiredSize<=0&&t.desiredSize>0&&p.sinkCapability.resolve(),p.desiredSize=t.desiredSize,Promise.try(p.onPull||_fe).then(function(){d.postMessage({sourceName:s,targetName:l,stream:Ca.PULL_COMPLETE,streamId:i,success:!0})},function(_){d.postMessage({sourceName:s,targetName:l,stream:Ca.PULL_COMPLETE,streamId:i,reason:Vc(_)})});break;case Ca.ENQUEUE:if(Aa(u,"enqueue should have stream controller"),u.isClosed)break;u.controller.enqueue(t.chunk);break;case Ca.CLOSE:if(Aa(u,"close should have stream controller"),u.isClosed)break;u.isClosed=!0,u.controller.close(),pe(this,hT,hM).call(this,u,i);break;case Ca.ERROR:Aa(u,"error should have stream controller"),u.controller.error(Vc(t.reason)),pe(this,hT,hM).call(this,u,i);break;case Ca.CANCEL_COMPLETE:t.success?u.cancelCall.resolve():u.cancelCall.reject(Vc(t.reason)),pe(this,hT,hM).call(this,u,i);break;case Ca.CANCEL:if(!p)break;const g=Vc(t.reason);Promise.try(p.onCancel||_fe,g).then(function(){d.postMessage({sourceName:s,targetName:l,stream:Ca.CANCEL_COMPLETE,streamId:i,success:!0})},function(_){d.postMessage({sourceName:s,targetName:l,stream:Ca.CANCEL_COMPLETE,streamId:i,reason:Vc(_)})}),p.sinkCapability.reject(g),p.isCancelled=!0,delete this.streamSinks[i];break;default:throw new Error("Unexpected stream case")}},hT=new WeakSet,hM=async function(t,i){var s,l,d;await Promise.allSettled([(s=t.startCall)==null?void 0:s.promise,(l=t.pullCall)==null?void 0:l.promise,(d=t.cancelCall)==null?void 0:d.promise]),delete this.streamControllers[i]};var n5;class sEe{constructor({enableHWA:t=!1}){ee(this,n5,!1);re(this,n5,t)}create(t,i){if(t<=0||i<=0)throw new Error("Invalid canvas size");const s=this._createCanvas(t,i);return{canvas:s,context:s.getContext("2d",{willReadFrequently:!T(this,n5)})}}reset(t,i,s){if(!t.canvas)throw new Error("Canvas is not specified");if(i<=0||s<=0)throw new Error("Invalid canvas size");t.canvas.width=i,t.canvas.height=s}destroy(t){if(!t.canvas)throw new Error("Canvas is not specified");t.canvas.width=0,t.canvas.height=0,t.canvas=null,t.context=null}_createCanvas(t,i){Zr("Abstract method `_createCanvas` called.")}}n5=new WeakMap;class KQe extends sEe{constructor({ownerDocument:t=globalThis.document,enableHWA:i=!1}){super({enableHWA:i}),this._document=t}_createCanvas(t,i){const s=this._document.createElement("canvas");return s.width=t,s.height=i,s}}class aEe{constructor({baseUrl:t=null,isCompressed:i=!0}){this.baseUrl=t,this.isCompressed=i}async fetch({name:t}){if(!this.baseUrl)throw new Error("Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.");if(!t)throw new Error("CMap name must be specified.");const i=this.baseUrl+t+(this.isCompressed?".bcmap":"");return this._fetch(i).then(s=>({cMapData:s,isCompressed:this.isCompressed})).catch(s=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${i}`)})}async _fetch(t){Zr("Abstract method `_fetch` called.")}}class Efe extends aEe{async _fetch(t){const i=await tP(t,this.isCompressed?"arraybuffer":"text");return i instanceof ArrayBuffer?new Uint8Array(i):eP(i)}}class oEe{addFilter(t){return"none"}addHCMFilter(t,i){return"none"}addAlphaFilter(t){return"none"}addLuminosityFilter(t){return"none"}addHighlightHCMFilter(t,i,s,l,d){return"none"}destroy(t=!1){}}var p2,fT,Jm,Qm,ml,m2,g2,ho,fl,v2,zI,k1,Wb,pT,fM,M1,$b,I9,lEe,i5,BY,j1,Kb,y2,HI,_2,GI,r5,VY,E2,WI;class qQe extends oEe{constructor({docId:i,ownerDocument:s=globalThis.document}){super();ee(this,ho);ee(this,v2);ee(this,k1);ee(this,pT);ee(this,M1);ee(this,I9);ee(this,i5);ee(this,j1);ee(this,y2);ee(this,_2);ee(this,r5);ee(this,E2);ee(this,p2,void 0);ee(this,fT,void 0);ee(this,Jm,void 0);ee(this,Qm,void 0);ee(this,ml,void 0);ee(this,m2,void 0);ee(this,g2,0);re(this,Qm,i),re(this,ml,s)}addFilter(i){if(!i)return"none";let s=T(this,ho,fl).get(i);if(s)return s;const[l,d,u]=pe(this,pT,fM).call(this,i),p=i.length===1?l:`${l}${d}${u}`;if(s=T(this,ho,fl).get(p),s)return T(this,ho,fl).set(i,s),s;const g=`g_${T(this,Qm)}_transfer_map_${ao(this,g2)._++}`,_=pe(this,M1,$b).call(this,g);T(this,ho,fl).set(i,_),T(this,ho,fl).set(p,_);const y=pe(this,j1,Kb).call(this,g);return pe(this,_2,GI).call(this,l,d,u,y),_}addHCMFilter(i,s){var N;const l=`${i}-${s}`,d="base";let u=T(this,v2,zI).get(d);if((u==null?void 0:u.key)===l||(u?((N=u.filter)==null||N.remove(),u.key=l,u.url="none",u.filter=null):(u={key:l,url:"none",filter:null},T(this,v2,zI).set(d,u)),!i||!s))return u.url;const p=pe(this,E2,WI).call(this,i);i=zn.makeHexColor(...p);const g=pe(this,E2,WI).call(this,s);if(s=zn.makeHexColor(...g),T(this,k1,Wb).style.color="",i==="#000000"&&s==="#ffffff"||i===s)return u.url;const _=new Array(256);for(let O=0;O<=255;O++){const D=O/255;_[O]=D<=.03928?D/12.92:((D+.055)/1.055)**2.4}const y=_.join(","),E=`g_${T(this,Qm)}_hcm_filter`,b=u.filter=pe(this,j1,Kb).call(this,E);pe(this,_2,GI).call(this,y,y,y,b),pe(this,i5,BY).call(this,b);const A=(O,D)=>{const P=p[O]/255,j=g[O]/255,M=new Array(D+1);for(let V=0;V<=D;V++)M[V]=P+V/D*(j-P);return M.join(",")};return pe(this,_2,GI).call(this,A(0,5),A(1,5),A(2,5),b),u.url=pe(this,M1,$b).call(this,E),u.url}addAlphaFilter(i){let s=T(this,ho,fl).get(i);if(s)return s;const[l]=pe(this,pT,fM).call(this,[i]),d=`alpha_${l}`;if(s=T(this,ho,fl).get(d),s)return T(this,ho,fl).set(i,s),s;const u=`g_${T(this,Qm)}_alpha_map_${ao(this,g2)._++}`,p=pe(this,M1,$b).call(this,u);T(this,ho,fl).set(i,p),T(this,ho,fl).set(d,p);const g=pe(this,j1,Kb).call(this,u);return pe(this,r5,VY).call(this,l,g),p}addLuminosityFilter(i){let s=T(this,ho,fl).get(i||"luminosity");if(s)return s;let l,d;if(i?([l]=pe(this,pT,fM).call(this,[i]),d=`luminosity_${l}`):d="luminosity",s=T(this,ho,fl).get(d),s)return T(this,ho,fl).set(i,s),s;const u=`g_${T(this,Qm)}_luminosity_map_${ao(this,g2)._++}`,p=pe(this,M1,$b).call(this,u);T(this,ho,fl).set(i,p),T(this,ho,fl).set(d,p);const g=pe(this,j1,Kb).call(this,u);return pe(this,I9,lEe).call(this,g),i&&pe(this,r5,VY).call(this,l,g),p}addHighlightHCMFilter(i,s,l,d,u){var j;const p=`${s}-${l}-${d}-${u}`;let g=T(this,v2,zI).get(i);if((g==null?void 0:g.key)===p||(g?((j=g.filter)==null||j.remove(),g.key=p,g.url="none",g.filter=null):(g={key:p,url:"none",filter:null},T(this,v2,zI).set(i,g)),!s||!l))return g.url;const[_,y]=[s,l].map(pe(this,E2,WI).bind(this));let E=Math.round(.2126*_[0]+.7152*_[1]+.0722*_[2]),b=Math.round(.2126*y[0]+.7152*y[1]+.0722*y[2]),[A,N]=[d,u].map(pe(this,E2,WI).bind(this));b{const $=new Array(256),Q=(b-E)/H,Y=M/255,le=(V-M)/(255*H);let ae=0;for(let te=0;te<=H;te++){const de=Math.round(E+te*Q),G=Y+te*le;for(let ie=ae;ie<=de;ie++)$[ie]=G;ae=de+1}for(let te=ae;te<256;te++)$[te]=$[ae-1];return $.join(",")},D=`g_${T(this,Qm)}_hcm_${i}_filter`,P=g.filter=pe(this,j1,Kb).call(this,D);return pe(this,i5,BY).call(this,P),pe(this,_2,GI).call(this,O(A[0],N[0],5),O(A[1],N[1],5),O(A[2],N[2],5),P),g.url=pe(this,M1,$b).call(this,D),g.url}destroy(i=!1){var s,l,d,u;i&&((s=T(this,m2))!=null&&s.size)||((l=T(this,Jm))==null||l.parentNode.parentNode.remove(),re(this,Jm,null),(d=T(this,fT))==null||d.clear(),re(this,fT,null),(u=T(this,m2))==null||u.clear(),re(this,m2,null),re(this,g2,0))}}p2=new WeakMap,fT=new WeakMap,Jm=new WeakMap,Qm=new WeakMap,ml=new WeakMap,m2=new WeakMap,g2=new WeakMap,ho=new WeakSet,fl=function(){return T(this,fT)||re(this,fT,new Map)},v2=new WeakSet,zI=function(){return T(this,m2)||re(this,m2,new Map)},k1=new WeakSet,Wb=function(){if(!T(this,Jm)){const i=T(this,ml).createElement("div"),{style:s}=i;s.visibility="hidden",s.contain="strict",s.width=s.height=0,s.position="absolute",s.top=s.left=0,s.zIndex=-1;const l=T(this,ml).createElementNS(Im,"svg");l.setAttribute("width",0),l.setAttribute("height",0),re(this,Jm,T(this,ml).createElementNS(Im,"defs")),i.append(l),l.append(T(this,Jm)),T(this,ml).body.append(i)}return T(this,Jm)},pT=new WeakSet,fM=function(i){if(i.length===1){const _=i[0],y=new Array(256);for(let b=0;b<256;b++)y[b]=_[b]/255;const E=y.join(",");return[E,E,E]}const[s,l,d]=i,u=new Array(256),p=new Array(256),g=new Array(256);for(let _=0;_<256;_++)u[_]=s[_]/255,p[_]=l[_]/255,g[_]=d[_]/255;return[u.join(","),p.join(","),g.join(",")]},M1=new WeakSet,$b=function(i){if(T(this,p2)===void 0){re(this,p2,"");const s=T(this,ml).URL;s!==T(this,ml).baseURI&&(qU(s)?Ei('#createUrl: ignore "data:"-URL for performance reasons.'):re(this,p2,_2e(s,"")))}return`url(${T(this,p2)}#${i})`},I9=new WeakSet,lEe=function(i){const s=T(this,ml).createElementNS(Im,"feColorMatrix");s.setAttribute("type","matrix"),s.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"),i.append(s)},i5=new WeakSet,BY=function(i){const s=T(this,ml).createElementNS(Im,"feColorMatrix");s.setAttribute("type","matrix"),s.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),i.append(s)},j1=new WeakSet,Kb=function(i){const s=T(this,ml).createElementNS(Im,"filter");return s.setAttribute("color-interpolation-filters","sRGB"),s.setAttribute("id",i),T(this,k1,Wb).append(s),s},y2=new WeakSet,HI=function(i,s,l){const d=T(this,ml).createElementNS(Im,s);d.setAttribute("type","discrete"),d.setAttribute("tableValues",l),i.append(d)},_2=new WeakSet,GI=function(i,s,l,d){const u=T(this,ml).createElementNS(Im,"feComponentTransfer");d.append(u),pe(this,y2,HI).call(this,u,"feFuncR",i),pe(this,y2,HI).call(this,u,"feFuncG",s),pe(this,y2,HI).call(this,u,"feFuncB",l)},r5=new WeakSet,VY=function(i,s){const l=T(this,ml).createElementNS(Im,"feComponentTransfer");s.append(l),pe(this,y2,HI).call(this,l,"feFuncA",i)},E2=new WeakSet,WI=function(i){return T(this,k1,Wb).style.color=i,YU(getComputedStyle(T(this,k1,Wb)).getPropertyValue("color"))};class cEe{constructor({baseUrl:t=null}){this.baseUrl=t}async fetch({filename:t}){if(!this.baseUrl)throw new Error("Ensure that the `standardFontDataUrl` API parameter is provided.");if(!t)throw new Error("Font filename must be specified.");const i=`${this.baseUrl}${t}`;return this._fetch(i).catch(s=>{throw new Error(`Unable to load font data at: ${i}`)})}async _fetch(t){Zr("Abstract method `_fetch` called.")}}class wfe extends cEe{async _fetch(t){const i=await tP(t,"arraybuffer");return new Uint8Array(i)}}class dEe{constructor({baseUrl:t=null}){this.baseUrl=t}async fetch({filename:t}){if(!this.baseUrl)throw new Error("Ensure that the `wasmUrl` API parameter is provided.");if(!t)throw new Error("Wasm filename must be specified.");const i=`${this.baseUrl}${t}`;return this._fetch(i).catch(s=>{throw new Error(`Unable to load wasm data at: ${i}`)})}async _fetch(t){Zr("Abstract method `_fetch` called.")}}class Sfe extends dEe{async _fetch(t){const i=await tP(t,"arraybuffer");return new Uint8Array(i)}}ec&&Ei("Please use the `legacy` build in Node.js environments.");async function dZ(n){const i=await ic.getBuiltinModule("fs").promises.readFile(n);return new Uint8Array(i)}class YQe extends oEe{}class XQe extends sEe{_createCanvas(t,i){return ic.getBuiltinModule("module").createRequire(import.meta.url)("@napi-rs/canvas").createCanvas(t,i)}}class JQe extends aEe{async _fetch(t){return dZ(t)}}class QQe extends cEe{async _fetch(t){return dZ(t)}}class ZQe extends dEe{async _fetch(t){return dZ(t)}}const Ho={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function zY(n,t){if(!t)return;const i=t[2]-t[0],s=t[3]-t[1],l=new Path2D;l.rect(t[0],t[1],i,s),n.clip(l)}class uZ{isModifyingCurrentTransform(){return!1}getPattern(){Zr("Abstract method `getPattern` called.")}}class eZe extends uZ{constructor(t){super(),this._type=t[1],this._bbox=t[2],this._colorStops=t[3],this._p0=t[4],this._p1=t[5],this._r0=t[6],this._r1=t[7],this.matrix=null}_createGradient(t){let i;this._type==="axial"?i=t.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):this._type==="radial"&&(i=t.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(const s of this._colorStops)i.addColorStop(s[0],s[1]);return i}getPattern(t,i,s,l){let d;if(l===Ho.STROKE||l===Ho.FILL){const u=i.current.getClippedPathBoundingBox(l,Fs(t))||[0,0,0,0],p=Math.ceil(u[2]-u[0])||1,g=Math.ceil(u[3]-u[1])||1,_=i.cachedCanvases.getCanvas("pattern",p,g),y=_.context;y.clearRect(0,0,y.canvas.width,y.canvas.height),y.beginPath(),y.rect(0,0,y.canvas.width,y.canvas.height),y.translate(-u[0],-u[1]),s=zn.transform(s,[1,0,0,1,u[0],u[1]]),y.transform(...i.baseTransform),this.matrix&&y.transform(...this.matrix),zY(y,this._bbox),y.fillStyle=this._createGradient(y),y.fill(),d=t.createPattern(_.canvas,"no-repeat");const E=new DOMMatrix(s);d.setTransform(E)}else zY(t,this._bbox),d=this._createGradient(t);return d}}function aK(n,t,i,s,l,d,u,p){const g=t.coords,_=t.colors,y=n.data,E=n.width*4;let b;g[i+1]>g[s+1]&&(b=i,i=s,s=b,b=d,d=u,u=b),g[s+1]>g[l+1]&&(b=s,s=l,l=b,b=u,u=p,p=b),g[i+1]>g[s+1]&&(b=i,i=s,s=b,b=d,d=u,u=b);const A=(g[i]+t.offsetX)*t.scaleX,N=(g[i+1]+t.offsetY)*t.scaleY,O=(g[s]+t.offsetX)*t.scaleX,D=(g[s+1]+t.offsetY)*t.scaleY,P=(g[l]+t.offsetX)*t.scaleX,j=(g[l+1]+t.offsetY)*t.scaleY;if(N>=j)return;const M=_[d],V=_[d+1],H=_[d+2],$=_[u],Q=_[u+1],Y=_[u+2],le=_[p],ae=_[p+1],te=_[p+2],de=Math.round(N),G=Math.round(j);let ie,_e,he,Ce,fe,me,Ne,Fe;for(let je=de;je<=G;je++){if(jej?we=1:D===j?we=0:we=(D-je)/(D-j),ie=O-(O-P)*we,_e=$-($-le)*we,he=Q-(Q-ae)*we,Ce=Y-(Y-te)*we}let Ve;jej?Ve=1:Ve=(N-je)/(N-j),fe=A-(A-P)*Ve,me=M-(M-le)*Ve,Ne=V-(V-ae)*Ve,Fe=H-(H-te)*Ve;const Re=Math.round(Math.min(ie,fe)),Be=Math.round(Math.max(ie,fe));let Xe=E*je+Re*4;for(let we=Re;we<=Be;we++)Ve=(ie-we)/(ie-fe),Ve<0?Ve=0:Ve>1&&(Ve=1),y[Xe++]=_e-(_e-me)*Ve|0,y[Xe++]=he-(he-Ne)*Ve|0,y[Xe++]=Ce-(Ce-Fe)*Ve|0,y[Xe++]=255}}function tZe(n,t,i){const s=t.coords,l=t.colors;let d,u;switch(t.type){case"lattice":const p=t.verticesPerRow,g=Math.floor(s.length/p)-1,_=p-1;for(d=0;d=te?H=g:Q=!0,ae>=de?$=_:Y=!0;const G=this.getSizeAndScale(H,this.ctx.canvas.width,M),ie=this.getSizeAndScale($,this.ctx.canvas.height,V),_e=t.cachedCanvases.getCanvas("pattern",G.size,ie.size),he=_e.context,Ce=p.createCanvasGraphics(he);if(Ce.groupLevel=t.groupLevel,this.setFillAndStrokeStyleToContext(Ce,l,u),he.translate(-G.scale*y,-ie.scale*E),Ce.transform(G.scale,0,0,ie.scale,0,0),he.save(),this.clipBbox(Ce,y,E,b,A),Ce.baseTransform=Fs(Ce.ctx),Ce.executeOperatorList(s),Ce.endDrawing(),he.restore(),Q||Y){const fe=_e.canvas;Q&&(H=g),Y&&($=_);const me=this.getSizeAndScale(H,this.ctx.canvas.width,M),Ne=this.getSizeAndScale($,this.ctx.canvas.height,V),Fe=me.size,je=Ne.size,Ve=t.cachedCanvases.getCanvas("pattern-workaround",Fe,je),Re=Ve.context,Be=Q?Math.floor(N/g):0,Xe=Y?Math.floor(O/_):0;for(let we=0;we<=Be;we++)for(let Ge=0;Ge<=Xe;Ge++)Re.drawImage(fe,Fe*we,je*Ge,Fe,je,0,0,Fe,je);return{canvas:Ve.canvas,scaleX:me.scale,scaleY:Ne.scale,offsetX:y,offsetY:E}}return{canvas:_e.canvas,scaleX:G.scale,scaleY:ie.scale,offsetX:y,offsetY:E}}getSizeAndScale(t,i,s){const l=Math.max(N9.MAX_PATTERN_SIZE,i);let d=Math.ceil(t*s);return d>=l?d=l:s=d/t,{scale:s,size:d}}clipBbox(t,i,s,l,d){const u=l-i,p=d-s;t.ctx.rect(i,s,u,p),zn.axialAlignedBoundingBox([i,s,l,d],Fs(t.ctx),t.current.minMax),t.clip(),t.endPath()}setFillAndStrokeStyleToContext(t,i,s){const l=t.ctx,d=t.current;switch(i){case bfe.COLORED:const{fillStyle:u,strokeStyle:p}=this.ctx;l.fillStyle=d.fillColor=u,l.strokeStyle=d.strokeColor=p;break;case bfe.UNCOLORED:l.fillStyle=l.strokeStyle=s,d.fillColor=d.strokeColor=s;break;default:throw new bQe(`Unsupported paint type: ${i}`)}}isModifyingCurrentTransform(){return!1}getPattern(t,i,s,l){let d=s;l!==Ho.SHADING&&(d=zn.transform(d,i.baseTransform),this.matrix&&(d=zn.transform(d,this.matrix)));const u=this.createPatternCanvas(i);let p=new DOMMatrix(d);p=p.translate(u.offsetX,u.offsetY),p=p.scale(1/u.scaleX,1/u.scaleY);const g=t.createPattern(u.canvas,"repeat");return g.setTransform(p),g}};sn(N9,"MAX_PATTERN_SIZE",3e3);let HY=N9;function sZe({src:n,srcPos:t=0,dest:i,width:s,height:l,nonBlackColor:d=4294967295,inverseDecode:u=!1}){const p=qo.isLittleEndian?4278190080:255,[g,_]=u?[d,p]:[p,d],y=s>>3,E=s&7,b=n.length;i=new Uint32Array(i.buffer);let A=0;for(let N=0;N{n.save=n.__originalSave,n.restore=n.__originalRestore,n.rotate=n.__originalRotate,n.scale=n.__originalScale,n.translate=n.__originalTranslate,n.transform=n.__originalTransform,n.setTransform=n.__originalSetTransform,n.resetTransform=n.__originalResetTransform,n.clip=n.__originalClip,n.moveTo=n.__originalMoveTo,n.lineTo=n.__originalLineTo,n.bezierCurveTo=n.__originalBezierCurveTo,n.rect=n.__originalRect,n.closePath=n.__originalClosePath,n.beginPath=n.__originalBeginPath,delete n._removeMirroring},n.save=function(){t.save(),this.__originalSave()},n.restore=function(){t.restore(),this.__originalRestore()},n.translate=function(i,s){t.translate(i,s),this.__originalTranslate(i,s)},n.scale=function(i,s){t.scale(i,s),this.__originalScale(i,s)},n.transform=function(i,s,l,d,u,p){t.transform(i,s,l,d,u,p),this.__originalTransform(i,s,l,d,u,p)},n.setTransform=function(i,s,l,d,u,p){t.setTransform(i,s,l,d,u,p),this.__originalSetTransform(i,s,l,d,u,p)},n.resetTransform=function(){t.resetTransform(),this.__originalResetTransform()},n.rotate=function(i){t.rotate(i),this.__originalRotate(i)},n.clip=function(i){t.clip(i),this.__originalClip(i)},n.moveTo=function(i,s){t.moveTo(i,s),this.__originalMoveTo(i,s)},n.lineTo=function(i,s){t.lineTo(i,s),this.__originalLineTo(i,s)},n.bezierCurveTo=function(i,s,l,d,u,p){t.bezierCurveTo(i,s,l,d,u,p),this.__originalBezierCurveTo(i,s,l,d,u,p)},n.rect=function(i,s,l,d){t.rect(i,s,l,d),this.__originalRect(i,s,l,d)},n.closePath=function(){t.closePath(),this.__originalClosePath()},n.beginPath=function(){t.beginPath(),this.__originalBeginPath()}}class lZe{constructor(t){this.canvasFactory=t,this.cache=Object.create(null)}getCanvas(t,i,s){let l;return this.cache[t]!==void 0?(l=this.cache[t],this.canvasFactory.reset(l,i,s)):(l=this.canvasFactory.create(i,s),this.cache[t]=l),l}delete(t){delete this.cache[t]}clear(){for(const t in this.cache){const i=this.cache[t];this.canvasFactory.destroy(i),delete this.cache[t]}}}function Ik(n,t,i,s,l,d,u,p,g,_){const[y,E,b,A,N,O]=Fs(n);if(E===0&&b===0){const j=u*y+N,M=Math.round(j),V=p*A+O,H=Math.round(V),$=(u+g)*y+N,Q=Math.abs(Math.round($)-M)||1,Y=(p+_)*A+O,le=Math.abs(Math.round(Y)-H)||1;return n.setTransform(Math.sign(y),0,0,Math.sign(A),M,H),n.drawImage(t,i,s,l,d,0,0,Q,le),n.setTransform(y,E,b,A,N,O),[Q,le]}if(y===0&&A===0){const j=p*b+N,M=Math.round(j),V=u*E+O,H=Math.round(V),$=(p+_)*b+N,Q=Math.abs(Math.round($)-M)||1,Y=(u+g)*E+O,le=Math.abs(Math.round(Y)-H)||1;return n.setTransform(0,Math.sign(E),Math.sign(b),0,M,H),n.drawImage(t,i,s,l,d,0,0,le,Q),n.setTransform(y,E,b,A,N,O),[le,Q]}n.drawImage(t,i,s,l,d,u,p,g,_);const D=Math.hypot(y,E),P=Math.hypot(b,A);return[D*g,P*_]}class xfe{constructor(t,i){sn(this,"alphaIsShape",!1);sn(this,"fontSize",0);sn(this,"fontSizeScale",1);sn(this,"textMatrix",null);sn(this,"textMatrixScale",1);sn(this,"fontMatrix",yY);sn(this,"leading",0);sn(this,"x",0);sn(this,"y",0);sn(this,"lineX",0);sn(this,"lineY",0);sn(this,"charSpacing",0);sn(this,"wordSpacing",0);sn(this,"textHScale",1);sn(this,"textRenderingMode",hl.FILL);sn(this,"textRise",0);sn(this,"fillColor","#000000");sn(this,"strokeColor","#000000");sn(this,"patternFill",!1);sn(this,"patternStroke",!1);sn(this,"fillAlpha",1);sn(this,"strokeAlpha",1);sn(this,"lineWidth",1);sn(this,"activeSMask",null);sn(this,"transferMaps","none");this.clipBox=new Float32Array([0,0,t,i]),this.minMax=hC.slice()}clone(){const t=Object.create(this);return t.clipBox=this.clipBox.slice(),t.minMax=this.minMax.slice(),t}getPathBoundingBox(t=Ho.FILL,i=null){const s=this.minMax.slice();if(t===Ho.STROKE){i||Zr("Stroke bounding box must include transform."),zn.singularValueDecompose2dScale(i,zd);const l=zd[0]*this.lineWidth/2,d=zd[1]*this.lineWidth/2;s[0]-=l,s[1]-=d,s[2]+=l,s[3]+=d}return s}updateClipFromPath(){const t=zn.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(t||[0,0,0,0])}isEmptyClip(){return this.minMax[0]===1/0}startNewPathAndClipBox(t){this.clipBox.set(t,0),this.minMax.set(hC,0)}getClippedPathBoundingBox(t=Ho.FILL,i=null){return zn.intersect(this.clipBox,this.getPathBoundingBox(t,i))}}function Afe(n,t){if(t instanceof ImageData){n.putImageData(t,0,0);return}const i=t.height,s=t.width,l=i%Kc,d=(i-l)/Kc,u=l===0?d:d+1,p=n.createImageData(s,Kc);let g=0,_;const y=t.data,E=p.data;let b,A,N,O;if(t.kind===rM.GRAYSCALE_1BPP){const D=y.byteLength,P=new Uint32Array(E.buffer,0,E.byteLength>>2),j=P.length,M=s+7>>3,V=4294967295,H=qo.isLittleEndian?4278190080:255;for(b=0;bM?s:$*8-7,le=Y&-8;let ae=0,te=0;for(;Q>=1}for(;_=d&&(N=l,O=s*N),_=0,A=O;A--;)E[_++]=y[g++],E[_++]=y[g++],E[_++]=y[g++],E[_++]=255;n.putImageData(p,0,b*Kc)}else throw new Error(`bad image kind: ${t.kind}`)}function Ife(n,t){if(t.bitmap){n.drawImage(t.bitmap,0,0);return}const i=t.height,s=t.width,l=i%Kc,d=(i-l)/Kc,u=l===0?d:d+1,p=n.createImageData(s,Kc);let g=0;const _=t.data,y=p.data;for(let E=0;ERfe&&typeof s=="function",y=_?Date.now()+aZe:0;let E=0;const b=this.commonObjs,A=this.objs;let N;for(;;){if(l!==void 0&&p===l.nextBreakPoint)return l.breakIt(p,s),p;if(N=u[p],N!==I7.dependency)this[N].apply(this,d[p]);else for(const O of d[p]){const D=O.startsWith("g_")?b:A;if(!D.has(O))return D.get(O,s),p}if(p++,p===g)return p;if(_&&++E>Rfe){if(Date.now()>y)return s(),p;E=0}}}endDrawing(){pe(this,s5,GY).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();for(const t of this._cachedBitmapsMap.values()){for(const i of t.values())typeof HTMLCanvasElement<"u"&&i instanceof HTMLCanvasElement&&(i.width=i.height=0);t.clear()}this._cachedBitmapsMap.clear(),pe(this,a5,WY).call(this)}_scaleImage(t,i){const s=t.width??t.displayWidth,l=t.height??t.displayHeight;let d=Math.max(Math.hypot(i[0],i[1]),1),u=Math.max(Math.hypot(i[2],i[3]),1),p=s,g=l,_="prescale1",y,E;for(;d>2&&p>1||u>2&&g>1;){let b=p,A=g;d>2&&p>1&&(b=p>=16384?Math.floor(p/2)-1||1:Math.ceil(p/2),d/=p/b),u>2&&g>1&&(A=g>=16384?Math.floor(g/2)-1||1:Math.ceil(g)/2,u/=g/A),y=this.cachedCanvases.getCanvas(_,b,A),E=y.context,E.clearRect(0,0,b,A),E.drawImage(t,0,0,p,g,0,0,b,A),t=y.canvas,p=b,g=A,_=_==="prescale1"?"prescale2":"prescale1"}return{img:t,paintWidth:p,paintHeight:g}}_createMaskCanvas(t){const i=this.ctx,{width:s,height:l}=t,d=this.current.fillColor,u=this.current.patternFill,p=Fs(i);let g,_,y,E;if((t.bitmap||t.data)&&t.count>1){const le=t.bitmap||t.data.buffer;_=JSON.stringify(u?p:[p.slice(0,4),d]),g=this._cachedBitmapsMap.get(le),g||(g=new Map,this._cachedBitmapsMap.set(le,g));const ae=g.get(_);if(ae&&!u){const te=Math.round(Math.min(p[0],p[2])+p[4]),de=Math.round(Math.min(p[1],p[3])+p[5]);return{canvas:ae,offsetX:te,offsetY:de}}y=ae}y||(E=this.cachedCanvases.getCanvas("maskCanvas",s,l),Ife(E.context,t));let b=zn.transform(p,[1/s,0,0,-1/l,0,0]);b=zn.transform(b,[1,0,0,1,0,-l]);const A=hC.slice();zn.axialAlignedBoundingBox([0,0,s,l],b,A);const[N,O,D,P]=A,j=Math.round(D-N)||1,M=Math.round(P-O)||1,V=this.cachedCanvases.getCanvas("fillCanvas",j,M),H=V.context,$=N,Q=O;H.translate(-$,-Q),H.transform(...b),y||(y=this._scaleImage(E.canvas,Jf(H)),y=y.img,g&&u&&g.set(_,y)),H.imageSmoothingEnabled=Nfe(Fs(H),t.interpolate),Ik(H,y,0,0,y.width,y.height,0,0,s,l),H.globalCompositeOperation="source-in";const Y=zn.transform(Jf(H),[1,0,0,1,-$,-Q]);return H.fillStyle=u?d.getPattern(i,this,Y,Ho.FILL):d,H.fillRect(0,0,s,l),g&&!u&&(this.cachedCanvases.delete("fillCanvas"),g.set(_,V.canvas)),{canvas:V.canvas,offsetX:Math.round($),offsetY:Math.round(Q)}}setLineWidth(t){t!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=t,this.ctx.lineWidth=t}setLineCap(t){this.ctx.lineCap=cZe[t]}setLineJoin(t){this.ctx.lineJoin=dZe[t]}setMiterLimit(t){this.ctx.miterLimit=t}setDash(t,i){const s=this.ctx;s.setLineDash!==void 0&&(s.setLineDash(t),s.lineDashOffset=i)}setRenderingIntent(t){}setFlatness(t){}setGState(t){for(const[i,s]of t)switch(i){case"LW":this.setLineWidth(s);break;case"LC":this.setLineCap(s);break;case"LJ":this.setLineJoin(s);break;case"ML":this.setMiterLimit(s);break;case"D":this.setDash(s[0],s[1]);break;case"RI":this.setRenderingIntent(s);break;case"FL":this.setFlatness(s);break;case"Font":this.setFont(s[0],s[1]);break;case"CA":this.current.strokeAlpha=s;break;case"ca":this.ctx.globalAlpha=this.current.fillAlpha=s;break;case"BM":this.ctx.globalCompositeOperation=s;break;case"SMask":this.current.activeSMask=s?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(s);break}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){const t=this.inSMaskMode;this.current.activeSMask&&!t?this.beginSMaskMode():!this.current.activeSMask&&t&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const t=this.ctx.canvas.width,i=this.ctx.canvas.height,s="smaskGroupAt"+this.groupLevel,l=this.cachedCanvases.getCanvas(s,t,i);this.suspendedCtx=this.ctx;const d=this.ctx=l.context;d.setTransform(this.suspendedCtx.getTransform()),yI(this.suspendedCtx,d),oZe(d,this.suspendedCtx),this.setGState([["BM","source-over"]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),yI(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(t){if(!this.current.activeSMask)return;t?(t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.ceil(t[2]),t[3]=Math.ceil(t[3])):t=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const i=this.current.activeSMask,s=this.suspendedCtx;this.composeSMask(s,i,this.ctx,t),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height),this.ctx.restore()}composeSMask(t,i,s,l){const d=l[0],u=l[1],p=l[2]-d,g=l[3]-u;p===0||g===0||(this.genericComposeSMask(i.context,s,p,g,i.subtype,i.backdrop,i.transferMap,d,u,i.offsetX,i.offsetY),t.save(),t.globalAlpha=1,t.globalCompositeOperation="source-over",t.setTransform(1,0,0,1,0,0),t.drawImage(s.canvas,0,0),t.restore())}genericComposeSMask(t,i,s,l,d,u,p,g,_,y,E){let b=t.canvas,A=g-y,N=_-E;if(u)if(A<0||N<0||A+s>b.width||N+l>b.height){const D=this.cachedCanvases.getCanvas("maskExtension",s,l),P=D.context;P.drawImage(b,-A,-N),P.globalCompositeOperation="destination-atop",P.fillStyle=u,P.fillRect(0,0,s,l),P.globalCompositeOperation="source-over",b=D.canvas,A=N=0}else{t.save(),t.globalAlpha=1,t.setTransform(1,0,0,1,0,0);const D=new Path2D;D.rect(A,N,s,l),t.clip(D),t.globalCompositeOperation="destination-atop",t.fillStyle=u,t.fillRect(A,N,s,l),t.restore()}i.save(),i.globalAlpha=1,i.setTransform(1,0,0,1,0,0),d==="Alpha"&&p?i.filter=this.filterFactory.addAlphaFilter(p):d==="Luminosity"&&(i.filter=this.filterFactory.addLuminosityFilter(p));const O=new Path2D;O.rect(g,_,s,l),i.clip(O),i.globalCompositeOperation="destination-in",i.drawImage(b,A,N,s,l,g,_,s,l),i.restore()}save(){this.inSMaskMode&&yI(this.ctx,this.suspendedCtx),this.ctx.save();const t=this.current;this.stateStack.push(t),this.current=t.clone()}restore(){if(this.stateStack.length===0){this.inSMaskMode&&this.endSMaskMode();return}this.current=this.stateStack.pop(),this.ctx.restore(),this.inSMaskMode&&yI(this.suspendedCtx,this.ctx),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}transform(t,i,s,l,d,u){this.ctx.transform(t,i,s,l,d,u),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(t,i,s){let[l]=i;if(!s){l||(l=i[0]=new Path2D),this[t](l);return}if(!(l instanceof Path2D)){const d=i[0]=new Path2D;for(let u=0,p=l.length;uTfe&&(_=Tfe),this.current.fontSizeScale=i/_,this.ctx.font=`${g} ${p} ${_}px ${u}`}setTextRenderingMode(t){this.current.textRenderingMode=t}setTextRise(t){this.current.textRise=t}moveText(t,i){this.current.x=this.current.lineX+=t,this.current.y=this.current.lineY+=i}setLeadingMoveText(t,i){this.setLeading(-i),this.moveText(t,i)}setTextMatrix(t){const{current:i}=this;i.textMatrix=t,i.textMatrixScale=Math.hypot(t[0],t[1]),i.x=i.lineX=0,i.y=i.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(t,i,s,l,d){const u=this.ctx,p=this.current,g=p.font,_=p.textRenderingMode,y=p.fontSize/p.fontSizeScale,E=_&hl.FILL_STROKE_MASK,b=!!(_&hl.ADD_TO_PATH_FLAG),A=p.patternFill&&!g.missingFile,N=p.patternStroke&&!g.missingFile;let O;if((g.disableFontFace||b||A||N)&&!g.missingFile&&(O=g.getPathGenerator(this.commonObjs,t)),O&&(g.disableFontFace||A||N)){u.save(),u.translate(i,s),u.scale(y,-y);let D;if((E===hl.FILL||E===hl.FILL_STROKE)&&(l?(D=u.getTransform(),u.setTransform(...l),u.fill(pe(this,o5,$Y).call(this,O,D,l))):u.fill(O)),E===hl.STROKE||E===hl.FILL_STROKE)if(d){D||(D=u.getTransform()),u.setTransform(...d);const{a:P,b:j,c:M,d:V}=D,H=zn.inverseTransform(d),$=zn.transform([P,j,M,V,0,0],H);zn.singularValueDecompose2dScale($,zd),u.lineWidth*=Math.max(zd[0],zd[1])/y,u.stroke(pe(this,o5,$Y).call(this,O,D,d))}else u.lineWidth/=y,u.stroke(O);u.restore()}else(E===hl.FILL||E===hl.FILL_STROKE)&&u.fillText(t,i,s),(E===hl.STROKE||E===hl.FILL_STROKE)&&u.strokeText(t,i,s);b&&(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:Fs(u),x:i,y:s,fontSize:y,path:O})}get isFontSubpixelAAEnabled(){const{context:t}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);t.scale(1.5,1),t.fillText("I",0,10);const i=t.getImageData(0,0,10,10).data;let s=!1;for(let l=3;l0&&i[l]<255){s=!0;break}return Ki(this,"isFontSubpixelAAEnabled",s)}showText(t){const i=this.current,s=i.font;if(s.isType3Font)return this.showType3Text(t);const l=i.fontSize;if(l===0)return;const d=this.ctx,u=i.fontSizeScale,p=i.charSpacing,g=i.wordSpacing,_=i.fontDirection,y=i.textHScale*_,E=t.length,b=s.vertical,A=b?1:-1,N=s.defaultVMetrics,O=l*i.fontMatrix[0],D=i.textRenderingMode===hl.FILL&&!s.disableFontFace&&!i.patternFill;d.save(),i.textMatrix&&d.transform(...i.textMatrix),d.translate(i.x,i.y+i.textRise),_>0?d.scale(y,-1):d.scale(y,1);let P,j;if(i.patternFill){d.save();const Q=i.fillColor.getPattern(d,this,Jf(d),Ho.FILL);P=Fs(d),d.restore(),d.fillStyle=Q}if(i.patternStroke){d.save();const Q=i.strokeColor.getPattern(d,this,Jf(d),Ho.STROKE);j=Fs(d),d.restore(),d.strokeStyle=Q}let M=i.lineWidth;const V=i.textMatrixScale;if(V===0||M===0){const Q=i.textRenderingMode&hl.FILL_STROKE_MASK;(Q===hl.STROKE||Q===hl.FILL_STROKE)&&(M=this.getSinglePixelWidth())}else M/=V;if(u!==1&&(d.scale(u,u),M/=u),d.lineWidth=M,s.isInvalidPDFjsFont){const Q=[];let Y=0;for(const le of t)Q.push(le.unicode),Y+=le.width;d.fillText(Q.join(""),0,0),i.x+=Y*O*y,d.restore(),this.compose();return}let H=0,$;for($=0;$0){const he=d.measureText(ae).width*1e3/l*u;if(ienew XZ(d,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})};i=new HY(t,this.ctx,l,s)}else i=this._getPattern(t[1],t[2]);return i}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments),this.current.patternStroke=!0}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0}setStrokeRGBColor(t){this.ctx.strokeStyle=this.current.strokeColor=t,this.current.patternStroke=!1}setStrokeTransparent(){this.ctx.strokeStyle=this.current.strokeColor="transparent",this.current.patternStroke=!1}setFillRGBColor(t){this.ctx.fillStyle=this.current.fillColor=t,this.current.patternFill=!1}setFillTransparent(){this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1}_getPattern(t,i=null){let s;return this.cachedPatterns.has(t)?s=this.cachedPatterns.get(t):(s=rZe(this.getObject(t)),this.cachedPatterns.set(t,s)),i&&(s.matrix=i),s}shadingFill(t){if(!this.contentVisible)return;const i=this.ctx;this.save();const s=this._getPattern(t);i.fillStyle=s.getPattern(i,this,Jf(i),Ho.SHADING);const l=Jf(i);if(l){const{width:d,height:u}=i.canvas,p=hC.slice();zn.axialAlignedBoundingBox([0,0,d,u],l,p);const[g,_,y,E]=p;this.ctx.fillRect(g,_,y-g,E-_)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}beginInlineImage(){Zr("Should not call beginInlineImage")}beginImageData(){Zr("Should not call beginImageData")}paintFormXObjectBegin(t,i){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),t&&this.transform(...t),this.baseTransform=Fs(this.ctx),i)){zn.axialAlignedBoundingBox(i,this.baseTransform,this.current.minMax);const[s,l,d,u]=i,p=new Path2D;p.rect(s,l,d-s,u-l),this.ctx.clip(p),this.endPath()}}paintFormXObjectEnd(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}beginGroup(t){if(!this.contentVisible)return;this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);const i=this.ctx;t.isolated||KU("TODO: Support non-isolated groups."),t.knockout&&Ei("Knockout groups not supported.");const s=Fs(i);if(t.matrix&&i.transform(...t.matrix),!t.bbox)throw new Error("Bounding box is required.");let l=hC.slice();zn.axialAlignedBoundingBox(t.bbox,Fs(i),l);const d=[0,0,i.canvas.width,i.canvas.height];l=zn.intersect(l,d)||[0,0,0,0];const u=Math.floor(l[0]),p=Math.floor(l[1]),g=Math.max(Math.ceil(l[2])-u,1),_=Math.max(Math.ceil(l[3])-p,1);this.current.startNewPathAndClipBox([0,0,g,_]);let y="groupAt"+this.groupLevel;t.smask&&(y+="_smask_"+this.smaskCounter++%2);const E=this.cachedCanvases.getCanvas(y,g,_),b=E.context;b.translate(-u,-p),b.transform(...s);let A=new Path2D;const[N,O,D,P]=t.bbox;if(A.rect(N,O,D-N,P-O),t.matrix){const j=new Path2D;j.addPath(A,new DOMMatrix(t.matrix)),A=j}b.clip(A),t.smask?this.smaskStack.push({canvas:E.canvas,context:b,offsetX:u,offsetY:p,subtype:t.smask.subtype,backdrop:t.smask.backdrop,transferMap:t.smask.transferMap||null,startTransformInverse:null}):(i.setTransform(1,0,0,1,0,0),i.translate(u,p),i.save()),yI(i,b),this.ctx=b,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(i),this.groupLevel++}endGroup(t){if(!this.contentVisible)return;this.groupLevel--;const i=this.ctx,s=this.groupStack.pop();if(this.ctx=s,this.ctx.imageSmoothingEnabled=!1,t.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{this.ctx.restore();const l=Fs(this.ctx);this.restore(),this.ctx.save(),this.ctx.setTransform(...l);const d=hC.slice();zn.axialAlignedBoundingBox([0,0,i.canvas.width,i.canvas.height],l,d),this.ctx.drawImage(i.canvas,0,0),this.ctx.restore(),this.compose(d)}}beginAnnotation(t,i,s,l,d){if(pe(this,s5,GY).call(this),Nk(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),i){const u=i[2]-i[0],p=i[3]-i[1];if(d&&this.annotationCanvasMap){s=s.slice(),s[4]-=i[0],s[5]-=i[1],i=i.slice(),i[0]=i[1]=0,i[2]=u,i[3]=p,zn.singularValueDecompose2dScale(Fs(this.ctx),zd);const{viewportScale:g}=this,_=Math.ceil(u*this.outputScaleX*g),y=Math.ceil(p*this.outputScaleY*g);this.annotationCanvas=this.canvasFactory.create(_,y);const{canvas:E,context:b}=this.annotationCanvas;this.annotationCanvasMap.set(t,E),this.annotationCanvas.savedCtx=this.ctx,this.ctx=b,this.ctx.save(),this.ctx.setTransform(zd[0],0,0,-zd[1],0,p*zd[1]),Nk(this.ctx)}else{Nk(this.ctx),this.endPath();const g=new Path2D;g.rect(i[0],i[1],u,p),this.ctx.clip(g)}}this.current=new xfe(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(...s),this.transform(...l)}endAnnotation(){this.annotationCanvas&&(this.ctx.restore(),pe(this,a5,WY).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(t){if(!this.contentVisible)return;const i=t.count;t=this.getObject(t.data,t),t.count=i;const s=this.ctx,l=this._createMaskCanvas(t),d=l.canvas;s.save(),s.setTransform(1,0,0,1,0,0),s.drawImage(d,l.offsetX,l.offsetY),s.restore(),this.compose()}paintImageMaskXObjectRepeat(t,i,s=0,l=0,d,u){if(!this.contentVisible)return;t=this.getObject(t.data,t);const p=this.ctx;p.save();const g=Fs(p);p.transform(i,s,l,d,0,0);const _=this._createMaskCanvas(t);p.setTransform(1,0,0,1,_.offsetX-g[4],_.offsetY-g[5]);for(let y=0,E=u.length;yE?y/E:1,p=_>E?_/E:1}}this._cachedScaleForStroking[0]=u,this._cachedScaleForStroking[1]=p}return this._cachedScaleForStroking}rescaleAndStroke(t,i){const{ctx:s,current:{lineWidth:l}}=this,[d,u]=this.getScaleForStroking();if(d===u){s.lineWidth=(l||1)*d,s.stroke(t);return}const p=s.getLineDash();i&&s.save(),s.scale(d,u),oK.a=1/d,oK.d=1/u;const g=new Path2D;if(g.addPath(t,oK),p.length>0){const _=Math.max(d,u);s.setLineDash(p.map(y=>y/_)),s.lineDashOffset/=_}s.lineWidth=l||1,s.stroke(g),i&&s.restore()}isContentVisible(){for(let t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}};s5=new WeakSet,GY=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null,this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)},a5=new WeakSet,WY=function(){if(this.pageColors){const t=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if(t!=="none"){const i=this.ctx.filter;this.ctx.filter=t,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=i}}},o5=new WeakSet,$Y=function(t,i,s){const l=new Path2D;return l.addPath(t,new DOMMatrix(s).invertSelf().multiplySelf(i)),l};let TC=XZ;for(const n in I7)TC.prototype[n]!==void 0&&(TC.prototype[I7[n]]=TC.prototype[n]);var l5,c5;class Pp{static get workerPort(){return T(this,l5)}static set workerPort(t){if(!(typeof Worker<"u"&&t instanceof Worker)&&t!==null)throw new Error("Invalid `workerPort` type.");re(this,l5,t)}static get workerSrc(){return T(this,c5)}static set workerSrc(t){if(typeof t!="string")throw new Error("Invalid `workerSrc` type.");re(this,c5,t)}}l5=new WeakMap,c5=new WeakMap,ee(Pp,l5,null),ee(Pp,c5,"");var mT,d5;class hZe{constructor({parsedData:t,rawData:i}){ee(this,mT,void 0);ee(this,d5,void 0);re(this,mT,t),re(this,d5,i)}getRaw(){return T(this,d5)}get(t){return T(this,mT).get(t)??null}[Symbol.iterator](){return T(this,mT).entries()}}mT=new WeakMap,d5=new WeakMap;const qb=Symbol("INTERNAL");var u5,h5,f5,gT;class fZe{constructor(t,{name:i,intent:s,usage:l,rbGroups:d}){ee(this,u5,!1);ee(this,h5,!1);ee(this,f5,!1);ee(this,gT,!0);re(this,u5,!!(t&Fd.DISPLAY)),re(this,h5,!!(t&Fd.PRINT)),this.name=i,this.intent=s,this.usage=l,this.rbGroups=d}get visible(){if(T(this,f5))return T(this,gT);if(!T(this,gT))return!1;const{print:t,view:i}=this.usage;return T(this,u5)?(i==null?void 0:i.viewState)!=="OFF":T(this,h5)?(t==null?void 0:t.printState)!=="OFF":!0}_setVisible(t,i,s=!1){t!==qb&&Zr("Internal method `_setVisible` called."),re(this,f5,s),re(this,gT,i)}}u5=new WeakMap,h5=new WeakMap,f5=new WeakMap,gT=new WeakMap;var U1,Jr,vT,yT,p5,KY;class pZe{constructor(t,i=Fd.DISPLAY){ee(this,p5);ee(this,U1,null);ee(this,Jr,new Map);ee(this,vT,null);ee(this,yT,null);if(this.renderingIntent=i,this.name=null,this.creator=null,t!==null){this.name=t.name,this.creator=t.creator,re(this,yT,t.order);for(const s of t.groups)T(this,Jr).set(s.id,new fZe(i,s));if(t.baseState==="OFF")for(const s of T(this,Jr).values())s._setVisible(qb,!1);for(const s of t.on)T(this,Jr).get(s)._setVisible(qb,!0);for(const s of t.off)T(this,Jr).get(s)._setVisible(qb,!1);re(this,vT,this.getHash())}}isVisible(t){if(T(this,Jr).size===0)return!0;if(!t)return KU("Optional content group not defined."),!0;if(t.type==="OCG")return T(this,Jr).has(t.id)?T(this,Jr).get(t.id).visible:(Ei(`Optional content group not found: ${t.id}`),!0);if(t.type==="OCMD"){if(t.expression)return pe(this,p5,KY).call(this,t.expression);if(!t.policy||t.policy==="AnyOn"){for(const i of t.ids){if(!T(this,Jr).has(i))return Ei(`Optional content group not found: ${i}`),!0;if(T(this,Jr).get(i).visible)return!0}return!1}else if(t.policy==="AllOn"){for(const i of t.ids){if(!T(this,Jr).has(i))return Ei(`Optional content group not found: ${i}`),!0;if(!T(this,Jr).get(i).visible)return!1}return!0}else if(t.policy==="AnyOff"){for(const i of t.ids){if(!T(this,Jr).has(i))return Ei(`Optional content group not found: ${i}`),!0;if(!T(this,Jr).get(i).visible)return!0}return!1}else if(t.policy==="AllOff"){for(const i of t.ids){if(!T(this,Jr).has(i))return Ei(`Optional content group not found: ${i}`),!0;if(T(this,Jr).get(i).visible)return!1}return!0}return Ei(`Unknown optional content policy ${t.policy}.`),!0}return Ei(`Unknown group type ${t.type}.`),!0}setVisibility(t,i=!0,s=!0){var d;const l=T(this,Jr).get(t);if(!l){Ei(`Optional content group not found: ${t}`);return}if(s&&i&&l.rbGroups.length)for(const u of l.rbGroups)for(const p of u)p!==t&&((d=T(this,Jr).get(p))==null||d._setVisible(qb,!1,!0));l._setVisible(qb,!!i,!0),re(this,U1,null)}setOCGState({state:t,preserveRB:i}){let s;for(const l of t){switch(l){case"ON":case"OFF":case"Toggle":s=l;continue}const d=T(this,Jr).get(l);if(d)switch(s){case"ON":this.setVisibility(l,!0,i);break;case"OFF":this.setVisibility(l,!1,i);break;case"Toggle":this.setVisibility(l,!d.visible,i);break}}re(this,U1,null)}get hasInitialVisibility(){return T(this,vT)===null||this.getHash()===T(this,vT)}getOrder(){return T(this,Jr).size?T(this,yT)?T(this,yT).slice():[...T(this,Jr).keys()]:null}getGroup(t){return T(this,Jr).get(t)||null}getHash(){if(T(this,U1)!==null)return T(this,U1);const t=new Z2e;for(const[i,s]of T(this,Jr))t.update(`${i}:${s.visible}`);return re(this,U1,t.hexdigest())}[Symbol.iterator](){return T(this,Jr).entries()}}U1=new WeakMap,Jr=new WeakMap,vT=new WeakMap,yT=new WeakMap,p5=new WeakSet,KY=function(t){const i=t.length;if(i<2)return!0;const s=t[0];for(let l=1;l0){const g=d instanceof Uint8Array&&d.byteLength===d.buffer.byteLength?d.buffer:new Uint8Array(d).buffer;this._queuedChunks.push(g)}this._pdfDataRangeTransport=t,this._isStreamingSupported=!s,this._isRangeSupported=!i,this._contentLength=l,this._fullRequestReader=null,this._rangeReaders=[],t.addRangeListener((g,_)=>{this._onReceiveData({begin:g,chunk:_})}),t.addProgressListener((g,_)=>{this._onProgress({loaded:g,total:_})}),t.addProgressiveReadListener(g=>{this._onReceiveData({chunk:g})}),t.addProgressiveDoneListener(()=>{this._onProgressiveDone()}),t.transportReady()}_onReceiveData({begin:t,chunk:i}){const s=i instanceof Uint8Array&&i.byteLength===i.buffer.byteLength?i.buffer:new Uint8Array(i).buffer;if(t===void 0)this._fullRequestReader?this._fullRequestReader._enqueue(s):this._queuedChunks.push(s);else{const l=this._rangeReaders.some(function(d){return d._begin!==t?!1:(d._enqueue(s),!0)});Aa(l,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){var t;return((t=this._fullRequestReader)==null?void 0:t._loaded)??0}_onProgress(t){var i,s,l,d;t.total===void 0?(s=(i=this._rangeReaders[0])==null?void 0:i.onProgress)==null||s.call(i,{loaded:t.loaded}):(d=(l=this._fullRequestReader)==null?void 0:l.onProgress)==null||d.call(l,{loaded:t.loaded,total:t.total})}_onProgressiveDone(){var t;(t=this._fullRequestReader)==null||t.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(t){const i=this._rangeReaders.indexOf(t);i>=0&&this._rangeReaders.splice(i,1)}getFullReader(){Aa(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");const t=this._queuedChunks;return this._queuedChunks=null,new gZe(this,t,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(t,i){if(i<=this._progressiveDataLength)return null;const s=new vZe(this,t,i);return this._pdfDataRangeTransport.requestDataRange(t,i),this._rangeReaders.push(s),s}cancelAllRequests(t){var i;(i=this._fullRequestReader)==null||i.cancel(t);for(const s of this._rangeReaders.slice(0))s.cancel(t);this._pdfDataRangeTransport.abort()}}class gZe{constructor(t,i,s=!1,l=null){this._stream=t,this._done=s||!1,this._filename=lZ(l)?l:null,this._queuedChunks=i||[],this._loaded=0;for(const d of this._queuedChunks)this._loaded+=d.byteLength;this._requests=[],this._headersReady=Promise.resolve(),t._fullRequestReader=this,this.onProgress=null}_enqueue(t){this._done||(this._requests.length>0?this._requests.shift().resolve({value:t,done:!1}):this._queuedChunks.push(t),this._loaded+=t.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}async read(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0;for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class vZe{constructor(t,i,s){this._stream=t,this._begin=i,this._end=s,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(t){if(!this._done){if(this._requests.length===0)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});for(const s of this._requests)s.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}async read(){if(this._queuedChunk){const i=this._queuedChunk;return this._queuedChunk=null,{value:i,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0;for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}function yZe(n){let t=!0,i=s("filename\\*","i").exec(n);if(i){i=i[1];let y=p(i);return y=unescape(y),y=g(y),y=_(y),d(y)}if(i=u(n),i){const y=_(i);return d(y)}if(i=s("filename","i").exec(n),i){i=i[1];let y=p(i);return y=_(y),d(y)}function s(y,E){return new RegExp("(?:^|;)\\s*"+y+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',E)}function l(y,E){if(y){if(!/^[\x00-\xFF]+$/.test(E))return E;try{const b=new TextDecoder(y,{fatal:!0}),A=eP(E);E=b.decode(A),t=!1}catch{}}return E}function d(y){return t&&/[\x80-\xff]/.test(y)&&(y=l("utf-8",y),t&&(y=l("iso-8859-1",y))),y}function u(y){const E=[];let b;const A=s("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;(b=A.exec(y))!==null;){let[,O,D,P]=b;if(O=parseInt(O,10),O in E){if(O===0)break;continue}E[O]=[D,P]}const N=[];for(let O=0;O{if(t._responseOrigin=XU(d.url),!pEe(d.status))throw rP(d.status,l);this._reader=d.body.getReader(),this._headersCapability.resolve();const u=d.headers,{allowRangeRequests:p,suggestedLength:g}=hEe({responseHeaders:u,isHttp:t.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=p,this._contentLength=g||this._contentLength,this._filename=fEe(u),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new Dv("Streaming is disabled."))}).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;await this._headersCapability.promise;const{value:t,done:i}=await this._reader.read();return i?{value:t,done:i}:(this._loaded+=t.byteLength,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded,total:this._contentLength}),{value:gEe(t),done:!1})}cancel(t){var i;(i=this._reader)==null||i.cancel(t),this._abortController.abort()}}class wZe{constructor(t,i,s){this._stream=t,this._reader=null,this._loaded=0;const l=t.source;this._withCredentials=l.withCredentials||!1,this._readCapability=Promise.withResolvers(),this._isStreamingSupported=!l.disableStream,this._abortController=new AbortController;const d=new Headers(t.headers);d.append("Range",`bytes=${i}-${s-1}`);const u=l.url;fetch(u,mEe(d,this._withCredentials,this._abortController)).then(p=>{const g=XU(p.url);if(g!==t._responseOrigin)throw new Error(`Expected range response-origin "${g}" to match "${t._responseOrigin}".`);if(!pEe(p.status))throw rP(p.status,u);this._readCapability.resolve(),this._reader=p.body.getReader()}).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;await this._readCapability.promise;const{value:t,done:i}=await this._reader.read();return i?{value:t,done:i}:(this._loaded+=t.byteLength,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded}),{value:gEe(t),done:!1})}cancel(t){var i;(i=this._reader)==null||i.cancel(t),this._abortController.abort()}}const lK=200,cK=206;function SZe(n){const t=n.response;return typeof t!="string"?t:eP(t).buffer}class bZe{constructor({url:t,httpHeaders:i,withCredentials:s}){sn(this,"_responseOrigin",null);this.url=t,this.isHttp=/^https?:/i.test(t),this.headers=uEe(this.isHttp,i),this.withCredentials=s||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}request(t){const i=new XMLHttpRequest,s=this.currXhrId++,l=this.pendingRequests[s]={xhr:i};i.open("GET",this.url),i.withCredentials=this.withCredentials;for(const[d,u]of this.headers)i.setRequestHeader(d,u);return this.isHttp&&"begin"in t&&"end"in t?(i.setRequestHeader("Range",`bytes=${t.begin}-${t.end-1}`),l.expectedStatus=cK):l.expectedStatus=lK,i.responseType="arraybuffer",Aa(t.onError,"Expected `onError` callback to be provided."),i.onerror=()=>{t.onError(i.status)},i.onreadystatechange=this.onStateChange.bind(this,s),i.onprogress=this.onProgress.bind(this,s),l.onHeadersReceived=t.onHeadersReceived,l.onDone=t.onDone,l.onError=t.onError,l.onProgress=t.onProgress,i.send(null),s}onProgress(t,i){var l;const s=this.pendingRequests[t];s&&((l=s.onProgress)==null||l.call(s,i))}onStateChange(t,i){const s=this.pendingRequests[t];if(!s)return;const l=s.xhr;if(l.readyState>=2&&s.onHeadersReceived&&(s.onHeadersReceived(),delete s.onHeadersReceived),l.readyState!==4||!(t in this.pendingRequests))return;if(delete this.pendingRequests[t],l.status===0&&this.isHttp){s.onError(l.status);return}const d=l.status||lK;if(!(d===lK&&s.expectedStatus===cK)&&d!==s.expectedStatus){s.onError(l.status);return}const p=SZe(l);if(d===cK){const g=l.getResponseHeader("Content-Range"),_=/bytes (\d+)-(\d+)\/(\d+)/.exec(g);_?s.onDone({begin:parseInt(_[1],10),chunk:p}):(Ei('Missing or invalid "Content-Range" header.'),s.onError(0))}else p?s.onDone({begin:0,chunk:p}):s.onError(l.status)}getRequestXhr(t){return this.pendingRequests[t].xhr}isPendingRequest(t){return t in this.pendingRequests}abortRequest(t){const i=this.pendingRequests[t].xhr;delete this.pendingRequests[t],i.abort()}}class CZe{constructor(t){this._source=t,this._manager=new bZe(t),this._rangeChunkSize=t.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(t){const i=this._rangeRequestReaders.indexOf(t);i>=0&&this._rangeRequestReaders.splice(i,1)}getFullReader(){return Aa(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new TZe(this._manager,this._source),this._fullRequestReader}getRangeReader(t,i){const s=new RZe(this._manager,t,i);return s.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(s),s}cancelAllRequests(t){var i;(i=this._fullRequestReader)==null||i.cancel(t);for(const s of this._rangeRequestReaders.slice(0))s.cancel(t)}}class TZe{constructor(t,i){this._manager=t,this._url=i.url,this._fullRequestId=t.request({onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._headersCapability=Promise.withResolvers(),this._disableRange=i.disableRange||!1,this._contentLength=i.length,this._rangeChunkSize=i.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){const t=this._fullRequestId,i=this._manager.getRequestXhr(t);this._manager._responseOrigin=XU(i.responseURL);const s=i.getAllResponseHeaders(),l=new Headers(s?s.trimStart().replace(/[^\S ]+$/,"").split(/[\r\n]+/).map(p=>{const[g,..._]=p.split(": ");return[g,_.join(": ")]}):[]),{allowRangeRequests:d,suggestedLength:u}=hEe({responseHeaders:l,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});d&&(this._isRangeSupported=!0),this._contentLength=u||this._contentLength,this._filename=fEe(l),this._isRangeSupported&&this._manager.abortRequest(t),this._headersCapability.resolve()}_onDone(t){if(t&&(this._requests.length>0?this._requests.shift().resolve({value:t.chunk,done:!1}):this._cachedChunks.push(t.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(t){this._storedError=rP(t,this._url),this._headersCapability.reject(this._storedError);for(const i of this._requests)i.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(t){var i;(i=this.onProgress)==null||i.call(this,{loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersCapability.promise}async read(){if(await this._headersCapability.promise,this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0,this._headersCapability.reject(t);for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class RZe{constructor(t,i,s){this._manager=t,this._url=t.url,this._requestId=t.request({begin:i,end:s,onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_onHeadersReceived(){var i;const t=XU((i=this._manager.getRequestXhr(this._requestId))==null?void 0:i.responseURL);t!==this._manager._responseOrigin&&(this._storedError=new Error(`Expected range response-origin "${t}" to match "${this._manager._responseOrigin}".`),this._onError(0))}_close(){var t;(t=this.onClosed)==null||t.call(this,this)}_onDone(t){const i=t.chunk;this._requests.length>0?this._requests.shift().resolve({value:i,done:!1}):this._queuedChunk=i,this._done=!0;for(const s of this._requests)s.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(t){this._storedError??(this._storedError=rP(t,this._url));for(const i of this._requests)i.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(t){var i;this.isStreamingSupported||(i=this.onProgress)==null||i.call(this,{loaded:t.loaded})}get isStreamingSupported(){return!1}async read(){if(this._storedError)throw this._storedError;if(this._queuedChunk!==null){const i=this._queuedChunk;return this._queuedChunk=null,{value:i,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0;for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}const xZe=/^[a-z][a-z0-9\-+.]+:/i;function AZe(n){if(xZe.test(n))return new URL(n);const t=ic.getBuiltinModule("url");return new URL(t.pathToFileURL(n))}class IZe{constructor(t){this.source=t,this.url=AZe(t.url),Aa(this.url.protocol==="file:","PDFNodeStream only supports file:// URLs."),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var t;return((t=this._fullRequestReader)==null?void 0:t._loaded)??0}getFullReader(){return Aa(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=new NZe(this),this._fullRequestReader}getRangeReader(t,i){if(i<=this._progressiveDataLength)return null;const s=new OZe(this,t,i);return this._rangeRequestReaders.push(s),s}cancelAllRequests(t){var i;(i=this._fullRequestReader)==null||i.cancel(t);for(const s of this._rangeRequestReaders.slice(0))s.cancel(t)}}class NZe{constructor(t){this._url=t.url,this._done=!1,this._storedError=null,this.onProgress=null;const i=t.source;this._contentLength=i.length,this._loaded=0,this._filename=null,this._disableRange=i.disableRange||!1,this._rangeChunkSize=i.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!i.disableStream,this._isRangeSupported=!i.disableRange,this._readableStream=null,this._readCapability=Promise.withResolvers(),this._headersCapability=Promise.withResolvers();const s=ic.getBuiltinModule("fs");s.promises.lstat(this._url).then(l=>{this._contentLength=l.size,this._setReadableStream(s.createReadStream(this._url)),this._headersCapability.resolve()},l=>{l.code==="ENOENT"&&(l=rP(0,this._url.href)),this._storedError=l,this._headersCapability.reject(l)})}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();return t===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=t.length,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(t).buffer,done:!1})}cancel(t){if(!this._readableStream){this._error(t);return}this._readableStream.destroy(t)}_error(t){this._storedError=t,this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t,t.on("readable",()=>{this._readCapability.resolve()}),t.on("end",()=>{t.destroy(),this._done=!0,this._readCapability.resolve()}),t.on("error",i=>{this._error(i)}),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new Dv("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class OZe{constructor(t,i,s){this._url=t.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=Promise.withResolvers();const l=t.source;this._isStreamingSupported=!l.disableStream;const d=ic.getBuiltinModule("fs");this._setReadableStream(d.createReadStream(this._url,{start:i,end:s-1}))}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();return t===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=t.length,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded}),{value:new Uint8Array(t).buffer,done:!1})}cancel(t){if(!this._readableStream){this._error(t);return}this._readableStream.destroy(t)}_error(t){this._storedError=t,this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t,t.on("readable",()=>{this._readCapability.resolve()}),t.on("end",()=>{t.destroy(),this._done=!0,this._readCapability.resolve()}),t.on("error",i=>{this._error(i)}),this._storedError&&this._readableStream.destroy(this._storedError)}}const _I=Symbol("INITIAL_DATA");var xd,m5,qY;class vEe{constructor(){ee(this,m5);ee(this,xd,Object.create(null))}get(t,i=null){if(i){const l=pe(this,m5,qY).call(this,t);return l.promise.then(()=>i(l.data)),null}const s=T(this,xd)[t];if(!s||s.data===_I)throw new Error(`Requesting object that isn't resolved yet ${t}.`);return s.data}has(t){const i=T(this,xd)[t];return!!i&&i.data!==_I}delete(t){const i=T(this,xd)[t];return!i||i.data===_I?!1:(delete T(this,xd)[t],!0)}resolve(t,i=null){const s=pe(this,m5,qY).call(this,t);s.data=i,s.resolve()}clear(){var t;for(const i in T(this,xd)){const{data:s}=T(this,xd)[i];(t=s==null?void 0:s.bitmap)==null||t.close()}re(this,xd,Object.create(null))}*[Symbol.iterator](){for(const t in T(this,xd)){const{data:i}=T(this,xd)[t];i!==_I&&(yield[t,i])}}}xd=new WeakMap,m5=new WeakSet,qY=function(t){var i;return(i=T(this,xd))[t]||(i[t]={...Promise.withResolvers(),data:_I})};const PZe=1e5,Pfe=30;var Gpe,F1,Wc,g5,v5,w2,Zm,y5,_5,S2,_T,ET,B1,wT,E5,ST,b2,w5,S5,bT,C2,b5,V1,CT,O9,yEe,P9,_Ee,C5,YY,TT,pM,T5,XY,L9,EEe,D9,wEe;const Xs=class Xs{constructor({textContentSource:t,container:i,viewport:s}){ee(this,O9);ee(this,P9);ee(this,C5);ee(this,F1,Promise.withResolvers());ee(this,Wc,null);ee(this,g5,!1);ee(this,v5,!!((Gpe=globalThis.FontInspector)!=null&&Gpe.enabled));ee(this,w2,null);ee(this,Zm,null);ee(this,y5,0);ee(this,_5,0);ee(this,S2,null);ee(this,_T,null);ee(this,ET,0);ee(this,B1,0);ee(this,wT,Object.create(null));ee(this,E5,[]);ee(this,ST,null);ee(this,b2,[]);ee(this,w5,new WeakMap);ee(this,S5,null);var g;if(t instanceof ReadableStream)re(this,ST,t);else if(typeof t=="object")re(this,ST,new ReadableStream({start(_){_.enqueue(t),_.close()}}));else throw new Error('No "textContentSource" parameter specified.');re(this,Wc,re(this,_T,i)),re(this,B1,s.scale*Up.pixelRatio),re(this,ET,s.rotation),re(this,Zm,{div:null,properties:null,ctx:null});const{pageWidth:l,pageHeight:d,pageX:u,pageY:p}=s.rawDims;re(this,S5,[1,0,0,-1,-u,p+d]),re(this,_5,l),re(this,y5,d),pe(g=Xs,L9,EEe).call(g),NE(i,s),T(this,F1).promise.finally(()=>{T(Xs,CT).delete(this),re(this,Zm,null),re(this,wT,null)}).catch(()=>{})}static get fontFamilyMap(){const{isWindows:t,isFirefox:i}=qo.platform;return Ki(this,"fontFamilyMap",new Map([["sans-serif",`${t&&i?"Calibri, ":""}sans-serif`],["monospace",`${t&&i?"Lucida Console, ":""}monospace`]]))}render(){const t=()=>{T(this,S2).read().then(({value:i,done:s})=>{if(s){T(this,F1).resolve();return}T(this,w2)??re(this,w2,i.lang),Object.assign(T(this,wT),i.styles),pe(this,O9,yEe).call(this,i.items),t()},T(this,F1).reject)};return re(this,S2,T(this,ST).getReader()),T(Xs,CT).add(this),t(),T(this,F1).promise}update({viewport:t,onBefore:i=null}){var d;const s=t.scale*Up.pixelRatio,l=t.rotation;if(l!==T(this,ET)&&(i==null||i(),re(this,ET,l),NE(T(this,_T),{rotation:l})),s!==T(this,B1)){i==null||i(),re(this,B1,s);const u={div:null,properties:null,ctx:pe(d=Xs,TT,pM).call(d,T(this,w2))};for(const p of T(this,b2))u.properties=T(this,w5).get(p),u.div=p,pe(this,C5,YY).call(this,u)}}cancel(){var i;const t=new Dv("TextLayer task cancelled.");(i=T(this,S2))==null||i.cancel(t).catch(()=>{}),re(this,S2,null),T(this,F1).reject(t)}get textDivs(){return T(this,b2)}get textContentItemsStr(){return T(this,E5)}static cleanup(){if(!(T(this,CT).size>0)){T(this,bT).clear();for(const{canvas:t}of T(this,C2).values())t.remove();T(this,C2).clear()}}};F1=new WeakMap,Wc=new WeakMap,g5=new WeakMap,v5=new WeakMap,w2=new WeakMap,Zm=new WeakMap,y5=new WeakMap,_5=new WeakMap,S2=new WeakMap,_T=new WeakMap,ET=new WeakMap,B1=new WeakMap,wT=new WeakMap,E5=new WeakMap,ST=new WeakMap,b2=new WeakMap,w5=new WeakMap,S5=new WeakMap,bT=new WeakMap,C2=new WeakMap,b5=new WeakMap,V1=new WeakMap,CT=new WeakMap,O9=new WeakSet,yEe=function(t){var l,d;if(T(this,g5))return;(d=T(this,Zm)).ctx??(d.ctx=pe(l=Xs,TT,pM).call(l,T(this,w2)));const i=T(this,b2),s=T(this,E5);for(const u of t){if(i.length>PZe){Ei("Ignoring additional textDivs for performance reasons."),re(this,g5,!0);return}if(u.str===void 0){if(u.type==="beginMarkedContentProps"||u.type==="beginMarkedContent"){const p=T(this,Wc);re(this,Wc,document.createElement("span")),T(this,Wc).classList.add("markedContent"),u.id&&T(this,Wc).setAttribute("id",`${u.id}`),p.append(T(this,Wc))}else u.type==="endMarkedContent"&&re(this,Wc,T(this,Wc).parentNode);continue}s.push(u.str),pe(this,P9,_Ee).call(this,u)}},P9=new WeakSet,_Ee=function(t){var O;const i=document.createElement("span"),s={angle:0,canvasWidth:0,hasText:t.str!=="",hasEOL:t.hasEOL,fontSize:0};T(this,b2).push(i);const l=zn.transform(T(this,S5),t.transform);let d=Math.atan2(l[1],l[0]);const u=T(this,wT)[t.fontName];u.vertical&&(d+=Math.PI/2);let p=T(this,v5)&&u.fontSubstitution||u.fontFamily;p=Xs.fontFamilyMap.get(p)||p;const g=Math.hypot(l[2],l[3]),_=g*pe(O=Xs,D9,wEe).call(O,p,u,T(this,w2));let y,E;d===0?(y=l[4],E=l[5]-_):(y=l[4]+_*Math.sin(d),E=l[5]-_*Math.cos(d));const b="calc(var(--total-scale-factor) *",A=i.style;T(this,Wc)===T(this,_T)?(A.left=`${(100*y/T(this,_5)).toFixed(2)}%`,A.top=`${(100*E/T(this,y5)).toFixed(2)}%`):(A.left=`${b}${y.toFixed(2)}px)`,A.top=`${b}${E.toFixed(2)}px)`),A.fontSize=`${b}${(T(Xs,V1)*g).toFixed(2)}px)`,A.fontFamily=p,s.fontSize=g,i.setAttribute("role","presentation"),i.textContent=t.str,i.dir=t.dir,T(this,v5)&&(i.dataset.fontName=u.fontSubstitutionLoadedName||t.fontName),d!==0&&(s.angle=d*(180/Math.PI));let N=!1;if(t.str.length>1)N=!0;else if(t.str!==" "&&t.transform[0]!==t.transform[3]){const D=Math.abs(t.transform[0]),P=Math.abs(t.transform[3]);D!==P&&Math.max(D,P)/Math.min(D,P)>1.5&&(N=!0)}if(N&&(s.canvasWidth=u.vertical?t.height:t.width),T(this,w5).set(i,s),T(this,Zm).div=i,T(this,Zm).properties=s,pe(this,C5,YY).call(this,T(this,Zm)),s.hasText&&T(this,Wc).append(i),s.hasEOL){const D=document.createElement("br");D.setAttribute("role","presentation"),T(this,Wc).append(D)}},C5=new WeakSet,YY=function(t){var p;const{div:i,properties:s,ctx:l}=t,{style:d}=i;let u="";if(T(Xs,V1)>1&&(u=`scale(${1/T(Xs,V1)})`),s.canvasWidth!==0&&s.hasText){const{fontFamily:g}=d,{canvasWidth:_,fontSize:y}=s;pe(p=Xs,T5,XY).call(p,l,y*T(this,B1),g);const{width:E}=l.measureText(i.textContent);E>0&&(u=`scaleX(${_*T(this,B1)/E}) ${u}`)}s.angle!==0&&(u=`rotate(${s.angle}deg) ${u}`),u.length>0&&(d.transform=u)},TT=new WeakSet,pM=function(t=null){let i=T(this,C2).get(t||(t=""));if(!i){const s=document.createElement("canvas");s.className="hiddenCanvasElement",s.lang=t,document.body.append(s),i=s.getContext("2d",{alpha:!1,willReadFrequently:!0}),T(this,C2).set(t,i),T(this,b5).set(i,{size:0,family:""})}return i},T5=new WeakSet,XY=function(t,i,s){const l=T(this,b5).get(t);i===l.size&&s===l.family||(t.font=`${i}px ${s}`,l.size=i,l.family=s)},L9=new WeakSet,EEe=function(){if(T(this,V1)!==null)return;const t=document.createElement("div");t.style.opacity=0,t.style.lineHeight=1,t.style.fontSize="1px",t.style.position="absolute",t.textContent="X",document.body.append(t),re(this,V1,t.getBoundingClientRect().height),t.remove()},D9=new WeakSet,wEe=function(t,i,s){const l=T(this,bT).get(t);if(l)return l;const d=pe(this,TT,pM).call(this,s);d.canvas.width=d.canvas.height=Pfe,pe(this,T5,XY).call(this,d,Pfe,t);const u=d.measureText(""),p=u.fontBoundingBoxAscent,g=Math.abs(u.fontBoundingBoxDescent);d.canvas.width=d.canvas.height=0;let _=.8;return p?_=p/(p+g):(qo.platform.isFirefox&&Ei("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering."),i.ascent?_=i.ascent:i.descent&&(_=1+i.descent)),T(this,bT).set(t,_),_},ee(Xs,TT),ee(Xs,T5),ee(Xs,L9),ee(Xs,D9),ee(Xs,bT,new Map),ee(Xs,C2,new Map),ee(Xs,b5,new WeakMap),ee(Xs,V1,null),ee(Xs,CT,new Set);let tN=Xs;class nN{static textContent(t){const i=[],s={items:i,styles:Object.create(null)};function l(d){var g;if(!d)return;let u=null;const p=d.name;if(p==="#text")u=d.value;else if(nN.shouldBuildText(p))(g=d==null?void 0:d.attributes)!=null&&g.textContent?u=d.attributes.textContent:d.value&&(u=d.value);else return;if(u!==null&&i.push({str:u}),!!d.children)for(const _ of d.children)l(_)}return l(t),s}static shouldBuildText(t){return!(t==="textarea"||t==="input"||t==="option"||t==="select")}}const LZe=100;function SEe(n={}){typeof n=="string"||n instanceof URL?n={url:n}:(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});const t=new JY,{docId:i}=t,s=n.url?zQe(n.url):null,l=n.data?HQe(n.data):null,d=n.httpHeaders||null,u=n.withCredentials===!0,p=n.password??null,g=n.range instanceof bEe?n.range:null,_=Number.isInteger(n.rangeChunkSize)&&n.rangeChunkSize>0?n.rangeChunkSize:2**16;let y=n.worker instanceof iN?n.worker:null;const E=n.verbosity,b=typeof n.docBaseUrl=="string"&&!qU(n.docBaseUrl)?n.docBaseUrl:null,A=xk(n.cMapUrl),N=n.cMapPacked!==!1,O=n.CMapReaderFactory||(ec?JQe:Efe),D=xk(n.iccUrl),P=xk(n.standardFontDataUrl),j=n.StandardFontDataFactory||(ec?QQe:wfe),M=xk(n.wasmUrl),V=n.WasmFactory||(ec?ZQe:Sfe),H=n.stopAtErrors!==!0,$=Number.isInteger(n.maxImageSize)&&n.maxImageSize>-1?n.maxImageSize:-1,Q=n.isEvalSupported!==!1,Y=typeof n.isOffscreenCanvasSupported=="boolean"?n.isOffscreenCanvasSupported:!ec,le=typeof n.isImageDecoderSupported=="boolean"?n.isImageDecoderSupported:!ec&&(qo.platform.isFirefox||!globalThis.chrome),ae=Number.isInteger(n.canvasMaxAreaInBytes)?n.canvasMaxAreaInBytes:-1,te=typeof n.disableFontFace=="boolean"?n.disableFontFace:ec,de=n.fontExtraProperties===!0,G=n.enableXfa===!0,ie=n.ownerDocument||globalThis.document,_e=n.disableRange===!0,he=n.disableStream===!0,Ce=n.disableAutoFetch===!0,fe=n.pdfBug===!0,me=n.CanvasFactory||(ec?XQe:KQe),Ne=n.FilterFactory||(ec?YQe:qQe),Fe=n.enableHWA===!0,je=n.useWasm!==!1,Ve=g?g.length:n.length??NaN,Re=typeof n.useSystemFonts=="boolean"?n.useSystemFonts:!ec&&!te,Be=typeof n.useWorkerFetch=="boolean"?n.useWorkerFetch:!!(O===Efe&&j===wfe&&V===Sfe&&A&&P&&M&&MI(A,document.baseURI)&&MI(P,document.baseURI)&&MI(M,document.baseURI)),Xe=null;EQe(E);const we={canvasFactory:new me({ownerDocument:ie,enableHWA:Fe}),filterFactory:new Ne({docId:i,ownerDocument:ie}),cMapReaderFactory:Be?null:new O({baseUrl:A,isCompressed:N}),standardFontDataFactory:Be?null:new j({baseUrl:P}),wasmFactory:Be?null:new V({baseUrl:M})};y||(y=iN.create({verbosity:E,port:Pp.workerPort}),t._worker=y);const Ge={docId:i,apiVersion:"5.4.54",data:l,password:p,disableAutoFetch:Ce,rangeChunkSize:_,length:Ve,docBaseUrl:b,enableXfa:G,evaluatorOptions:{maxImageSize:$,disableFontFace:te,ignoreErrors:H,isEvalSupported:Q,isOffscreenCanvasSupported:Y,isImageDecoderSupported:le,canvasMaxAreaInBytes:ae,fontExtraProperties:de,useSystemFonts:Re,useWasm:je,useWorkerFetch:Be,cMapUrl:A,iccUrl:D,standardFontDataUrl:P,wasmUrl:M}},rt={ownerDocument:ie,pdfBug:fe,styleElement:Xe,loadingParams:{disableAutoFetch:Ce,enableXfa:G}};return y.promise.then(function(){if(t.destroyed)throw new Error("Loading aborted");if(y.destroyed)throw new Error("Worker was destroyed");const pt=y.messageHandler.sendWithPromise("GetDocRequest",Ge,l?[l.buffer]:null);let Ze;if(g)Ze=new mZe(g,{disableRange:_e,disableStream:he});else if(!l){if(!s)throw new Error("getDocument - no `url` parameter provided.");const Je=MI(s)?_Ze:ec?IZe:CZe;Ze=new Je({url:s,length:Ve,httpHeaders:d,withCredentials:u,rangeChunkSize:_,disableRange:_e,disableStream:he})}return pt.then(Je=>{if(t.destroyed)throw new Error("Loading aborted");if(y.destroyed)throw new Error("Worker was destroyed");const _t=new VI(i,Je,y.port),Xt=new MZe(_t,t,Ze,rt,we,Fe);t._transport=Xt,_t.send("Ready",null)})}).catch(t._capability.reject),t}var k9;const M9=class M9{constructor(){sn(this,"_capability",Promise.withResolvers());sn(this,"_transport",null);sn(this,"_worker",null);sn(this,"docId",`d${ao(M9,k9)._++}`);sn(this,"destroyed",!1);sn(this,"onPassword",null);sn(this,"onProgress",null)}get promise(){return this._capability.promise}async destroy(){var t,i,s,l;this.destroyed=!0;try{(t=this._worker)!=null&&t.port&&(this._worker._pendingDestroy=!0),await((i=this._transport)==null?void 0:i.destroy())}catch(d){throw(s=this._worker)!=null&&s.port&&delete this._worker._pendingDestroy,d}this._transport=null,(l=this._worker)==null||l.destroy(),this._worker=null}async getData(){return this._transport.getData()}};k9=new WeakMap,ee(M9,k9,0);let JY=M9;var T2,R5,x5,A5,I5;class bEe{constructor(t,i,s=!1,l=null){ee(this,T2,Promise.withResolvers());ee(this,R5,[]);ee(this,x5,[]);ee(this,A5,[]);ee(this,I5,[]);this.length=t,this.initialData=i,this.progressiveDone=s,this.contentDispositionFilename=l}addRangeListener(t){T(this,I5).push(t)}addProgressListener(t){T(this,A5).push(t)}addProgressiveReadListener(t){T(this,x5).push(t)}addProgressiveDoneListener(t){T(this,R5).push(t)}onDataRange(t,i){for(const s of T(this,I5))s(t,i)}onDataProgress(t,i){T(this,T2).promise.then(()=>{for(const s of T(this,A5))s(t,i)})}onDataProgressiveRead(t){T(this,T2).promise.then(()=>{for(const i of T(this,x5))i(t)})}onDataProgressiveDone(){T(this,T2).promise.then(()=>{for(const t of T(this,R5))t()})}transportReady(){T(this,T2).resolve()}requestDataRange(t,i){Zr("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}T2=new WeakMap,R5=new WeakMap,x5=new WeakMap,A5=new WeakMap,I5=new WeakMap;class DZe{constructor(t,i){this._pdfInfo=t,this._transport=i}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return Ki(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(t){return this._transport.getPage(t)}getPageIndex(t){return this._transport.getPageIndex(t)}getDestinations(){return this._transport.getDestinations()}getDestination(t){return this._transport.getDestination(t)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:t="display"}={}){const{renderingIntent:i}=this._transport.getRenderingIntent(t);return this._transport.getOptionalContentConfig(i)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(t=!1){return this._transport.startCleanup(t||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}cachedPageNumber(t){return this._transport.cachedPageNumber(t)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}var eg,R2,$I;class kZe{constructor(t,i,s,l=!1){ee(this,R2);ee(this,eg,!1);this._pageIndex=t,this._pageInfo=i,this._transport=s,this._stats=l?new vfe:null,this._pdfBug=l,this.commonObjs=s.commonObjs,this.objs=new vEe,this._intentStates=new Map,this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:t,rotation:i=this.rotate,offsetX:s=0,offsetY:l=0,dontFlip:d=!1}={}){return new nP({viewBox:this.view,userUnit:this.userUnit,scale:t,rotation:i,offsetX:s,offsetY:l,dontFlip:d})}getAnnotations({intent:t="display"}={}){const{renderingIntent:i}=this._transport.getRenderingIntent(t);return this._transport.getAnnotations(this._pageIndex,i)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return Ki(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){var t;return((t=this._transport._htmlForXfa)==null?void 0:t.children[this._pageIndex])||null}render({canvasContext:t,canvas:i=t.canvas,viewport:s,intent:l="display",annotationMode:d=c1.ENABLE,transform:u=null,background:p=null,optionalContentConfigPromise:g=null,annotationCanvasMap:_=null,pageColors:y=null,printAnnotationStorage:E=null,isEditing:b=!1}){var H,$;(H=this._stats)==null||H.time("Overall");const A=this._transport.getRenderingIntent(l,d,E,b),{renderingIntent:N,cacheKey:O}=A;re(this,eg,!1),g||(g=this._transport.getOptionalContentConfig(N));let D=this._intentStates.get(O);D||(D=Object.create(null),this._intentStates.set(O,D)),D.streamReaderCancelTimeout&&(clearTimeout(D.streamReaderCancelTimeout),D.streamReaderCancelTimeout=null);const P=!!(N&Fd.PRINT);D.displayReadyCapability||(D.displayReadyCapability=Promise.withResolvers(),D.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},($=this._stats)==null||$.time("Page Request"),this._pumpOperatorList(A));const j=Q=>{var Y;D.renderTasks.delete(M),P&&re(this,eg,!0),pe(this,R2,$I).call(this),Q?(M.capability.reject(Q),this._abortOperatorList({intentState:D,reason:Q instanceof Error?Q:new Error(Q)})):M.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),(Y=globalThis.Stats)!=null&&Y.enabled&&globalThis.Stats.add(this.pageNumber,this._stats))},M=new QY({callback:j,params:{canvas:i,canvasContext:t,viewport:s,transform:u,background:p},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:_,operatorList:D.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!P,pdfBug:this._pdfBug,pageColors:y,enableHWA:this._transport.enableHWA});(D.renderTasks||(D.renderTasks=new Set)).add(M);const V=M.task;return Promise.all([D.displayReadyCapability.promise,g]).then(([Q,Y])=>{var le;if(this.destroyed){j();return}if((le=this._stats)==null||le.time("Rendering"),!(Y.renderingIntent&N))throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");M.initializeGraphics({transparency:Q,optionalContentConfig:Y}),M.operatorListChanged()}).catch(j),V}getOperatorList({intent:t="display",annotationMode:i=c1.ENABLE,printAnnotationStorage:s=null,isEditing:l=!1}={}){var _;function d(){p.operatorList.lastChunk&&(p.opListReadCapability.resolve(p.operatorList),p.renderTasks.delete(g))}const u=this._transport.getRenderingIntent(t,i,s,l,!0);let p=this._intentStates.get(u.cacheKey);p||(p=Object.create(null),this._intentStates.set(u.cacheKey,p));let g;return p.opListReadCapability||(g=Object.create(null),g.operatorListChanged=d,p.opListReadCapability=Promise.withResolvers(),(p.renderTasks||(p.renderTasks=new Set)).add(g),p.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(_=this._stats)==null||_.time("Page Request"),this._pumpOperatorList(u)),p.opListReadCapability.promise}streamTextContent({includeMarkedContent:t=!1,disableNormalization:i=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:t===!0,disableNormalization:i===!0},{highWaterMark:100,size(l){return l.items.length}})}getTextContent(t={}){if(this._transport._htmlForXfa)return this.getXfa().then(s=>nN.textContent(s));const i=this.streamTextContent(t);return new Promise(function(s,l){function d(){u.read().then(function({value:g,done:_}){if(_){s(p);return}p.lang??(p.lang=g.lang),Object.assign(p.styles,g.styles),p.items.push(...g.items),d()},l)}const u=i.getReader(),p={items:[],styles:Object.create(null),lang:null};d()})}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const t=[];for(const i of this._intentStates.values())if(this._abortOperatorList({intentState:i,reason:new Error("Page was destroyed."),force:!0}),!i.opListReadCapability)for(const s of i.renderTasks)t.push(s.completed),s.cancel();return this.objs.clear(),re(this,eg,!1),Promise.all(t)}cleanup(t=!1){re(this,eg,!0);const i=pe(this,R2,$I).call(this);return t&&i&&this._stats&&(this._stats=new vfe),i}_startRenderPage(t,i){var l,d;const s=this._intentStates.get(i);s&&((l=this._stats)==null||l.timeEnd("Page Request"),(d=s.displayReadyCapability)==null||d.resolve(t))}_renderPageChunk(t,i){for(let s=0,l=t.length;s{g.read().then(({value:E,done:b})=>{if(b){_.streamReader=null;return}this._transport.destroyed||(this._renderPageChunk(E,_),y())},E=>{if(_.streamReader=null,!this._transport.destroyed){if(_.operatorList){_.operatorList.lastChunk=!0;for(const b of _.renderTasks)b.operatorListChanged();pe(this,R2,$I).call(this)}if(_.displayReadyCapability)_.displayReadyCapability.reject(E);else if(_.opListReadCapability)_.opListReadCapability.reject(E);else throw E}})};y()}_abortOperatorList({intentState:t,reason:i,force:s=!1}){if(t.streamReader){if(t.streamReaderCancelTimeout&&(clearTimeout(t.streamReaderCancelTimeout),t.streamReaderCancelTimeout=null),!s){if(t.renderTasks.size>0)return;if(i instanceof oZ){let l=LZe;i.extraDelay>0&&i.extraDelay<1e3&&(l+=i.extraDelay),t.streamReaderCancelTimeout=setTimeout(()=>{t.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:t,reason:i,force:!0})},l);return}}if(t.streamReader.cancel(new Dv(i.message)).catch(()=>{}),t.streamReader=null,!this._transport.destroyed){for(const[l,d]of this._intentStates)if(d===t){this._intentStates.delete(l);break}this.cleanup()}}}get stats(){return this._stats}}eg=new WeakMap,R2=new WeakSet,$I=function(){if(!T(this,eg)||this.destroyed)return!1;for(const{renderTasks:t,operatorList:i}of this._intentStates.values())if(t.size>0||!i.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),re(this,eg,!1),!0};var z1,qh,tg,x2,j9,A2,I2,RT,mM,U9,CEe,F9,TEe,N2,KI,xT,gM;const Ns=class Ns{constructor({name:t=null,port:i=null,verbosity:s=wQe()}={}){ee(this,RT);ee(this,U9);ee(this,F9);ee(this,N2);ee(this,z1,Promise.withResolvers());ee(this,qh,null);ee(this,tg,null);ee(this,x2,null);if(this.name=t,this.destroyed=!1,this.verbosity=s,i){if(T(Ns,I2).has(i))throw new Error("Cannot use more than one PDFWorker per port.");T(Ns,I2).set(i,this),pe(this,U9,CEe).call(this,i)}else pe(this,F9,TEe).call(this)}get promise(){return T(this,z1).promise}get port(){return T(this,tg)}get messageHandler(){return T(this,qh)}destroy(){var t,i;this.destroyed=!0,(t=T(this,x2))==null||t.terminate(),re(this,x2,null),T(Ns,I2).delete(T(this,tg)),re(this,tg,null),(i=T(this,qh))==null||i.destroy(),re(this,qh,null)}static create(t){const i=T(this,I2).get(t==null?void 0:t.port);if(i){if(i._pendingDestroy)throw new Error("PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return i}return new Ns(t)}static get workerSrc(){if(Pp.workerSrc)return Pp.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _setupFakeWorkerGlobal(){return Ki(this,"_setupFakeWorkerGlobal",(async()=>T(this,xT,gM)?T(this,xT,gM):(await Xi(()=>import(this.workerSrc),__vite__mapDeps([]))).WorkerMessageHandler)())}};z1=new WeakMap,qh=new WeakMap,tg=new WeakMap,x2=new WeakMap,j9=new WeakMap,A2=new WeakMap,I2=new WeakMap,RT=new WeakSet,mM=function(){T(this,z1).resolve(),T(this,qh).send("configure",{verbosity:this.verbosity})},U9=new WeakSet,CEe=function(t){re(this,tg,t),re(this,qh,new VI("main","worker",t)),T(this,qh).on("ready",()=>{}),pe(this,RT,mM).call(this)},F9=new WeakSet,TEe=function(){if(T(Ns,A2)||T(Ns,xT,gM)){pe(this,N2,KI).call(this);return}let{workerSrc:t}=Ns;try{Ns._isSameOrigin(window.location,t)||(t=Ns._createCDNWrapper(new URL(t,window.location).href));const i=new Worker(t,{type:"module"}),s=new VI("main","worker",i),l=()=>{d.abort(),s.destroy(),i.terminate(),this.destroyed?T(this,z1).reject(new Error("Worker was destroyed")):pe(this,N2,KI).call(this)},d=new AbortController;i.addEventListener("error",()=>{T(this,x2)||l()},{signal:d.signal}),s.on("test",p=>{if(d.abort(),this.destroyed||!p){l();return}re(this,qh,s),re(this,tg,i),re(this,x2,i),pe(this,RT,mM).call(this)}),s.on("ready",p=>{if(d.abort(),this.destroyed){l();return}try{u()}catch{pe(this,N2,KI).call(this)}});const u=()=>{const p=new Uint8Array;s.send("test",p,[p.buffer])};u();return}catch{KU("The worker has been disabled.")}pe(this,N2,KI).call(this)},N2=new WeakSet,KI=function(){T(Ns,A2)||(Ei("Setting up fake worker."),re(Ns,A2,!0)),Ns._setupFakeWorkerGlobal.then(t=>{if(this.destroyed){T(this,z1).reject(new Error("Worker was destroyed"));return}const i=new $Qe;re(this,tg,i);const s=`fake${ao(Ns,j9)._++}`,l=new VI(s+"_worker",s,i);t.setup(l,i),re(this,qh,new VI(s,s+"_worker",i)),pe(this,RT,mM).call(this)}).catch(t=>{T(this,z1).reject(new Error(`Setting up fake worker failed: "${t.message}".`))})},xT=new WeakSet,gM=function(){var t;try{return((t=globalThis.pdfjsWorker)==null?void 0:t.WorkerMessageHandler)||null}catch{return null}},ee(Ns,xT),ee(Ns,j9,0),ee(Ns,A2,!1),ee(Ns,I2,new WeakMap),ec&&(re(Ns,A2,!0),Pp.workerSrc||(Pp.workerSrc="./pdf.worker.mjs")),Ns._isSameOrigin=(t,i)=>{const s=URL.parse(t);if(!(s!=null&&s.origin)||s.origin==="null")return!1;const l=new URL(i,s);return s.origin===l.origin},Ns._createCDNWrapper=t=>{const i=`await import("${t}");`;return URL.createObjectURL(new Blob([i],{type:"text/javascript"}))},Ns.fromPort=t=>{if(LQe("`PDFWorker.fromPort` - please use `PDFWorker.create` instead."),!(t!=null&&t.port))throw new Error("PDFWorker.fromPort - invalid method signature.");return Ns.create(t)};let iN=Ns;var ng,_p,AT,IT,ig,O2,qI;class MZe{constructor(t,i,s,l,d,u){ee(this,O2);ee(this,ng,new Map);ee(this,_p,new Map);ee(this,AT,new Map);ee(this,IT,new Map);ee(this,ig,null);this.messageHandler=t,this.loadingTask=i,this.commonObjs=new vEe,this.fontLoader=new BQe({ownerDocument:l.ownerDocument,styleElement:l.styleElement}),this.loadingParams=l.loadingParams,this._params=l,this.canvasFactory=d.canvasFactory,this.filterFactory=d.filterFactory,this.cMapReaderFactory=d.cMapReaderFactory,this.standardFontDataFactory=d.standardFontDataFactory,this.wasmFactory=d.wasmFactory,this.destroyed=!1,this.destroyCapability=null,this._networkStream=s,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=Promise.withResolvers(),this.enableHWA=u,this.setupMessageHandler()}get annotationStorage(){return Ki(this,"annotationStorage",new cZ)}getRenderingIntent(t,i=c1.ENABLE,s=null,l=!1,d=!1){let u=Fd.DISPLAY,p=UY;switch(t){case"any":u=Fd.ANY;break;case"display":break;case"print":u=Fd.PRINT;break;default:Ei(`getRenderingIntent - invalid intent: ${t}`)}const g=u&Fd.PRINT&&s instanceof tEe?s:this.annotationStorage;switch(i){case c1.DISABLE:u+=Fd.ANNOTATIONS_DISABLE;break;case c1.ENABLE:break;case c1.ENABLE_FORMS:u+=Fd.ANNOTATIONS_FORMS;break;case c1.ENABLE_STORAGE:u+=Fd.ANNOTATIONS_STORAGE,p=g.serializable;break;default:Ei(`getRenderingIntent - invalid annotationMode: ${i}`)}l&&(u+=Fd.IS_EDITING),d&&(u+=Fd.OPLIST);const{ids:_,hash:y}=g.modifiedIds,E=[u,p.hash,y];return{renderingIntent:u,cacheKey:E.join("_"),annotationStorageSerializable:p,modifiedIds:_}}destroy(){var s;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),(s=T(this,ig))==null||s.reject(new Error("Worker was destroyed during onPassword callback"));const t=[];for(const l of T(this,_p).values())t.push(l._destroy());T(this,_p).clear(),T(this,AT).clear(),T(this,IT).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();const i=this.messageHandler.sendWithPromise("Terminate",null);return t.push(i),Promise.all(t).then(()=>{var l,d;this.commonObjs.clear(),this.fontLoader.clear(),T(this,ng).clear(),this.filterFactory.destroy(),tN.cleanup(),(l=this._networkStream)==null||l.cancelAllRequests(new Dv("Worker was terminated.")),(d=this.messageHandler)==null||d.destroy(),this.messageHandler=null,this.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:t,loadingTask:i}=this;t.on("GetReader",(s,l)=>{Aa(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=d=>{this._lastProgress={loaded:d.loaded,total:d.total}},l.onPull=()=>{this._fullReader.read().then(function({value:d,done:u}){if(u){l.close();return}Aa(d instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),l.enqueue(new Uint8Array(d),1,[d])}).catch(d=>{l.error(d)})},l.onCancel=d=>{this._fullReader.cancel(d),l.ready.catch(u=>{if(!this.destroyed)throw u})}}),t.on("ReaderHeadersReady",async s=>{var p;await this._fullReader.headersReady;const{isStreamingSupported:l,isRangeSupported:d,contentLength:u}=this._fullReader;return(!l||!d)&&(this._lastProgress&&((p=i.onProgress)==null||p.call(i,this._lastProgress)),this._fullReader.onProgress=g=>{var _;(_=i.onProgress)==null||_.call(i,{loaded:g.loaded,total:g.total})}),{isStreamingSupported:l,isRangeSupported:d,contentLength:u}}),t.on("GetRangeReader",(s,l)=>{Aa(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");const d=this._networkStream.getRangeReader(s.begin,s.end);if(!d){l.close();return}l.onPull=()=>{d.read().then(function({value:u,done:p}){if(p){l.close();return}Aa(u instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),l.enqueue(new Uint8Array(u),1,[u])}).catch(u=>{l.error(u)})},l.onCancel=u=>{d.cancel(u),l.ready.catch(p=>{if(!this.destroyed)throw p})}}),t.on("GetDoc",({pdfInfo:s})=>{this._numPages=s.numPages,this._htmlForXfa=s.htmlForXfa,delete s.htmlForXfa,i._capability.resolve(new DZe(s,this))}),t.on("DocException",s=>{i._capability.reject(Vc(s))}),t.on("PasswordRequest",s=>{re(this,ig,Promise.withResolvers());try{if(!i.onPassword)throw Vc(s);const l=d=>{d instanceof Error?T(this,ig).reject(d):T(this,ig).resolve({password:d})};i.onPassword(l,s.code)}catch(l){T(this,ig).reject(l)}return T(this,ig).promise}),t.on("DataLoaded",s=>{var l;(l=i.onProgress)==null||l.call(i,{loaded:s.length,total:s.length}),this.downloadInfoCapability.resolve(s)}),t.on("StartRenderPage",s=>{if(this.destroyed)return;T(this,_p).get(s.pageIndex)._startRenderPage(s.transparency,s.cacheKey)}),t.on("commonobj",([s,l,d])=>{var u;if(this.destroyed||this.commonObjs.has(s))return null;switch(l){case"Font":if("error"in d){const y=d.error;Ei(`Error during font loading: ${y}`),this.commonObjs.resolve(s,y);break}const p=this._params.pdfBug&&((u=globalThis.FontInspector)!=null&&u.enabled)?(y,E)=>globalThis.FontInspector.fontAdded(y,E):null,g=new VQe(d,p);this.fontLoader.bind(g).catch(()=>t.sendWithPromise("FontFallback",{id:s})).finally(()=>{!g.fontExtraProperties&&g.data&&(g.data=null),this.commonObjs.resolve(s,g)});break;case"CopyLocalImage":const{imageRef:_}=d;Aa(_,"The imageRef must be defined.");for(const y of T(this,_p).values())for(const[,E]of y.objs)if((E==null?void 0:E.ref)===_)return E.dataLen?(this.commonObjs.resolve(s,structuredClone(E)),E.dataLen):null;break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(s,d);break;default:throw new Error(`Got unknown common object type ${l}`)}return null}),t.on("obj",([s,l,d,u])=>{var g;if(this.destroyed)return;const p=T(this,_p).get(l);if(!p.objs.has(s)){if(p._intentStates.size===0){(g=u==null?void 0:u.bitmap)==null||g.close();return}switch(d){case"Image":case"Pattern":p.objs.resolve(s,u);break;default:throw new Error(`Got unknown object type ${d}`)}}}),t.on("DocProgress",s=>{var l;this.destroyed||(l=i.onProgress)==null||l.call(i,{loaded:s.loaded,total:s.total})}),t.on("FetchBinaryData",async s=>{if(this.destroyed)throw new Error("Worker was destroyed.");const l=this[s.type];if(!l)throw new Error(`${s.type} not initialized, see the \`useWorkerFetch\` parameter.`);return l.fetch(s)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var s;this.annotationStorage.size<=0&&Ei("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:t,transfer:i}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:t,filename:((s=this._fullReader)==null?void 0:s.filename)??null},i).finally(()=>{this.annotationStorage.resetModified()})}getPage(t){if(!Number.isInteger(t)||t<=0||t>this._numPages)return Promise.reject(new Error("Invalid page request."));const i=t-1,s=T(this,AT).get(i);if(s)return s;const l=this.messageHandler.sendWithPromise("GetPage",{pageIndex:i}).then(d=>{if(this.destroyed)throw new Error("Transport destroyed");d.refStr&&T(this,IT).set(d.refStr,t);const u=new kZe(i,d,this,this._params.pdfBug);return T(this,_p).set(i,u),u});return T(this,AT).set(i,l),l}getPageIndex(t){return FY(t)?this.messageHandler.sendWithPromise("GetPageIndex",{num:t.num,gen:t.gen}):Promise.reject(new Error("Invalid pageIndex request."))}getAnnotations(t,i){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:t,intent:i})}getFieldObjects(){return pe(this,O2,qI).call(this,"GetFieldObjects")}hasJSActions(){return pe(this,O2,qI).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(t){return typeof t!="string"?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getDocJSActions(){return pe(this,O2,qI).call(this,"GetDocJSActions")}getPageJSActions(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:t})}getStructTree(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:t})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(t){return pe(this,O2,qI).call(this,"GetOptionalContentConfig").then(i=>new pZe(i,t))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){const t="GetMetadata",i=T(this,ng).get(t);if(i)return i;const s=this.messageHandler.sendWithPromise(t,null).then(l=>{var d,u;return{info:l[0],metadata:l[1]?new hZe(l[1]):null,contentDispositionFilename:((d=this._fullReader)==null?void 0:d.filename)??null,contentLength:((u=this._fullReader)==null?void 0:u.contentLength)??null}});return T(this,ng).set(t,s),s}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(t=!1){if(!this.destroyed){await this.messageHandler.sendWithPromise("Cleanup",null);for(const i of T(this,_p).values())if(!i.cleanup())throw new Error(`startCleanup: Page ${i.pageNumber} is currently rendering.`);this.commonObjs.clear(),t||this.fontLoader.clear(),T(this,ng).clear(),this.filterFactory.destroy(!0),tN.cleanup()}}cachedPageNumber(t){if(!FY(t))return null;const i=t.gen===0?`${t.num}R`:`${t.num}R${t.gen}`;return T(this,IT).get(i)??null}}ng=new WeakMap,_p=new WeakMap,AT=new WeakMap,IT=new WeakMap,ig=new WeakMap,O2=new WeakSet,qI=function(t,i=null){const s=T(this,ng).get(t);if(s)return s;const l=this.messageHandler.sendWithPromise(t,i);return T(this,ng).set(t,l),l};var H1;class jZe{constructor(t){ee(this,H1,null);sn(this,"onContinue",null);sn(this,"onError",null);re(this,H1,t)}get promise(){return T(this,H1).capability.promise}cancel(t=0){T(this,H1).cancel(null,t)}get separateAnnots(){const{separateAnnots:t}=T(this,H1).operatorList;if(!t)return!1;const{annotationCanvasMap:i}=T(this,H1);return t.form||t.canvas&&(i==null?void 0:i.size)>0}}H1=new WeakMap;var G1,P2;const A_=class A_{constructor({callback:t,params:i,objs:s,commonObjs:l,annotationCanvasMap:d,operatorList:u,pageIndex:p,canvasFactory:g,filterFactory:_,useRequestAnimationFrame:y=!1,pdfBug:E=!1,pageColors:b=null,enableHWA:A=!1}){ee(this,G1,null);this.callback=t,this.params=i,this.objs=s,this.commonObjs=l,this.annotationCanvasMap=d,this.operatorListIdx=null,this.operatorList=u,this._pageIndex=p,this.canvasFactory=g,this.filterFactory=_,this._pdfBug=E,this.pageColors=b,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=y===!0&&typeof window<"u",this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new jZe(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=i.canvas,this._canvasContext=i.canvas?null:i.canvasContext,this._enableHWA=A}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:t=!1,optionalContentConfig:i}){var p,g;if(this.cancelled)return;if(this._canvas){if(T(A_,P2).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");T(A_,P2).add(this._canvas)}this._pdfBug&&((p=globalThis.StepperManager)!=null&&p.enabled)&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());const{viewport:s,transform:l,background:d}=this.params,u=this._canvasContext||this._canvas.getContext("2d",{alpha:!1,willReadFrequently:!this._enableHWA});this.gfx=new TC(u,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:i},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:l,viewport:s,transparency:t,background:d}),this.operatorListIdx=0,this.graphicsReady=!0,(g=this.graphicsReadyCallback)==null||g.call(this)}cancel(t=null,i=0){var s,l,d;this.running=!1,this.cancelled=!0,(s=this.gfx)==null||s.endDrawing(),T(this,G1)&&(window.cancelAnimationFrame(T(this,G1)),re(this,G1,null)),T(A_,P2).delete(this._canvas),t||(t=new oZ(`Rendering cancelled, page ${this._pageIndex+1}`,i)),this.callback(t),(d=(l=this.task).onError)==null||d.call(l,t)}operatorListChanged(){var t;if(!this.graphicsReady){this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound);return}(t=this.stepper)==null||t.updateOperatorList(this.operatorList),!this.running&&this._continue()}_continue(){this.running=!0,!this.cancelled&&(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?re(this,G1,window.requestAnimationFrame(()=>{re(this,G1,null),this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),T(A_,P2).delete(this._canvas),this.callback())))}};G1=new WeakMap,P2=new WeakMap,ee(A_,P2,new WeakSet);let QY=A_;const UZe="5.4.54",FZe="295fb3ec4";var Ad,L2,NT,Ba,N5,OT,rg,O5,W1,Yh,P5,L5,ZY,D5,eX,k5,tX,sg,w_,B9,REe,Ep,n1;const zc=class zc{constructor({editor:t=null,uiManager:i=null}){ee(this,L5);ee(this,D5);ee(this,k5);ee(this,sg);ee(this,B9);ee(this,Ep);ee(this,Ad,null);ee(this,L2,null);ee(this,NT,void 0);ee(this,Ba,null);ee(this,N5,!1);ee(this,OT,!1);ee(this,rg,null);ee(this,O5,void 0);ee(this,W1,null);ee(this,Yh,null);var s,l;t?(re(this,OT,!1),re(this,rg,t)):re(this,OT,!0),re(this,Yh,(t==null?void 0:t._uiManager)||i),re(this,O5,T(this,Yh)._eventBus),re(this,NT,((s=t==null?void 0:t.color)==null?void 0:s.toUpperCase())||((l=T(this,Yh))==null?void 0:l.highlightColors.values().next().value)||"#FFFF98"),T(zc,P5)||re(zc,P5,Object.freeze({blue:"pdfjs-editor-colorpicker-blue",green:"pdfjs-editor-colorpicker-green",pink:"pdfjs-editor-colorpicker-pink",red:"pdfjs-editor-colorpicker-red",yellow:"pdfjs-editor-colorpicker-yellow"}))}static get _keyboardManager(){return Ki(this,"_keyboardManager",new iP([[["Escape","mac+Escape"],zc.prototype._hideDropdownFromKeyboard],[[" ","mac+ "],zc.prototype._colorSelectFromKeyboard],[["ArrowDown","ArrowRight","mac+ArrowDown","mac+ArrowRight"],zc.prototype._moveToNext],[["ArrowUp","ArrowLeft","mac+ArrowUp","mac+ArrowLeft"],zc.prototype._moveToPrevious],[["Home","mac+Home"],zc.prototype._moveToBeginning],[["End","mac+End"],zc.prototype._moveToEnd]]))}renderButton(){const t=re(this,Ad,document.createElement("button"));t.className="colorPicker",t.tabIndex="0",t.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-button"),t.ariaHasPopup="true",T(this,rg)&&(t.ariaControls=`${T(this,rg).id}_colorpicker_dropdown`);const i=T(this,Yh)._signal;t.addEventListener("click",pe(this,sg,w_).bind(this),{signal:i}),t.addEventListener("keydown",pe(this,k5,tX).bind(this),{signal:i});const s=re(this,L2,document.createElement("span"));return s.className="swatch",s.ariaHidden="true",s.style.backgroundColor=T(this,NT),t.append(s),t}renderMainDropdown(){const t=re(this,Ba,pe(this,L5,ZY).call(this));return t.ariaOrientation="horizontal",t.ariaLabelledBy="highlightColorPickerLabel",t}_colorSelectFromKeyboard(t){if(t.target===T(this,Ad)){pe(this,sg,w_).call(this,t);return}const i=t.target.getAttribute("data-color");i&&pe(this,D5,eX).call(this,i,t)}_moveToNext(t){var i,s;if(!T(this,Ep,n1)){pe(this,sg,w_).call(this,t);return}if(t.target===T(this,Ad)){(i=T(this,Ba).firstChild)==null||i.focus();return}(s=t.target.nextSibling)==null||s.focus()}_moveToPrevious(t){var i,s;if(t.target===((i=T(this,Ba))==null?void 0:i.firstChild)||t.target===T(this,Ad)){T(this,Ep,n1)&&this._hideDropdownFromKeyboard();return}T(this,Ep,n1)||pe(this,sg,w_).call(this,t),(s=t.target.previousSibling)==null||s.focus()}_moveToBeginning(t){var i;if(!T(this,Ep,n1)){pe(this,sg,w_).call(this,t);return}(i=T(this,Ba).firstChild)==null||i.focus()}_moveToEnd(t){var i;if(!T(this,Ep,n1)){pe(this,sg,w_).call(this,t);return}(i=T(this,Ba).lastChild)==null||i.focus()}hideDropdown(){var t,i;(t=T(this,Ba))==null||t.classList.add("hidden"),T(this,Ad).ariaExpanded="false",(i=T(this,W1))==null||i.abort(),re(this,W1,null)}_hideDropdownFromKeyboard(){var t;if(!T(this,OT)){if(!T(this,Ep,n1)){(t=T(this,rg))==null||t.unselect();return}this.hideDropdown(),T(this,Ad).focus({preventScroll:!0,focusVisible:T(this,N5)})}}updateColor(t){if(T(this,L2)&&(T(this,L2).style.backgroundColor=t),!T(this,Ba))return;const i=T(this,Yh).highlightColors.values();for(const s of T(this,Ba).children)s.ariaSelected=i.next().value===t.toUpperCase()}destroy(){var t,i;(t=T(this,Ad))==null||t.remove(),re(this,Ad,null),re(this,L2,null),(i=T(this,Ba))==null||i.remove(),re(this,Ba,null)}};Ad=new WeakMap,L2=new WeakMap,NT=new WeakMap,Ba=new WeakMap,N5=new WeakMap,OT=new WeakMap,rg=new WeakMap,O5=new WeakMap,W1=new WeakMap,Yh=new WeakMap,P5=new WeakMap,L5=new WeakSet,ZY=function(){const t=document.createElement("div"),i=T(this,Yh)._signal;t.addEventListener("contextmenu",rh,{signal:i}),t.className="dropdown",t.role="listbox",t.ariaMultiSelectable="false",t.ariaOrientation="vertical",t.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-dropdown"),T(this,rg)&&(t.id=`${T(this,rg).id}_colorpicker_dropdown`);for(const[s,l]of T(this,Yh).highlightColors){const d=document.createElement("button");d.tabIndex="0",d.role="option",d.setAttribute("data-color",l),d.title=s,d.setAttribute("data-l10n-id",T(zc,P5)[s]);const u=document.createElement("span");d.append(u),u.className="swatch",u.style.backgroundColor=l,d.ariaSelected=l===T(this,NT),d.addEventListener("click",pe(this,D5,eX).bind(this,l),{signal:i}),t.append(d)}return t.addEventListener("keydown",pe(this,k5,tX).bind(this),{signal:i}),t},D5=new WeakSet,eX=function(t,i){i.stopPropagation(),T(this,O5).dispatch("switchannotationeditorparams",{source:this,type:cr.HIGHLIGHT_COLOR,value:t}),this.updateColor(t)},k5=new WeakSet,tX=function(t){zc._keyboardManager.exec(this,t)},sg=new WeakSet,w_=function(t){if(T(this,Ep,n1)){this.hideDropdown();return}if(re(this,N5,t.detail===0),T(this,W1)||(re(this,W1,new AbortController),window.addEventListener("pointerdown",pe(this,B9,REe).bind(this),{signal:T(this,Yh).combinedSignal(T(this,W1))})),T(this,Ad).ariaExpanded="true",T(this,Ba)){T(this,Ba).classList.remove("hidden");return}const i=re(this,Ba,pe(this,L5,ZY).call(this));T(this,Ad).append(i)},B9=new WeakSet,REe=function(t){var i;(i=T(this,Ba))!=null&&i.contains(t.target)||this.hideDropdown()},Ep=new WeakSet,n1=function(){return T(this,Ba)&&!T(this,Ba).classList.contains("hidden")},ee(zc,P5,null);let D7=zc;var wp,M5,PT,j5;const I_=class I_{constructor(t){ee(this,wp,null);ee(this,M5,null);ee(this,PT,null);re(this,M5,t),re(this,PT,t._uiManager),T(I_,j5)||re(I_,j5,Object.freeze({freetext:"pdfjs-editor-color-picker-free-text-input",ink:"pdfjs-editor-color-picker-ink-input"}))}renderButton(){if(T(this,wp))return T(this,wp);const{editorType:t,colorType:i,colorValue:s}=T(this,M5),l=re(this,wp,document.createElement("input"));return l.type="color",l.value=s||"#000000",l.className="basicColorPicker",l.tabIndex=0,l.setAttribute("data-l10n-id",T(I_,j5)[t]),l.addEventListener("input",()=>{T(this,PT).updateParams(i,l.value)},{signal:T(this,PT)._signal}),l}update(t){T(this,wp)&&(T(this,wp).value=t)}destroy(){var t;(t=T(this,wp))==null||t.remove(),re(this,wp,null)}hideDropdown(){}};wp=new WeakMap,M5=new WeakMap,PT=new WeakMap,j5=new WeakMap,ee(I_,j5,null);let k7=I_;function Lfe(n){return Math.floor(Math.max(0,Math.min(1,n))*255).toString(16).padStart(2,"0")}function EI(n){return Math.max(0,Math.min(255,255*n))}class Dfe{static CMYK_G([t,i,s,l]){return["G",1-Math.min(1,.3*t+.59*s+.11*i+l)]}static G_CMYK([t]){return["CMYK",0,0,0,1-t]}static G_RGB([t]){return["RGB",t,t,t]}static G_rgb([t]){return t=EI(t),[t,t,t]}static G_HTML([t]){const i=Lfe(t);return`#${i}${i}${i}`}static RGB_G([t,i,s]){return["G",.3*t+.59*i+.11*s]}static RGB_rgb(t){return t.map(EI)}static RGB_HTML(t){return`#${t.map(Lfe).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([t,i,s,l]){return["RGB",1-Math.min(1,t+l),1-Math.min(1,s+l),1-Math.min(1,i+l)]}static CMYK_rgb([t,i,s,l]){return[EI(1-Math.min(1,t+l)),EI(1-Math.min(1,s+l)),EI(1-Math.min(1,i+l))]}static CMYK_HTML(t){const i=this.CMYK_RGB(t).slice(1);return this.RGB_HTML(i)}static RGB_CMYK([t,i,s]){const l=1-t,d=1-i,u=1-s,p=Math.min(l,d,u);return["CMYK",l,d,u,p]}}class BZe{create(t,i,s=!1){if(t<=0||i<=0)throw new Error("Invalid SVG dimensions");const l=this._createSVG("svg:svg");return l.setAttribute("version","1.1"),s||(l.setAttribute("width",`${t}px`),l.setAttribute("height",`${i}px`)),l.setAttribute("preserveAspectRatio","none"),l.setAttribute("viewBox",`0 0 ${t} ${i}`),l}createElement(t){if(typeof t!="string")throw new Error("Invalid SVG element type");return this._createSVG(t)}_createSVG(t){Zr("Abstract method `_createSVG` called.")}}class M7 extends BZe{_createSVG(t){return document.createElementNS(Im,t)}}class xEe{static setupStorage(t,i,s,l,d){const u=l.getValue(i,{value:null});switch(s.name){case"textarea":if(u.value!==null&&(t.textContent=u.value),d==="print")break;t.addEventListener("input",p=>{l.setValue(i,{value:p.target.value})});break;case"input":if(s.attributes.type==="radio"||s.attributes.type==="checkbox"){if(u.value===s.attributes.xfaOn?t.setAttribute("checked",!0):u.value===s.attributes.xfaOff&&t.removeAttribute("checked"),d==="print")break;t.addEventListener("change",p=>{l.setValue(i,{value:p.target.checked?p.target.getAttribute("xfaOn"):p.target.getAttribute("xfaOff")})})}else{if(u.value!==null&&t.setAttribute("value",u.value),d==="print")break;t.addEventListener("input",p=>{l.setValue(i,{value:p.target.value})})}break;case"select":if(u.value!==null){t.setAttribute("value",u.value);for(const p of s.children)p.attributes.value===u.value?p.attributes.selected=!0:p.attributes.hasOwnProperty("selected")&&delete p.attributes.selected}t.addEventListener("input",p=>{const g=p.target.options,_=g.selectedIndex===-1?"":g[g.selectedIndex].value;l.setValue(i,{value:_})});break}}static setAttributes({html:t,element:i,storage:s=null,intent:l,linkService:d}){const{attributes:u}=i,p=t instanceof HTMLAnchorElement;u.type==="radio"&&(u.name=`${u.name}-${l}`);for(const[g,_]of Object.entries(u))if(_!=null)switch(g){case"class":_.length&&t.setAttribute(g,_.join(" "));break;case"dataId":break;case"id":t.setAttribute("data-element-id",_);break;case"style":Object.assign(t.style,_);break;case"textContent":t.textContent=_;break;default:(!p||g!=="href"&&g!=="newWindow")&&t.setAttribute(g,_)}p&&d.addLinkAttributes(t,u.href,u.newWindow),s&&u.dataId&&this.setupStorage(t,u.dataId,i,s)}static render(t){var E,b;const i=t.annotationStorage,s=t.linkService,l=t.xfaHtml,d=t.intent||"display",u=document.createElement(l.name);l.attributes&&this.setAttributes({html:u,element:l,intent:d,linkService:s});const p=d!=="richText",g=t.div;if(g.append(u),t.viewport){const A=`matrix(${t.viewport.transform.join(",")})`;g.style.transform=A}p&&g.setAttribute("class","xfaLayer xfaFont");const _=[];if(l.children.length===0){if(l.value){const A=document.createTextNode(l.value);u.append(A),p&&nN.shouldBuildText(l.name)&&_.push(A)}return{textDivs:_}}const y=[[l,-1,u]];for(;y.length>0;){const[A,N,O]=y.at(-1);if(N+1===A.children.length){y.pop();continue}const D=A.children[++y.at(-1)[1]];if(D===null)continue;const{name:P}=D;if(P==="#text"){const M=document.createTextNode(D.value);_.push(M),O.append(M);continue}const j=(E=D==null?void 0:D.attributes)!=null&&E.xmlns?document.createElementNS(D.attributes.xmlns,P):document.createElement(P);if(O.append(j),D.attributes&&this.setAttributes({html:j,element:D,storage:i,intent:d,linkService:s}),((b=D.children)==null?void 0:b.length)>0)y.push([D,-1,j]);else if(D.value){const M=document.createTextNode(D.value);p&&nN.shouldBuildText(P)&&_.push(M),j.append(M)}}for(const A of g.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))A.setAttribute("readOnly",!0);return{textDivs:_}}static update(t){const i=`matrix(${t.viewport.transform.join(",")})`;t.div.style.transform=i,t.div.hidden=!1}}const VZe=9,PE=new WeakSet,zZe=new Date().getTimezoneOffset()*60*1e3;class kfe{static create(t){switch(t.data.annotationType){case Ta.LINK:return new hZ(t);case Ta.TEXT:return new HZe(t);case Ta.WIDGET:switch(t.data.fieldType){case"Tx":return new GZe(t);case"Btn":return t.data.radioButton?new NEe(t):t.data.checkBox?new $Ze(t):new KZe(t);case"Ch":return new qZe(t);case"Sig":return new WZe(t)}return new QE(t);case Ta.POPUP:return new iX(t);case Ta.FREETEXT:return new kEe(t);case Ta.LINE:return new XZe(t);case Ta.SQUARE:return new JZe(t);case Ta.CIRCLE:return new QZe(t);case Ta.POLYLINE:return new MEe(t);case Ta.CARET:return new eet(t);case Ta.INK:return new fZ(t);case Ta.POLYGON:return new ZZe(t);case Ta.HIGHLIGHT:return new jEe(t);case Ta.UNDERLINE:return new tet(t);case Ta.SQUIGGLY:return new net(t);case Ta.STRIKEOUT:return new iet(t);case Ta.STAMP:return new UEe(t);case Ta.FILEATTACHMENT:return new ret(t);default:return new ma(t)}}}var D2,LT,ag,U5,nX;const JZ=class JZ{constructor(t,{isRenderable:i=!1,ignoreBorder:s=!1,createQuadrilaterals:l=!1}={}){ee(this,U5);ee(this,D2,null);ee(this,LT,!1);ee(this,ag,null);this.isRenderable=i,this.data=t.data,this.layer=t.layer,this.linkService=t.linkService,this.downloadManager=t.downloadManager,this.imageResourcesPath=t.imageResourcesPath,this.renderForms=t.renderForms,this.svgFactory=t.svgFactory,this.annotationStorage=t.annotationStorage,this.enableScripting=t.enableScripting,this.hasJSActions=t.hasJSActions,this._fieldObjects=t.fieldObjects,this.parent=t.parent,i&&(this.container=this._createContainer(s)),l&&this._createQuadrilaterals()}static _hasPopupData({contentsObj:t,richText:i}){return!!(t!=null&&t.str||i!=null&&i.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return JZ._hasPopupData(this.data)}updateEdited(t){var d;if(!this.container)return;t.rect&&(T(this,D2)||re(this,D2,{rect:this.data.rect.slice(0)}));const{rect:i,popup:s}=t;i&&pe(this,U5,nX).call(this,i);let l=((d=T(this,ag))==null?void 0:d.popup)||this.popup;!l&&(s!=null&&s.text)&&(this._createPopup(s),l=T(this,ag).popup),l&&(l.updateEdited(t),s!=null&&s.deleted&&(l.remove(),re(this,ag,null),this.popup=null))}resetEdited(){var t;T(this,D2)&&(pe(this,U5,nX).call(this,T(this,D2).rect),(t=T(this,ag))==null||t.popup.resetEdited(),re(this,D2,null))}_createContainer(t){const{data:i,parent:{page:s,viewport:l}}=this,d=document.createElement("section");d.setAttribute("data-annotation-id",i.id),!(this instanceof QE)&&!(this instanceof hZ)&&(d.tabIndex=0);const{style:u}=d;if(u.zIndex=this.parent.zIndex++,i.alternativeText&&(d.title=i.alternativeText),i.noRotate&&d.classList.add("norotate"),!i.rect||this instanceof iX){const{rotation:O}=i;return!i.hasOwnCanvas&&O!==0&&this.setRotation(O,d),d}const{width:p,height:g}=this;if(!t&&i.borderStyle.width>0){u.borderWidth=`${i.borderStyle.width}px`;const O=i.borderStyle.horizontalCornerRadius,D=i.borderStyle.verticalCornerRadius;if(O>0||D>0){const j=`calc(${O}px * var(--total-scale-factor)) / calc(${D}px * var(--total-scale-factor))`;u.borderRadius=j}else if(this instanceof NEe){const j=`calc(${p}px * var(--total-scale-factor)) / calc(${g}px * var(--total-scale-factor))`;u.borderRadius=j}switch(i.borderStyle.style){case Hb.SOLID:u.borderStyle="solid";break;case Hb.DASHED:u.borderStyle="dashed";break;case Hb.BEVELED:Ei("Unimplemented border style: beveled");break;case Hb.INSET:Ei("Unimplemented border style: inset");break;case Hb.UNDERLINE:u.borderBottomStyle="solid";break}const P=i.borderColor||null;P?(re(this,LT,!0),u.borderColor=zn.makeHexColor(P[0]|0,P[1]|0,P[2]|0)):u.borderWidth=0}const _=zn.normalizeRect([i.rect[0],s.view[3]-i.rect[1]+s.view[1],i.rect[2],s.view[3]-i.rect[3]+s.view[1]]),{pageWidth:y,pageHeight:E,pageX:b,pageY:A}=l.rawDims;u.left=`${100*(_[0]-b)/y}%`,u.top=`${100*(_[1]-A)/E}%`;const{rotation:N}=i;return i.hasOwnCanvas||N===0?(u.width=`${100*p/y}%`,u.height=`${100*g/E}%`):this.setRotation(N,d),d}setRotation(t,i=this.container){if(!this.data.rect)return;const{pageWidth:s,pageHeight:l}=this.parent.viewport.rawDims;let{width:d,height:u}=this;t%180!==0&&([d,u]=[u,d]),i.style.width=`${100*d/s}%`,i.style.height=`${100*u/l}%`,i.setAttribute("data-main-rotation",(360-t)%360)}get _commonActions(){const t=(i,s,l)=>{const d=l.detail[i],u=d[0],p=d.slice(1);l.target.style[s]=Dfe[`${u}_HTML`](p),this.annotationStorage.setValue(this.data.id,{[s]:Dfe[`${u}_rgb`](p)})};return Ki(this,"_commonActions",{display:i=>{const{display:s}=i.detail,l=s%2===1;this.container.style.visibility=l?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:l,noPrint:s===1||s===2})},print:i=>{this.annotationStorage.setValue(this.data.id,{noPrint:!i.detail.print})},hidden:i=>{const{hidden:s}=i.detail;this.container.style.visibility=s?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noPrint:s,noView:s})},focus:i=>{setTimeout(()=>i.target.focus({preventScroll:!1}),0)},userName:i=>{i.target.title=i.detail.userName},readonly:i=>{i.target.disabled=i.detail.readonly},required:i=>{this._setRequired(i.target,i.detail.required)},bgColor:i=>{t("bgColor","backgroundColor",i)},fillColor:i=>{t("fillColor","backgroundColor",i)},fgColor:i=>{t("fgColor","color",i)},textColor:i=>{t("textColor","color",i)},borderColor:i=>{t("borderColor","borderColor",i)},strokeColor:i=>{t("strokeColor","borderColor",i)},rotation:i=>{const s=i.detail.rotation;this.setRotation(s),this.annotationStorage.setValue(this.data.id,{rotation:s})}})}_dispatchEventFromSandbox(t,i){const s=this._commonActions;for(const l of Object.keys(i.detail)){const d=t[l]||s[l];d==null||d(i)}}_setDefaultPropertiesFromJS(t){if(!this.enableScripting)return;const i=this.annotationStorage.getRawValue(this.data.id);if(!i)return;const s=this._commonActions;for(const[l,d]of Object.entries(i)){const u=s[l];if(u){const p={detail:{[l]:d},target:t};u(p),delete i[l]}}}_createQuadrilaterals(){if(!this.container)return;const{quadPoints:t}=this.data;if(!t)return;const[i,s,l,d]=this.data.rect.map(O=>Math.fround(O));if(t.length===8){const[O,D,P,j]=t.subarray(2,6);if(l===O&&d===D&&i===P&&s===j)return}const{style:u}=this.container;let p;if(T(this,LT)){const{borderColor:O,borderWidth:D}=u;u.borderWidth=0,p=["url('data:image/svg+xml;utf8,",'',``],this.container.classList.add("hasBorder")}const g=l-i,_=d-s,{svgFactory:y}=this,E=y.createElement("svg");E.classList.add("quadrilateralsContainer"),E.setAttribute("width",0),E.setAttribute("height",0),E.role="none";const b=y.createElement("defs");E.append(b);const A=y.createElement("clipPath"),N=`clippath_${this.data.id}`;A.setAttribute("id",N),A.setAttribute("clipPathUnits","objectBoundingBox"),b.append(A);for(let O=2,D=t.length;O`)}T(this,LT)&&(p.push("')"),u.backgroundImage=p.join("")),this.container.append(E),this.container.style.clipPath=`url(#${N})`}_createPopup(t=null){const{data:i}=this;let s,l;t?(s={str:t.text},l=t.date):(s=i.contentsObj,l=i.modificationDate);const d=re(this,ag,new iX({data:{color:i.color,titleObj:i.titleObj,modificationDate:l,contentsObj:s,richText:i.richText,parentRect:i.rect,borderStyle:0,id:`popup_${i.id}`,rotation:i.rotation,noRotate:!0},linkService:this.linkService,parent:this.parent,elements:[this]}));this.parent.div.append(d.render())}get hasPopupElement(){return!!(T(this,ag)||this.popup||this.data.popupRef)}render(){Zr("Abstract method `AnnotationElement.render` called")}_getElementsByName(t,i=null){const s=[];if(this._fieldObjects){const l=this._fieldObjects[t];if(l)for(const{page:d,id:u,exportValues:p}of l){if(d===-1||u===i)continue;const g=typeof p=="string"?p:null,_=document.querySelector(`[data-element-id="${u}"]`);if(_&&!PE.has(_)){Ei(`_getElementsByName - element not allowed: ${u}`);continue}s.push({id:u,exportValue:g,domElement:_})}return s}for(const l of document.getElementsByName(t)){const{exportValue:d}=l,u=l.getAttribute("data-element-id");u!==i&&PE.has(l)&&s.push({id:u,exportValue:d,domElement:l})}return s}show(){var t;this.container&&(this.container.hidden=!1),(t=this.popup)==null||t.maybeShow()}hide(){var t;this.container&&(this.container.hidden=!0),(t=this.popup)==null||t.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){const t=this.getElementsToTriggerPopup();if(Array.isArray(t))for(const i of t)i.classList.add("highlightArea");else t.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;const{annotationEditorType:t,data:{id:i}}=this;this.container.addEventListener("dblclick",()=>{var s;(s=this.linkService.eventBus)==null||s.dispatch("switchannotationeditormode",{source:this,mode:t,editId:i,mustEnterInEditMode:!0})})}get width(){return this.data.rect[2]-this.data.rect[0]}get height(){return this.data.rect[3]-this.data.rect[1]}};D2=new WeakMap,LT=new WeakMap,ag=new WeakMap,U5=new WeakSet,nX=function(t){const{container:{style:i},data:{rect:s,rotation:l},parent:{viewport:{rawDims:{pageWidth:d,pageHeight:u,pageX:p,pageY:g}}}}=this;s==null||s.splice(0,4,...t),i.left=`${100*(t[0]-p)/d}%`,i.top=`${100*(u-t[3]+g)/u}%`,l===0?(i.width=`${100*(t[2]-t[0])/d}%`,i.height=`${100*(t[3]-t[1])/u}%`):this.setRotation(l)};let ma=JZ;var og,S_,V9,AEe,z9,IEe;class hZ extends ma{constructor(i,s=null){super(i,{isRenderable:!0,ignoreBorder:!!(s!=null&&s.ignoreBorder),createQuadrilaterals:!0});ee(this,og);ee(this,V9);ee(this,z9);this.isTooltipOnly=i.data.isTooltipOnly}render(){const{data:i,linkService:s}=this,l=document.createElement("a");l.setAttribute("data-element-id",i.id);let d=!1;return i.url?(s.addLinkAttributes(l,i.url,i.newWindow),d=!0):i.action?(this._bindNamedAction(l,i.action,i.overlaidText),d=!0):i.attachment?(pe(this,V9,AEe).call(this,l,i.attachment,i.overlaidText,i.attachmentDest),d=!0):i.setOCGState?(pe(this,z9,IEe).call(this,l,i.setOCGState,i.overlaidText),d=!0):i.dest?(this._bindLink(l,i.dest,i.overlaidText),d=!0):(i.actions&&(i.actions.Action||i.actions["Mouse Up"]||i.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(l,i),d=!0),i.resetForm?(this._bindResetFormAction(l,i.resetForm),d=!0):this.isTooltipOnly&&!d&&(this._bindLink(l,""),d=!0)),this.container.classList.add("linkAnnotation"),d&&this.container.append(l),this.container}_bindLink(i,s,l=""){i.href=this.linkService.getDestinationHash(s),i.onclick=()=>(s&&this.linkService.goToDestination(s),!1),(s||s==="")&&pe(this,og,S_).call(this),l&&(i.title=l)}_bindNamedAction(i,s,l=""){i.href=this.linkService.getAnchorUrl(""),i.onclick=()=>(this.linkService.executeNamedAction(s),!1),l&&(i.title=l),pe(this,og,S_).call(this)}_bindJSAction(i,s){i.href=this.linkService.getAnchorUrl("");const l=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const d of Object.keys(s.actions)){const u=l.get(d);u&&(i[u]=()=>{var p;return(p=this.linkService.eventBus)==null||p.dispatch("dispatcheventinsandbox",{source:this,detail:{id:s.id,name:d}}),!1})}s.overlaidText&&(i.title=s.overlaidText),i.onclick||(i.onclick=()=>!1),pe(this,og,S_).call(this)}_bindResetFormAction(i,s){const l=i.onclick;if(l||(i.href=this.linkService.getAnchorUrl("")),pe(this,og,S_).call(this),!this._fieldObjects){Ei('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),l||(i.onclick=()=>!1);return}i.onclick=()=>{var E;l==null||l();const{fields:d,refs:u,include:p}=s,g=[];if(d.length!==0||u.length!==0){const b=new Set(u);for(const A of d){const N=this._fieldObjects[A]||[];for(const{id:O}of N)b.add(O)}for(const A of Object.values(this._fieldObjects))for(const N of A)b.has(N.id)===p&&g.push(N)}else for(const b of Object.values(this._fieldObjects))g.push(...b);const _=this.annotationStorage,y=[];for(const b of g){const{id:A}=b;switch(y.push(A),b.type){case"text":{const O=b.defaultValue||"";_.setValue(A,{value:O});break}case"checkbox":case"radiobutton":{const O=b.defaultValue===b.exportValues;_.setValue(A,{value:O});break}case"combobox":case"listbox":{const O=b.defaultValue||"";_.setValue(A,{value:O});break}default:continue}const N=document.querySelector(`[data-element-id="${A}"]`);if(N){if(!PE.has(N)){Ei(`_bindResetFormAction - element not allowed: ${A}`);continue}}else continue;N.dispatchEvent(new Event("resetform"))}return this.enableScripting&&((E=this.linkService.eventBus)==null||E.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:y,name:"ResetForm"}})),!1}}}og=new WeakSet,S_=function(){this.container.setAttribute("data-internal-link","")},V9=new WeakSet,AEe=function(i,s,l="",d=null){i.href=this.linkService.getAnchorUrl(""),s.description?i.title=s.description:l&&(i.title=l),i.onclick=()=>{var u;return(u=this.downloadManager)==null||u.openOrDownloadData(s.content,s.filename,d),!1},pe(this,og,S_).call(this)},z9=new WeakSet,IEe=function(i,s,l=""){i.href=this.linkService.getAnchorUrl(""),i.onclick=()=>(this.linkService.executeSetOCGState(s),!1),l&&(i.title=l),pe(this,og,S_).call(this)};class HZe extends ma{constructor(t){super(t,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");const t=document.createElement("img");return t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",t.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),t.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.append(t),this.container}}class QE extends ma{render(){return this.container}showElementAndHideCanvas(t){var i;this.data.hasOwnCanvas&&(((i=t.previousSibling)==null?void 0:i.nodeName)==="CANVAS"&&(t.previousSibling.hidden=!0),t.hidden=!1)}_getKeyModifier(t){return qo.platform.isMac?t.metaKey:t.ctrlKey}_setEventListener(t,i,s,l,d){s.includes("mouse")?t.addEventListener(s,u=>{var p;(p=this.linkService.eventBus)==null||p.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:l,value:d(u),shift:u.shiftKey,modifier:this._getKeyModifier(u)}})}):t.addEventListener(s,u=>{var p;if(s==="blur"){if(!i.focused||!u.relatedTarget)return;i.focused=!1}else if(s==="focus"){if(i.focused)return;i.focused=!0}d&&((p=this.linkService.eventBus)==null||p.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:l,value:d(u)}}))})}_setEventListeners(t,i,s,l){var d,u,p;for(const[g,_]of s)(_==="Action"||(d=this.data.actions)!=null&&d[_])&&((_==="Focus"||_==="Blur")&&(i||(i={focused:!1})),this._setEventListener(t,i,g,_,l),_==="Focus"&&!((u=this.data.actions)!=null&&u.Blur)?this._setEventListener(t,i,"blur","Blur",null):_==="Blur"&&!((p=this.data.actions)!=null&&p.Focus)&&this._setEventListener(t,i,"focus","Focus",null))}_setBackgroundColor(t){const i=this.data.backgroundColor||null;t.style.backgroundColor=i===null?"transparent":zn.makeHexColor(i[0],i[1],i[2])}_setTextStyle(t){const i=["left","center","right"],{fontColor:s}=this.data.defaultAppearanceData,l=this.data.defaultAppearanceData.fontSize||VZe,d=t.style;let u;const p=2,g=_=>Math.round(10*_)/10;if(this.data.multiLine){const _=Math.abs(this.data.rect[3]-this.data.rect[1]-p),y=Math.round(_/(nK*l))||1,E=_/y;u=Math.min(l,g(E/nK))}else{const _=Math.abs(this.data.rect[3]-this.data.rect[1]-p);u=Math.min(l,g(_/nK))}d.fontSize=`calc(${u}px * var(--total-scale-factor))`,d.color=zn.makeHexColor(s[0],s[1],s[2]),this.data.textAlignment!==null&&(d.textAlign=i[this.data.textAlignment])}_setRequired(t,i){i?t.setAttribute("required",!0):t.removeAttribute("required"),t.setAttribute("aria-required",i)}}class GZe extends QE{constructor(t){const i=t.renderForms||t.data.hasOwnCanvas||!t.data.hasAppearance&&!!t.data.fieldValue;super(t,{isRenderable:i})}setPropertyOnSiblings(t,i,s,l){const d=this.annotationStorage;for(const u of this._getElementsByName(t.name,t.id))u.domElement&&(u.domElement[i]=s),d.setValue(u.id,{[l]:s})}render(){var l,d;const t=this.annotationStorage,i=this.data.id;this.container.classList.add("textWidgetAnnotation");let s=null;if(this.renderForms){const u=t.getValue(i,{value:this.data.fieldValue});let p=u.value||"";const g=t.getValue(i,{charLimit:this.data.maxLen}).charLimit;g&&p.length>g&&(p=p.slice(0,g));let _=u.formattedValue||((l=this.data.textContent)==null?void 0:l.join(` +`))||null;_&&this.data.comb&&(_=_.replaceAll(/\s+/g,""));const y={userValue:p,formattedValue:_,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?(s=document.createElement("textarea"),s.textContent=_??p,this.data.doNotScroll&&(s.style.overflowY="hidden")):(s=document.createElement("input"),s.type=this.data.password?"password":"text",s.setAttribute("value",_??p),this.data.doNotScroll&&(s.style.overflowX="hidden")),this.data.hasOwnCanvas&&(s.hidden=!0),PE.add(s),s.setAttribute("data-element-id",i),s.disabled=this.data.readOnly,s.name=this.data.fieldName,s.tabIndex=0;const{datetimeFormat:E,datetimeType:b,timeStep:A}=this.data,N=!!b&&this.enableScripting;E&&(s.title=E),this._setRequired(s,this.data.required),g&&(s.maxLength=g),s.addEventListener("input",D=>{t.setValue(i,{value:D.target.value}),this.setPropertyOnSiblings(s,"value",D.target.value,"value"),y.formattedValue=null}),s.addEventListener("resetform",D=>{const P=this.data.defaultFieldValue??"";s.value=y.userValue=P,y.formattedValue=null});let O=D=>{const{formattedValue:P}=y;P!=null&&(D.target.value=P),D.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){s.addEventListener("focus",P=>{var M;if(y.focused)return;const{target:j}=P;if(N&&(j.type=b,A&&(j.step=A)),y.userValue){const V=y.userValue;if(N)if(b==="time"){const H=new Date(V),$=[H.getHours(),H.getMinutes(),H.getSeconds()];j.value=$.map(Q=>Q.toString().padStart(2,"0")).join(":")}else j.value=new Date(V-zZe).toISOString().split(b==="date"?"T":".",1)[0];else j.value=V}y.lastCommittedValue=j.value,y.commitKey=1,(M=this.data.actions)!=null&&M.Focus||(y.focused=!0)}),s.addEventListener("updatefromsandbox",P=>{this.showElementAndHideCanvas(P.target);const j={value(M){y.userValue=M.detail.value??"",N||t.setValue(i,{value:y.userValue.toString()}),M.target.value=y.userValue},formattedValue(M){const{formattedValue:V}=M.detail;y.formattedValue=V,V!=null&&M.target!==document.activeElement&&(M.target.value=V);const H={formattedValue:V};N&&(H.value=V),t.setValue(i,H)},selRange(M){M.target.setSelectionRange(...M.detail.selRange)},charLimit:M=>{var Q;const{charLimit:V}=M.detail,{target:H}=M;if(V===0){H.removeAttribute("maxLength");return}H.setAttribute("maxLength",V);let $=y.userValue;!$||$.length<=V||($=$.slice(0,V),H.value=y.userValue=$,t.setValue(i,{value:$}),(Q=this.linkService.eventBus)==null||Q.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:$,willCommit:!0,commitKey:1,selStart:H.selectionStart,selEnd:H.selectionEnd}}))}};this._dispatchEventFromSandbox(j,P)}),s.addEventListener("keydown",P=>{var V;y.commitKey=1;let j=-1;if(P.key==="Escape"?j=0:P.key==="Enter"&&!this.data.multiLine?j=2:P.key==="Tab"&&(y.commitKey=3),j===-1)return;const{value:M}=P.target;y.lastCommittedValue!==M&&(y.lastCommittedValue=M,y.userValue=M,(V=this.linkService.eventBus)==null||V.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:M,willCommit:!0,commitKey:j,selStart:P.target.selectionStart,selEnd:P.target.selectionEnd}}))});const D=O;O=null,s.addEventListener("blur",P=>{var V,H;if(!y.focused||!P.relatedTarget)return;(V=this.data.actions)!=null&&V.Blur||(y.focused=!1);const{target:j}=P;let{value:M}=j;if(N){if(M&&b==="time"){const $=M.split(":").map(Q=>parseInt(Q,10));M=new Date(2e3,0,1,$[0],$[1],$[2]||0).valueOf(),j.step=""}else M=new Date(M).valueOf();j.type="text"}y.userValue=M,y.lastCommittedValue!==M&&((H=this.linkService.eventBus)==null||H.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:M,willCommit:!0,commitKey:y.commitKey,selStart:P.target.selectionStart,selEnd:P.target.selectionEnd}})),D(P)}),(d=this.data.actions)!=null&&d.Keystroke&&s.addEventListener("beforeinput",P=>{var le;y.lastCommittedValue=null;const{data:j,target:M}=P,{value:V,selectionStart:H,selectionEnd:$}=M;let Q=H,Y=$;switch(P.inputType){case"deleteWordBackward":{const ae=V.substring(0,H).match(/\w*[^\w]*$/);ae&&(Q-=ae[0].length);break}case"deleteWordForward":{const ae=V.substring(H).match(/^[^\w]*\w*/);ae&&(Y+=ae[0].length);break}case"deleteContentBackward":H===$&&(Q-=1);break;case"deleteContentForward":H===$&&(Y+=1);break}P.preventDefault(),(le=this.linkService.eventBus)==null||le.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:V,change:j||"",willCommit:!1,selStart:Q,selEnd:Y}})}),this._setEventListeners(s,y,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],P=>P.target.value)}if(O&&s.addEventListener("blur",O),this.data.comb){const P=(this.data.rect[2]-this.data.rect[0])/g;s.classList.add("comb"),s.style.letterSpacing=`calc(${P}px * var(--total-scale-factor) - 1ch)`}}else s=document.createElement("div"),s.textContent=this.data.fieldValue,s.style.verticalAlign="middle",s.style.display="table-cell",this.data.hasOwnCanvas&&(s.hidden=!0);return this._setTextStyle(s),this._setBackgroundColor(s),this._setDefaultPropertiesFromJS(s),this.container.append(s),this.container}}class WZe extends QE{constructor(t){super(t,{isRenderable:!!t.data.hasOwnCanvas})}}class $Ze extends QE{constructor(t){super(t,{isRenderable:t.renderForms})}render(){const t=this.annotationStorage,i=this.data,s=i.id;let l=t.getValue(s,{value:i.exportValue===i.fieldValue}).value;typeof l=="string"&&(l=l!=="Off",t.setValue(s,{value:l})),this.container.classList.add("buttonWidgetAnnotation","checkBox");const d=document.createElement("input");return PE.add(d),d.setAttribute("data-element-id",s),d.disabled=i.readOnly,this._setRequired(d,this.data.required),d.type="checkbox",d.name=i.fieldName,l&&d.setAttribute("checked",!0),d.setAttribute("exportValue",i.exportValue),d.tabIndex=0,d.addEventListener("change",u=>{const{name:p,checked:g}=u.target;for(const _ of this._getElementsByName(p,s)){const y=g&&_.exportValue===i.exportValue;_.domElement&&(_.domElement.checked=y),t.setValue(_.id,{value:y})}t.setValue(s,{value:g})}),d.addEventListener("resetform",u=>{const p=i.defaultFieldValue||"Off";u.target.checked=p===i.exportValue}),this.enableScripting&&this.hasJSActions&&(d.addEventListener("updatefromsandbox",u=>{const p={value(g){g.target.checked=g.detail.value!=="Off",t.setValue(s,{value:g.target.checked})}};this._dispatchEventFromSandbox(p,u)}),this._setEventListeners(d,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],u=>u.target.checked)),this._setBackgroundColor(d),this._setDefaultPropertiesFromJS(d),this.container.append(d),this.container}}class NEe extends QE{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");const t=this.annotationStorage,i=this.data,s=i.id;let l=t.getValue(s,{value:i.fieldValue===i.buttonValue}).value;if(typeof l=="string"&&(l=l!==i.buttonValue,t.setValue(s,{value:l})),l)for(const u of this._getElementsByName(i.fieldName,s))t.setValue(u.id,{value:!1});const d=document.createElement("input");if(PE.add(d),d.setAttribute("data-element-id",s),d.disabled=i.readOnly,this._setRequired(d,this.data.required),d.type="radio",d.name=i.fieldName,l&&d.setAttribute("checked",!0),d.tabIndex=0,d.addEventListener("change",u=>{const{name:p,checked:g}=u.target;for(const _ of this._getElementsByName(p,s))t.setValue(_.id,{value:!1});t.setValue(s,{value:g})}),d.addEventListener("resetform",u=>{const p=i.defaultFieldValue;u.target.checked=p!=null&&p===i.buttonValue}),this.enableScripting&&this.hasJSActions){const u=i.buttonValue;d.addEventListener("updatefromsandbox",p=>{const g={value:_=>{const y=u===_.detail.value;for(const E of this._getElementsByName(_.target.name)){const b=y&&E.id===s;E.domElement&&(E.domElement.checked=b),t.setValue(E.id,{value:b})}}};this._dispatchEventFromSandbox(g,p)}),this._setEventListeners(d,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],p=>p.target.checked)}return this._setBackgroundColor(d),this._setDefaultPropertiesFromJS(d),this.container.append(d),this.container}}class KZe extends hZ{constructor(t){super(t,{ignoreBorder:t.data.hasAppearance})}render(){const t=super.render();t.classList.add("buttonWidgetAnnotation","pushButton");const i=t.lastChild;return this.enableScripting&&this.hasJSActions&&i&&(this._setDefaultPropertiesFromJS(i),i.addEventListener("updatefromsandbox",s=>{this._dispatchEventFromSandbox({},s)})),t}}class qZe extends QE{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");const t=this.annotationStorage,i=this.data.id,s=t.getValue(i,{value:this.data.fieldValue}),l=document.createElement("select");PE.add(l),l.setAttribute("data-element-id",i),l.disabled=this.data.readOnly,this._setRequired(l,this.data.required),l.name=this.data.fieldName,l.tabIndex=0;let d=this.data.combo&&this.data.options.length>0;this.data.combo||(l.size=this.data.options.length,this.data.multiSelect&&(l.multiple=!0)),l.addEventListener("resetform",y=>{const E=this.data.defaultFieldValue;for(const b of l.options)b.selected=b.value===E});for(const y of this.data.options){const E=document.createElement("option");E.textContent=y.displayValue,E.value=y.exportValue,s.value.includes(y.exportValue)&&(E.setAttribute("selected",!0),d=!1),l.append(E)}let u=null;if(d){const y=document.createElement("option");y.value=" ",y.setAttribute("hidden",!0),y.setAttribute("selected",!0),l.prepend(y),u=()=>{y.remove(),l.removeEventListener("input",u),u=null},l.addEventListener("input",u)}const p=y=>{const E=y?"value":"textContent",{options:b,multiple:A}=l;return A?Array.prototype.filter.call(b,N=>N.selected).map(N=>N[E]):b.selectedIndex===-1?null:b[b.selectedIndex][E]};let g=p(!1);const _=y=>{const E=y.target.options;return Array.prototype.map.call(E,b=>({displayValue:b.textContent,exportValue:b.value}))};return this.enableScripting&&this.hasJSActions?(l.addEventListener("updatefromsandbox",y=>{const E={value(b){u==null||u();const A=b.detail.value,N=new Set(Array.isArray(A)?A:[A]);for(const O of l.options)O.selected=N.has(O.value);t.setValue(i,{value:p(!0)}),g=p(!1)},multipleSelection(b){l.multiple=!0},remove(b){const A=l.options,N=b.detail.remove;A[N].selected=!1,l.remove(N),A.length>0&&Array.prototype.findIndex.call(A,D=>D.selected)===-1&&(A[0].selected=!0),t.setValue(i,{value:p(!0),items:_(b)}),g=p(!1)},clear(b){for(;l.length!==0;)l.remove(0);t.setValue(i,{value:null,items:[]}),g=p(!1)},insert(b){const{index:A,displayValue:N,exportValue:O}=b.detail.insert,D=l.children[A],P=document.createElement("option");P.textContent=N,P.value=O,D?D.before(P):l.append(P),t.setValue(i,{value:p(!0),items:_(b)}),g=p(!1)},items(b){const{items:A}=b.detail;for(;l.length!==0;)l.remove(0);for(const N of A){const{displayValue:O,exportValue:D}=N,P=document.createElement("option");P.textContent=O,P.value=D,l.append(P)}l.options.length>0&&(l.options[0].selected=!0),t.setValue(i,{value:p(!0),items:_(b)}),g=p(!1)},indices(b){const A=new Set(b.detail.indices);for(const N of b.target.options)N.selected=A.has(N.index);t.setValue(i,{value:p(!0)}),g=p(!1)},editable(b){b.target.disabled=!b.detail.editable}};this._dispatchEventFromSandbox(E,y)}),l.addEventListener("input",y=>{var A;const E=p(!0),b=p(!1);t.setValue(i,{value:E}),y.preventDefault(),(A=this.linkService.eventBus)==null||A.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:g,change:b,changeEx:E,willCommit:!1,commitKey:1,keyDown:!1}})}),this._setEventListeners(l,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],y=>y.target.value)):l.addEventListener("input",function(y){t.setValue(i,{value:p(!0)})}),this.data.combo&&this._setTextStyle(l),this._setBackgroundColor(l),this._setDefaultPropertiesFromJS(l),this.container.append(l),this.container}}class iX extends ma{constructor(t){const{data:i,elements:s}=t;super(t,{isRenderable:ma._hasPopupData(i)}),this.elements=s,this.popup=null}render(){const{container:t}=this;t.classList.add("popupAnnotation"),t.role="comment";const i=this.popup=new YZe({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate||this.data.creationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open}),s=[];for(const l of this.elements)l.popup=i,l.container.ariaHasPopup="dialog",s.push(l.data.id),l.addHighlightArea();return this.container.setAttribute("aria-controls",s.map(l=>`${aZ}${l}`).join(",")),this.container}}var DT,H9,G9,kT,MT,Qs,lg,$1,jT,F5,UT,Sp,Id,K1,cg,B5,dg,FT,k2,q1,BT,vM,VT,yM,V5,rX,W9,OEe,$9,PEe,K9,LEe,q9,DEe,zT,_M,HT,EM,z5,sX;class YZe{constructor({container:t,color:i,elements:s,titleObj:l,modificationDate:d,contentsObj:u,richText:p,parent:g,rect:_,parentRect:y,open:E}){ee(this,BT);ee(this,VT);ee(this,V5);ee(this,W9);ee(this,$9);ee(this,K9);ee(this,q9);ee(this,zT);ee(this,HT);ee(this,z5);ee(this,DT,pe(this,K9,LEe).bind(this));ee(this,H9,pe(this,z5,sX).bind(this));ee(this,G9,pe(this,HT,EM).bind(this));ee(this,kT,pe(this,zT,_M).bind(this));ee(this,MT,null);ee(this,Qs,null);ee(this,lg,null);ee(this,$1,null);ee(this,jT,null);ee(this,F5,null);ee(this,UT,null);ee(this,Sp,!1);ee(this,Id,null);ee(this,K1,null);ee(this,cg,null);ee(this,B5,null);ee(this,dg,null);ee(this,FT,null);ee(this,k2,null);ee(this,q1,!1);re(this,Qs,t),re(this,FT,l),re(this,lg,u),re(this,dg,p),re(this,F5,g),re(this,MT,i),re(this,B5,_),re(this,UT,y),re(this,jT,s),re(this,$1,O7.toDateObject(d)),this.trigger=s.flatMap(b=>b.getElementsToTriggerPopup()),pe(this,BT,vM).call(this),T(this,Qs).hidden=!0,E&&pe(this,zT,_M).call(this)}render(){var l;if(T(this,Id))return;const t=re(this,Id,document.createElement("div"));if(t.className="popup",T(this,MT)){const d=t.style.outlineColor=zn.makeHexColor(...T(this,MT));t.style.backgroundColor=`color-mix(in srgb, ${d} 30%, white)`}const i=document.createElement("span");if(i.className="header",(l=T(this,FT))!=null&&l.str){const d=document.createElement("span");d.className="title",i.append(d),{dir:d.dir,str:d.textContent}=T(this,FT)}if(t.append(i),T(this,$1)){const d=document.createElement("time");d.className="popupDate",d.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),d.setAttribute("data-l10n-args",JSON.stringify({dateObj:T(this,$1).valueOf()})),d.dateTime=T(this,$1).toISOString(),i.append(d)}const s=T(this,VT,yM);if(s)xEe.render({xfaHtml:s,intent:"richText",div:t}),t.lastChild.classList.add("richText","popupContent");else{const d=this._formatContents(T(this,lg));t.append(d)}T(this,Qs).append(t)}_formatContents({str:t,dir:i}){const s=document.createElement("p");s.classList.add("popupContent"),s.dir=i;const l=t.split(/(?:\r\n?|\n)/);for(let d=0,u=l.length;d=0&&u.setAttribute("stroke-width",s||1),l)for(let p=0,g=T(this,M2).length;p{u.key==="Enter"&&(d?u.metaKey:u.ctrlKey)&&pe(this,X5,oX).call(this)}),!s.popupRef&&this.hasPopupData?this._createPopup():l.classList.add("popupTriggerArea"),i.append(l),i}getElementsToTriggerPopup(){return T(this,Y5)}addHighlightArea(){this.container.classList.add("highlightArea")}}Y5=new WeakMap,X5=new WeakSet,oX=function(){var i;(i=this.downloadManager)==null||i.openOrDownloadData(this.content,this.filename)};var J5,j2,Y1,Q5,Z5,cX,eO,dX;const QZ=class QZ{constructor({div:t,accessibilityManager:i,annotationCanvasMap:s,annotationEditorUIManager:l,page:d,viewport:u,structTreeLayer:p}){ee(this,Z5);ee(this,eO);ee(this,J5,null);ee(this,j2,null);ee(this,Y1,new Map);ee(this,Q5,null);this.div=t,re(this,J5,i),re(this,j2,s),re(this,Q5,p||null),this.page=d,this.viewport=u,this.zIndex=0,this._annotationEditorUIManager=l}hasEditableAnnotations(){return T(this,Y1).size>0}async render(t){var u;const{annotations:i}=t,s=this.div;NE(s,this.viewport);const l=new Map,d={data:null,layer:s,linkService:t.linkService,downloadManager:t.downloadManager,imageResourcesPath:t.imageResourcesPath||"",renderForms:t.renderForms!==!1,svgFactory:new M7,annotationStorage:t.annotationStorage||new cZ,enableScripting:t.enableScripting===!0,hasJSActions:t.hasJSActions,fieldObjects:t.fieldObjects,parent:this,elements:null};for(const p of i){if(p.noHTML)continue;const g=p.annotationType===Ta.POPUP;if(g){const E=l.get(p.id);if(!E)continue;d.elements=E}else if(p.rect[2]===p.rect[0]||p.rect[3]===p.rect[1])continue;d.data=p;const _=kfe.create(d);if(!_.isRenderable)continue;if(!g&&p.popupRef){const E=l.get(p.popupRef);E?E.push(_):l.set(p.popupRef,[_])}const y=_.render();p.hidden&&(y.style.visibility="hidden"),await pe(this,Z5,cX).call(this,y,p.id,d.elements),_._isEditable&&(T(this,Y1).set(_.data.id,_),(u=this._annotationEditorUIManager)==null||u.renderAnnotationElement(_))}pe(this,eO,dX).call(this)}async addLinkAnnotations(t,i){const s={data:null,layer:this.div,linkService:i,svgFactory:new M7,parent:this};for(const l of t){l.borderStyle||(l.borderStyle=QZ._defaultBorderStyle),s.data=l;const d=kfe.create(s);if(!d.isRenderable)continue;const u=d.render();await pe(this,Z5,cX).call(this,u,l.id,null)}}update({viewport:t}){const i=this.div;this.viewport=t,NE(i,{rotation:t.rotation}),pe(this,eO,dX).call(this),i.hidden=!1}getEditableAnnotations(){return Array.from(T(this,Y1).values())}getEditableAnnotation(t){return T(this,Y1).get(t)}static get _defaultBorderStyle(){return Ki(this,"_defaultBorderStyle",Object.freeze({width:1,rawWidth:1,style:Hb.SOLID,dashArray:[3],horizontalCornerRadius:0,verticalCornerRadius:0}))}};J5=new WeakMap,j2=new WeakMap,Y1=new WeakMap,Q5=new WeakMap,Z5=new WeakSet,cX=async function(t,i,s){var p,g;const l=t.firstChild||t,d=l.id=`${aZ}${i}`,u=await((p=T(this,Q5))==null?void 0:p.getAriaAttributes(d));if(u)for(const[_,y]of u)l.setAttribute(_,y);s?s.at(-1).container.after(t):(this.div.append(t),(g=T(this,J5))==null||g.moveElementInDOM(this.div,t,l,!1))},eO=new WeakSet,dX=function(){var i;if(!T(this,j2))return;const t=this.div;for(const[s,l]of T(this,j2)){const d=t.querySelector(`[data-annotation-id="${s}"]`);if(!d)continue;l.className="annotationContent";const{firstChild:u}=d;u?u.nodeName==="CANVAS"?u.replaceWith(l):u.classList.contains("annotationContent")?u.after(l):u.before(l):d.append(l);const p=T(this,Y1).get(s);p&&(p._hasNoCanvas?((i=this._annotationEditorUIManager)==null||i.setMissingCanvas(s,d.id,l),p._hasNoCanvas=!1):p.canvas=l)}T(this,j2).clear()};let lX=QZ;const Ok=/\r\n?|\n/g;var Gu,Nd,tO,U2,Od,Y9,FEe,X9,BEe,J9,VEe,GT,wM,WT,SM,$T,bM,Q9,zEe,nO,hX,Z9,HEe;const rs=class rs extends ds{constructor(i){super({...i,name:"freeTextEditor"});ee(this,Y9);ee(this,X9);ee(this,J9);ee(this,GT);ee(this,$T);ee(this,Q9);ee(this,Z9);ee(this,Gu,void 0);ee(this,Nd,"");ee(this,tO,`${this.id}-editor`);ee(this,U2,null);ee(this,Od,void 0);sn(this,"_colorPicker",null);re(this,Gu,i.color||rs._defaultColor||ds._defaultLineColor),re(this,Od,i.fontSize||rs._defaultFontSize),this.annotationElementId||this._uiManager.a11yAlert("pdfjs-editor-freetext-added-alert")}static get _keyboardManager(){const i=rs.prototype,s=u=>u.isEmpty(),l=OE.TRANSLATE_SMALL,d=OE.TRANSLATE_BIG;return Ki(this,"_keyboardManager",new iP([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],i.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],i.commitOrRemove],[["ArrowLeft","mac+ArrowLeft"],i._translateEmpty,{args:[-l,0],checker:s}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],i._translateEmpty,{args:[-d,0],checker:s}],[["ArrowRight","mac+ArrowRight"],i._translateEmpty,{args:[l,0],checker:s}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],i._translateEmpty,{args:[d,0],checker:s}],[["ArrowUp","mac+ArrowUp"],i._translateEmpty,{args:[0,-l],checker:s}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],i._translateEmpty,{args:[0,-d],checker:s}],[["ArrowDown","mac+ArrowDown"],i._translateEmpty,{args:[0,l],checker:s}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],i._translateEmpty,{args:[0,d],checker:s}]]))}static initialize(i,s){ds.initialize(i,s);const l=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(l.getPropertyValue("--freetext-padding"))}static updateDefaultParams(i,s){switch(i){case cr.FREETEXT_SIZE:rs._defaultFontSize=s;break;case cr.FREETEXT_COLOR:rs._defaultColor=s;break}}updateParams(i,s){switch(i){case cr.FREETEXT_SIZE:pe(this,Y9,FEe).call(this,s);break;case cr.FREETEXT_COLOR:pe(this,X9,BEe).call(this,s);break}}static get defaultPropertiesToUpdate(){return[[cr.FREETEXT_SIZE,rs._defaultFontSize],[cr.FREETEXT_COLOR,rs._defaultColor||ds._defaultLineColor]]}get propertiesToUpdate(){return[[cr.FREETEXT_SIZE,T(this,Od)],[cr.FREETEXT_COLOR,T(this,Gu)]]}get toolbarButtons(){return this._colorPicker||(this._colorPicker=new k7(this)),[["colorPicker",this._colorPicker]]}get colorType(){return cr.FREETEXT_COLOR}get colorValue(){return T(this,Gu)}_translateEmpty(i,s){this._uiManager.translateSelectedEditors(i,s,!0)}getInitialTranslation(){const i=this.parentScale;return[-rs._internalPadding*i,-(rs._internalPadding+T(this,Od))*i]}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(this.isAttachedToDOM||this.parent.add(this)))}enableEditMode(){if(!super.enableEditMode())return!1;this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this._isDraggable=!1,this.div.removeAttribute("aria-activedescendant"),re(this,U2,new AbortController);const i=this._uiManager.combinedSignal(T(this,U2));return this.editorDiv.addEventListener("keydown",this.editorDivKeydown.bind(this),{signal:i}),this.editorDiv.addEventListener("focus",this.editorDivFocus.bind(this),{signal:i}),this.editorDiv.addEventListener("blur",this.editorDivBlur.bind(this),{signal:i}),this.editorDiv.addEventListener("input",this.editorDivInput.bind(this),{signal:i}),this.editorDiv.addEventListener("paste",this.editorDivPaste.bind(this),{signal:i}),!0}disableEditMode(){var i;return super.disableEditMode()?(this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",T(this,tO)),this._isDraggable=!0,(i=T(this,U2))==null||i.abort(),re(this,U2,null),this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freetextEditing"),!0):!1}focusin(i){this._focusEventsAllowed&&(super.focusin(i),i.target!==this.editorDiv&&this.editorDiv.focus())}onceAdded(i){var s;this.width||(this.enableEditMode(),i&&this.editorDiv.focus(),(s=this._initialOptions)!=null&&s.isCentered&&this.center(),this._initialOptions=null)}isEmpty(){return!this.editorDiv||this.editorDiv.innerText.trim()===""}remove(){this.isEditing=!1,this.parent&&(this.parent.setEditingState(!0),this.parent.div.classList.add("freetextEditing")),super.remove()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();const i=T(this,Nd),s=re(this,Nd,pe(this,J9,VEe).call(this).trimEnd());if(i===s)return;const l=d=>{if(re(this,Nd,d),!d){this.remove();return}pe(this,$T,bM).call(this),this._uiManager.rebuild(this),pe(this,GT,wM).call(this)};this.addCommands({cmd:()=>{l(s)},undo:()=>{l(i)},mustExec:!1}),pe(this,GT,wM).call(this)}shouldGetKeyboardEvents(){return this.isInEditMode()}enterInEditMode(){this.enableEditMode(),this.editorDiv.focus()}keydown(i){i.target===this.div&&i.key==="Enter"&&(this.enterInEditMode(),i.preventDefault())}editorDivKeydown(i){rs._keyboardManager.exec(this,i)}editorDivFocus(i){this.isEditing=!0}editorDivBlur(i){this.isEditing=!1}editorDivInput(i){this.parent.div.classList.toggle("freetextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}get canChangeContent(){return!0}render(){if(this.div)return this.div;let i,s;(this._isCopy||this.annotationElementId)&&(i=this.x,s=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",T(this,tO)),this.editorDiv.setAttribute("data-l10n-id","pdfjs-free-text2"),this.editorDiv.setAttribute("data-l10n-attrs","default-content"),this.enableEditing(),this.editorDiv.contentEditable=!0;const{style:l}=this.editorDiv;if(l.fontSize=`calc(${T(this,Od)}px * var(--total-scale-factor))`,l.color=T(this,Gu),this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),this._isCopy||this.annotationElementId){const[d,u]=this.parentDimensions;if(this.annotationElementId){const{position:p}=this._initialData;let[g,_]=this.getInitialTranslation();[g,_]=this.pageTranslationToScreen(g,_);const[y,E]=this.pageDimensions,[b,A]=this.pageTranslation;let N,O;switch(this.rotation){case 0:N=i+(p[0]-b)/y,O=s+this.height-(p[1]-A)/E;break;case 90:N=i+(p[0]-b)/y,O=s-(p[1]-A)/E,[g,_]=[_,-g];break;case 180:N=i-this.width+(p[0]-b)/y,O=s-(p[1]-A)/E,[g,_]=[-g,-_];break;case 270:N=i+(p[0]-b-this.height*E)/y,O=s+(p[1]-A-this.width*y)/E,[g,_]=[-_,g];break}this.setAt(N*d,O*u,g,_)}else this._moveAfterPaste(i,s);pe(this,$T,bM).call(this),this._isDraggable=!0,this.editorDiv.contentEditable=!1}else this._isDraggable=!1,this.editorDiv.contentEditable=!0;return this.div}editorDivPaste(i){var N,O,D;const s=i.clipboardData||window.clipboardData,{types:l}=s;if(l.length===1&&l[0]==="text/plain")return;i.preventDefault();const d=pe(N=rs,nO,hX).call(N,s.getData("text")||"").replaceAll(Ok,` +`);if(!d)return;const u=window.getSelection();if(!u.rangeCount)return;this.editorDiv.normalize(),u.deleteFromDocument();const p=u.getRangeAt(0);if(!d.includes(` +`)){p.insertNode(document.createTextNode(d)),this.editorDiv.normalize(),u.collapseToStart();return}const{startContainer:g,startOffset:_}=p,y=[],E=[];if(g.nodeType===Node.TEXT_NODE){const P=g.parentElement;if(E.push(g.nodeValue.slice(_).replaceAll(Ok,"")),P!==this.editorDiv){let j=y;for(const M of this.editorDiv.childNodes){if(M===P){j=E;continue}j.push(pe(O=rs,WT,SM).call(O,M))}}y.push(g.nodeValue.slice(0,_).replaceAll(Ok,""))}else if(g===this.editorDiv){let P=y,j=0;for(const M of this.editorDiv.childNodes)j++===_&&(P=E),P.push(pe(D=rs,WT,SM).call(D,M))}re(this,Nd,`${y.join(` +`)}${d}${E.join(` +`)}`),pe(this,$T,bM).call(this);const b=new Range;let A=Math.sumPrecise(y.map(P=>P.length));for(const{firstChild:P}of this.editorDiv.childNodes)if(P.nodeType===Node.TEXT_NODE){const j=P.nodeValue.length;if(A<=j){b.setStart(P,A),b.setEnd(P,A);break}A-=j}u.removeAllRanges(),u.addRange(b)}get contentDiv(){return this.editorDiv}static async deserialize(i,s,l){var p;let d=null;if(i instanceof kEe){const{data:{defaultAppearanceData:{fontSize:g,fontColor:_},rect:y,rotation:E,id:b,popupRef:A,contentsObj:N},textContent:O,textPosition:D,parent:{page:{pageNumber:P}}}=i;if(!O||O.length===0)return null;d=i={annotationType:_i.FREETEXT,color:Array.from(_),fontSize:g,value:O.join(` +`),position:D,pageIndex:P-1,rect:y.slice(0),rotation:E,annotationElementId:b,id:b,deleted:!1,popupRef:A,comment:(N==null?void 0:N.str)||null}}const u=await super.deserialize(i,s,l);return re(u,Od,i.fontSize),re(u,Gu,zn.makeHexColor(...i.color)),re(u,Nd,pe(p=rs,nO,hX).call(p,i.value)),u._initialData=d,i.comment&&u.setCommentData(i.comment),u}serialize(i=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const s=rs._internalPadding*this.parentScale,l=this.getRect(s,s),d=ds._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:T(this,Gu)),u={annotationType:_i.FREETEXT,color:d,fontSize:T(this,Od),value:pe(this,Q9,zEe).call(this),pageIndex:this.pageIndex,rect:l,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return this.addComment(u),i?(u.isCopy=!0,u):this.annotationElementId&&!pe(this,Z9,HEe).call(this,u)?null:(u.id=this.annotationElementId,u)}renderAnnotationElement(i){const s=super.renderAnnotationElement(i),{style:l}=s;l.fontSize=`calc(${T(this,Od)}px * var(--total-scale-factor))`,l.color=T(this,Gu),s.replaceChildren();for(const p of T(this,Nd).split(` +`)){const g=document.createElement("div");g.append(p?document.createTextNode(p):document.createElement("br")),s.append(g)}const d=rs._internalPadding*this.parentScale,u={rect:this.getRect(d,d)};return u.popup=this.hasEditedComment?this.comment:{text:T(this,Nd)},i.updateEdited(u),s}resetAnnotationElement(i){super.resetAnnotationElement(i),i.resetEdited()}};Gu=new WeakMap,Nd=new WeakMap,tO=new WeakMap,U2=new WeakMap,Od=new WeakMap,Y9=new WeakSet,FEe=function(i){const s=d=>{this.editorDiv.style.fontSize=`calc(${d}px * var(--total-scale-factor))`,this.translate(0,-(d-T(this,Od))*this.parentScale),re(this,Od,d),pe(this,GT,wM).call(this)},l=T(this,Od);this.addCommands({cmd:s.bind(this,i),undo:s.bind(this,l),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cr.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},X9=new WeakSet,BEe=function(i){const s=d=>{var u;re(this,Gu,this.editorDiv.style.color=d),(u=this._colorPicker)==null||u.update(d)},l=T(this,Gu);this.addCommands({cmd:s.bind(this,i),undo:s.bind(this,l),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cr.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},J9=new WeakSet,VEe=function(){var l;const i=[];this.editorDiv.normalize();let s=null;for(const d of this.editorDiv.childNodes)(s==null?void 0:s.nodeType)===Node.TEXT_NODE&&d.nodeName==="BR"||(i.push(pe(l=rs,WT,SM).call(l,d)),s=d);return i.join(` +`)},GT=new WeakSet,wM=function(){const[i,s]=this.parentDimensions;let l;if(this.isAttachedToDOM)l=this.div.getBoundingClientRect();else{const{currentLayer:d,div:u}=this,p=u.style.display,g=u.classList.contains("hidden");u.classList.remove("hidden"),u.style.display="hidden",d.div.append(this.div),l=u.getBoundingClientRect(),u.remove(),u.style.display=p,u.classList.toggle("hidden",g)}this.rotation%180===this.parentRotation%180?(this.width=l.width/i,this.height=l.height/s):(this.width=l.height/i,this.height=l.width/s),this.fixAndSetPosition()},WT=new WeakSet,SM=function(i){return(i.nodeType===Node.TEXT_NODE?i.nodeValue:i.innerText).replaceAll(Ok,"")},$T=new WeakSet,bM=function(){if(this.editorDiv.replaceChildren(),!!T(this,Nd))for(const i of T(this,Nd).split(` +`)){const s=document.createElement("div");s.append(i?document.createTextNode(i):document.createElement("br")),this.editorDiv.append(s)}},Q9=new WeakSet,zEe=function(){return T(this,Nd).replaceAll(" "," ")},nO=new WeakSet,hX=function(i){return i.replaceAll(" "," ")},Z9=new WeakSet,HEe=function(i){const{value:s,fontSize:l,color:d,pageIndex:u}=this._initialData;return this.hasEditedComment||this._hasBeenMoved||i.value!==s||i.fontSize!==l||i.color.some((p,g)=>p!==d[g])||i.pageIndex!==u},ee(rs,WT),ee(rs,nO),sn(rs,"_freeTextDefaultContent",""),sn(rs,"_internalPadding",0),sn(rs,"_defaultColor",null),sn(rs,"_defaultFontSize",10),sn(rs,"_type","freetext"),sn(rs,"_editorType",_i.FREETEXT);let uX=rs;class xn{toSVGPath(){Zr("Abstract method `toSVGPath` must be implemented.")}get box(){Zr("Abstract getter `box` must be implemented.")}serialize(t,i){Zr("Abstract method `serialize` must be implemented.")}static _rescale(t,i,s,l,d,u){u||(u=new Float32Array(t.length));for(let p=0,g=t.length;p=6;l-=6)isNaN(i[l])?s.push(`L${i[l+4]} ${i[l+5]}`):s.push(`C${i[l]} ${i[l+1]} ${i[l+2]} ${i[l+3]} ${i[l+4]} ${i[l+5]}`);return pe(this,ij,WEe).call(this,s),s.join(" ")}newFreeDrawOutline(t,i,s,l,d,u){return new XEe(t,i,s,l,d,u)}getOutlines(){var E;const t=T(this,bp),i=T(this,Xh),s=T(this,$i),[l,d,u,p]=T(this,Pd),g=new Float32Array((((E=T(this,X1))==null?void 0:E.length)??0)+2);for(let b=0,A=g.length-2;b=6;b-=6)for(let A=0;A<6;A+=2){if(isNaN(i[b+A])){_[y]=_[y+1]=NaN,y+=2;continue}_[y]=i[b+A],_[y+1]=i[b+A+1],y+=2}return pe(this,aj,qEe).call(this,_,y),this.newFreeDrawOutline(_,g,T(this,Pd),T(this,YT),T(this,KT),T(this,qT))}};Pd=new WeakMap,Xh=new WeakMap,KT=new WeakMap,qT=new WeakMap,bp=new WeakMap,$i=new WeakMap,F2=new WeakMap,B2=new WeakMap,iO=new WeakMap,rO=new WeakMap,YT=new WeakMap,XT=new WeakMap,X1=new WeakMap,sO=new WeakMap,ej=new WeakMap,tj=new WeakMap,V2=new WeakSet,YI=function(){const t=T(this,$i).subarray(4,6),i=T(this,$i).subarray(16,18),[s,l,d,u]=T(this,Pd);return[(T(this,F2)+(t[0]-i[0])/2-s)/d,(T(this,B2)+(t[1]-i[1])/2-l)/u,(T(this,F2)+(i[0]-t[0])/2-s)/d,(T(this,B2)+(i[1]-t[1])/2-l)/u]},nj=new WeakSet,GEe=function(){const[t,i,s,l]=T(this,Pd),[d,u,p,g]=pe(this,V2,YI).call(this);return`M${(T(this,$i)[2]-t)/s} ${(T(this,$i)[3]-i)/l} L${(T(this,$i)[4]-t)/s} ${(T(this,$i)[5]-i)/l} L${d} ${u} L${p} ${g} L${(T(this,$i)[16]-t)/s} ${(T(this,$i)[17]-i)/l} L${(T(this,$i)[14]-t)/s} ${(T(this,$i)[15]-i)/l} Z`},ij=new WeakSet,WEe=function(t){const i=T(this,Xh);t.push(`L${i[4]} ${i[5]} Z`)},rj=new WeakSet,$Ee=function(t){const[i,s,l,d]=T(this,Pd),u=T(this,$i).subarray(4,6),p=T(this,$i).subarray(16,18),[g,_,y,E]=pe(this,V2,YI).call(this);t.push(`L${(u[0]-i)/l} ${(u[1]-s)/d} L${g} ${_} L${y} ${E} L${(p[0]-i)/l} ${(p[1]-s)/d}`)},sj=new WeakSet,KEe=function(t){const i=T(this,$i),[s,l,d,u]=T(this,Pd),[p,g,_,y]=pe(this,V2,YI).call(this),E=new Float32Array(36);return E.set([NaN,NaN,NaN,NaN,(i[2]-s)/d,(i[3]-l)/u,NaN,NaN,NaN,NaN,(i[4]-s)/d,(i[5]-l)/u,NaN,NaN,NaN,NaN,p,g,NaN,NaN,NaN,NaN,_,y,NaN,NaN,NaN,NaN,(i[16]-s)/d,(i[17]-l)/u,NaN,NaN,NaN,NaN,(i[14]-s)/d,(i[15]-l)/u],0),this.newFreeDrawOutline(E,t,T(this,Pd),T(this,YT),T(this,KT),T(this,qT))},aj=new WeakSet,qEe=function(t,i){const s=T(this,Xh);return t.set([NaN,NaN,NaN,NaN,s[4],s[5]],i),i+=6},oj=new WeakSet,YEe=function(t,i){const s=T(this,$i).subarray(4,6),l=T(this,$i).subarray(16,18),[d,u,p,g]=T(this,Pd),[_,y,E,b]=pe(this,V2,YI).call(this);return t.set([NaN,NaN,NaN,NaN,(s[0]-d)/p,(s[1]-u)/g,NaN,NaN,NaN,NaN,_,y,NaN,NaN,NaN,NaN,E,b,NaN,NaN,NaN,NaN,(l[0]-d)/p,(l[1]-u)/g],i),i+=24},ee(km,sO,8),ee(km,ej,2),ee(km,tj,T(km,sO)+T(km,ej));let j7=km;var JT,z2,ug,aO,Ld,oO,ha,lj,JEe;class XEe extends xn{constructor(i,s,l,d,u,p){super();ee(this,lj);ee(this,JT,void 0);ee(this,z2,new Float32Array(4));ee(this,ug,void 0);ee(this,aO,void 0);ee(this,Ld,void 0);ee(this,oO,void 0);ee(this,ha,void 0);re(this,ha,i),re(this,Ld,s),re(this,JT,l),re(this,oO,d),re(this,ug,u),re(this,aO,p),this.lastPoint=[NaN,NaN],pe(this,lj,JEe).call(this,p);const[g,_,y,E]=T(this,z2);for(let b=0,A=i.length;bi[0]-s[0]||i[1]-s[1]||i[2]-s[2]);const t=[];for(const i of T(this,J1))i[3]?(t.push(...pe(this,dO,pX).call(this,i)),pe(this,dj,ZEe).call(this,i)):(pe(this,uj,ewe).call(this,i),t.push(...pe(this,dO,pX).call(this,i)));return pe(this,cj,QEe).call(this,t)}}lO=new WeakMap,cO=new WeakMap,J1=new WeakMap,Jh=new WeakMap,cj=new WeakSet,QEe=function(t){const i=[],s=new Set;for(const u of t){const[p,g,_]=u;i.push([p,g,u],[p,_,u])}i.sort((u,p)=>u[1]-p[1]||u[0]-p[0]);for(let u=0,p=i.length;u0;){const u=s.values().next().value;let[p,g,_,y,E]=u;s.delete(u);let b=p,A=g;for(d=[p,_],l.push(d);;){let N;if(s.has(y))N=y;else if(s.has(E))N=E;else break;s.delete(N),[p,g,_,y,E]=N,b!==p&&(d.push(b,A,p,A===g?g:_),b=p),A=A===g?_:g}d.push(b,A)}return new set(l,T(this,lO),T(this,cO))},QT=new WeakSet,CM=function(t){const i=T(this,Jh);let s=0,l=i.length-1;for(;s<=l;){const d=s+l>>1,u=i[d][0];if(u===t)return d;u=0;l--){const[d,u]=T(this,Jh)[l];if(d!==t)break;if(d===t&&u===i){T(this,Jh).splice(l,1);return}}},dO=new WeakSet,pX=function(t){const[i,s,l]=t,d=[[i,s,l]],u=pe(this,QT,CM).call(this,l);for(let p=0;p=g){if(A>_)d[y][1]=_;else{if(E===1)return[];d.splice(y,1),y--,E--}continue}d[y][2]=g,A>_&&d.push([i,_,A])}}}return d};var uO,ZT;class set extends xn{constructor(i,s,l){super();ee(this,uO,void 0);ee(this,ZT,void 0);re(this,ZT,i),re(this,uO,s),this.lastPoint=l}toSVGPath(){const i=[];for(const s of T(this,ZT)){let[l,d]=s;i.push(`M${l} ${d}`);for(let u=2;u-1?(re(this,Bo,!0),pe(this,iR,TM).call(this,i),pe(this,pg,b_).call(this)):T(this,hg)&&(re(this,eR,i.anchorNode),re(this,hO,i.anchorOffset),re(this,pO,i.focusNode),re(this,mO,i.focusOffset),pe(this,vO,gX).call(this),pe(this,pg,b_).call(this),this.rotate(this.rotation)),this.annotationElementId||this._uiManager.a11yAlert("pdfjs-editor-highlight-added-alert")}static get _keyboardManager(){const i=_r.prototype;return Ki(this,"_keyboardManager",new iP([[["ArrowLeft","mac+ArrowLeft"],i._moveCaret,{args:[0]}],[["ArrowRight","mac+ArrowRight"],i._moveCaret,{args:[1]}],[["ArrowUp","mac+ArrowUp"],i._moveCaret,{args:[2]}],[["ArrowDown","mac+ArrowDown"],i._moveCaret,{args:[3]}]]))}get telemetryInitialData(){return{action:"added",type:T(this,Bo)?"free_highlight":"highlight",color:this._uiManager.getNonHCMColorName(this.color),thickness:T(this,$u),methodOfCreation:T(this,gO)}}get telemetryFinalData(){return{type:"highlight",color:this._uiManager.getNonHCMColorName(this.color)}}get commentColor(){return this.color}static computeTelemetryFinalData(i){return{numberOfColors:i.get("color").size}}static initialize(i,s){var l;ds.initialize(i,s),_r._defaultColor||(_r._defaultColor=((l=s.highlightColors)==null?void 0:l.values().next().value)||"#fff066")}static updateDefaultParams(i,s){switch(i){case cr.HIGHLIGHT_COLOR:_r._defaultColor=s;break;case cr.HIGHLIGHT_THICKNESS:_r._defaultThickness=s;break}}translateInPage(i,s){}get toolbarPosition(){return T(this,tR)}updateParams(i,s){switch(i){case cr.HIGHLIGHT_COLOR:pe(this,hj,twe).call(this,s);break;case cr.HIGHLIGHT_THICKNESS:pe(this,fj,nwe).call(this,s);break}}static get defaultPropertiesToUpdate(){return[[cr.HIGHLIGHT_COLOR,_r._defaultColor],[cr.HIGHLIGHT_THICKNESS,_r._defaultThickness]]}get propertiesToUpdate(){return[[cr.HIGHLIGHT_COLOR,this.color||_r._defaultColor],[cr.HIGHLIGHT_THICKNESS,T(this,$u)||_r._defaultThickness],[cr.HIGHLIGHT_FREE,T(this,Bo)]]}get toolbarButtons(){return this._uiManager.highlightColors?[["colorPicker",re(this,fO,new D7({editor:this}))]]:super.toolbarButtons}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}fixAndSetPosition(){return super.fixAndSetPosition(pe(this,W2,XI).call(this))}getBaseTranslation(){return[0,0]}getRect(i,s){return super.getRect(i,s,pe(this,W2,XI).call(this))}onceAdded(i){this.annotationElementId||this.parent.addUndoableEditor(this),i&&this.div.focus()}remove(){pe(this,yO,vX).call(this),this._reportTelemetry({action:"deleted"}),super.remove()}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(pe(this,pg,b_).call(this),this.isAttachedToDOM||this.parent.add(this)))}setParent(i){var l;let s=!1;this.parent&&!i?pe(this,yO,vX).call(this):i&&(pe(this,pg,b_).call(this,i),s=!this.parent&&((l=this.div)==null?void 0:l.classList.contains("selectedEditor"))),super.setParent(i),this.show(this._isVisible),s&&this.select()}rotate(i){var d,u,p;const{drawLayer:s}=this.parent;let l;T(this,Bo)?(i=(i-this.rotation+360)%360,l=pe(d=_r,Q1,Yb).call(d,T(this,Wu).box,i)):l=pe(u=_r,Q1,Yb).call(u,[this.x,this.y,this.width,this.height],i),s.updateProperties(T(this,Dd),{bbox:l,root:{"data-main-rotation":i}}),s.updateProperties(T(this,gl),{bbox:pe(p=_r,Q1,Yb).call(p,T(this,$c).box,i),root:{"data-main-rotation":i}})}render(){if(this.div)return this.div;const i=super.render();T(this,nR)&&(i.setAttribute("aria-label",T(this,nR)),i.setAttribute("role","mark")),T(this,Bo)?i.classList.add("free"):this.div.addEventListener("keydown",pe(this,mj,rwe).bind(this),{signal:this._uiManager._signal});const s=re(this,G2,document.createElement("div"));i.append(s),s.setAttribute("aria-hidden","true"),s.className="internal",s.style.clipPath=T(this,H2);const[l,d]=this.parentDimensions;return this.setDims(this.width*l,this.height*d),I2e(this,T(this,G2),["pointerover","pointerleave"]),this.enableEditing(),i}pointerover(){var i;this.isSelected||(i=this.parent)==null||i.drawLayer.updateProperties(T(this,gl),{rootClass:{hovered:!0}})}pointerleave(){var i;this.isSelected||(i=this.parent)==null||i.drawLayer.updateProperties(T(this,gl),{rootClass:{hovered:!1}})}_moveCaret(i){switch(this.parent.unselect(this),i){case 0:case 2:pe(this,rR,RM).call(this,!0);break;case 1:case 3:pe(this,rR,RM).call(this,!1);break}}select(){var i;super.select(),T(this,gl)&&((i=this.parent)==null||i.drawLayer.updateProperties(T(this,gl),{rootClass:{hovered:!1,selected:!0}}))}unselect(){var i;super.unselect(),T(this,gl)&&((i=this.parent)==null||i.drawLayer.updateProperties(T(this,gl),{rootClass:{selected:!1}}),T(this,Bo)||pe(this,rR,RM).call(this,!1))}get _mustFixPosition(){return!T(this,Bo)}show(i=this._isVisible){super.show(i),this.parent&&(this.parent.drawLayer.updateProperties(T(this,Dd),{rootClass:{hidden:!i}}),this.parent.drawLayer.updateProperties(T(this,gl),{rootClass:{hidden:!i}}))}static startHighlighting(i,s,{target:l,x:d,y:u}){const{x:p,y:g,width:_,height:y}=l.getBoundingClientRect(),E=new AbortController,b=i.combinedSignal(E),A=N=>{E.abort(),pe(this,_j,lwe).call(this,i,N)};window.addEventListener("blur",A,{signal:b}),window.addEventListener("pointerup",A,{signal:b}),window.addEventListener("pointerdown",Ra,{capture:!0,passive:!1,signal:b}),window.addEventListener("contextmenu",rh,{signal:b}),l.addEventListener("pointermove",pe(this,yj,owe).bind(this,i),{signal:b}),this._freeHighlight=new mX({x:d,y:u},[p,g,_,y],i.scale,this._defaultThickness/2,s,.001),{id:this._freeHighlightId,clipPathId:this._freeHighlightClipId}=i.drawLayer.draw({bbox:[0,0,1,1],root:{viewBox:"0 0 1 1",fill:this._defaultColor,"fill-opacity":this._defaultOpacity},rootClass:{highlight:!0,free:!0},path:{d:this._freeHighlight.toSVGPath()}},!0,!0)}static async deserialize(i,s,l){var O,D,P,j;let d=null;if(i instanceof jEe){const{data:{quadPoints:M,rect:V,rotation:H,id:$,color:Q,opacity:Y,popupRef:le,contentsObj:ae},parent:{page:{pageNumber:te}}}=i;d=i={annotationType:_i.HIGHLIGHT,color:Array.from(Q),opacity:Y,quadPoints:M,boxes:null,pageIndex:te-1,rect:V.slice(0),rotation:H,annotationElementId:$,id:$,deleted:!1,popupRef:le,comment:(ae==null?void 0:ae.str)||null}}else if(i instanceof fZ){const{data:{inkLists:M,rect:V,rotation:H,id:$,color:Q,borderStyle:{rawWidth:Y},popupRef:le,contentsObj:ae},parent:{page:{pageNumber:te}}}=i;d=i={annotationType:_i.HIGHLIGHT,color:Array.from(Q),thickness:Y,inkLists:M,boxes:null,pageIndex:te-1,rect:V.slice(0),rotation:H,annotationElementId:$,id:$,deleted:!1,popupRef:le,comment:(ae==null?void 0:ae.str)||null}}const{color:u,quadPoints:p,inkLists:g,opacity:_}=i,y=await super.deserialize(i,s,l);y.color=zn.makeHexColor(...u),re(y,fg,_||1),g&&re(y,$u,i.thickness),y._initialData=d,i.comment&&y.setCommentData(i.comment);const[E,b]=y.pageDimensions,[A,N]=y.pageTranslation;if(p){const M=re(y,hg,[]);for(let V=0;V=0)re(this,Dd,s),re(this,H2,l),this.parent.drawLayer.finalizeDraw(s,{bbox:i.box,path:{d:i.toSVGPath()}}),re(this,gl,this.parent.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:!0},bbox:T(this,$c).box,path:{d:T(this,$c).toSVGPath()}},!0));else if(this.parent){const A=this.parent.viewport.rotation;this.parent.drawLayer.updateProperties(T(this,Dd),{bbox:pe(E=_r,Q1,Yb).call(E,T(this,Wu).box,(A-this.rotation+360)%360),path:{d:i.toSVGPath()}}),this.parent.drawLayer.updateProperties(T(this,gl),{bbox:pe(b=_r,Q1,Yb).call(b,T(this,$c).box,A),path:{d:T(this,$c).toSVGPath()}})}const[u,p,g,_]=i.box;switch(this.rotation){case 0:this.x=u,this.y=p,this.width=g,this.height=_;break;case 90:{const[A,N]=this.parentDimensions;this.x=p,this.y=1-u,this.width=g*N/A,this.height=_*A/N;break}case 180:this.x=1-u,this.y=1-p,this.width=g,this.height=_;break;case 270:{const[A,N]=this.parentDimensions;this.x=1-p,this.y=u,this.width=g*N/A,this.height=_*A/N;break}}const{lastPoint:y}=T(this,$c);re(this,tR,[(y[0]-u)/g,(y[1]-p)/_])},hj=new WeakSet,twe=function(i){const s=(u,p)=>{var g,_;this.color=u,re(this,fg,p),(g=this.parent)==null||g.drawLayer.updateProperties(T(this,Dd),{root:{fill:u,"fill-opacity":p}}),(_=T(this,fO))==null||_.updateColor(u)},l=this.color,d=T(this,fg);this.addCommands({cmd:s.bind(this,i,_r._defaultOpacity),undo:s.bind(this,l,d),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cr.HIGHLIGHT_COLOR,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"color_changed",color:this._uiManager.getNonHCMColorName(i)},!0)},fj=new WeakSet,nwe=function(i){const s=T(this,$u),l=d=>{re(this,$u,d),pe(this,pj,iwe).call(this,d)};this.addCommands({cmd:l.bind(this,i),undo:l.bind(this,s),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cr.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"thickness_changed",thickness:i},!0)},pj=new WeakSet,iwe=function(i){if(!T(this,Bo))return;pe(this,iR,TM).call(this,{highlightOutlines:T(this,Wu).getNewOutline(i/2)}),this.fixAndSetPosition();const[s,l]=this.parentDimensions;this.setDims(this.width*s,this.height*l)},yO=new WeakSet,vX=function(){T(this,Dd)===null||!this.parent||(this.parent.drawLayer.remove(T(this,Dd)),re(this,Dd,null),this.parent.drawLayer.remove(T(this,gl)),re(this,gl,null))},pg=new WeakSet,b_=function(i=this.parent){T(this,Dd)===null&&({id:ao(this,Dd)._,clipPathId:ao(this,H2)._}=i.drawLayer.draw({bbox:T(this,Wu).box,root:{viewBox:"0 0 1 1",fill:this.color,"fill-opacity":T(this,fg)},rootClass:{highlight:!0,free:T(this,Bo)},path:{d:T(this,Wu).toSVGPath()}},!1,!0),re(this,gl,i.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:T(this,Bo)},bbox:T(this,$c).box,path:{d:T(this,$c).toSVGPath()}},T(this,Bo))),T(this,G2)&&(T(this,G2).style.clipPath=T(this,H2)))},Q1=new WeakSet,Yb=function([i,s,l,d],u){switch(u){case 90:return[1-s-d,i,d,l];case 180:return[1-i-l,1-s-d,l,d];case 270:return[s,1-i-l,d,l]}return[i,s,l,d]},mj=new WeakSet,rwe=function(i){_r._keyboardManager.exec(this,i)},rR=new WeakSet,RM=function(i){if(!T(this,eR))return;const s=window.getSelection();i?s.setPosition(T(this,eR),T(this,hO)):s.setPosition(T(this,pO),T(this,mO))},W2=new WeakSet,XI=function(){return T(this,Bo)?this.rotation:0},gj=new WeakSet,swe=function(){if(T(this,Bo))return null;const[i,s]=this.pageDimensions,[l,d]=this.pageTranslation,u=T(this,hg),p=new Float32Array(u.length*8);let g=0;for(const{x:_,y,width:E,height:b}of u){const A=_*i+l,N=(1-y)*s+d;p[g]=p[g+4]=A,p[g+1]=p[g+3]=N,p[g+2]=p[g+6]=A+E*i,p[g+5]=p[g+7]=N-b*s,g+=8}return p},vj=new WeakSet,awe=function(i){return T(this,Wu).serialize(i,pe(this,W2,XI).call(this))},yj=new WeakSet,owe=function(i,s){this._freeHighlight.add(s)&&i.drawLayer.updateProperties(this._freeHighlightId,{path:{d:this._freeHighlight.toSVGPath()}})},_j=new WeakSet,lwe=function(i,s){this._freeHighlight.isEmpty()?i.drawLayer.remove(this._freeHighlightId):i.createAndAddNewEditor(s,!1,{highlightId:this._freeHighlightId,highlightOutlines:this._freeHighlight.getOutlines(),clipPathId:this._freeHighlightClipId,methodOfCreation:"main_toolbar"}),this._freeHighlightId=-1,this._freeHighlight=null,this._freeHighlightClipId=""},Ej=new WeakSet,cwe=function(i){const{color:s}=this._initialData;return this.hasEditedComment||i.color.some((l,d)=>l!==s[d])},ee(_r,Q1),ee(_r,yj),ee(_r,_j),sn(_r,"_defaultColor",null),sn(_r,"_defaultOpacity",1),sn(_r,"_defaultThickness",12),sn(_r,"_type","highlight"),sn(_r,"_editorType",_i.HIGHLIGHT),sn(_r,"_freeHighlightId",-1),sn(_r,"_freeHighlight",null),sn(_r,"_freeHighlightClipId","");let U7=_r;var $2;class dwe{constructor(){ee(this,$2,Object.create(null))}updateProperty(t,i){this[t]=i,this.updateSVGProperty(t,i)}updateProperties(t){if(t)for(const[i,s]of Object.entries(t))i.startsWith("_")||this.updateProperty(i,s)}updateSVGProperty(t,i){T(this,$2)[t]=i}toSVGProperties(){const t=T(this,$2);return re(this,$2,Object.create(null)),{root:t}}reset(){re(this,$2,Object.create(null))}updateAll(t=this){this.updateProperties(t)}clone(){Zr("Not implemented")}}$2=new WeakMap;var kd,sR,fo,K2,q2,Z1,ev,tv,Y2,_O,yX,EO,_X,wO,EX,X2,JI,wj,uwe,aR,xM,J2,QI,nv,Xb;const In=class In extends ds{constructor(i){super(i);ee(this,_O);ee(this,EO);ee(this,wO);ee(this,X2);ee(this,wj);ee(this,aR);ee(this,J2);ee(this,nv);ee(this,kd,null);ee(this,sR,void 0);sn(this,"_colorPicker",null);sn(this,"_drawId",null);re(this,sR,i.mustBeCommitted||!1),this._addOutlines(i)}_addOutlines(i){i.drawOutlines&&(pe(this,_O,yX).call(this,i),pe(this,X2,JI).call(this))}static _mergeSVGProperties(i,s){const l=new Set(Object.keys(i));for(const[d,u]of Object.entries(s))l.has(d)?Object.assign(i[d],u):i[d]=u;return i}static getDefaultDrawingOptions(i){Zr("Not implemented")}static get typesMap(){Zr("Not implemented")}static get isDrawer(){return!0}static get supportMultipleDrawings(){return!1}static updateDefaultParams(i,s){const l=this.typesMap.get(i);l&&this._defaultDrawingOptions.updateProperty(l,s),this._currentParent&&(T(In,fo).updateProperty(l,s),this._currentParent.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}updateParams(i,s){const l=this.constructor.typesMap.get(i);l&&this._updateProperty(i,l,s)}static get defaultPropertiesToUpdate(){const i=[],s=this._defaultDrawingOptions;for(const[l,d]of this.typesMap)i.push([l,s[d]]);return i}get propertiesToUpdate(){const i=[],{_drawingOptions:s}=this;for(const[l,d]of this.constructor.typesMap)i.push([l,s[d]]);return i}_updateProperty(i,s,l){const d=this._drawingOptions,u=d[s],p=g=>{var y,E;d.updateProperty(s,g);const _=T(this,kd).updateProperty(s,g);_&&pe(this,J2,QI).call(this,_),(y=this.parent)==null||y.drawLayer.updateProperties(this._drawId,d.toSVGProperties()),i===this.colorType&&((E=this._colorPicker)==null||E.update(g))};this.addCommands({cmd:p.bind(this,l),undo:p.bind(this,u),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:i,overwriteIfSameType:!0,keepUndo:!0})}_onResizing(){var i;(i=this.parent)==null||i.drawLayer.updateProperties(this._drawId,In._mergeSVGProperties(T(this,kd).getPathResizingSVGProperties(pe(this,aR,xM).call(this)),{bbox:pe(this,nv,Xb).call(this)}))}_onResized(){var i;(i=this.parent)==null||i.drawLayer.updateProperties(this._drawId,In._mergeSVGProperties(T(this,kd).getPathResizedSVGProperties(pe(this,aR,xM).call(this)),{bbox:pe(this,nv,Xb).call(this)}))}_onTranslating(i,s){var l;(l=this.parent)==null||l.drawLayer.updateProperties(this._drawId,{bbox:pe(this,nv,Xb).call(this)})}_onTranslated(){var i;(i=this.parent)==null||i.drawLayer.updateProperties(this._drawId,In._mergeSVGProperties(T(this,kd).getPathTranslatedSVGProperties(pe(this,aR,xM).call(this),this.parentDimensions),{bbox:pe(this,nv,Xb).call(this)}))}_onStartDragging(){var i;(i=this.parent)==null||i.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!0}})}_onStopDragging(){var i;(i=this.parent)==null||i.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!1}})}commit(){super.commit(),this.disableEditMode(),this.disableEditing()}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}getBaseTranslation(){return[0,0]}get isResizable(){return!0}onceAdded(i){this.annotationElementId||this.parent.addUndoableEditor(this),this._isDraggable=!0,T(this,sR)&&(re(this,sR,!1),this.commit(),this.parent.setSelected(this),i&&this.isOnScreen&&this.div.focus())}remove(){pe(this,wO,EX).call(this),super.remove()}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(pe(this,X2,JI).call(this),pe(this,J2,QI).call(this,T(this,kd).box),this.isAttachedToDOM||this.parent.add(this)))}setParent(i){var l;let s=!1;this.parent&&!i?(this._uiManager.removeShouldRescale(this),pe(this,wO,EX).call(this)):i&&(this._uiManager.addShouldRescale(this),pe(this,X2,JI).call(this,i),s=!this.parent&&((l=this.div)==null?void 0:l.classList.contains("selectedEditor"))),super.setParent(i),s&&this.select()}rotate(){this.parent&&this.parent.drawLayer.updateProperties(this._drawId,In._mergeSVGProperties({bbox:pe(this,nv,Xb).call(this)},T(this,kd).updateRotation((this.parentRotation-this.rotation+360)%360)))}onScaleChanging(){this.parent&&pe(this,J2,QI).call(this,T(this,kd).updateParentDimensions(this.parentDimensions,this.parent.scale))}static onScaleChangingWhenDrawing(){}render(){if(this.div)return this.div;let i,s;this._isCopy&&(i=this.x,s=this.y);const l=super.render();l.classList.add("draw");const d=document.createElement("div");l.append(d),d.setAttribute("aria-hidden","true"),d.className="internal";const[u,p]=this.parentDimensions;return this.setDims(this.width*u,this.height*p),this._uiManager.addShouldRescale(this),this.disableEditing(),this._isCopy&&this._moveAfterPaste(i,s),l}static createDrawerInstance(i,s,l,d,u){Zr("Not implemented")}static startDrawing(i,s,l,d){var D;const{target:u,offsetX:p,offsetY:g,pointerId:_,pointerType:y}=d;if(T(In,ev)&&T(In,ev)!==y)return;const{viewport:{rotation:E}}=i,{width:b,height:A}=u.getBoundingClientRect(),N=re(In,K2,new AbortController),O=i.combinedSignal(N);if(T(In,Z1)||re(In,Z1,_),T(In,ev)??re(In,ev,y),window.addEventListener("pointerup",P=>{var j;T(In,Z1)===P.pointerId?this._endDraw(P):(j=T(In,tv))==null||j.delete(P.pointerId)},{signal:O}),window.addEventListener("pointercancel",P=>{var j;T(In,Z1)===P.pointerId?this._currentParent.endDrawingSession():(j=T(In,tv))==null||j.delete(P.pointerId)},{signal:O}),window.addEventListener("pointerdown",P=>{T(In,ev)===P.pointerType&&((T(In,tv)||re(In,tv,new Set)).add(P.pointerId),T(In,fo).isCancellable()&&(T(In,fo).removeLastElement(),T(In,fo).isEmpty()?this._currentParent.endDrawingSession(!0):this._endDraw(null)))},{capture:!0,passive:!1,signal:O}),window.addEventListener("contextmenu",rh,{signal:O}),u.addEventListener("pointermove",this._drawMove.bind(this),{signal:O}),u.addEventListener("touchmove",P=>{P.timeStamp===T(In,Y2)&&Ra(P)},{signal:O}),i.toggleDrawing(),(D=s._editorUndoBar)==null||D.hide(),T(In,fo)){i.drawLayer.updateProperties(this._currentDrawId,T(In,fo).startNew(p,g,b,A,E));return}s.updateUIForDefaultProperties(this),re(In,fo,this.createDrawerInstance(p,g,b,A,E)),re(In,q2,this.getDefaultDrawingOptions()),this._currentParent=i,{id:this._currentDrawId}=i.drawLayer.draw(this._mergeSVGProperties(T(In,q2).toSVGProperties(),T(In,fo).defaultSVGProperties),!0,!1)}static _drawMove(i){var u;if(re(In,Y2,-1),!T(In,fo))return;const{offsetX:s,offsetY:l,pointerId:d}=i;if(T(In,Z1)===d){if(((u=T(In,tv))==null?void 0:u.size)>=1){this._endDraw(i);return}this._currentParent.drawLayer.updateProperties(this._currentDrawId,T(In,fo).add(s,l)),re(In,Y2,i.timeStamp),Ra(i)}}static _cleanup(i){i&&(this._currentDrawId=-1,this._currentParent=null,re(In,fo,null),re(In,q2,null),re(In,ev,null),re(In,Y2,NaN)),T(In,K2)&&(T(In,K2).abort(),re(In,K2,null),re(In,Z1,NaN),re(In,tv,null))}static _endDraw(i){const s=this._currentParent;if(s){if(s.toggleDrawing(!0),this._cleanup(!1),(i==null?void 0:i.target)===s.div&&s.drawLayer.updateProperties(this._currentDrawId,T(In,fo).end(i.offsetX,i.offsetY)),this.supportMultipleDrawings){const l=T(In,fo),d=this._currentDrawId,u=l.getLastElement();s.addCommands({cmd:()=>{s.drawLayer.updateProperties(d,l.setLastElement(u))},undo:()=>{s.drawLayer.updateProperties(d,l.removeLastElement())},mustExec:!1,type:cr.DRAW_STEP});return}this.endDrawing(!1)}}static endDrawing(i){const s=this._currentParent;if(!s)return null;if(s.toggleDrawing(!0),s.cleanUndoStack(cr.DRAW_STEP),!T(In,fo).isEmpty()){const{pageDimensions:[l,d],scale:u}=s,p=s.createAndAddNewEditor({offsetX:0,offsetY:0},!1,{drawId:this._currentDrawId,drawOutlines:T(In,fo).getOutlines(l*u,d*u,u,this._INNER_MARGIN),drawingOptions:T(In,q2),mustBeCommitted:!i});return this._cleanup(!0),p}return s.drawLayer.remove(this._currentDrawId),this._cleanup(!0),null}createDrawingOptions(i){}static deserializeDraw(i,s,l,d,u,p){Zr("Not implemented")}static async deserialize(i,s,l){var E,b;const{rawDims:{pageWidth:d,pageHeight:u,pageX:p,pageY:g}}=s.viewport,_=this.deserializeDraw(p,g,d,u,this._INNER_MARGIN,i),y=await super.deserialize(i,s,l);return y.createDrawingOptions(i),pe(E=y,_O,yX).call(E,{drawOutlines:_}),pe(b=y,X2,JI).call(b),y.onScaleChanging(),y.rotate(),y}serializeDraw(i){const[s,l]=this.pageTranslation,[d,u]=this.pageDimensions;return T(this,kd).serialize([s,l,d,u],i)}renderAnnotationElement(i){return i.updateEdited({rect:this.getRect(0,0)}),null}static canCreateNewEmptyEditor(){return!1}};kd=new WeakMap,sR=new WeakMap,fo=new WeakMap,K2=new WeakMap,q2=new WeakMap,Z1=new WeakMap,ev=new WeakMap,tv=new WeakMap,Y2=new WeakMap,_O=new WeakSet,yX=function({drawOutlines:i,drawId:s,drawingOptions:l}){re(this,kd,i),this._drawingOptions||(this._drawingOptions=l),this.annotationElementId||this._uiManager.a11yAlert(`pdfjs-editor-${this.editorType}-added-alert`),s>=0?(this._drawId=s,this.parent.drawLayer.finalizeDraw(s,i.defaultProperties)):this._drawId=pe(this,EO,_X).call(this,i,this.parent),pe(this,J2,QI).call(this,i.box)},EO=new WeakSet,_X=function(i,s){const{id:l}=s.drawLayer.draw(In._mergeSVGProperties(this._drawingOptions.toSVGProperties(),i.defaultSVGProperties),!1,!1);return l},wO=new WeakSet,EX=function(){this._drawId===null||!this.parent||(this.parent.drawLayer.remove(this._drawId),this._drawId=null,this._drawingOptions.reset())},X2=new WeakSet,JI=function(i=this.parent){if(!(this._drawId!==null&&this.parent===i)){if(this._drawId!==null){this.parent.drawLayer.updateParent(this._drawId,i.drawLayer);return}this._drawingOptions.updateAll(),this._drawId=pe(this,EO,_X).call(this,T(this,kd),i)}},wj=new WeakSet,uwe=function([i,s,l,d]){const{parentDimensions:[u,p],rotation:g}=this;switch(g){case 90:return[s,1-i,l*(p/u),d*(u/p)];case 180:return[1-i,1-s,l,d];case 270:return[1-s,i,l*(p/u),d*(u/p)];default:return[i,s,l,d]}},aR=new WeakSet,xM=function(){const{x:i,y:s,width:l,height:d,parentDimensions:[u,p],rotation:g}=this;switch(g){case 90:return[1-s,i,l*(u/p),d*(p/u)];case 180:return[1-i,1-s,l,d];case 270:return[s,1-i,l*(u/p),d*(p/u)];default:return[i,s,l,d]}},J2=new WeakSet,QI=function(i){if([this.x,this.y,this.width,this.height]=pe(this,wj,uwe).call(this,i),this.div){this.fixAndSetPosition();const[s,l]=this.parentDimensions;this.setDims(this.width*s,this.height*l)}this._onResized()},nv=new WeakSet,Xb=function(){const{x:i,y:s,width:l,height:d,rotation:u,parentRotation:p,parentDimensions:[g,_]}=this;switch((u*4+p)/90){case 1:return[1-s-d,i,d,l];case 2:return[1-i-l,1-s-d,l,d];case 3:return[s,1-i-l,d,l];case 4:return[i,s-l*(g/_),d*(_/g),l*(g/_)];case 5:return[1-s,i,l*(g/_),d*(_/g)];case 6:return[1-i-d*(_/g),1-s,d*(_/g),l*(g/_)];case 7:return[s-l*(g/_),1-i-d*(_/g),l*(g/_),d*(_/g)];case 8:return[i-l,s-d,l,d];case 9:return[1-s,i-l,d,l];case 10:return[1-i,1-s,l,d];case 11:return[s-d,1-i,d,l];case 12:return[i-d*(_/g),s,d*(_/g),l*(g/_)];case 13:return[1-s-l*(g/_),i-d*(_/g),l*(g/_),d*(_/g)];case 14:return[1-i,1-s-l*(g/_),d*(_/g),l*(g/_)];case 15:return[s,1-i,l*(g/_),d*(_/g)];default:return[i,s,l,d]}},sn(In,"_currentDrawId",-1),sn(In,"_currentParent",null),ee(In,fo,null),ee(In,K2,null),ee(In,q2,null),ee(In,Z1,NaN),ee(In,ev,null),ee(In,tv,null),ee(In,Y2,NaN),sn(In,"_INNER_MARGIN",3);let F7=In;var Cp,po,mo,Q2,oR,Jl,Vo,Ku,Z2,eE,tE,lR,AM;class oet{constructor(t,i,s,l,d,u){ee(this,lR);ee(this,Cp,new Float64Array(6));ee(this,po,void 0);ee(this,mo,void 0);ee(this,Q2,void 0);ee(this,oR,void 0);ee(this,Jl,void 0);ee(this,Vo,"");ee(this,Ku,0);ee(this,Z2,new sP);ee(this,eE,void 0);ee(this,tE,void 0);re(this,eE,s),re(this,tE,l),re(this,Q2,d),re(this,oR,u),[t,i]=pe(this,lR,AM).call(this,t,i);const p=re(this,po,[NaN,NaN,NaN,NaN,t,i]);re(this,Jl,[t,i]),re(this,mo,[{line:p,points:T(this,Jl)}]),T(this,Cp).set(p,0)}updateProperty(t,i){t==="stroke-width"&&re(this,oR,i)}isEmpty(){return!T(this,mo)||T(this,mo).length===0}isCancellable(){return T(this,Jl).length<=10}add(t,i){[t,i]=pe(this,lR,AM).call(this,t,i);const[s,l,d,u]=T(this,Cp).subarray(2,6),p=t-d,g=i-u;return Math.hypot(T(this,eE)*p,T(this,tE)*g)<=2?null:(T(this,Jl).push(t,i),isNaN(s)?(T(this,Cp).set([d,u,t,i],2),T(this,po).push(NaN,NaN,NaN,NaN,t,i),{path:{d:this.toSVGPath()}}):(isNaN(T(this,Cp)[0])&&T(this,po).splice(6,6),T(this,Cp).set([s,l,d,u,t,i],0),T(this,po).push(...xn.createBezierPoints(s,l,d,u,t,i)),{path:{d:this.toSVGPath()}}))}end(t,i){const s=this.add(t,i);return s||(T(this,Jl).length===2?{path:{d:this.toSVGPath()}}:null)}startNew(t,i,s,l,d){re(this,eE,s),re(this,tE,l),re(this,Q2,d),[t,i]=pe(this,lR,AM).call(this,t,i);const u=re(this,po,[NaN,NaN,NaN,NaN,t,i]);re(this,Jl,[t,i]);const p=T(this,mo).at(-1);return p&&(p.line=new Float32Array(p.line),p.points=new Float32Array(p.points)),T(this,mo).push({line:u,points:T(this,Jl)}),T(this,Cp).set(u,0),re(this,Ku,0),this.toSVGPath(),null}getLastElement(){return T(this,mo).at(-1)}setLastElement(t){return T(this,mo)?(T(this,mo).push(t),re(this,po,t.line),re(this,Jl,t.points),re(this,Ku,0),{path:{d:this.toSVGPath()}}):T(this,Z2).setLastElement(t)}removeLastElement(){if(!T(this,mo))return T(this,Z2).removeLastElement();T(this,mo).pop(),re(this,Vo,"");for(let t=0,i=T(this,mo).length;tV??NaN),b,A,N,O),points:D(g[j].map(V=>V??NaN),b,A,N,O)});const P=new this.prototype.constructor;return P.build(E,l,d,1,_,y,u),P}get box(){return T(this,Ql)}updateProperty(i,s){return i==="stroke-width"?pe(this,Cj,pwe).call(this,s):null}updateParentDimensions([i,s],l){const[d,u]=pe(this,Qh,Om).call(this);re(this,Tp,i),re(this,Rp,s),re(this,cR,l);const[p,g]=pe(this,Qh,Om).call(this),_=p-d,y=g-u,E=T(this,Ql);return E[0]-=_,E[1]-=y,E[2]+=2*_,E[3]+=2*y,E}updateRotation(i){return re(this,SO,i),{path:{transform:this.rotationTransform}}}get viewBox(){return T(this,Ql).map(xn.svgRound).join(" ")}get defaultProperties(){const[i,s]=T(this,Ql);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${xn.svgRound(i)} ${xn.svgRound(s)}`}}}get rotationTransform(){const[,,i,s]=T(this,Ql);let l=0,d=0,u=0,p=0,g=0,_=0;switch(T(this,SO)){case 90:d=s/i,u=-i/s,g=i;break;case 180:l=-1,p=-1,g=i,_=s;break;case 270:d=-s/i,u=i/s,_=s;break;default:return""}return`matrix(${l} ${d} ${u} ${p} ${xn.svgRound(g)} ${xn.svgRound(_)})`}getPathResizingSVGProperties([i,s,l,d]){const[u,p]=pe(this,Qh,Om).call(this),[g,_,y,E]=T(this,Ql);if(Math.abs(y-u)<=xn.PRECISION||Math.abs(E-p)<=xn.PRECISION){const D=i+l/2-(g+y/2),P=s+d/2-(_+E/2);return{path:{"transform-origin":`${xn.svgRound(i)} ${xn.svgRound(s)}`,transform:`${this.rotationTransform} translate(${D} ${P})`}}}const b=(l-2*u)/(y-2*u),A=(d-2*p)/(E-2*p),N=y/l,O=E/d;return{path:{"transform-origin":`${xn.svgRound(g)} ${xn.svgRound(_)}`,transform:`${this.rotationTransform} scale(${N} ${O}) translate(${xn.svgRound(u)} ${xn.svgRound(p)}) scale(${b} ${A}) translate(${xn.svgRound(-u)} ${xn.svgRound(-p)})`}}}getPathResizedSVGProperties([i,s,l,d]){const[u,p]=pe(this,Qh,Om).call(this),g=T(this,Ql),[_,y,E,b]=g;if(g[0]=i,g[1]=s,g[2]=l,g[3]=d,Math.abs(E-u)<=xn.PRECISION||Math.abs(b-p)<=xn.PRECISION){const P=i+l/2-(_+E/2),j=s+d/2-(y+b/2);for(const{line:M,points:V}of T(this,Md))xn._translate(M,P,j,M),xn._translate(V,P,j,V);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${xn.svgRound(i)} ${xn.svgRound(s)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}const A=(l-2*u)/(E-2*u),N=(d-2*p)/(b-2*p),O=-A*(_+u)+i+u,D=-N*(y+p)+s+p;if(A!==1||N!==1||O!==0||D!==0)for(const{line:P,points:j}of T(this,Md))xn._rescale(P,O,D,A,N,P),xn._rescale(j,O,D,A,N,j);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${xn.svgRound(i)} ${xn.svgRound(s)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}getPathTranslatedSVGProperties([i,s],l){const[d,u]=l,p=T(this,Ql),g=i-p[0],_=s-p[1];if(T(this,Tp)===d&&T(this,Rp)===u)for(const{line:y,points:E}of T(this,Md))xn._translate(y,g,_,y),xn._translate(E,g,_,E);else{const y=T(this,Tp)/d,E=T(this,Rp)/u;re(this,Tp,d),re(this,Rp,u);for(const{line:b,points:A}of T(this,Md))xn._rescale(b,g,_,y,E,b),xn._rescale(A,g,_,y,E,A);p[2]*=y,p[3]*=E}return p[0]=i,p[1]=s,{root:{viewBox:this.viewBox},path:{d:this.toSVGPath(),"transform-origin":`${xn.svgRound(i)} ${xn.svgRound(s)}`}}}get defaultSVGProperties(){const i=T(this,Ql);return{root:{viewBox:this.viewBox},rootClass:{draw:!0},path:{d:this.toSVGPath(),"transform-origin":`${xn.svgRound(i[0])} ${xn.svgRound(i[1])}`,transform:this.rotationTransform||null},bbox:i}}}Ql=new WeakMap,SO=new WeakMap,bO=new WeakMap,Md=new WeakMap,Tp=new WeakMap,Rp=new WeakMap,cR=new WeakMap,dR=new WeakMap,nE=new WeakMap,Qh=new WeakSet,Om=function(i=T(this,nE)){const s=T(this,bO)+i/2*T(this,cR);return T(this,dR)%180===0?[s/T(this,Tp),s/T(this,Rp)]:[s/T(this,Rp),s/T(this,Tp)]},Sj=new WeakSet,hwe=function(){const[i,s,l,d]=T(this,Ql),[u,p]=pe(this,Qh,Om).call(this,0);return[i+u,s+p,l-2*u,d-2*p]},bj=new WeakSet,fwe=function(){const i=re(this,Ql,new Float32Array([1/0,1/0,-1/0,-1/0]));for(const{line:d}of T(this,Md)){if(d.length<=12){for(let g=4,_=d.length;g<_;g+=6)zn.pointBoundingBox(d[g],d[g+1],i);continue}let u=d[4],p=d[5];for(let g=6,_=d.length;g<_;g+=6){const[y,E,b,A,N,O]=d.subarray(g,g+6);zn.bezierBoundingBox(u,p,y,E,b,A,N,O,i),u=N,p=O}}const[s,l]=pe(this,Qh,Om).call(this);i[0]=tc(i[0]-s,0,1),i[1]=tc(i[1]-l,0,1),i[2]=tc(i[2]+s,0,1),i[3]=tc(i[3]+l,0,1),i[2]-=i[0],i[3]-=i[1]},Cj=new WeakSet,pwe=function(i){const[s,l]=pe(this,Qh,Om).call(this);re(this,nE,i);const[d,u]=pe(this,Qh,Om).call(this),[p,g]=[d-s,u-l],_=T(this,Ql);return _[0]-=p,_[1]-=g,_[2]+=2*p,_[3]+=2*g,_};class JU extends dwe{constructor(t){super(),this._viewParameters=t,super.updateProperties({fill:"none",stroke:ds._defaultLineColor,"stroke-opacity":1,"stroke-width":1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-miterlimit":10})}updateSVGProperty(t,i){t==="stroke-width"&&(i??(i=this["stroke-width"]),i*=this._viewParameters.realScale),super.updateSVGProperty(t,i)}clone(){const t=new JU(this._viewParameters);return t.updateAll(this),t}}var Tj,mwe;const mC=class mC extends F7{constructor(i){super({...i,name:"inkEditor"});ee(this,Tj);this._willKeepAspectRatio=!0,this.defaultL10nId="pdfjs-editor-ink-editor"}static initialize(i,s){ds.initialize(i,s),this._defaultDrawingOptions=new JU(s.viewParameters)}static getDefaultDrawingOptions(i){const s=this._defaultDrawingOptions.clone();return s.updateProperties(i),s}static get supportMultipleDrawings(){return!0}static get typesMap(){return Ki(this,"typesMap",new Map([[cr.INK_THICKNESS,"stroke-width"],[cr.INK_COLOR,"stroke"],[cr.INK_OPACITY,"stroke-opacity"]]))}static createDrawerInstance(i,s,l,d,u){return new oet(i,s,l,d,u,this._defaultDrawingOptions["stroke-width"])}static deserializeDraw(i,s,l,d,u,p){return sP.deserialize(i,s,l,d,u,p)}static async deserialize(i,s,l){let d=null;if(i instanceof fZ){const{data:{inkLists:p,rect:g,rotation:_,id:y,color:E,opacity:b,borderStyle:{rawWidth:A},popupRef:N,contentsObj:O},parent:{page:{pageNumber:D}}}=i;d=i={annotationType:_i.INK,color:Array.from(E),thickness:A,opacity:b,paths:{points:p},boxes:null,pageIndex:D-1,rect:g.slice(0),rotation:_,annotationElementId:y,id:y,deleted:!1,popupRef:N,comment:(O==null?void 0:O.str)||null}}const u=await super.deserialize(i,s,l);return u._initialData=d,i.comment&&u.setCommentData(i.comment),u}get toolbarButtons(){return this._colorPicker||(this._colorPicker=new k7(this)),[["colorPicker",this._colorPicker]]}get colorType(){return cr.INK_COLOR}get colorValue(){return this._drawingOptions.stroke}onScaleChanging(){if(!this.parent)return;super.onScaleChanging();const{_drawId:i,_drawingOptions:s,parent:l}=this;s.updateSVGProperty("stroke-width"),l.drawLayer.updateProperties(i,s.toSVGProperties())}static onScaleChangingWhenDrawing(){const i=this._currentParent;i&&(super.onScaleChangingWhenDrawing(),this._defaultDrawingOptions.updateSVGProperty("stroke-width"),i.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}createDrawingOptions({color:i,thickness:s,opacity:l}){this._drawingOptions=mC.getDefaultDrawingOptions({stroke:zn.makeHexColor(...i),"stroke-width":s,"stroke-opacity":l})}serialize(i=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const{lines:s,points:l,rect:d}=this.serializeDraw(i),{_drawingOptions:{stroke:u,"stroke-opacity":p,"stroke-width":g}}=this,_={annotationType:_i.INK,color:ds._colorManager.convert(u),opacity:p,thickness:g,paths:{lines:s,points:l},pageIndex:this.pageIndex,rect:d,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return this.addComment(_),i?(_.isCopy=!0,_):this.annotationElementId&&!pe(this,Tj,mwe).call(this,_)?null:(_.id=this.annotationElementId,_)}renderAnnotationElement(i){const{points:s,rect:l}=this.serializeDraw(!1),d={rect:l,thickness:this._drawingOptions["stroke-width"],points:s};return this.hasEditedComment&&(d.popup=this.comment),i.updateEdited(d),null}};Tj=new WeakSet,mwe=function(i){const{color:s,thickness:l,opacity:d,pageIndex:u}=this._initialData;return this.hasEditedComment||this._hasBeenMoved||this._hasBeenResized||i.color.some((p,g)=>p!==s[g])||i.thickness!==l||i.opacity!==d||i.pageIndex!==u},sn(mC,"_type","ink"),sn(mC,"_editorType",_i.INK),sn(mC,"_defaultDrawingOptions",null);let wX=mC;class SX extends sP{toSVGPath(){let t=super.toSVGPath();return t.endsWith("Z")||(t+="Z"),t}}const Pk=8,wI=3;var iE,CO,bX,Zh,Rj,gwe,xj,vwe,TO,CX,uR,IM,Aj,ywe,Ij,_we,Nj,Ewe,RO,TX,xO,RX,Oj,wwe;class za{static extractContoursFromText(t,{fontFamily:i,fontStyle:s,fontWeight:l},d,u,p,g){let _=new OffscreenCanvas(1,1),y=_.getContext("2d",{alpha:!1});const E=200,b=y.font=`${s} ${l} ${E}px ${i}`,{actualBoundingBoxLeft:A,actualBoundingBoxRight:N,actualBoundingBoxAscent:O,actualBoundingBoxDescent:D,fontBoundingBoxAscent:P,fontBoundingBoxDescent:j,width:M}=y.measureText(t),V=1.5,H=Math.ceil(Math.max(Math.abs(A)+Math.abs(N)||0,M)*V),$=Math.ceil(Math.max(Math.abs(O)+Math.abs(D)||E,Math.abs(P)+Math.abs(j)||E)*V);_=new OffscreenCanvas(H,$),y=_.getContext("2d",{alpha:!0,willReadFrequently:!0}),y.font=b,y.filter="grayscale(1)",y.fillStyle="white",y.fillRect(0,0,H,$),y.fillStyle="black",y.fillText(t,H*(V-1)/2,$*(3-V)/2);const Q=pe(this,RO,TX).call(this,y.getImageData(0,0,H,$).data),Y=pe(this,Nj,Ewe).call(this,Q),le=pe(this,xO,RX).call(this,Y),ae=pe(this,TO,CX).call(this,Q,H,$,le);return this.processDrawnLines({lines:{curves:ae,width:H,height:$},pageWidth:d,pageHeight:u,rotation:p,innerMargin:g,mustSmooth:!0,areContours:!0})}static process(t,i,s,l,d){const[u,p,g]=pe(this,Oj,wwe).call(this,t),[_,y]=pe(this,Ij,_we).call(this,u,p,g,Math.hypot(p,g)*T(this,iE).sigmaSFactor,T(this,iE).sigmaR,T(this,iE).kernelSize),E=pe(this,xO,RX).call(this,y),b=pe(this,TO,CX).call(this,_,p,g,E);return this.processDrawnLines({lines:{curves:b,width:p,height:g},pageWidth:i,pageHeight:s,rotation:l,innerMargin:d,mustSmooth:!0,areContours:!0})}static processDrawnLines({lines:t,pageWidth:i,pageHeight:s,rotation:l,innerMargin:d,mustSmooth:u,areContours:p}){l%180!==0&&([i,s]=[s,i]);const{curves:g,width:_,height:y}=t,E=t.thickness??0,b=[],A=Math.min(i/_,s/y),N=A/i,O=A/s,D=[];for(const{points:j}of g){const M=u?pe(this,Aj,ywe).call(this,j):j;if(!M)continue;D.push(M);const V=M.length,H=new Float32Array(V),$=new Float32Array(3*(V===2?2:V-2));if(b.push({line:$,points:H}),V===2){H[0]=M[0]*N,H[1]=M[1]*O,$.set([NaN,NaN,NaN,NaN,H[0],H[1]],0);continue}let[Q,Y,le,ae]=M;Q*=N,Y*=O,le*=N,ae*=O,H.set([Q,Y,le,ae],0),$.set([NaN,NaN,NaN,NaN,Q,Y],0);for(let te=4;te=-128&&p<=127?_=Int8Array:u>=-32768&&p<=32767?_=Int16Array:_=Int32Array;const y=t.length,E=Pk+wI*y,b=new Uint32Array(E);let A=0;b[A++]=E*Uint32Array.BYTES_PER_ELEMENT+(g-2*y)*_.BYTES_PER_ELEMENT,b[A++]=0,b[A++]=l,b[A++]=d,b[A++]=i?0:1,b[A++]=Math.max(0,Math.floor(s??0)),b[A++]=y,b[A++]=_.BYTES_PER_ELEMENT;for(const M of t)b[A++]=M.length-2,b[A++]=M[0],b[A++]=M[1];const N=new CompressionStream("deflate-raw"),O=N.writable.getWriter();await O.ready,O.write(b);const D=_.prototype.constructor;for(const M of t){const V=new D(M.length-2);for(let H=2,$=M.length;H<$;H++)V[H-2]=M[H]-M[H-2];O.write(V)}O.close();const P=await new Response(N.readable).arrayBuffer(),j=new Uint8Array(P);return S2e(j)}static async decompressSignature(t){try{const i=NQe(t),{readable:s,writable:l}=new DecompressionStream("deflate-raw"),d=l.getWriter();await d.ready,d.write(i).then(async()=>{await d.ready,await d.close()}).catch(()=>{});let u=null,p=0;for await(const M of s)u||(u=new Uint8Array(new Uint32Array(M.buffer,0,4)[0])),u.set(M,p),p+=M.length;const g=new Uint32Array(u.buffer,0,u.length>>2),_=g[1];if(_!==0)throw new Error(`Invalid version: ${_}`);const y=g[2],E=g[3],b=g[4]===0,A=g[5],N=g[6],O=g[7],D=[],P=(Pk+wI*N)*Uint32Array.BYTES_PER_ELEMENT;let j;switch(O){case Int8Array.BYTES_PER_ELEMENT:j=new Int8Array(u.buffer,P);break;case Int16Array.BYTES_PER_ELEMENT:j=new Int16Array(u.buffer,P);break;case Int32Array.BYTES_PER_ELEMENT:j=new Int32Array(u.buffer,P);break}p=0;for(let M=0;M0?0:4:s===1?l+6:2-l},Zh=new WeakMap,Rj=new WeakSet,gwe=function(t,i,s,l,d,u,p){const g=pe(this,CO,bX).call(this,s,l,d,u);for(let _=0;_<8;_++){const y=(-_+g-p+16)%8,E=T(this,Zh)[2*y],b=T(this,Zh)[2*y+1];if(t[(s+E)*i+(l+b)]!==0)return y}return-1},xj=new WeakSet,vwe=function(t,i,s,l,d,u,p){const g=pe(this,CO,bX).call(this,s,l,d,u);for(let _=0;_<8;_++){const y=(_+g+p+16)%8,E=T(this,Zh)[2*y],b=T(this,Zh)[2*y+1];if(t[(s+E)*i+(l+b)]!==0)return y}return-1},TO=new WeakSet,CX=function(t,i,s,l){const d=t.length,u=new Int32Array(d);for(let y=0;y=1&&u[b+1]===0)p+=1,O+=1,A>1&&(g=A);else{A!==1&&(g=Math.abs(A));continue}const D=[E,y],P=O===E+1,j={isHole:P,points:D,id:p,parent:0};_.push(j);let M;for(const te of _)if(te.id===g){M=te;break}M?M.isHole?j.parent=P?M.parent:g:j.parent=P?g:M.parent:j.parent=P?g:0;const V=pe(this,Rj,gwe).call(this,u,i,y,E,N,O,0);if(V===-1){u[b]=-p,u[b]!==1&&(g=Math.abs(u[b]));continue}let H=T(this,Zh)[2*V],$=T(this,Zh)[2*V+1];const Q=y+H,Y=E+$;N=Q,O=Y;let le=y,ae=E;for(;;){const te=pe(this,xj,vwe).call(this,u,i,le,ae,N,O,1);H=T(this,Zh)[2*te],$=T(this,Zh)[2*te+1];const de=le+H,G=ae+$;D.push(G,de);const ie=le*i+ae;if(u[ie+1]===0?u[ie]=-p:u[ie]===1&&(u[ie]=p),de===y&&G===E&&le===Q&&ae===Y){u[b]!==1&&(g=Math.abs(u[b]));break}else N=le,O=ae,le=de,ae=G}}}return _},uR=new WeakSet,IM=function(t,i,s,l){if(s-i<=4){for(let Q=i;QH&&($=Q,H=Y)}H>(_*V)**2?(pe(this,uR,IM).call(this,t,i,$+2,l),pe(this,uR,IM).call(this,t,$,s,l)):l.push(d,u)},Aj=new WeakSet,ywe=function(t){const i=[],s=t.length;return pe(this,uR,IM).call(this,t,0,s,i),i.push(t[s-2],t[s-1]),i.length<=4?null:i},Ij=new WeakSet,_we=function(t,i,s,l,d,u){const p=new Float32Array(u**2),g=-2*l**2,_=u>>1;for(let O=0;O=s))for(let Y=0;Y=i)continue;const ae=t[Q*i+le],te=p[$*u+Y]*y[Math.abs(ae-j)];M+=ae*te,V+=te}}const H=A[P]=Math.round(M/V);N[H]++}return[A,N]},Nj=new WeakSet,Ewe=function(t){const i=new Uint32Array(256);for(const s of t)i[s]++;return i},RO=new WeakSet,TX=function(t){const i=t.length,s=new Uint8ClampedArray(i>>2);let l=-1/0,d=1/0;for(let p=0,g=s.length;pg!==0);let u=d,p=d;for(i=d;i<256;i++){const g=t[i];g>s&&(i-u>l&&(l=i-u,p=i-1),s=g,u=i)}for(i=p-1;i>=0&&!(t[i]>t[i+1]);i--);return i},Oj=new WeakSet,wwe=function(t){const i=t,{width:s,height:l}=t,{maxDim:d}=T(this,iE);let u=s,p=l;if(s>d||l>d){let b=s,A=l,N=Math.log2(Math.max(s,l)/d);const O=Math.floor(N);N=N===O?O-1:O;for(let P=0;P{s==null||s.updateEditSignatureButton(i)}))}getSignaturePreview(){const{newCurves:i,areContours:s,thickness:l,width:d,height:u}=T(this,rv),p=Math.max(d,u),g=za.processDrawnLines({lines:{curves:i.map(_=>({points:_})),thickness:l,width:d,height:u},pageWidth:p,pageHeight:p,rotation:0,innerMargin:0,mustSmooth:!1,areContours:s});return{areContours:s,outline:g.outline}}get toolbarButtons(){return this._uiManager.signatureManager?[["editSignature",this._uiManager.signatureManager]]:super.toolbarButtons}addSignature(i,s,l,d){const{x:u,y:p}=this,{outline:g}=re(this,rv,i);re(this,iv,g instanceof SX),this.description=l;let _;T(this,iv)?_=bd.getDefaultDrawingOptions():(_=bd._defaultDrawnSignatureOptions.clone(),_.updateProperties({"stroke-width":g.thickness})),this._addOutlines({drawOutlines:g,drawingOptions:_});const[y,E]=this.parentDimensions,[,b]=this.pageDimensions;let A=s/b;A=A>=1?.5:A,this.width*=A/this.height,this.width>=1&&(A*=.9/this.width,this.width=.9),this.height=A,this.setDims(y*this.width,E*this.height),this.x=u,this.y=p,this.center(),this._onResized(),this.onScaleChanging(),this.rotate(),this._uiManager.addToAnnotationStorage(this),this.setUuid(d),this._reportTelemetry({action:"pdfjs.signature.inserted",data:{hasBeenSaved:!!d,hasDescription:!!l}}),this.div.hidden=!1}getFromImage(i){const{rawDims:{pageWidth:s,pageHeight:l},rotation:d}=this.parent.viewport;return za.process(i,s,l,d,bd._INNER_MARGIN)}getFromText(i,s){const{rawDims:{pageWidth:l,pageHeight:d},rotation:u}=this.parent.viewport;return za.extractContoursFromText(i,s,l,d,u,bd._INNER_MARGIN)}getDrawnSignature(i){const{rawDims:{pageWidth:s,pageHeight:l},rotation:d}=this.parent.viewport;return za.processDrawnLines({lines:i,pageWidth:s,pageHeight:l,rotation:d,innerMargin:bd._INNER_MARGIN,mustSmooth:!1,areContours:!1})}createDrawingOptions({areContours:i,thickness:s}){i?this._drawingOptions=bd.getDefaultDrawingOptions():(this._drawingOptions=bd._defaultDrawnSignatureOptions.clone(),this._drawingOptions.updateProperties({"stroke-width":s}))}serialize(i=!1){if(this.isEmpty())return null;const{lines:s,points:l,rect:d}=this.serializeDraw(i),{_drawingOptions:{"stroke-width":u}}=this,p={annotationType:_i.SIGNATURE,isSignature:!0,areContours:T(this,iv),color:[0,0,0],thickness:T(this,iv)?0:u,pageIndex:this.pageIndex,rect:d,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return this.addComment(p),i?(p.paths={lines:s,points:l},p.uuid=T(this,rE),p.isCopy=!0):p.lines=s,T(this,xp)&&(p.accessibilityData={type:"Figure",alt:T(this,xp)}),p}static deserializeDraw(i,s,l,d,u,p){return p.areContours?SX.deserialize(i,s,l,d,u,p):sP.deserialize(i,s,l,d,u,p)}static async deserialize(i,s,l){var u;const d=await super.deserialize(i,s,l);return re(d,iv,i.areContours),d.description=((u=i.accessibilityData)==null?void 0:u.alt)||"",re(d,rE,i.uuid),d}};iv=new WeakMap,xp=new WeakMap,rv=new WeakMap,rE=new WeakMap,sn(bd,"_type","signature"),sn(bd,"_editorType",_i.SIGNATURE),sn(bd,"_defaultDrawingOptions",null);let xX=bd;var Ps,go,sv,mg,av,hR,gg,sE,Ap,jd,fR,aE,ZI,oE,e4,pR,NM,mR,OM,gR,PM,AO,IX,vR,LM,Pj,Swe;class AX extends ds{constructor(i){super({...i,name:"stampEditor"});ee(this,aE);ee(this,oE);ee(this,pR);ee(this,mR);ee(this,gR);ee(this,AO);ee(this,vR);ee(this,Pj);ee(this,Ps,null);ee(this,go,null);ee(this,sv,null);ee(this,mg,null);ee(this,av,null);ee(this,hR,"");ee(this,gg,null);ee(this,sE,!1);ee(this,Ap,null);ee(this,jd,!1);ee(this,fR,!1);re(this,mg,i.bitmapUrl),re(this,av,i.bitmapFile),this.defaultL10nId="pdfjs-editor-stamp-editor"}static initialize(i,s){ds.initialize(i,s)}static isHandlingMimeForPasting(i){return wY.includes(i)}static paste(i,s){s.pasteEditor({mode:_i.STAMP},{bitmapFile:i.getAsFile()})}altTextFinish(){this._uiManager.useNewAltTextFlow&&(this.div.hidden=!1),super.altTextFinish()}get telemetryFinalData(){var i;return{type:"stamp",hasAltText:!!((i=this.altTextData)!=null&&i.altText)}}static computeTelemetryFinalData(i){const s=i.get("hasAltText");return{hasAltText:s.get(!0)??0,hasNoAltText:s.get(!1)??0}}async mlGuessAltText(i=null,s=!0){if(this.hasAltTextData())return null;const{mlManager:l}=this._uiManager;if(!l)throw new Error("No ML.");if(!await l.isEnabledFor("altText"))throw new Error("ML isn't enabled for alt text.");const{data:d,width:u,height:p}=i||this.copyCanvas(null,null,!0).imageData,g=await l.guess({name:"altText",request:{data:d,width:u,height:p,channels:d.length/(u*p)}});if(!g)throw new Error("No response from the AI service.");if(g.error)throw new Error("Error from the AI service.");if(g.cancel)return null;if(!g.output)throw new Error("No valid response from the AI service.");const _=g.output;return await this.setGuessedAltText(_),s&&!this.hasAltTextData()&&(this.altTextData={alt:_,decorative:!1}),_}remove(){var i;T(this,go)&&(re(this,Ps,null),this._uiManager.imageManager.deleteId(T(this,go)),(i=T(this,gg))==null||i.remove(),re(this,gg,null),T(this,Ap)&&(clearTimeout(T(this,Ap)),re(this,Ap,null))),super.remove()}rebuild(){if(!this.parent){T(this,go)&&pe(this,pR,NM).call(this);return}super.rebuild(),this.div!==null&&(T(this,go)&&T(this,gg)===null&&pe(this,pR,NM).call(this),this.isAttachedToDOM||this.parent.add(this))}onceAdded(i){this._isDraggable=!0,i&&this.div.focus()}isEmpty(){return!(T(this,sv)||T(this,Ps)||T(this,mg)||T(this,av)||T(this,go)||T(this,sE))}get toolbarButtons(){return[["altText",this.createAltText()]]}get isResizable(){return!0}render(){if(this.div)return this.div;let i,s;return this._isCopy&&(i=this.x,s=this.y),super.render(),this.div.hidden=!0,this.createAltText(),T(this,sE)||(T(this,Ps)?pe(this,mR,OM).call(this):pe(this,pR,NM).call(this)),this._isCopy&&this._moveAfterPaste(i,s),this._uiManager.addShouldRescale(this),this.div}setCanvas(i,s){const{id:l,bitmap:d}=this._uiManager.imageManager.getFromCanvas(i,s);s.remove(),l&&this._uiManager.imageManager.isValidId(l)&&(re(this,go,l),d&&re(this,Ps,d),re(this,sE,!1),pe(this,mR,OM).call(this))}_onResized(){this.onScaleChanging()}onScaleChanging(){if(!this.parent)return;T(this,Ap)!==null&&clearTimeout(T(this,Ap)),re(this,Ap,setTimeout(()=>{re(this,Ap,null),pe(this,AO,IX).call(this)},200))}copyCanvas(i,s,l=!1){var A;i||(i=224);const{width:d,height:u}=T(this,Ps),p=new Up;let g=T(this,Ps),_=d,y=u,E=null;if(s){if(d>s||u>s){const Y=Math.min(s/d,s/u);_=Math.floor(d*Y),y=Math.floor(u*Y)}E=document.createElement("canvas");const N=E.width=Math.ceil(_*p.sx),O=E.height=Math.ceil(y*p.sy);T(this,jd)||(g=pe(this,gR,PM).call(this,N,O));const D=E.getContext("2d");D.filter=this._uiManager.hcmFilter;let P="white",j="#cfcfd8";this._uiManager.hcmFilter!=="none"?j="black":(A=window.matchMedia)!=null&&A.call(window,"(prefers-color-scheme: dark)").matches&&(P="#8f8f9d",j="#42414d");const M=15,V=M*p.sx,H=M*p.sy,$=new OffscreenCanvas(V*2,H*2),Q=$.getContext("2d");Q.fillStyle=P,Q.fillRect(0,0,V*2,H*2),Q.fillStyle=j,Q.fillRect(0,0,V,H),Q.fillRect(V,H,V,H),D.fillStyle=D.createPattern($,"repeat"),D.fillRect(0,0,N,O),D.drawImage(g,0,0,g.width,g.height,0,0,N,O)}let b=null;if(l){let N,O;if(p.symmetric&&g.widthi||u>i){const j=Math.min(i/d,i/u);N=Math.floor(d*j),O=Math.floor(u*j),T(this,jd)||(g=pe(this,gR,PM).call(this,N,O))}const P=new OffscreenCanvas(N,O).getContext("2d",{willReadFrequently:!0});P.drawImage(g,0,0,g.width,g.height,0,0,N,O),b={width:N,height:O,data:P.getImageData(0,0,N,O).data}}return{canvas:E,width:_,height:y,imageData:b}}static async deserialize(i,s,l){var D;let d=null,u=!1;if(i instanceof UEe){const{data:{rect:P,rotation:j,id:M,structParent:V,popupRef:H,contentsObj:$},container:Q,parent:{page:{pageNumber:Y}},canvas:le}=i;let ae,te;le?(delete i.canvas,{id:ae,bitmap:te}=l.imageManager.getFromCanvas(Q.id,le),le.remove()):(u=!0,i._hasNoCanvas=!0);const de=((D=await s._structTree.getAriaAttributes(`${aZ}${M}`))==null?void 0:D.get("aria-label"))||"";d=i={annotationType:_i.STAMP,bitmapId:ae,bitmap:te,pageIndex:Y-1,rect:P.slice(0),rotation:j,annotationElementId:M,id:M,deleted:!1,accessibilityData:{decorative:!1,altText:de},isSvg:!1,structParent:V,popupRef:H,comment:($==null?void 0:$.str)||null}}const p=await super.deserialize(i,s,l),{rect:g,bitmap:_,bitmapUrl:y,bitmapId:E,isSvg:b,accessibilityData:A}=i;u?(l.addMissingCanvas(i.id,p),re(p,sE,!0)):E&&l.imageManager.isValidId(E)?(re(p,go,E),_&&re(p,Ps,_)):re(p,mg,y),re(p,jd,b);const[N,O]=p.pageDimensions;return p.width=(g[2]-g[0])/N,p.height=(g[3]-g[1])/O,A&&(p.altTextData=A),p._initialData=d,i.comment&&p.setCommentData(i.comment),re(p,fR,!!d),p}serialize(i=!1,s=null){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const l={annotationType:_i.STAMP,bitmapId:T(this,go),pageIndex:this.pageIndex,rect:this.getRect(0,0),rotation:this.rotation,isSvg:T(this,jd),structTreeParentId:this._structTreeParentId};if(this.addComment(l),i)return l.bitmapUrl=pe(this,vR,LM).call(this,!0),l.accessibilityData=this.serializeAltText(!0),l.isCopy=!0,l;const{decorative:d,altText:u}=this.serializeAltText(!1);if(!d&&u&&(l.accessibilityData={type:"Figure",alt:u}),this.annotationElementId){const g=pe(this,Pj,Swe).call(this,l);if(g.isSame)return null;g.isSameAltText?delete l.accessibilityData:l.accessibilityData.structParent=this._initialData.structParent??-1}if(l.id=this.annotationElementId,s===null)return l;s.stamps||(s.stamps=new Map);const p=T(this,jd)?(l.rect[2]-l.rect[0])*(l.rect[3]-l.rect[1]):null;if(!s.stamps.has(T(this,go)))s.stamps.set(T(this,go),{area:p,serialized:l}),l.bitmap=pe(this,vR,LM).call(this,!1);else if(T(this,jd)){const g=s.stamps.get(T(this,go));p>g.area&&(g.area=p,g.serialized.bitmap.close(),g.serialized.bitmap=pe(this,vR,LM).call(this,!1))}return l}renderAnnotationElement(i){const s={rect:this.getRect(0,0)};return this.hasEditedComment&&(s.popup=this.comment),i.updateEdited(s),null}}Ps=new WeakMap,go=new WeakMap,sv=new WeakMap,mg=new WeakMap,av=new WeakMap,hR=new WeakMap,gg=new WeakMap,sE=new WeakMap,Ap=new WeakMap,jd=new WeakMap,fR=new WeakMap,aE=new WeakSet,ZI=function(i,s=!1){if(!i){this.remove();return}re(this,Ps,i.bitmap),s||(re(this,go,i.id),re(this,jd,i.isSvg)),i.file&&re(this,hR,i.file.name),pe(this,mR,OM).call(this)},oE=new WeakSet,e4=function(){if(re(this,sv,null),this._uiManager.enableWaiting(!1),!!T(this,gg)){if(this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&T(this,Ps)){this.addEditToolbar().then(()=>{this._editToolbar.hide(),this._uiManager.editAltText(this,!0)});return}if(!this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&T(this,Ps)){this._reportTelemetry({action:"pdfjs.image.image_added",data:{alt_text_modal:!1,alt_text_type:"empty"}});try{this.mlGuessAltText()}catch{}}this.div.focus()}},pR=new WeakSet,NM=function(){if(T(this,go)){this._uiManager.enableWaiting(!0),this._uiManager.imageManager.getFromId(T(this,go)).then(l=>pe(this,aE,ZI).call(this,l,!0)).finally(()=>pe(this,oE,e4).call(this));return}if(T(this,mg)){const l=T(this,mg);re(this,mg,null),this._uiManager.enableWaiting(!0),re(this,sv,this._uiManager.imageManager.getFromUrl(l).then(d=>pe(this,aE,ZI).call(this,d)).finally(()=>pe(this,oE,e4).call(this)));return}if(T(this,av)){const l=T(this,av);re(this,av,null),this._uiManager.enableWaiting(!0),re(this,sv,this._uiManager.imageManager.getFromFile(l).then(d=>pe(this,aE,ZI).call(this,d)).finally(()=>pe(this,oE,e4).call(this)));return}const i=document.createElement("input");i.type="file",i.accept=wY.join(",");const s=this._uiManager._signal;re(this,sv,new Promise(l=>{i.addEventListener("change",async()=>{if(!i.files||i.files.length===0)this.remove();else{this._uiManager.enableWaiting(!0);const d=await this._uiManager.imageManager.getFromFile(i.files[0]);this._reportTelemetry({action:"pdfjs.image.image_selected",data:{alt_text_modal:this._uiManager.useNewAltTextFlow}}),pe(this,aE,ZI).call(this,d)}l()},{signal:s}),i.addEventListener("cancel",()=>{this.remove(),l()},{signal:s})}).finally(()=>pe(this,oE,e4).call(this))),i.click()},mR=new WeakSet,OM=function(){var E;const{div:i}=this;let{width:s,height:l}=T(this,Ps);const[d,u]=this.pageDimensions,p=.75;if(this.width)s=this.width*d,l=this.height*u;else if(s>p*d||l>p*u){const b=Math.min(p*d/s,p*u/l);s*=b,l*=b}const[g,_]=this.parentDimensions;this.setDims(s*g/d,l*_/u),this._uiManager.enableWaiting(!1);const y=re(this,gg,document.createElement("canvas"));y.setAttribute("role","img"),this.addContainer(y),this.width=s/d,this.height=l/u,(E=this._initialOptions)!=null&&E.isCentered?this.center():this.fixAndSetPosition(),this._initialOptions=null,(!this._uiManager.useNewAltTextWhenAddingImage||!this._uiManager.useNewAltTextFlow||this.annotationElementId)&&(i.hidden=!1),pe(this,AO,IX).call(this),T(this,fR)||(this.parent.addUndoableEditor(this),re(this,fR,!0)),this._reportTelemetry({action:"inserted_image"}),T(this,hR)&&this.div.setAttribute("aria-description",T(this,hR)),this.annotationElementId||this._uiManager.a11yAlert("pdfjs-editor-stamp-added-alert")},gR=new WeakSet,PM=function(i,s){const{width:l,height:d}=T(this,Ps);let u=l,p=d,g=T(this,Ps);for(;u>2*i||p>2*s;){const _=u,y=p;u>2*i&&(u=u>=16384?Math.floor(u/2)-1:Math.ceil(u/2)),p>2*s&&(p=p>=16384?Math.floor(p/2)-1:Math.ceil(p/2));const E=new OffscreenCanvas(u,p);E.getContext("2d").drawImage(g,0,0,_,y,0,0,u,p),g=E.transferToImageBitmap()}return g},AO=new WeakSet,IX=function(){const[i,s]=this.parentDimensions,{width:l,height:d}=this,u=new Up,p=Math.ceil(l*i*u.sx),g=Math.ceil(d*s*u.sy),_=T(this,gg);if(!_||_.width===p&&_.height===g)return;_.width=p,_.height=g;const y=T(this,jd)?T(this,Ps):pe(this,gR,PM).call(this,p,g),E=_.getContext("2d");E.filter=this._uiManager.hcmFilter,E.drawImage(y,0,0,y.width,y.height,0,0,p,g)},vR=new WeakSet,LM=function(i){if(i){if(T(this,jd)){const d=this._uiManager.imageManager.getSvgUrl(T(this,go));if(d)return d}const s=document.createElement("canvas");return{width:s.width,height:s.height}=T(this,Ps),s.getContext("2d").drawImage(T(this,Ps),0,0),s.toDataURL()}if(T(this,jd)){const[s,l]=this.pageDimensions,d=Math.round(this.width*s*kv.PDF_TO_CSS_UNITS),u=Math.round(this.height*l*kv.PDF_TO_CSS_UNITS),p=new OffscreenCanvas(d,u);return p.getContext("2d").drawImage(T(this,Ps),0,0,T(this,Ps).width,T(this,Ps).height,0,0,d,u),p.transferToImageBitmap()}return structuredClone(T(this,Ps))},Pj=new WeakSet,Swe=function(i){var p;const{pageIndex:s,accessibilityData:{altText:l}}=this._initialData,d=i.pageIndex===s,u=(((p=i.accessibilityData)==null?void 0:p.alt)||"")===l;return{isSame:!this.hasEditedComment&&!this._hasBeenMoved&&!this._hasBeenResized&&d&&u,isSameAltText:u}},sn(AX,"_type","stamp"),sn(AX,"_editorType",_i.STAMP);var lE,yR,Ip,ov,vg,Ud,lv,_R,cE,ef,yg,vo,_g,cv,ER,Fn,dv,Lj,bwe,qu,ep,IO,OX,NO,PX,wR,DM;const Fh=class Fh{constructor({uiManager:t,pageIndex:i,div:s,structTreeLayer:l,accessibilityManager:d,annotationLayer:u,drawLayer:p,textLayer:g,viewport:_,l10n:y}){ee(this,Lj);ee(this,qu);ee(this,IO);ee(this,NO);ee(this,wR);ee(this,lE,void 0);ee(this,yR,!1);ee(this,Ip,null);ee(this,ov,null);ee(this,vg,null);ee(this,Ud,new Map);ee(this,lv,!1);ee(this,_R,!1);ee(this,cE,!1);ee(this,ef,null);ee(this,yg,null);ee(this,vo,null);ee(this,_g,null);ee(this,cv,null);ee(this,ER,-1);ee(this,Fn,void 0);const E=[...T(Fh,dv).values()];if(!Fh._initialized){Fh._initialized=!0;for(const b of E)b.initialize(y,t)}t.registerEditorTypes(E),re(this,Fn,t),this.pageIndex=i,this.div=s,re(this,lE,d),re(this,Ip,u),this.viewport=_,re(this,vo,g),this.drawLayer=p,this._structTree=l,T(this,Fn).addLayer(this)}get isEmpty(){return T(this,Ud).size===0}get isInvisible(){return this.isEmpty&&T(this,Fn).getMode()===_i.NONE}updateToolbar(t){T(this,Fn).updateToolbar(t)}updateMode(t=T(this,Fn).getMode()){switch(pe(this,wR,DM).call(this),t){case _i.NONE:this.disableTextSelection(),this.togglePointerEvents(!1),this.toggleAnnotationLayerPointerEvents(!0),this.disableClick();return;case _i.INK:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick();break;case _i.HIGHLIGHT:this.enableTextSelection(),this.togglePointerEvents(!1),this.disableClick();break;default:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick()}this.toggleAnnotationLayerPointerEvents(!1);const{classList:i}=this.div;for(const s of T(Fh,dv).values())i.toggle(`${s._type}Editing`,t===s._editorType);this.div.hidden=!1}hasTextLayer(t){var i;return t===((i=T(this,vo))==null?void 0:i.div)}setEditingState(t){T(this,Fn).setEditingState(t)}addCommands(t){T(this,Fn).addCommands(t)}cleanUndoStack(t){T(this,Fn).cleanUndoStack(t)}toggleDrawing(t=!1){this.div.classList.toggle("drawing",!t)}togglePointerEvents(t=!1){this.div.classList.toggle("disabled",!t)}toggleAnnotationLayerPointerEvents(t=!1){var i;(i=T(this,Ip))==null||i.div.classList.toggle("disabled",!t)}async enable(){var s;re(this,cE,!0),this.div.tabIndex=0,this.togglePointerEvents(!0),(s=T(this,cv))==null||s.abort(),re(this,cv,null);const t=new Set;for(const l of T(this,Ud).values())l.enableEditing(),l.show(!0),l.annotationElementId&&(T(this,Fn).removeChangedExistingAnnotation(l),t.add(l.annotationElementId));if(!T(this,Ip)){re(this,cE,!1);return}const i=T(this,Ip).getEditableAnnotations();for(const l of i){if(l.hide(),T(this,Fn).isDeletedAnnotationElement(l.data.id)||t.has(l.data.id))continue;const d=await this.deserialize(l);d&&(this.addOrRebuild(d),d.enableEditing())}re(this,cE,!1)}disable(){var l;if(re(this,_R,!0),this.div.tabIndex=-1,this.togglePointerEvents(!1),T(this,vo)&&!T(this,cv)){re(this,cv,new AbortController);const d=T(this,Fn).combinedSignal(T(this,cv));T(this,vo).div.addEventListener("pointerdown",u=>{const{clientX:g,clientY:_,timeStamp:y}=u,E=T(this,ER);if(y-E>500){re(this,ER,y);return}re(this,ER,-1);const{classList:b}=this.div;b.toggle("getElements",!0);const A=document.elementsFromPoint(g,_);if(b.toggle("getElements",!1),!this.div.contains(A[0]))return;let N;const O=new RegExp(`^${v2e}[0-9]+$`);for(const P of A)if(O.test(P.id)){N=P.id;break}if(!N)return;const D=T(this,Ud).get(N);(D==null?void 0:D.annotationElementId)===null&&(u.stopPropagation(),u.preventDefault(),D.dblclick())},{signal:d,capture:!0})}const t=new Map,i=new Map;for(const d of T(this,Ud).values())if(d.disableEditing(),!!d.annotationElementId){if(d.serialize()!==null){t.set(d.annotationElementId,d);continue}else i.set(d.annotationElementId,d);(l=this.getEditableAnnotation(d.annotationElementId))==null||l.show(),d.remove()}if(T(this,Ip)){const d=T(this,Ip).getEditableAnnotations();for(const u of d){const{id:p}=u.data;if(T(this,Fn).isDeletedAnnotationElement(p)){u.updateEdited({deleted:!0});continue}let g=i.get(p);if(g){g.resetAnnotationElement(u),g.show(!1),u.show();continue}g=t.get(p),g&&(T(this,Fn).addChangedExistingAnnotation(g),g.renderAnnotationElement(u)&&g.show(!1)),u.show()}}pe(this,wR,DM).call(this),this.isEmpty&&(this.div.hidden=!0);const{classList:s}=this.div;for(const d of T(Fh,dv).values())s.remove(`${d._type}Editing`);this.disableTextSelection(),this.toggleAnnotationLayerPointerEvents(!0),re(this,_R,!1)}getEditableAnnotation(t){var i;return((i=T(this,Ip))==null?void 0:i.getEditableAnnotation(t))||null}setActiveEditor(t){T(this,Fn).getActive()!==t&&T(this,Fn).setActiveEditor(t)}enableTextSelection(){var t;if(this.div.tabIndex=-1,(t=T(this,vo))!=null&&t.div&&!T(this,_g)){re(this,_g,new AbortController);const i=T(this,Fn).combinedSignal(T(this,_g));T(this,vo).div.addEventListener("pointerdown",pe(this,Lj,bwe).bind(this),{signal:i}),T(this,vo).div.classList.add("highlighting")}}disableTextSelection(){var t;this.div.tabIndex=0,(t=T(this,vo))!=null&&t.div&&T(this,_g)&&(T(this,_g).abort(),re(this,_g,null),T(this,vo).div.classList.remove("highlighting"))}enableClick(){if(T(this,ov))return;re(this,ov,new AbortController);const t=T(this,Fn).combinedSignal(T(this,ov));this.div.addEventListener("pointerdown",this.pointerdown.bind(this),{signal:t});const i=this.pointerup.bind(this);this.div.addEventListener("pointerup",i,{signal:t}),this.div.addEventListener("pointercancel",i,{signal:t})}disableClick(){var t;(t=T(this,ov))==null||t.abort(),re(this,ov,null)}attach(t){T(this,Ud).set(t.id,t);const{annotationElementId:i}=t;i&&T(this,Fn).isDeletedAnnotationElement(i)&&T(this,Fn).removeDeletedAnnotationElement(t)}detach(t){var i;T(this,Ud).delete(t.id),(i=T(this,lE))==null||i.removePointerInTextLayer(t.contentDiv),!T(this,_R)&&t.annotationElementId&&T(this,Fn).addDeletedAnnotationElement(t)}remove(t){this.detach(t),T(this,Fn).removeEditor(t),t.div.remove(),t.isAttachedToDOM=!1}changeParent(t){var i;t.parent!==this&&(t.parent&&t.annotationElementId&&(T(this,Fn).addDeletedAnnotationElement(t.annotationElementId),ds.deleteAnnotationElement(t),t.annotationElementId=null),this.attach(t),(i=t.parent)==null||i.detach(t),t.setParent(this),t.div&&t.isAttachedToDOM&&(t.div.remove(),this.div.append(t.div)))}add(t){if(!(t.parent===this&&t.isAttachedToDOM)){if(this.changeParent(t),T(this,Fn).addEditor(t),this.attach(t),!t.isAttachedToDOM){const i=t.render();this.div.append(i),t.isAttachedToDOM=!0}t.fixAndSetPosition(),t.onceAdded(!T(this,cE)),T(this,Fn).addToAnnotationStorage(t),t._reportTelemetry(t.telemetryInitialData)}}moveEditorInDOM(t){var s;if(!t.isAttachedToDOM)return;const{activeElement:i}=document;t.div.contains(i)&&!T(this,vg)&&(t._focusEventsAllowed=!1,re(this,vg,setTimeout(()=>{re(this,vg,null),t.div.contains(document.activeElement)?t._focusEventsAllowed=!0:(t.div.addEventListener("focusin",()=>{t._focusEventsAllowed=!0},{once:!0,signal:T(this,Fn)._signal}),i.focus())},0))),t._structTreeParentId=(s=T(this,lE))==null?void 0:s.moveElementInDOM(this.div,t.div,t.contentDiv,!0)}addOrRebuild(t){t.needsToBeRebuilt()?(t.parent||(t.parent=this),t.rebuild(),t.show()):this.add(t)}addUndoableEditor(t){const i=()=>t._uiManager.rebuild(t),s=()=>{t.remove()};this.addCommands({cmd:i,undo:s,mustExec:!1})}getNextId(){return T(this,Fn).getId()}combinedSignal(t){return T(this,Fn).combinedSignal(t)}canCreateNewEmptyEditor(){var t;return(t=T(this,qu,ep))==null?void 0:t.canCreateNewEmptyEditor()}async pasteEditor(t,i){this.updateToolbar(t),await T(this,Fn).updateMode(t.mode);const{offsetX:s,offsetY:l}=pe(this,NO,PX).call(this),d=this.getNextId(),u=pe(this,IO,OX).call(this,{parent:this,id:d,x:s,y:l,uiManager:T(this,Fn),isCentered:!0,...i});u&&this.add(u)}async deserialize(t){var i;return await((i=T(Fh,dv).get(t.annotationType??t.annotationEditorType))==null?void 0:i.deserialize(t,this,T(this,Fn)))||null}createAndAddNewEditor(t,i,s={}){const l=this.getNextId(),d=pe(this,IO,OX).call(this,{parent:this,id:l,x:t.offsetX,y:t.offsetY,uiManager:T(this,Fn),isCentered:i,...s});return d&&this.add(d),d}addNewEditor(t={}){this.createAndAddNewEditor(pe(this,NO,PX).call(this),!0,t)}setSelected(t){T(this,Fn).setSelected(t)}toggleSelected(t){T(this,Fn).toggleSelected(t)}unselect(t){T(this,Fn).unselect(t)}pointerup(t){var l;const{isMac:i}=qo.platform;if(t.button!==0||t.ctrlKey&&i||t.target!==this.div||!T(this,lv)||(re(this,lv,!1),(l=T(this,qu,ep))!=null&&l.isDrawer&&T(this,qu,ep).supportMultipleDrawings))return;if(!T(this,yR)){re(this,yR,!0);return}const s=T(this,Fn).getMode();if(s===_i.STAMP||s===_i.SIGNATURE){T(this,Fn).unselectAll();return}this.createAndAddNewEditor(t,!1)}pointerdown(t){var l;if(T(this,Fn).getMode()===_i.HIGHLIGHT&&this.enableTextSelection(),T(this,lv)){re(this,lv,!1);return}const{isMac:i}=qo.platform;if(t.button!==0||t.ctrlKey&&i||t.target!==this.div)return;if(re(this,lv,!0),(l=T(this,qu,ep))!=null&&l.isDrawer){this.startDrawingSession(t);return}const s=T(this,Fn).getActive();re(this,yR,!s||s.isEmpty())}startDrawingSession(t){if(this.div.focus({preventScroll:!0}),T(this,ef)){T(this,qu,ep).startDrawing(this,T(this,Fn),!1,t);return}T(this,Fn).setCurrentDrawingSession(this),re(this,ef,new AbortController);const i=T(this,Fn).combinedSignal(T(this,ef));this.div.addEventListener("blur",({relatedTarget:s})=>{s&&!this.div.contains(s)&&(re(this,yg,null),this.commitOrRemove())},{signal:i}),T(this,qu,ep).startDrawing(this,T(this,Fn),!1,t)}pause(t){if(t){const{activeElement:i}=document;this.div.contains(i)&&re(this,yg,i);return}T(this,yg)&&setTimeout(()=>{var i;(i=T(this,yg))==null||i.focus(),re(this,yg,null)},0)}endDrawingSession(t=!1){return T(this,ef)?(T(this,Fn).setCurrentDrawingSession(null),T(this,ef).abort(),re(this,ef,null),re(this,yg,null),T(this,qu,ep).endDrawing(t)):null}findNewParent(t,i,s){const l=T(this,Fn).findParent(i,s);return l===null||l===this?!1:(l.changeParent(t),!0)}commitOrRemove(){return T(this,ef)?(this.endDrawingSession(),!0):!1}onScaleChanging(){T(this,ef)&&T(this,qu,ep).onScaleChangingWhenDrawing(this)}destroy(){var t,i;this.commitOrRemove(),((t=T(this,Fn).getActive())==null?void 0:t.parent)===this&&(T(this,Fn).commitOrRemove(),T(this,Fn).setActiveEditor(null)),T(this,vg)&&(clearTimeout(T(this,vg)),re(this,vg,null));for(const s of T(this,Ud).values())(i=T(this,lE))==null||i.removePointerInTextLayer(s.contentDiv),s.setParent(null),s.isAttachedToDOM=!1,s.div.remove();this.div=null,T(this,Ud).clear(),T(this,Fn).removeLayer(this)}render({viewport:t}){this.viewport=t,NE(this.div,t);for(const i of T(this,Fn).getEditors(this.pageIndex))this.add(i),i.rebuild();this.updateMode()}update({viewport:t}){T(this,Fn).commitOrRemove(),pe(this,wR,DM).call(this);const i=this.viewport.rotation,s=t.rotation;if(this.viewport=t,NE(this.div,{rotation:s}),i!==s)for(const l of T(this,Ud).values())l.rotate(s)}get pageDimensions(){const{pageWidth:t,pageHeight:i}=this.viewport.rawDims;return[t,i]}get scale(){return T(this,Fn).viewParameters.realScale}};lE=new WeakMap,yR=new WeakMap,Ip=new WeakMap,ov=new WeakMap,vg=new WeakMap,Ud=new WeakMap,lv=new WeakMap,_R=new WeakMap,cE=new WeakMap,ef=new WeakMap,yg=new WeakMap,vo=new WeakMap,_g=new WeakMap,cv=new WeakMap,ER=new WeakMap,Fn=new WeakMap,dv=new WeakMap,Lj=new WeakSet,bwe=function(t){T(this,Fn).unselectAll();const{target:i}=t;if(i===T(this,vo).div||(i.getAttribute("role")==="img"||i.classList.contains("endOfContent"))&&T(this,vo).div.contains(i)){const{isMac:s}=qo.platform;if(t.button!==0||t.ctrlKey&&s)return;T(this,Fn).showAllEditors("highlight",!0,!0),T(this,vo).div.classList.add("free"),this.toggleDrawing(),U7.startHighlighting(this,T(this,Fn).direction==="ltr",{target:T(this,vo).div,x:t.x,y:t.y}),T(this,vo).div.addEventListener("pointerup",()=>{T(this,vo).div.classList.remove("free"),this.toggleDrawing(!0)},{once:!0,signal:T(this,Fn)._signal}),t.preventDefault()}},qu=new WeakSet,ep=function(){return T(Fh,dv).get(T(this,Fn).getMode())},IO=new WeakSet,OX=function(t){const i=T(this,qu,ep);return i?new i.prototype.constructor(t):null},NO=new WeakSet,PX=function(){const{x:t,y:i,width:s,height:l}=this.div.getBoundingClientRect(),d=Math.max(0,t),u=Math.max(0,i),p=Math.min(window.innerWidth,t+s),g=Math.min(window.innerHeight,i+l),_=(d+p)/2-t,y=(u+g)/2-i,[E,b]=this.viewport.rotation%180===0?[_,y]:[y,_];return{offsetX:E,offsetY:b}},wR=new WeakSet,DM=function(){for(const t of T(this,Ud).values())t.isEmpty()&&t.remove()},sn(Fh,"_initialized",!1),ee(Fh,dv,new Map([uX,wX,AX,U7,xX].map(t=>[t._editorType,t])));let NX=Fh;var tf,Zl,dE,OO,Dj,Cwe,PO,DX,kj,Twe,LO,kX;const Ua=class Ua{constructor({pageIndex:t}){ee(this,PO);ee(this,kj);ee(this,LO);ee(this,tf,null);ee(this,Zl,new Map);ee(this,dE,new Map);this.pageIndex=t}setParent(t){if(!T(this,tf)){re(this,tf,t);return}if(T(this,tf)!==t){if(T(this,Zl).size>0)for(const i of T(this,Zl).values())i.remove(),t.append(i);re(this,tf,t)}}static get _svgFactory(){return Ki(this,"_svgFactory",new M7)}draw(t,i=!1,s=!1){const l=ao(Ua,OO)._++,d=pe(this,PO,DX).call(this),u=Ua._svgFactory.createElement("defs");d.append(u);const p=Ua._svgFactory.createElement("path");u.append(p);const g=`path_p${this.pageIndex}_${l}`;p.setAttribute("id",g),p.setAttribute("vector-effect","non-scaling-stroke"),i&&T(this,dE).set(l,p);const _=s?pe(this,kj,Twe).call(this,u,g):null,y=Ua._svgFactory.createElement("use");return d.append(y),y.setAttribute("href",`#${g}`),this.updateProperties(d,t),T(this,Zl).set(l,d),{id:l,clipPathId:`url(#${_})`}}drawOutline(t,i){const s=ao(Ua,OO)._++,l=pe(this,PO,DX).call(this),d=Ua._svgFactory.createElement("defs");l.append(d);const u=Ua._svgFactory.createElement("path");d.append(u);const p=`path_p${this.pageIndex}_${s}`;u.setAttribute("id",p),u.setAttribute("vector-effect","non-scaling-stroke");let g;if(i){const E=Ua._svgFactory.createElement("mask");d.append(E),g=`mask_p${this.pageIndex}_${s}`,E.setAttribute("id",g),E.setAttribute("maskUnits","objectBoundingBox");const b=Ua._svgFactory.createElement("rect");E.append(b),b.setAttribute("width","1"),b.setAttribute("height","1"),b.setAttribute("fill","white");const A=Ua._svgFactory.createElement("use");E.append(A),A.setAttribute("href",`#${p}`),A.setAttribute("stroke","none"),A.setAttribute("fill","black"),A.setAttribute("fill-rule","nonzero"),A.classList.add("mask")}const _=Ua._svgFactory.createElement("use");l.append(_),_.setAttribute("href",`#${p}`),g&&_.setAttribute("mask",`url(#${g})`);const y=_.cloneNode();return l.append(y),_.classList.add("mainOutline"),y.classList.add("secondaryOutline"),this.updateProperties(l,t),T(this,Zl).set(s,l),s}finalizeDraw(t,i){T(this,dE).delete(t),this.updateProperties(t,i)}updateProperties(t,i){var g;if(!i)return;const{root:s,bbox:l,rootClass:d,path:u}=i,p=typeof t=="number"?T(this,Zl).get(t):t;if(p){if(s&&pe(this,LO,kX).call(this,p,s),l&&pe(g=Ua,Dj,Cwe).call(g,p,l),d){const{classList:_}=p;for(const[y,E]of Object.entries(d))_.toggle(y,E)}if(u){const y=p.firstChild.firstChild;pe(this,LO,kX).call(this,y,u)}}}updateParent(t,i){if(i===this)return;const s=T(this,Zl).get(t);s&&(T(i,tf).append(s),T(this,Zl).delete(t),T(i,Zl).set(t,s))}remove(t){T(this,dE).delete(t),T(this,tf)!==null&&(T(this,Zl).get(t).remove(),T(this,Zl).delete(t))}destroy(){re(this,tf,null);for(const t of T(this,Zl).values())t.remove();T(this,Zl).clear(),T(this,dE).clear()}};tf=new WeakMap,Zl=new WeakMap,dE=new WeakMap,OO=new WeakMap,Dj=new WeakSet,Cwe=function(t,[i,s,l,d]){const{style:u}=t;u.top=`${100*s}%`,u.left=`${100*i}%`,u.width=`${100*l}%`,u.height=`${100*d}%`},PO=new WeakSet,DX=function(){const t=Ua._svgFactory.create(1,1,!0);return T(this,tf).append(t),t.setAttribute("aria-hidden",!0),t},kj=new WeakSet,Twe=function(t,i){const s=Ua._svgFactory.createElement("clipPath");t.append(s);const l=`clip_${i}`;s.setAttribute("id",l),s.setAttribute("clipPathUnits","objectBoundingBox");const d=Ua._svgFactory.createElement("use");return s.append(d),d.setAttribute("href",`#${i}`),d.classList.add("clip"),l},LO=new WeakSet,kX=function(t,i){for(const[s,l]of Object.entries(i))l===null?t.removeAttribute(s):t.setAttribute(s,l)},ee(Ua,Dj),ee(Ua,OO,0);let LX=Ua;globalThis._pdfjsTestingUtils={HighlightOutliner:fX};globalThis.pdfjsLib={AbortException:Dv,AnnotationEditorLayer:NX,AnnotationEditorParamsType:cr,AnnotationEditorType:_i,AnnotationEditorUIManager:OE,AnnotationLayer:lX,AnnotationMode:c1,AnnotationType:Ta,build:FZe,ColorPicker:D7,createValidAbsoluteUrl:y2e,DOMSVGFactory:M7,DrawLayer:LX,FeatureTest:qo,fetchData:tP,getDocument:SEe,getFilenameFromUrl:OQe,getPdfFilenameFromUrl:PQe,getRGB:YU,getUuid:w2e,getXfaPageViewport:DQe,GlobalWorkerOptions:Pp,ImageKind:rM,InvalidPDFException:_Y,isDataScheme:qU,isPdfFile:lZ,isValidExplicitDest:WQe,MathClamp:tc,noContextMenu:rh,normalizeUnicode:AQe,OPS:I7,OutputScale:Up,PasswordResponses:_Qe,PDFDataRangeTransport:bEe,PDFDateString:O7,PDFWorker:iN,PermissionFlag:yQe,PixelsPerInch:kv,RenderingCancelledException:oZ,ResponseException:N7,setLayerDimensions:NE,shadow:Ki,SignatureExtractor:za,stopEvent:Ra,SupportedImageMimeTypes:wY,TextLayer:tN,TouchManager:L7,updateUrlHash:_2e,Util:zn,VerbosityLevel:WU,version:UZe,XfaLayer:xEe};const cet="/assets/pdf.worker-DcN26wb1.mjs";Pp.workerSrc=cet;function gZ({fileUrl:n,isModalOpen:t,className:i=""}){const s=k.useRef(null),[l,d]=k.useState(1),[u,p]=k.useState(null),[g,_]=k.useState(0);k.useEffect(()=>{SEe(n).promise.then(b=>{p(b),_(b.numPages)})},[n]),k.useEffect(()=>{u&&y()},[u,l]);const y=async()=>{const E=s.current;E.innerHTML="";for(let b=1;b<=u.numPages;b++){const A=await u.getPage(b),N=A.getViewport({scale:l}),O=document.createElement("canvas"),D=O.getContext("2d");O.height=N.height,O.width=N.width,O.style.display="block",O.style.margin="0 auto",O.style.width="100%",E.appendChild(O),await A.render({canvasContext:D,viewport:N}).promise}g===1?(E.style.display="block",E.style.height="content-fit"):(E.style.display="block",E.style.height="auto")};return h.jsx("div",{className:`${i}`,style:{height:"100%"},children:h.jsx("div",{ref:s,style:{width:"100%",height:"auto",overflowY:g>1?"auto":"hidden",backgroundColor:"#fff",textAlign:"center",WebkitOverflowScrolling:"touch"}})})}const Rwe="carousel",xwe="controller",det="navigation",uet="no-scroll",vZ="portal",het="root",Awe="toolbar",Mfe="zoom",dK="loading",uK="error",hK="complete",fet="placeholder",pet=n=>`active-slide-${n}`,met="fullsize",yZ="flex_center",get="no_scroll",Iwe="no_scroll_padding",Nwe="slide_wrapper",vet="slide_wrapper_interactive",T_="prev",R_="next",jfe="swipe",jR="close",Owe="onPointerDown",Pwe="onPointerMove",Lwe="onPointerUp",Dwe="onPointerLeave",kwe="onPointerCancel",_Z="onKeyDown",yet="onKeyUp",EZ="onWheel",_et="Escape",Eet="ArrowLeft",wet="ArrowRight",bet="button",MX="icon",Mwe="contain",Ufe="cover",jwe="Unknown action type",Uwe="yarl__";function Mp(...n){return[...n].filter(Boolean).join(" ")}function Er(n){return`${Uwe}${n}`}function Xc(n){return`--${Uwe}${n}`}function aP(n,t){return`${n}${t?`_${t}`:""}`}function wZ(n){return t=>aP(n,t)}function Cet(n,t){var i;return(i=n==null?void 0:n[t])!==null&&i!==void 0?i:t}function SZ(...n){return()=>{n.forEach(t=>{t()})}}function Hv(n,t,i){return()=>{const s=k.useContext(i);if(!s)throw new Error(`${n} must be used within a ${t}.Provider`);return s}}function bZ(){return typeof window<"u"}function CZ(n,t=0){const i=10**t;return Math.round((n+Number.EPSILON)*i)/i}function ix(n){return n.type===void 0||n.type==="image"}function TZ(n,t){return n.imageFit===Ufe||n.imageFit!==Mwe&&t===Ufe}function QU(n){return typeof n=="string"?Number.parseInt(n,10):n}function B7(n){if(typeof n=="number")return{pixel:n};if(typeof n=="string"){const t=QU(n);return n.endsWith("%")?{percent:t}:{pixel:t}}return{pixel:0}}function Tet(n,t){const i=B7(t),s=i.percent!==void 0?n.width/100*i.percent:i.pixel;return{width:Math.max(n.width-2*s,0),height:Math.max(n.height-2*s,0)}}function Ret(){return(bZ()?window==null?void 0:window.devicePixelRatio:void 0)||1}function Fwe(n,t){return t>0?(n%t+t)%t:0}function Bwe(n){return n.length>0}function Vwe(n,t){return n[Fwe(t,n.length)]}function jX(n,t){return Bwe(n)?Vwe(n,t):void 0}function xet(n){return ix(n)?n.src:void 0}function Aet(n,t,i){if(!i)return n;const{buttons:s,...l}=n,d=s.findIndex(p=>p===t),u=k.isValidElement(i)?k.cloneElement(i,{key:t},null):i;if(d>=0){const p=[...s];return p.splice(d,1,u),{buttons:p,...l}}return{buttons:[u,...s],...l}}function Iet(n,t,i=0){return Math.min(n.preload,Math.max(n.finite?t.length-1:Math.floor(t.length/2),i))}const UX={open:!1,close:()=>{},index:0,slides:[],render:{},plugins:[],toolbar:{buttons:[jR]},labels:{},animation:{fade:250,swipe:500,easing:{fade:"ease",swipe:"ease-out",navigation:"ease-in-out"}},carousel:{finite:!1,preload:2,padding:"16px",spacing:"30%",imageFit:Mwe,imageProps:{}},controller:{ref:null,focus:!0,aria:!1,touchAction:"none",closeOnPullUp:!1,closeOnPullDown:!1,closeOnBackdropClick:!1,preventDefaultWheelX:!0,preventDefaultWheelY:!1},portal:{},noScroll:{disabled:!1},on:{},styles:{},className:""};function Gv(n,t){return{name:n,component:t}}function _o(n,t){return{module:n,children:t}}function zwe(n,t,i){return n.module.name===t?i(n):n.children?[_o(n.module,n.children.flatMap(s=>{var l;return(l=zwe(s,t,i))!==null&&l!==void 0?l:[]}))]:[n]}function Mb(n,t,i){return n.flatMap(s=>{var l;return(l=zwe(s,t,i))!==null&&l!==void 0?l:[]})}function Net(n,t=[],i=[]){let s=n;const l=A=>{const N=[...s];for(;N.length>0;){const O=N.pop();if((O==null?void 0:O.module.name)===A)return!0;O!=null&&O.children&&N.push(...O.children)}return!1},d=(A,N)=>{if(A===""){s=[_o(N,s)];return}s=Mb(s,A,O=>[_o(N,[O])])},u=(A,N)=>{s=Mb(s,A,O=>[_o(O.module,[_o(N,O.children)])])},p=(A,N,O)=>{s=Mb(s,A,D=>{var P;return[_o(D.module,[...O?[_o(N)]:[],...(P=D.children)!==null&&P!==void 0?P:[],...O?[]:[_o(N)]])]})},g=(A,N,O)=>{s=Mb(s,A,D=>[...O?[_o(N)]:[],D,...O?[]:[_o(N)]])},_=A=>{u(xwe,A)},y=(A,N)=>{s=Mb(s,A,O=>[_o(N,O.children)])},E=A=>{s=Mb(s,A,N=>N.children)},b=A=>{i.push(A)};return t.forEach(A=>{A({contains:l,addParent:d,append:u,addChild:p,addSibling:g,addModule:_,replace:y,remove:E,augment:b})}),{config:s,augmentation:A=>i.reduce((N,O)=>O(N),A)}}const Hwe=k.createContext(null),RZ=Hv("useDocument","DocumentContext",Hwe);function Oet({nodeRef:n,children:t}){const i=k.useMemo(()=>{const s=d=>{var u;return((u=d||n.current)===null||u===void 0?void 0:u.ownerDocument)||document};return{getOwnerDocument:s,getOwnerWindow:d=>{var u;return((u=s(d))===null||u===void 0?void 0:u.defaultView)||window}}},[n]);return k.createElement(Hwe.Provider,{value:i},t)}const Gwe=k.createContext(null),ZU=Hv("useEvents","EventsContext",Gwe);function Pet({children:n}){const[t]=k.useState({});k.useEffect(()=>()=>{Object.keys(t).forEach(s=>delete t[s])},[t]);const i=k.useMemo(()=>{const s=(u,p)=>{var g;(g=t[u])===null||g===void 0||g.splice(0,t[u].length,...t[u].filter(_=>_!==p))};return{publish:(...[u,p])=>{var g;(g=t[u])===null||g===void 0||g.forEach(_=>_(p))},subscribe:(u,p)=>(t[u]||(t[u]=[]),t[u].push(p),()=>s(u,p)),unsubscribe:s}},[t]);return k.createElement(Gwe.Provider,{value:i},n)}const Wwe=k.createContext(null),sh=Hv("useLightboxProps","LightboxPropsContext",Wwe);function Let({children:n,...t}){return k.createElement(Wwe.Provider,{value:t},n)}const $we=k.createContext(null),Wv=Hv("useLightboxState","LightboxStateContext",$we),Kwe=k.createContext(null),Det=Hv("useLightboxDispatch","LightboxDispatchContext",Kwe);function ket(n,t){switch(t.type){case"swipe":{const{slides:i}=n,s=(t==null?void 0:t.increment)||0,l=n.globalIndex+s,d=Fwe(l,i.length),u=jX(i,d),p=s||t.duration?{increment:s,duration:t.duration,easing:t.easing}:void 0;return{slides:i,currentIndex:d,globalIndex:l,currentSlide:u,animation:p}}case"update":return t.slides!==n.slides||t.index!==n.currentIndex?{slides:t.slides,currentIndex:t.index,globalIndex:t.index,currentSlide:jX(t.slides,t.index)}:n;default:throw new Error(jwe)}}function Met({slides:n,index:t,children:i}){const[s,l]=k.useReducer(ket,{slides:n,currentIndex:t,globalIndex:t,currentSlide:jX(n,t)});k.useEffect(()=>{l({type:"update",slides:n,index:t})},[n,t]);const d=k.useMemo(()=>({...s,state:s,dispatch:l}),[s,l]);return k.createElement(Kwe.Provider,{value:l},k.createElement($we.Provider,{value:d},i))}const qwe=k.createContext(null),eF=Hv("useTimeouts","TimeoutsContext",qwe);function jet({children:n}){const[t]=k.useState([]);k.useEffect(()=>()=>{t.forEach(s=>window.clearTimeout(s)),t.splice(0,t.length)},[t]);const i=k.useMemo(()=>{const s=u=>{t.splice(0,t.length,...t.filter(p=>p!==u))};return{setTimeout:(u,p)=>{const g=window.setTimeout(()=>{s(g),u()},p);return t.push(g),g},clearTimeout:u=>{u!==void 0&&(s(u),window.clearTimeout(u))}}},[t]);return k.createElement(qwe.Provider,{value:i},n)}const xZ=k.forwardRef(function({label:t,className:i,icon:s,renderIcon:l,onClick:d,style:u,...p},g){const{styles:_,labels:y}=sh(),E=Cet(y,t);return k.createElement("button",{ref:g,type:"button",title:E,"aria-label":E,className:Mp(Er(bet),i),onClick:d,style:{...u,..._.button},...p},l?l():k.createElement(s,{className:Er(MX),style:_.icon}))});function Uet(n,t){const i=s=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24","aria-hidden":"true",focusable:"false",...s},t);return i.displayName=n,i}function ZE(n,t){return Uet(n,k.createElement("g",{fill:"currentColor"},k.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t))}const Fet=ZE("Close",k.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})),Bet=ZE("Previous",k.createElement("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"})),Vet=ZE("Next",k.createElement("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),zet=ZE("Loading",k.createElement(k.Fragment,null,Array.from({length:8}).map((n,t,i)=>k.createElement("line",{key:t,x1:"12",y1:"6.5",x2:"12",y2:"1.8",strokeLinecap:"round",strokeWidth:"2.6",stroke:"currentColor",strokeOpacity:1/i.length*(t+1),transform:`rotate(${360/i.length*t}, 12, 12)`})))),Het=ZE("Error",k.createElement("path",{d:"M21.9,21.9l-8.49-8.49l0,0L3.59,3.59l0,0L2.1,2.1L0.69,3.51L3,5.83V19c0,1.1,0.9,2,2,2h13.17l2.31,2.31L21.9,21.9z M5,18 l3.5-4.5l2.5,3.01L12.17,15l3,3H5z M21,18.17L5.83,3H19c1.1,0,2,0.9,2,2V18.17z"})),Fp=bZ()?k.useLayoutEffect:k.useEffect;function AZ(){const[n,t]=k.useState(!1);return k.useEffect(()=>{var i,s;const l=(i=window.matchMedia)===null||i===void 0?void 0:i.call(window,"(prefers-reduced-motion: reduce)");t(l==null?void 0:l.matches);const d=u=>t(u.matches);return(s=l==null?void 0:l.addEventListener)===null||s===void 0||s.call(l,"change",d),()=>{var u;return(u=l==null?void 0:l.removeEventListener)===null||u===void 0?void 0:u.call(l,"change",d)}},[]),n}function Get(n){let t=0,i=0,s=0;const d=window.getComputedStyle(n).transform.match(/matrix.*\((.+)\)/);if(d){const u=d[1].split(",").map(QU);u.length===6?(t=u[4],i=u[5]):u.length===16&&(t=u[12],i=u[13],s=u[14])}return{x:t,y:i,z:s}}function Ffe(n,t){const i=k.useRef(),s=k.useRef(),l=AZ();return Fp(()=>{var d,u,p;if(n.current&&i.current!==void 0&&!l){const{keyframes:g,duration:_,easing:y,onfinish:E}=t(i.current,n.current.getBoundingClientRect(),Get(n.current))||{};if(g&&_){(d=s.current)===null||d===void 0||d.cancel(),s.current=void 0;try{s.current=(p=(u=n.current).animate)===null||p===void 0?void 0:p.call(u,g,{duration:_,easing:y})}catch(b){console.error(b)}s.current&&(s.current.onfinish=()=>{s.current=void 0,E==null||E()})}}i.current=void 0}),{prepareAnimation:d=>{i.current=d},isAnimationPlaying:()=>{var d;return((d=s.current)===null||d===void 0?void 0:d.playState)==="running"}}}function Ywe(){const n=k.useRef(null),t=k.useRef(),[i,s]=k.useState();return{setContainerRef:k.useCallback(d=>{n.current=d,t.current&&(t.current.disconnect(),t.current=void 0);const u=()=>{if(d){const p=window.getComputedStyle(d),g=_=>parseFloat(_)||0;s({width:Math.round(d.clientWidth-g(p.paddingLeft)-g(p.paddingRight)),height:Math.round(d.clientHeight-g(p.paddingTop)-g(p.paddingBottom))})}else s(void 0)};u(),d&&typeof ResizeObserver<"u"&&(t.current=new ResizeObserver(u),t.current.observe(d))},[]),containerRef:n,containerRect:i}}function kM(){const n=k.useRef(),{setTimeout:t,clearTimeout:i}=eF();return k.useCallback((s,l)=>{i(n.current),n.current=t(s,l>0?l:0)},[t,i])}function Br(n){const t=k.useRef(n);return Fp(()=>{t.current=n}),k.useCallback((...i)=>{var s;return(s=t.current)===null||s===void 0?void 0:s.call(t,...i)},[])}function Bfe(n,t){typeof n=="function"?n(t):n&&(n.current=t)}function FX(n,t){return k.useMemo(()=>n==null&&t==null?null:i=>{Bfe(n,i),Bfe(t,i)},[n,t])}function Wet(n,t=!1){const i=k.useRef();Fp(()=>{t&&i.current&&(i.current=!1,n())},[t,n]);const s=k.useCallback(()=>{i.current=!0},[]),l=k.useCallback(()=>{i.current=!1},[]);return{onFocus:s,onBlur:l}}function IZ(){const[n,t]=k.useState(!1);return Fp(()=>{t(window.getComputedStyle(window.document.documentElement).direction==="rtl")},[]),n}function $et(){const[n]=k.useState({}),t=k.useCallback((l,d)=>{var u;(u=n[l])===null||u===void 0||u.forEach(p=>{d.isPropagationStopped()||p(d)})},[n]),i=k.useMemo(()=>({onPointerDown:l=>t(Owe,l),onPointerMove:l=>t(Pwe,l),onPointerUp:l=>t(Lwe,l),onPointerLeave:l=>t(Dwe,l),onPointerCancel:l=>t(kwe,l),onKeyDown:l=>t(_Z,l),onKeyUp:l=>t(yet,l),onWheel:l=>t(EZ,l)}),[t]),s=k.useCallback((l,d)=>(n[l]||(n[l]=[]),n[l].unshift(d),()=>{const u=n[l];u&&u.splice(0,u.length,...u.filter(p=>p!==d))}),[n]);return{registerSensors:i,subscribeSensors:s}}function Vfe(n,t){const i=k.useRef(0),s=kM(),l=Br((...d)=>{i.current=Date.now(),n(d)});return k.useCallback((...d)=>{s(()=>{l(d)},t-(Date.now()-i.current))},[t,l,s])}const fK=wZ("slide"),pK=wZ("slide_image");function V7({slide:n,offset:t,render:i,rect:s,imageFit:l,imageProps:d,onClick:u,onLoad:p,onError:g,style:_}){var y,E,b,A,N,O,D;const[P,j]=k.useState(dK),{publish:M}=ZU(),{setTimeout:V}=eF(),H=k.useRef(null);k.useEffect(()=>{t===0&&M(pet(P))},[t,P,M]);const $=Br(Fe=>{("decode"in Fe?Fe.decode():Promise.resolve()).catch(()=>{}).then(()=>{Fe.parentNode&&(j(hK),V(()=>{p==null||p(Fe)},0))})}),Q=k.useCallback(Fe=>{H.current=Fe,Fe!=null&&Fe.complete&&$(Fe)},[$]),Y=k.useCallback(Fe=>{$(Fe.currentTarget)},[$]),le=Br(()=>{j(uK),g==null||g()}),ae=TZ(n,l),te=(Fe,je)=>Number.isFinite(Fe)?Fe:je,de=te(Math.max(...((E=(y=n.srcSet)===null||y===void 0?void 0:y.map(Fe=>Fe.width))!==null&&E!==void 0?E:[]).concat(n.width?[n.width]:[]).filter(Boolean)),((b=H.current)===null||b===void 0?void 0:b.naturalWidth)||0),G=te(Math.max(...((N=(A=n.srcSet)===null||A===void 0?void 0:A.map(Fe=>Fe.height))!==null&&N!==void 0?N:[]).concat(n.height?[n.height]:[]).filter(Boolean)),((O=H.current)===null||O===void 0?void 0:O.naturalHeight)||0),ie=de&&G?{maxWidth:`min(${de}px, 100%)`,maxHeight:`min(${G}px, 100%)`}:{maxWidth:"100%",maxHeight:"100%"},_e=(D=n.srcSet)===null||D===void 0?void 0:D.sort((Fe,je)=>Fe.width-je.width).map(Fe=>`${Fe.src} ${Fe.width}w`).join(", "),he=()=>s&&!ae&&n.width&&n.height?s.height/n.height*n.width:Number.MAX_VALUE,Ce=_e&&s&&bZ()?`${Math.round(Math.min(he(),s.width))}px`:void 0,{style:fe,className:me,...Ne}=d||{};return k.createElement(k.Fragment,null,k.createElement("img",{ref:Q,onLoad:Y,onError:le,onClick:u,draggable:!1,className:Mp(Er(pK()),ae&&Er(pK("cover")),P!==hK&&Er(pK("loading")),me),style:{...ie,..._,...fe},...Ne,alt:n.alt,sizes:Ce,srcSet:_e,src:n.src}),P!==hK&&k.createElement("div",{className:Er(fK(fet))},P===dK&&(i!=null&&i.iconLoading?i.iconLoading():k.createElement(zet,{className:Mp(Er(MX),Er(fK(dK)))})),P===uK&&(i!=null&&i.iconError?i.iconError():k.createElement(Het,{className:Mp(Er(MX),Er(fK(uK)))}))))}const Ket=k.forwardRef(function({className:t,children:i,...s},l){const d=k.useRef(null);return k.createElement(Oet,{nodeRef:d},k.createElement("div",{ref:FX(l,d),className:Mp(Er("root"),t),...s},i))});var vl;(function(n){n[n.NONE=0]="NONE",n[n.SWIPE=1]="SWIPE",n[n.PULL=2]="PULL",n[n.ANIMATION=3]="ANIMATION"})(vl||(vl={}));function Xwe(n,t,i,s,l){k.useEffect(()=>l?()=>{}:SZ(n(Owe,t),n(Pwe,i),n(Lwe,s),n(Dwe,s),n(kwe,s)),[n,t,i,s,l])}var jh;(function(n){n[n.NONE=0]="NONE",n[n.SWIPE=1]="SWIPE",n[n.PULL=2]="PULL"})(jh||(jh={}));const mK=30;function qet(n,t,i,s,l,d,u,p,g,_,y,E,b,A){const N=k.useRef(0),O=k.useRef([]),D=k.useRef(),P=k.useRef(0),j=k.useRef(jh.NONE),M=k.useCallback(le=>{D.current===le.pointerId&&(D.current=void 0,j.current=jh.NONE);const ae=O.current;ae.splice(0,ae.length,...ae.filter(te=>te.pointerId!==le.pointerId))},[]),V=k.useCallback(le=>{M(le),le.persist(),O.current.push(le)},[M]),H=Br(le=>{V(le)}),$=(le,ae)=>_&&le>ae||g&&le<-ae,Q=Br(le=>{if(O.current.find(ae=>ae.pointerId===le.pointerId)&&D.current===le.pointerId){const ae=Date.now()-P.current,te=N.current;j.current===jh.SWIPE?Math.abs(te)>.3*i||Math.abs(te)>5&&ae{const ae=O.current.find(te=>te.pointerId===le.pointerId);if(ae){const te=D.current===le.pointerId;if(le.buttons===0){te&&N.current!==0?Q(le):M(ae);return}const de=le.clientX-ae.clientX,G=le.clientY-ae.clientY;if(D.current===void 0){const ie=_e=>{V(le),D.current=le.pointerId,P.current=Date.now(),j.current=_e};Math.abs(de)>Math.abs(G)&&Math.abs(de)>mK&&t(de)?(ie(jh.SWIPE),l()):Math.abs(G)>Math.abs(de)&&$(G,mK)&&(ie(jh.PULL),y())}else te&&(j.current===jh.SWIPE?(N.current=de,d(de)):j.current===jh.PULL&&(N.current=G,E(G)))}});Xwe(n,H,Y,Q)}function Yet({preventDefaultWheelX:n,preventDefaultWheelY:t}){const i=k.useRef(null),s=Br(l=>{const d=Math.abs(l.deltaX)>Math.abs(l.deltaY);(d&&n||!d&&t||l.ctrlKey)&&l.preventDefault()});return k.useCallback(l=>{var d;l?l.addEventListener("wheel",s,{passive:!1}):(d=i.current)===null||d===void 0||d.removeEventListener("wheel",s),i.current=l},[s])}function Xet(n,t,i,s,l,d,u,p,g){const _=k.useRef(0),y=k.useRef(0),E=k.useRef(),b=k.useRef(),A=k.useRef(0),N=k.useRef(0),{setTimeout:O,clearTimeout:D}=eF(),P=k.useCallback(()=>{E.current&&(D(E.current),E.current=void 0)},[D]),j=k.useCallback(()=>{b.current&&(D(b.current),b.current=void 0)},[D]),M=Br(()=>{n!==vl.SWIPE&&(_.current=0,N.current=0,P(),j())});k.useEffect(M,[n,M]);const V=Br($=>{b.current=void 0,_.current===$&&g(_.current)}),H=Br($=>{if(!$.ctrlKey&&!(Math.abs($.deltaY)>Math.abs($.deltaX)))if(n===vl.NONE){if(Math.abs($.deltaX)<=1.2*Math.abs(A.current)){A.current=$.deltaX;return}if(!i(-$.deltaX))return;if(y.current+=$.deltaX,P(),Math.abs(y.current)>30)y.current=0,A.current=0,N.current=Date.now(),d();else{const Q=y.current;E.current=O(()=>{E.current=void 0,Q===y.current&&(y.current=0)},l)}}else if(n===vl.SWIPE){let Q=_.current-$.deltaX;if(Q=Math.min(Math.abs(Q),s)*Math.sign(Q),_.current=Q,u(Q),j(),Math.abs(Q)>.2*s){A.current=$.deltaX,p(Q,Date.now()-N.current);return}b.current=O(()=>V(Q),2*l)}else A.current=$.deltaX});k.useEffect(()=>t(EZ,H),[t,H])}const zfe=wZ("container"),Jwe=k.createContext(null),Ug=Hv("useController","ControllerContext",Jwe);function Jet({children:n,...t}){var i;const{carousel:s,animation:l,controller:d,on:u,styles:p,render:g}=t,{closeOnPullUp:_,closeOnPullDown:y,preventDefaultWheelX:E,preventDefaultWheelY:b}=d,[A,N]=k.useState(),O=Wv(),D=Det(),[P,j]=k.useState(vl.NONE),M=k.useRef(0),V=k.useRef(0),H=k.useRef(1),{registerSensors:$,subscribeSensors:Q}=$et(),{subscribe:Y,publish:le}=ZU(),ae=kM(),te=kM(),de=kM(),{containerRef:G,setContainerRef:ie,containerRect:_e}=Ywe(),he=FX(Yet({preventDefaultWheelX:E,preventDefaultWheelY:b}),ie),Ce=k.useRef(null),fe=FX(Ce,void 0),{getOwnerDocument:me}=RZ(),Ne=IZ(),Fe=it=>(Ne?-1:1)*(typeof it=="number"?it:1),je=Br(()=>{var it;return(it=G.current)===null||it===void 0?void 0:it.focus()}),Ve=Br(()=>t),Re=Br(()=>O),Be=k.useCallback(it=>le(T_,it),[le]),Xe=k.useCallback(it=>le(R_,it),[le]),we=k.useCallback(()=>le(jR),[le]),Ge=it=>!(s.finite&&(Fe(it)>0&&O.currentIndex===0||Fe(it)<0&&O.currentIndex===O.slides.length-1)),rt=it=>{var Me;M.current=it,(Me=G.current)===null||Me===void 0||Me.style.setProperty(Xc("swipe_offset"),`${Math.round(it)}px`)},pt=it=>{var Me,We;V.current=it,H.current=(()=>{const Lt=y&&it>0?it:_&&it<0?-it:0;return Math.min(Math.max(CZ(1-Lt/60*(1-.5),2),.5),1)})(),(Me=G.current)===null||Me===void 0||Me.style.setProperty(Xc("pull_offset"),`${Math.round(it)}px`),(We=G.current)===null||We===void 0||We.style.setProperty(Xc("pull_opacity"),`${H.current}`)},{prepareAnimation:Ze}=Ffe(Ce,(it,Me,We)=>{if(Ce.current&&_e)return{keyframes:[{transform:`translate(0, ${it.rect.y-Me.y+We.y}px)`,opacity:it.opacity},{transform:"translate(0, 0)",opacity:1}],duration:it.duration,easing:l.easing.fade}}),Je=(it,Me)=>{if(_||y){pt(it);let We=0;Ce.current&&(We=l.fade*(Me?2:1),Ze({rect:Ce.current.getBoundingClientRect(),opacity:H.current,duration:We})),de(()=>{pt(0),j(vl.NONE)},We),j(vl.ANIMATION),Me||we()}},{prepareAnimation:_t,isAnimationPlaying:Xt}=Ffe(Ce,(it,Me,We)=>{var bt;if(Ce.current&&_e&&(!((bt=O.animation)===null||bt===void 0)&&bt.duration)){const St=B7(s.spacing),Lt=(St.percent?St.percent*_e.width/100:St.pixel)||0;return{keyframes:[{transform:`translate(${Fe(O.globalIndex-it.index)*(_e.width+Lt)+it.rect.x-Me.x+We.x}px, 0)`},{transform:"translate(0, 0)"}],duration:O.animation.duration,easing:O.animation.easing}}}),Ht=Br(it=>{var Me,We;const bt=it.offset||0,St=bt?l.swipe:(Me=l.navigation)!==null&&Me!==void 0?Me:l.swipe,Lt=!bt&&!Xt()?l.easing.navigation:l.easing.swipe;let{direction:tn}=it;const un=(We=it.count)!==null&&We!==void 0?We:1;let an=vl.ANIMATION,ye=St*un;if(!tn){const ne=_e==null?void 0:_e.width,Se=it.duration||0,Ue=ne?St/ne*Math.abs(bt):St;un!==0?(Se0?T_:R_):ye=St/2}let J=0;tn===T_?Ge(Fe(1))?J=-un:(an=vl.NONE,ye=St):tn===R_&&(Ge(Fe(-1))?J=un:(an=vl.NONE,ye=St)),ye=Math.round(ye),te(()=>{rt(0),j(vl.NONE)},ye),Ce.current&&_t({rect:Ce.current.getBoundingClientRect(),index:O.globalIndex}),j(an),le(jfe,{type:"swipe",increment:J,duration:ye,easing:Lt})});k.useEffect(()=>{var it,Me;!((it=O.animation)===null||it===void 0)&&it.increment&&(!((Me=O.animation)===null||Me===void 0)&&Me.duration)&&ae(()=>D({type:"swipe",increment:0}),O.animation.duration)},[O.animation,D,ae]);const gn=[Q,Ge,(_e==null?void 0:_e.width)||0,l.swipe,()=>j(vl.SWIPE),it=>rt(it),(it,Me)=>Ht({offset:it,duration:Me,count:1}),it=>Ht({offset:it,count:0})],It=[()=>{y&&j(vl.PULL)},it=>pt(it),it=>Je(it),it=>Je(it,!0)];qet(...gn,_,y,...It),Xet(P,...gn);const xt=Br(()=>{d.focus&&me().querySelector(`.${Er(vZ)} .${Er(zfe())}`)&&je()});k.useEffect(xt,[xt]);const mt=Br(()=>{var it;(it=u.view)===null||it===void 0||it.call(u,{index:O.currentIndex})});k.useEffect(mt,[O.globalIndex,mt]),k.useEffect(()=>SZ(Y(T_,it=>Ht({direction:T_,...it})),Y(R_,it=>Ht({direction:R_,...it})),Y(jfe,it=>D(it))),[Y,Ht,D]);const dt=k.useMemo(()=>({prev:Be,next:Xe,close:we,focus:je,slideRect:_e?Tet(_e,s.padding):{width:0,height:0},containerRect:_e||{width:0,height:0},subscribeSensors:Q,containerRef:G,setCarouselRef:fe,toolbarWidth:A,setToolbarWidth:N}),[Be,Xe,we,je,Q,_e,G,fe,A,N,s.padding]);return k.useImperativeHandle(d.ref,()=>({prev:Be,next:Xe,close:we,focus:je,getLightboxProps:Ve,getLightboxState:Re}),[Be,Xe,we,je,Ve,Re]),k.createElement("div",{ref:he,className:Mp(Er(zfe()),Er(yZ)),style:{...P===vl.SWIPE?{[Xc("swipe_offset")]:`${Math.round(M.current)}px`}:null,...P===vl.PULL?{[Xc("pull_offset")]:`${Math.round(V.current)}px`,[Xc("pull_opacity")]:`${H.current}`}:null,...d.touchAction!=="none"?{[Xc("controller_touch_action")]:d.touchAction}:null,...p.container},...d.aria?{role:"presentation","aria-live":"polite"}:null,tabIndex:-1,...$},_e&&k.createElement(Jwe.Provider,{value:dt},n,(i=g.controls)===null||i===void 0?void 0:i.call(g)))}const Qet=Gv(xwe,Jet);function m_(n){return aP(Rwe,n)}function Hfe(n){return aP("slide",n)}function Zet({slide:n,offset:t}){const i=k.useRef(null),{currentIndex:s}=Wv(),{slideRect:l,close:d}=Ug(),{render:u,carousel:{imageFit:p,imageProps:g},on:{click:_},controller:{closeOnBackdropClick:y},styles:{slide:E}}=sh(),b=()=>{var N,O,D,P;let j=(N=u.slide)===null||N===void 0?void 0:N.call(u,{slide:n,offset:t,rect:l});return!j&&ix(n)&&(j=k.createElement(V7,{slide:n,offset:t,render:u,rect:l,imageFit:p,imageProps:g,onClick:t===0?()=>_==null?void 0:_({index:s}):void 0})),j?k.createElement(k.Fragment,null,(O=u.slideHeader)===null||O===void 0?void 0:O.call(u,{slide:n}),((D=u.slideContainer)!==null&&D!==void 0?D:({children:M})=>M)({slide:n,children:j}),(P=u.slideFooter)===null||P===void 0?void 0:P.call(u,{slide:n})):null},A=N=>{const O=i.current,D=N.target instanceof HTMLElement?N.target:void 0;y&&D&&O&&(D===O||Array.from(O.children).find(P=>P===D)&&D.classList.contains(Er(Nwe)))&&d()};return k.createElement("div",{ref:i,className:Mp(Er(Hfe()),t===0&&Er(Hfe("current")),Er(yZ)),onClick:A,style:E},b())}function ett(){const n=sh().styles.slide;return k.createElement("div",{className:Er("slide"),style:n})}function ttt({carousel:n}){const{slides:t,currentIndex:i,globalIndex:s}=Wv(),{setCarouselRef:l}=Ug(),d=B7(n.spacing),u=B7(n.padding),p=Iet(n,t,1),g=[];if(Bwe(t))for(let _=i-p;_<=i+p;_+=1){const y=Vwe(t,_),E=s-i+_,b=n.finite&&(_<0||_>t.length-1);g.push(b?{key:E}:{key:[`${E}`,xet(y)].filter(Boolean).join("|"),offset:_-i,slide:y})}return k.createElement("div",{ref:l,className:Mp(Er(m_()),g.length>0&&Er(m_("with_slides"))),style:{[`${Xc(m_("slides_count"))}`]:g.length,[`${Xc(m_("spacing_px"))}`]:d.pixel||0,[`${Xc(m_("spacing_percent"))}`]:d.percent||0,[`${Xc(m_("padding_px"))}`]:u.pixel||0,[`${Xc(m_("padding_percent"))}`]:u.percent||0}},g.map(({key:_,slide:y,offset:E})=>y?k.createElement(Zet,{key:_,slide:y,offset:E}):k.createElement(ett,{key:_})))}const ntt=Gv(Rwe,ttt);function Qwe(){const{carousel:n}=sh(),{slides:t,currentIndex:i}=Wv(),s=t.length===0||n.finite&&i===0,l=t.length===0||n.finite&&i===t.length-1;return{prevDisabled:s,nextDisabled:l}}function itt(n){var t;const i=IZ(),{publish:s}=ZU(),{animation:l}=sh(),{prevDisabled:d,nextDisabled:u}=Qwe(),p=((t=l.navigation)!==null&&t!==void 0?t:l.swipe)/2,g=Vfe(()=>s(T_),p),_=Vfe(()=>s(R_),p),y=Br(E=>{switch(E.key){case _et:s(jR);break;case Eet:(i?u:d)||(i?_:g)();break;case wet:(i?d:u)||(i?g:_)();break}});k.useEffect(()=>n(_Z,y),[n,y])}function Gfe({label:n,icon:t,renderIcon:i,action:s,onClick:l,disabled:d,style:u}){return k.createElement(xZ,{label:n,icon:t,renderIcon:i,className:Er(`navigation_${s}`),disabled:d,onClick:l,style:u,...Wet(Ug().focus,d)})}function rtt({render:{buttonPrev:n,buttonNext:t,iconPrev:i,iconNext:s},styles:l}){const{prev:d,next:u,subscribeSensors:p}=Ug(),{prevDisabled:g,nextDisabled:_}=Qwe();return itt(p),k.createElement(k.Fragment,null,n?n():k.createElement(Gfe,{label:"Previous",action:T_,icon:Bet,renderIcon:i,style:l.navigationPrev,disabled:g,onClick:d}),t?t():k.createElement(Gfe,{label:"Next",action:R_,icon:Vet,renderIcon:s,style:l.navigationNext,disabled:_,onClick:u}))}const stt=Gv(det,rtt),Wfe=Er(get),att=Er(Iwe);function ott(n){return"style"in n}function $fe(n,t,i){const s=window.getComputedStyle(n),l=i?"padding-left":"padding-right",d=i?s.paddingLeft:s.paddingRight,u=n.style.getPropertyValue(l);return n.style.setProperty(l,`${(QU(d)||0)+t}px`),()=>{u?n.style.setProperty(l,u):n.style.removeProperty(l)}}function ltt({noScroll:{disabled:n},children:t}){const i=IZ(),{getOwnerDocument:s,getOwnerWindow:l}=RZ();return k.useEffect(()=>{if(n)return()=>{};const d=[],u=l(),{body:p,documentElement:g}=s(),_=Math.round(u.innerWidth-g.clientWidth);if(_>0){d.push($fe(p,_,i));const y=p.getElementsByTagName("*");for(let E=0;E{p.classList.remove(Wfe),d.forEach(y=>y())}},[i,n,s,l]),k.createElement(k.Fragment,null,t)}const ctt=Gv(uet,ltt);function Kfe(n){return aP(vZ,n)}function qfe(n,t,i){const s=n.getAttribute(t);return n.setAttribute(t,i),()=>{s?n.setAttribute(t,s):n.removeAttribute(t)}}function dtt({children:n,animation:t,styles:i,className:s,on:l,portal:d,close:u}){const[p,g]=k.useState(!1),[_,y]=k.useState(!1),E=k.useRef([]),b=k.useRef(null),{setTimeout:A}=eF(),{subscribe:N}=ZU(),D=AZ()?0:t.fade;k.useEffect(()=>(g(!0),()=>{g(!1),y(!1)}),[]);const P=Br(()=>{E.current.forEach(H=>H()),E.current=[]}),j=Br(()=>{var H;y(!1),P(),(H=l.exiting)===null||H===void 0||H.call(l),A(()=>{var $;($=l.exited)===null||$===void 0||$.call(l),u()},D)});k.useEffect(()=>N(jR,j),[N,j]);const M=Br(H=>{var $,Q,Y;H.scrollTop,y(!0),($=l.entering)===null||$===void 0||$.call(l);const le=(Y=(Q=H.parentNode)===null||Q===void 0?void 0:Q.children)!==null&&Y!==void 0?Y:[];for(let ae=0;ae{var ae,te;(te=(ae=b.current)===null||ae===void 0?void 0:ae.focus)===null||te===void 0||te.call(ae)}),A(()=>{var ae;(ae=l.entered)===null||ae===void 0||ae.call(l)},D)}),V=k.useCallback(H=>{H?M(H):P()},[M,P]);return p?BJ.createPortal(k.createElement(Ket,{ref:V,className:Mp(s,Er(Kfe()),Er(Iwe),_&&Er(Kfe("open"))),role:"presentation","aria-live":"polite",style:{...t.fade!==UX.animation.fade?{[Xc("fade_animation_duration")]:`${D}ms`}:null,...t.easing.fade!==UX.animation.easing.fade?{[Xc("fade_animation_timing_function")]:t.easing.fade}:null,...i.root},onFocus:H=>{b.current||(b.current=H.relatedTarget)}},n),d.root||document.body):null}const utt=Gv(vZ,dtt);function htt({children:n}){return k.createElement(k.Fragment,null,n)}const ftt=Gv(het,htt);function ptt(n){return aP(Awe,n)}function mtt({toolbar:{buttons:n},render:{buttonClose:t,iconClose:i},styles:s}){const{close:l,setToolbarWidth:d}=Ug(),{setContainerRef:u,containerRect:p}=Ywe();Fp(()=>{d(p==null?void 0:p.width)},[d,p==null?void 0:p.width]);const g=()=>t?t():k.createElement(xZ,{key:jR,label:"Close",icon:Fet,renderIcon:i,onClick:l});return k.createElement("div",{ref:u,style:s.toolbar,className:Er(ptt())},n==null?void 0:n.map(_=>_===jR?g():_))}const gtt=Gv(Awe,mtt);function Zwe(n,t){var i;return k.createElement(n.module.component,{key:n.module.name,...t},(i=n.children)===null||i===void 0?void 0:i.map(s=>Zwe(s,t)))}function vtt(n,t={}){const{easing:i,...s}=n,{easing:l,...d}=t;return{easing:{...i,...l},...s,...d}}function ytt({carousel:n,animation:t,render:i,toolbar:s,controller:l,noScroll:d,on:u,plugins:p,slides:g,index:_,...y}){const{animation:E,carousel:b,render:A,toolbar:N,controller:O,noScroll:D,on:P,slides:j,index:M,plugins:V,...H}=UX,{config:$,augmentation:Q}=Net([_o(utt,[_o(ctt,[_o(Qet,[_o(ntt),_o(gtt),_o(stt)])])])],p||V),Y=Q({animation:vtt(E,t),carousel:{...b,...n},render:{...A,...i},toolbar:{...N,...s},controller:{...O,...l},noScroll:{...D,...d},on:{...P,...u},...H,...y});return Y.open?k.createElement(Let,{...Y},k.createElement(Met,{slides:g||j,index:QU(_||M)},k.createElement(jet,null,k.createElement(Pet,null,Zwe(_o(ftt,$),Y))))):null}const _tt={maxZoomPixelRatio:1,zoomInMultiplier:2,doubleTapDelay:300,doubleClickDelay:500,doubleClickMaxStops:2,keyboardMoveDistance:50,wheelZoomDistanceFactor:100,pinchZoomDistanceFactor:100,scrollToZoom:!1},eSe=n=>({..._tt,...n});function Ett(n,t,i,s){const l=k.useRef(),d=k.useRef(),{zoom:u}=sh().animation,p=AZ(),g=Br(()=>{var _,y,E;if((_=l.current)===null||_===void 0||_.cancel(),l.current=void 0,d.current&&(s!=null&&s.current)){try{l.current=(E=(y=s.current).animate)===null||E===void 0?void 0:E.call(y,[{transform:d.current},{transform:`scale(${n}) translateX(${t}px) translateY(${i}px)`}],{duration:p?0:u??500,easing:l.current?"ease-out":"ease-in-out"})}catch(b){console.error(b)}d.current=void 0,l.current&&(l.current.onfinish=()=>{l.current=void 0})}});return Fp(g,[n,t,i,g]),k.useCallback(()=>{d.current=s!=null&&s.current?window.getComputedStyle(s.current).transform:void 0},[s])}function wtt(n,t){const{on:i}=sh(),s=Br(()=>{var l;t||(l=i.zoom)===null||l===void 0||l.call(i,{zoom:n})});k.useEffect(s,[n,s])}function tF(){const{zoom:n}=sh();return eSe(n)}function Stt(n,t){var i,s;let l={width:0,height:0},d={width:0,height:0};const{currentSlide:u}=Wv(),{imageFit:p}=sh().carousel,{maxZoomPixelRatio:g}=tF();if(n&&u){const y={...u,...t};if(ix(y)){const E=TZ(y,p),b=Math.max(...(((i=y.srcSet)===null||i===void 0?void 0:i.map(N=>N.width))||[]).concat(y.width?[y.width]:[])),A=Math.max(...(((s=y.srcSet)===null||s===void 0?void 0:s.map(N=>N.height))||[]).concat(y.height?[y.height]:[]));b>0&&A>0&&n.width>0&&n.height>0&&(d=E?{width:Math.round(Math.min(b,n.width/n.height*A)),height:Math.round(Math.min(A,n.height/n.width*b))}:{width:b,height:A},d={width:d.width*g,height:d.height*g},l=E?{width:Math.min(n.width,d.width,b),height:Math.min(n.height,d.height,A)}:{width:Math.round(Math.min(n.width,n.height/A*b,b)),height:Math.round(Math.min(n.height,n.width/b*A,A))})}}const _=l.width?Math.max(CZ(d.width/l.width,5),1):1;return{imageRect:l,maxZoom:_}}function Yfe(n,t){return((n.clientX-t.clientX)**2+(n.clientY-t.clientY)**2)**.5}function btt(n,t,i,s,l,d){const u=k.useRef([]),p=k.useRef(0),g=k.useRef(),{globalIndex:_}=Wv(),{getOwnerWindow:y}=RZ(),{containerRef:E,subscribeSensors:b}=Ug(),{keyboardMoveDistance:A,zoomInMultiplier:N,wheelZoomDistanceFactor:O,scrollToZoom:D,doubleTapDelay:P,doubleClickDelay:j,doubleClickMaxStops:M,pinchZoomDistanceFactor:V}=tF(),H=k.useCallback(ie=>{if(E.current){const{pageX:_e,pageY:he}=ie,{scrollX:Ce,scrollY:fe}=y(),{left:me,top:Ne,width:Fe,height:je}=E.current.getBoundingClientRect();return[_e-me-Ce-Fe/2,he-Ne-fe-je/2]}return[]},[E,y]),$=Br(ie=>{const _e=()=>{ie.preventDefault(),ie.stopPropagation()};if(n>1){const fe=(me,Ne)=>{_e(),l(me,Ne)};ie.key==="ArrowDown"?fe(0,A):ie.key==="ArrowUp"?fe(0,-A):ie.key==="ArrowLeft"?fe(-A,0):ie.key==="ArrowRight"&&fe(A,0)}const he=fe=>{_e(),s(fe)},Ce=()=>ie.getModifierState("Meta");ie.key==="+"||ie.key==="="&&Ce()?he(n*N):ie.key==="-"||ie.key==="_"&&Ce()?he(n/N):ie.key==="0"&&Ce()&&he(1)}),Q=Br(ie=>{if((ie.ctrlKey||D)&&Math.abs(ie.deltaY)>Math.abs(ie.deltaX)){ie.stopPropagation(),s(n*(1-ie.deltaY/O),!0,...H(ie));return}n>1&&(ie.stopPropagation(),D||l(ie.deltaX,ie.deltaY))}),Y=k.useCallback(ie=>{const _e=u.current;_e.splice(0,_e.length,..._e.filter(he=>he.pointerId!==ie.pointerId))},[]),le=k.useCallback(ie=>{Y(ie),ie.persist(),u.current.push(ie)},[Y]),ae=Br(ie=>{var _e;const he=u.current;if(!(!((_e=d==null?void 0:d.current)===null||_e===void 0)&&_e.contains(ie.target)))return;n>1&&ie.stopPropagation();const{timeStamp:Ce}=ie;he.length===0&&Ce-p.current<(ie.pointerType==="touch"?P:j)?(p.current=0,s(n!==t?n*Math.max(t**(1/M),N):1,!1,...H(ie))):p.current=Ce,le(ie),he.length===2&&(g.current=Yfe(he[0],he[1]))}),te=Br(ie=>{const _e=u.current,he=_e.find(Ce=>Ce.pointerId===ie.pointerId);if(_e.length===2&&g.current){ie.stopPropagation(),le(ie);const Ce=Yfe(_e[0],_e[1]),fe=Ce-g.current;Math.abs(fe)>0&&(s(n*(1+fe/V),!0,..._e.map(me=>H(me)).reduce((me,Ne)=>Ne.map((Fe,je)=>me[je]+Fe/2))),g.current=Ce);return}n>1&&(ie.stopPropagation(),he&&(_e.length===1&&l((he.clientX-ie.clientX)/n,(he.clientY-ie.clientY)/n),le(ie)))}),de=k.useCallback(ie=>{const _e=u.current;_e.length===2&&_e.find(he=>he.pointerId===ie.pointerId)&&(g.current=void 0),Y(ie)},[Y]),G=k.useCallback(()=>{const ie=u.current;ie.splice(0,ie.length),p.current=0,g.current=void 0},[]);Xwe(b,ae,te,de,i),k.useEffect(G,[_,G]),k.useEffect(()=>i?()=>{}:SZ(G,b(_Z,$),b(EZ,Q)),[i,b,G,$,Q])}function Ctt(n,t,i){const[s,l]=k.useState(1),[d,u]=k.useState(0),[p,g]=k.useState(0),_=Ett(s,d,p,i),{currentSlide:y,globalIndex:E}=Wv(),{containerRect:b,slideRect:A}=Ug(),{zoomInMultiplier:N}=tF(),O=y&&ix(y)?y.src:void 0,D=!O||!(i!=null&&i.current);Fp(()=>{l(1),u(0),g(0)},[E,O]);const P=k.useCallback(($,Q,Y)=>{const le=Y||s,ae=d-($||0),te=p-(Q||0),de=(n.width*le-A.width)/2/le,G=(n.height*le-A.height)/2/le;u(Math.min(Math.abs(ae),Math.max(de,0))*Math.sign(ae)),g(Math.min(Math.abs(te),Math.max(G,0))*Math.sign(te))},[s,d,p,A,n.width,n.height]),j=k.useCallback(($,Q,Y,le)=>{const ae=CZ(Math.min(Math.max($+.001{s>1&&(s>t&&j(t,!0),P())});Fp(M,[b.width,b.height,M]);const V=k.useCallback(()=>j(s*N),[s,N,j]),H=k.useCallback(()=>j(s/N),[s,N,j]);return{zoom:s,offsetX:d,offsetY:p,disabled:D,changeOffsets:P,changeZoom:j,zoomIn:V,zoomOut:H}}const tSe=k.createContext(null),NZ=Hv("useZoom","ZoomControllerContext",tSe);function Ttt({children:n}){const[t,i]=k.useState(),{slideRect:s}=Ug(),{imageRect:l,maxZoom:d}=Stt(s,t==null?void 0:t.imageDimensions),{zoom:u,offsetX:p,offsetY:g,disabled:_,changeZoom:y,changeOffsets:E,zoomIn:b,zoomOut:A}=Ctt(l,d,t==null?void 0:t.zoomWrapperRef);wtt(u,_),btt(u,d,_,y,E,t==null?void 0:t.zoomWrapperRef);const N=k.useMemo(()=>({zoom:u,maxZoom:d,offsetX:p,offsetY:g,disabled:_,zoomIn:b,zoomOut:A,changeZoom:y}),[u,d,p,g,_,b,A,y]);k.useImperativeHandle(tF().ref,()=>N,[N]);const O=k.useMemo(()=>({...N,setZoomWrapper:i}),[N,i]);return k.createElement(tSe.Provider,{value:O},n)}const Rtt=ZE("ZoomIn",k.createElement(k.Fragment,null,k.createElement("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"}),k.createElement("path",{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"}))),xtt=ZE("ZoomOut",k.createElement("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"})),Xfe=k.forwardRef(function({zoomIn:t,onLoseFocus:i},s){const l=k.useRef(!1),d=k.useRef(!1),{zoom:u,maxZoom:p,zoomIn:g,zoomOut:_,disabled:y}=NZ(),{render:E}=sh(),b=y||(t?u>=p:u<=1);return k.useEffect(()=>{b&&l.current&&d.current&&i(),b||(l.current=!0)},[b,i]),k.createElement(xZ,{ref:s,disabled:b,label:t?"Zoom in":"Zoom out",icon:t?Rtt:xtt,renderIcon:t?E.iconZoomIn:E.iconZoomOut,onClick:t?g:_,onFocus:()=>{d.current=!0},onBlur:()=>{d.current=!1}})});function Att(){const n=k.useRef(null),t=k.useRef(null),{focus:i}=Ug(),s=k.useCallback(u=>{var p,g;!((p=u.current)===null||p===void 0)&&p.disabled?i():(g=u.current)===null||g===void 0||g.focus()},[i]),l=k.useCallback(()=>s(n),[s]),d=k.useCallback(()=>s(t),[s]);return k.createElement(k.Fragment,null,k.createElement(Xfe,{zoomIn:!0,ref:n,onLoseFocus:d}),k.createElement(Xfe,{ref:t,onLoseFocus:l}))}function Itt(){const{render:n}=sh(),t=NZ();return n.buttonZoom?k.createElement(k.Fragment,null,n.buttonZoom(t)):k.createElement(Att,null)}function Ntt(n){var t;return(((t=n.srcSet)===null||t===void 0?void 0:t.length)||0)>0}function Ott({current:n,preload:t},{type:i,source:s}){switch(i){case"fetch":return n?{current:n,preload:s}:{current:s};case"done":return s===t?{current:s}:{current:n,preload:t};default:throw new Error(jwe)}}function Ptt(n){var t,i;const[{current:s,preload:l},d]=k.useReducer(Ott,{}),{slide:u,rect:p,imageFit:g,render:_,interactive:y}=n,E=u.srcSet.sort((H,$)=>H.width-$.width),b=(t=u.width)!==null&&t!==void 0?t:E[E.length-1].width,A=(i=u.height)!==null&&i!==void 0?i:E[E.length-1].height,N=TZ(u,g),O=Math.max(...E.map(H=>H.width)),D=Math.min((N?Math.max:Math.min)(p.width,b*(p.height/A)),O),P=Ret(),j=Br(()=>{var H;const $=(H=E.find(Q=>Q.width>=D*P))!==null&&H!==void 0?H:E[E.length-1];(!s||E.findIndex(Q=>Q.src===s)Q===$))&&d({type:"fetch",source:$.src})});Fp(j,[p.width,p.height,P,j]);const M=Br(H=>d({type:"done",source:H})),V={WebkitTransform:y?"initial":"translateZ(0)"};return N||Object.assign(V,p.width/p.heightM(l),render:{..._,iconLoading:()=>null,iconError:()=>null}}),s&&k.createElement(V7,{key:"current",...n,slide:{...u,src:s,srcSet:void 0},style:V}))}function Ltt({render:n,slide:t,offset:i,rect:s}){var l;const[d,u]=k.useState(),p=k.useRef(null),{zoom:g,maxZoom:_,offsetX:y,offsetY:E,setZoomWrapper:b}=NZ(),A=g>1,{carousel:N,on:O}=sh(),{currentIndex:D}=Wv();Fp(()=>i===0?(b({zoomWrapperRef:p,imageDimensions:d}),()=>b(void 0)):()=>{},[i,d,b]);let P=(l=n.slide)===null||l===void 0?void 0:l.call(n,{slide:t,offset:i,rect:s,zoom:g,maxZoom:_});if(!P&&ix(t)){const j={slide:t,offset:i,rect:s,render:n,imageFit:N.imageFit,imageProps:N.imageProps,onClick:i===0?()=>{var M;return(M=O.click)===null||M===void 0?void 0:M.call(O,{index:D})}:void 0};P=Ntt(t)?k.createElement(Ptt,{...j,slide:t,interactive:A,rect:i===0?{width:s.width*g,height:s.height*g}:s}):k.createElement(V7,{onLoad:M=>u({width:M.naturalWidth,height:M.naturalHeight}),...j})}return P?k.createElement("div",{ref:p,className:Mp(Er(met),Er(yZ),Er(Nwe),A&&Er(vet)),style:i===0?{transform:`scale(${g}) translateX(${y}px) translateY(${E}px)`}:void 0},P):null}const Dtt=({augment:n,addModule:t})=>{n(({zoom:i,toolbar:s,render:l,controller:d,...u})=>{const p=eSe(i);return{zoom:p,toolbar:Aet(s,Mfe,k.createElement(Itt,null)),render:{...l,slide:g=>{var _;return ix(g.slide)?k.createElement(Ltt,{render:l,...g}):(_=l.slide)===null||_===void 0?void 0:_.call(l,g)}},controller:{...d,preventDefaultWheelY:p.scrollToZoom},...u}}),t(Gv(Mfe,Ttt))};function ktt(n){var N,O,D,P,j,M,V,H,$,Q,Y,le,ae,te,de,G,ie,_e,he,Ce,fe,me,Ne,Fe,je,Ve,Re,Be,Xe,we,Ge,rt,pt,Ze,Je,_t,Xt,Ht,gn,It;k.useState(!0);const[t,i]=k.useState("details_tab"),[s,l]=k.useState(!1),[d,u]=dn.useState(0),p=Array.isArray((N=n.data)==null?void 0:N.gallery_urls)?(O=n.data)==null?void 0:O.gallery_urls.map(xt=>({src:xt})):[],g=(D=n.data)!=null&&D.media_url?[{src:(P=n.data)==null?void 0:P.media_url}]:[],_=xt=>{console.log("Key in handleSelectedTab =",xt),xt=="details_tab"&&console.log("Entering into details_tab"),xt=="likes_tab"&&(console.log("Entering into likes"),n.likesListHandler(n.parent_id)),xt=="comments_tab"&&n.handleCommentList(n.parent_id),i(xt)},y={shouldSwiperUpdate:!0,rebuildOnUpdate:!0,autoplay:{delay:4e3,disableOnInteraction:!1},effect:"slide",pagination:{el:".swiper-pagination",clickable:!0},spaceBetween:15,grabCursor:!0};let E="16x9";switch((j=n.data)==null?void 0:j.media_type){case"video":E="16x9";break;case"audio":E="21x9";break;case"image":E="16x9";break;default:E="16x9"}const b=((M=n.data)==null?void 0:M.media_type)==="audio"&&{marginTop:"-90px"};function A(xt,mt){console.log("Image clicked = ",xt," Index = ",mt),u(mt),l(!0)}return h.jsxs(h.Fragment,{children:[h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom media-viewer-modal",show:n.show.isVisible,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsxs(vn.Title,{className:"d-flex align-items-center",children:[h.jsx("div",{className:"heading-icon-wrap flex-shrink-0",children:h.jsx("span",{className:`heading-icon ${n.mediaIconClass} d-flex justify-content-center align-items-center rounded-circl font-24`,children:h.jsx(Zt,{tag:n.mediaIcon})})}),h.jsx("div",{className:"heading flex-grow-1 ms-2",children:(V=n.data)==null?void 0:V.name})]})}),h.jsx(vn.Body,{className:"no-scrollbar py-2",children:n.loadingData?h.jsx(h.Fragment,{children:h.jsx(ci,{type:"details"})}):h.jsxs(h.Fragment,{children:[((H=n.data)==null?void 0:H.media_type.toLowerCase())==="pdf"?h.jsx(h.Fragment,{children:h.jsxs("div",{className:"font-13 text-gray6 pb-2 d-flex justify-content-between",children:[h.jsxs("div",{className:"flex-grow-1",children:[h.jsxs("div",{className:"fw-sb",children:[h.jsx("span",{className:"text-theme-primary pe-1",children:"By:"}),(Q=($=n==null?void 0:n.parentData)==null?void 0:$.user_info)==null?void 0:Q.name]})," ",h.jsx("div",{children:`${(le=(Y=n==null?void 0:n.parentData)==null?void 0:Y.expiry_date)==null?void 0:le.day} ${(te=(ae=n==null?void 0:n.parentData)==null?void 0:ae.expiry_date)==null?void 0:te.month} ${(G=(de=n==null?void 0:n.parentData)==null?void 0:de.expiry_date)==null?void 0:G.year}`})]}),h.jsx("div",{className:"",children:h.jsx("a",{href:`${(ie=n.data)==null?void 0:ie.media_url}`,target:"_system",className:"btn btn-theme btn-sm btn-secondary py-2",children:"View in Browser"})})]})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:"font-13 text-gray6 pb-2 d-flex justify-content-between",children:[h.jsxs("div",{className:"flex-grow-1",children:[h.jsxs("div",{className:"fw-sb",children:[h.jsx("span",{className:"text-theme-primary pe-1",children:"By:"}),(he=(_e=n==null?void 0:n.parentData)==null?void 0:_e.user_info)==null?void 0:he.name]})," "]}),h.jsx("div",{className:"flex-shrink-0",children:h.jsx("div",{children:`${(fe=(Ce=n==null?void 0:n.parentData)==null?void 0:Ce.expiry_date)==null?void 0:fe.day} ${(Ne=(me=n==null?void 0:n.parentData)==null?void 0:me.expiry_date)==null?void 0:Ne.month} ${(je=(Fe=n==null?void 0:n.parentData)==null?void 0:Fe.expiry_date)==null?void 0:je.year}`})})]})}),((Ve=n.data)==null?void 0:Ve.media_type)==="pdf"?h.jsx(h.Fragment,{children:h.jsx(Jd,{aspectRatio:"9x16",className:"pdf-container mb-2 overflow-hidden border",style:{height:"calc(100% - 15vh)",borderRadius:10},children:h.jsx(gZ,{fileUrl:(Re=n.data)==null?void 0:Re.media_url,isModalOpen:!0,className:"overflow-scroll mb-2"})})}):h.jsx(h.Fragment,{children:((Be=n.data)==null?void 0:Be.media_type.toLowerCase())==="image"?h.jsx(h.Fragment,{children:h.jsx("div",{className:"media-container mb-2",children:h.jsx("img",{src:n.data.media_url,alt:`${(Xe=n.data)==null?void 0:Xe.name} image`,className:"img-fluid mx-auto",onClick:()=>l(!0)})})}):h.jsx(h.Fragment,{children:((we=n.data)==null?void 0:we.media_type.toLowerCase())==="gallery"&&Array.isArray((Ge=n.data)==null?void 0:Ge.gallery_urls)?h.jsx(h.Fragment,{children:((pt=(rt=n.data)==null?void 0:rt.gallery_urls)==null?void 0:pt.length)>0?h.jsx("div",{className:"mb-4",children:h.jsx(KQ,{...y,containerClass:"swiper-container theme-swiper media-gallery-swiper mb-2 position-relative",children:(Ze=n.data)==null?void 0:Ze.gallery_urls.map((xt,mt)=>{var dt,it;return h.jsx(et,{className:"card-slide shadow-sm border-0 overflow-hidden bg-transparent shadow-none",onClick:()=>A(xt,mt),children:h.jsx(et.Body,{className:"p-0",children:h.jsx(us,{src:xt,alt:`Magazine Media ${(dt=n.data)==null?void 0:dt.name} image ${mt+1}`})})},`${(it=n.data)==null?void 0:it.name} image ${mt+1}`)})})}):h.jsx(h.Fragment,{})}):h.jsx("div",{className:"media-container mb-2",children:h.jsx(Jd,{aspectRatio:`${E}`,style:b,children:h.jsx(XE,{url:(Je=n.data)==null?void 0:Je.media_url,width:"100%",height:"100%",controls:!0,playing:!1})})})})}),h.jsxs(Zn.Container,{id:"media-tabs-example",className:"main_tabs",activeKey:t,onSelect:xt=>_(xt),children:[h.jsx("div",{className:"tab_links position-relative",children:h.jsxs(jn,{variant:"pills",className:"nav-justified",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"details_tab",children:h.jsx("div",{className:"",children:"Details"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"likes_tab",children:h.jsx("div",{className:"",children:`${n==null?void 0:n.likeCount} ${(n==null?void 0:n.likeCount)===1?"Like":"Likes"}`})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"comments_tab",children:h.jsx("div",{className:"",children:`${n==null?void 0:n.commentsCount} ${(n==null?void 0:n.commentsCount)===1?"Comment":"Comments"}`})})})]})}),h.jsxs(Zn.Content,{className:"p-2",children:[h.jsxs(Zn.Pane,{className:"",eventKey:"details_tab",children:[h.jsxs("div",{className:"border-to border-botto py-1 d-flex align-items-center justify-content-between",children:[h.jsx("div",{children:h.jsx("span",{className:"font-13 text-gray7 border-en pe-",children:`${(_t=n.data)==null?void 0:_t.points} Points`})}),h.jsx("div",{children:h.jsxs("span",{className:"font-13 text-gray7 border-en pe-",children:[h.jsx(Zt,{tag:"view1",className:"me-1 font-16"}),`${(Xt=n.data)!=null&&Xt.view_count?(Ht=n.data)==null?void 0:Ht.view_count:0} Views`]})})]}),h.jsx("div",{className:"border-to font-14 text-gray7 pb-2 border-botto pt-2 mb-2",children:(gn=n.data)==null?void 0:gn.description})]}),h.jsx(Zn.Pane,{className:"",eventKey:"likes_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(nx,{isLiked:n.isLiked,loadingMediaLike:n.loadingMediaLike,loadingLikesList:n.loadingLikesList,likesData:n.likesData,likeActionHandler:n.likeActionHandler,parentId:n.parent_id})})}),h.jsx(Zn.Pane,{className:"",eventKey:"comments_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(YE,{comment_type:n.comment_type,loading:n.loading,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:"fixed-bottom"})})})]})]})]})})]}),h.jsx(ytt,{open:s,close:()=>l(!1),index:d,on:{view:({index:xt})=>u(xt)},slides:((It=n.data)==null?void 0:It.media_type.toLowerCase())==="gallery"?p:g,carousel:{finite:p.length<=1},controller:{closeOnBackdropClick:!0},animation:{fade:400,swipe:400},render:{buttonPrev:p.length<=1?()=>null:void 0,buttonNext:p.length<=1?()=>null:void 0},plugins:[Dtt]})]})}function Mtt(n){var Re,Be,Xe,we,Ge,rt,pt,Ze,Je,_t,Xt,Ht,gn,It;const[t,i]=k.useState((Re=n.media)==null?void 0:Re.is_liked),[s,l]=k.useState((Be=n.media)==null?void 0:Be.likes_count),[d,u]=k.useState(((Xe=n.media)==null?void 0:Xe.viewed)||!1),[p,g]=k.useState(null),[_,y]=k.useState(!1),[E,b]=k.useState((we=n.media)==null?void 0:we.comments_count),[A,N]=k.useState(!1),[O,D]=k.useState([]),[P,j]=k.useState(!0),[M,V]=k.useState([]),[H,$]=k.useState(!0),[Q,Y]=k.useState({isVisible:!1}),[le,ae]=k.useState(!1),te=(Ge=n.media)!=null&&Ge.media_type?(rt=n.media)==null?void 0:rt.media_type.toLowerCase():"image",{mediaIcon:de,mediaIconClass:G}=J6e(te);let ie=(pt=n.media)!=null&&pt.media_url?(Ze=n.media)==null?void 0:Ze.media_url:"";const _e=()=>{Y({isVisible:!1})},he=()=>{Y({isVisible:!0})},Ce=()=>{ae(!1)},fe=()=>{ae(!0)},me=async()=>{var xt,mt;if(!n.is_allowed_to_view){fe();return}if(Ve((xt=n.media)==null?void 0:xt.id),te==="quiz"||te==="external"||te==="survey"||te==="form"){console.log("You will be redirected to a media link - ",te,` +Media type is `,(mt=n.media)==null?void 0:mt.media_url),ie!==""&&await DR.open({url:ie,toolbarColor:IE});return}he()};async function Ne(xt){N(!0),xt&&hs.getMagazineMediaLike(xt).then(mt=>{var dt,it;mt.data.status==="success"&&(i((dt=mt.data.data)==null?void 0:dt.is_liked),l((it=mt.data.data)==null?void 0:it.likes_count),Fe(xt),N(!1))}).catch(mt=>{var dt,it;N(!1),i((dt=n.media)==null?void 0:dt.is_liked),l((it=n.media)==null?void 0:it.likes_count),console.log("Error in getMagazineMediaLike = ",mt)})}async function Fe(xt){xt&&hs.getMagazineMediaLikesList(xt).then(mt=>{var dt;mt.data.status==="success"&&(D((dt=mt.data.data)==null?void 0:dt.likes),j(!1))}).catch(mt=>{j(!1),D([]),console.log("Error in getMagazineMediaLikesList = ",mt)})}async function je(xt){xt&&hs.getAllMagazineMediaCommentList(xt).then(mt=>{var dt;mt.data.status==="success"&&(V((dt=mt.data.data)==null?void 0:dt.comments),$(!1))}).catch(mt=>{$(!1),V([]),console.log("Error in getAllMagazineMediaCommentList = ",mt)})}async function Ve(xt){y(!0),xt&&hs.getMagazineMediaDetails(xt).then(mt=>{var dt,it,Me;if(console.log("getMagazineMediaDetails RES = ",mt.data),mt.data.status==="success"){const We=(dt=mt.data.data)==null?void 0:dt.media,bt=(Me=(it=mt.data.data)==null?void 0:it.media)==null?void 0:Me.viewed;g(We),u(bt),y(!1)}}).catch(mt=>{var dt;y(!1),g(null),u((dt=n.media)==null?void 0:dt.viewed),console.log("Error in getMagazineMediaDetails = ",mt)})}return h.jsxs(h.Fragment,{children:[h.jsxs(et,{className:`card-theme media-card border-0 shadow-sm ${((Je=n.media)==null?void 0:Je.viewed)&&"media-viewed"}`,children:[h.jsxs(et.Header,{className:"p-2 p-sm-3 position-relative border-bottom-0",onClick:me,children:[d&&h.jsx("div",{className:"media-viewed-icon position-absolute",children:h.jsx(Zt,{tag:"check1",className:"font-18"})}),h.jsxs("div",{className:"d-flex media-header-container align-items-center",children:[h.jsx("div",{className:"flex-shrink-0 media-icon-container position-relative d-flex",children:h.jsx("div",{className:`d-flex justify-content-center align-items-center media-icon-wrapper overflow-hidden ${G}`,children:h.jsx(Zt,{tag:de,className:"font-28"})})}),h.jsx("div",{className:"text-start flex-grow-1 ms-2 ms-sm-3 media-info-container",children:h.jsx("span",{className:"d-block",children:(_t=n.media)==null?void 0:_t.name})})]})]}),h.jsx(et.Body,{className:"p-2 px-sm-3 font-14 text-grey",children:h.jsx("div",{className:"media-info text-truncate",children:(Xt=n.media)==null?void 0:Xt.description})}),te!=="quiz"||te!=="external"?h.jsx(et.Footer,{className:"p-2 px-sm-3 bg-transparent",children:h.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[h.jsx("div",{className:"d-fl",children:h.jsx("span",{className:"font-13 text-gray7 border-en pe-",children:`${(Ht=n.media)==null?void 0:Ht.points} Points`})}),h.jsxs("div",{className:"btn-wrap",children:[(te==="quiz"||te==="external"||te==="form"||te==="survey")&&h.jsx(h.Fragment,{children:h.jsxs(Pt,{className:"btn-theme btn-sm btn-secondary-light px-2",onClick:me,children:[`Open ${$R(te)} ${te==="external"?"Link ":""}`,h.jsx(Zt,{tag:"arrow-right2",className:"font-14"})]})}),(te==="video"||te==="audio"||te==="image"||te==="pdf")&&h.jsxs(h.Fragment,{children:[h.jsx(Pt,{className:`btn-theme btn-sm btn-likes-light px-2 pe-none ${t&&"active"}`,children:A?h.jsx(Ji,{animation:"border",size:"sm"}):h.jsxs(h.Fragment,{children:[h.jsx(Zt,{tag:"favorite3",className:"font-18"})," ",s]})}),h.jsxs(Pt,{className:"btn-theme btn-sm btn-gray px-2 pe-none",children:[h.jsx(Zt,{tag:"message8",className:"font-18"})," ",E]})]})]})]})}):null]}),h.jsx(ktt,{show:Q,handleClose:_e,data:p,loadingData:_,parentData:n.magazineDetails,mediaIcon:de,mediaIconClass:G,mediaUrl:(gn=n.media)==null?void 0:gn.media_url,likesData:O,likeCount:s,isLiked:t,likeActionHandler:Ne,loadingMediaLike:A,loadingLikesList:P,likesListHandler:Fe,parent_id:(It=n.media)==null?void 0:It.id,parent_owner_id:null,comment_type:"media",loading:H,comments:M,handleCommentList:je,setCommentsCount:b,commentsCount:E}),h.jsx(hY,{show:le,handleClose:Ce,allow_action_button:!1,message_title:"Media display paused",message_text:"This magazine only allows sequential viewing, limiting simultaneous display."})]})}function jtt(n){var _;const{magazineId:t}=iU();k.useState(!1);const[i,s]=k.useState(null),[l,d]=k.useState(!0),[u,p]=k.useState([]);async function g(y){hs.getMagazineDetails(y).then(E=>{var b,A;console.log("getMagazineDetails RES = ",E.data),E.data.status==="success"&&(s(E.data.data.magazine),p((A=(b=E.data)==null?void 0:b.data)==null?void 0:A.medias),d(!1))}).catch(E=>{d(!1),s(null),console.log("Error in getMagazineDetails = ",E)})}return k.useEffect(()=>{g(t)},[]),h.jsx(h.Fragment,{children:h.jsx(qi,{className:"magazine-details-page",children:h.jsxs(Yn,{className:"mb-4",children:[l&&h.jsx(ci,{type:"magazine",className:"card-theme overflow-hidden"}),!l&&h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"p-2 ps-0 font-15 fw-sb",children:i==null?void 0:i.name}),h.jsx(us,{src:i==null?void 0:i.image,alt:`${i==null?void 0:i.name} image`,wrapperClassName:"card-img mb-3"}),h.jsxs("div",{className:"font-13 mb-3",children:[h.jsxs("span",{className:"text-theme-primary fw-sb mb-1",children:["Published By:"," "]})," ",(_=i==null?void 0:i.user_info)==null?void 0:_.name,h.jsx(YO,{text:i==null?void 0:i.description,linesToShow:2,containerClass:"font-13 contest-info text-gray7",buttonClass:"btn btn-theme btn-link btn-sm btn-gray position-relative ps-0",buttonStyles:{zIndex:1}})]}),h.jsx("hr",{}),h.jsx("div",{className:"font-14 fw-sb mb-3",children:"All Media"}),h.jsx("div",{className:"d-grid gap-3",children:u.length>0?h.jsx(h.Fragment,{children:u.map((y,E)=>{var D;const b=i==null?void 0:i.is_sequenced;let A=0,N=!0,O=!0;return b==="yes"&&E>0?(A=E>0?E-1:0,N=A>=0&&((D=u[A])==null?void 0:D.viewed),O=!!N):O=!0,h.jsx(Mtt,{media:y,magazineDetails:i,is_allowed_to_view:O},y.id)})}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more media"})})})]})]})})})}var Utt=Object.create,nF=Object.defineProperty,Ftt=Object.getOwnPropertyDescriptor,Btt=Object.getOwnPropertyNames,Vtt=Object.getPrototypeOf,ztt=Object.prototype.hasOwnProperty,Htt=(n,t)=>{for(var i in t)nF(n,i,{get:t[i],enumerable:!0})},nSe=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Btt(t))!ztt.call(n,l)&&l!==i&&nF(n,l,{get:()=>t[l],enumerable:!(s=Ftt(t,l))||s.enumerable});return n},OZ=(n,t,i)=>(i=n!=null?Utt(Vtt(n)):{},nSe(t||!n||!n.__esModule?nF(i,"default",{value:n,enumerable:!0}):i,n)),Gtt=n=>nSe(nF({},"__esModule",{value:!0}),n),iSe={};Htt(iSe,{callPlayer:()=>ant,getConfig:()=>rnt,getSDK:()=>int,isBlobUrl:()=>lnt,isMediaStream:()=>ont,lazy:()=>qtt,omit:()=>snt,parseEndTime:()=>ent,parseStartTime:()=>Ztt,queryString:()=>nnt,randomString:()=>tnt,supportsWebKitPresentationMode:()=>cnt});var iF=Gtt(iSe),Wtt=OZ(k),$tt=OZ(j_e),Ktt=OZ(UU);const qtt=n=>Wtt.default.lazy(async()=>{const t=await n();return typeof t.default=="function"?t:t.default}),Ytt=/[?&#](?:start|t)=([0-9hms]+)/,Xtt=/[?&#]end=([0-9hms]+)/,BX=/(\d+)(h|m|s)/g,Jtt=/^\d+$/;function rSe(n,t){if(n instanceof Array)return;const i=n.match(t);if(i){const s=i[1];if(s.match(BX))return Qtt(s);if(Jtt.test(s))return parseInt(s)}}function Qtt(n){let t=0,i=BX.exec(n);for(;i!==null;){const[,s,l]=i;l==="h"&&(t+=parseInt(s,10)*60*60),l==="m"&&(t+=parseInt(s,10)*60),l==="s"&&(t+=parseInt(s,10)),i=BX.exec(n)}return t}function Ztt(n){return rSe(n,Ytt)}function ent(n){return rSe(n,Xtt)}function tnt(){return Math.random().toString(36).substr(2,5)}function nnt(n){return Object.keys(n).map(t=>`${t}=${n[t]}`).join("&")}function gK(n){return window[n]?window[n]:window.exports&&window.exports[n]?window.exports[n]:window.module&&window.module.exports&&window.module.exports[n]?window.module.exports[n]:null}const jb={},int=function(t,i,s=null,l=()=>!0,d=$tt.default){const u=gK(i);return u&&l(u)?Promise.resolve(u):new Promise((p,g)=>{if(jb[t]){jb[t].push({resolve:p,reject:g});return}jb[t]=[{resolve:p,reject:g}];const _=y=>{jb[t].forEach(E=>E.resolve(y))};if(s){const y=window[s];window[s]=function(){y&&y(),_(gK(i))}}d(t,y=>{y?(jb[t].forEach(E=>E.reject(y)),jb[t]=null):s||_(gK(i))})})};function rnt(n,t){return(0,Ktt.default)(t.config,n.config)}function snt(n,...t){const i=[].concat(...t),s={},l=Object.keys(n);for(const d of l)i.indexOf(d)===-1&&(s[d]=n[d]);return s}function ant(n,...t){if(!this.player||!this.player[n]){let i=`ReactPlayer: ${this.constructor.displayName} player could not call %c${n}%c – `;return this.player?this.player[n]||(i+="The method was not available"):i+="The player was not available",console.warn(i,"font-weight: bold",""),null}return this.player[n](...t)}function ont(n){return typeof window<"u"&&typeof window.MediaStream<"u"&&n instanceof window.MediaStream}function lnt(n){return/^blob:/.test(n)}function cnt(n=document.createElement("video")){const t=/iPhone|iPod/.test(navigator.userAgent)===!1;return n.webkitSupportsPresentationMode&&typeof n.webkitSetPresentationMode=="function"&&t}var PZ=Object.defineProperty,dnt=Object.getOwnPropertyDescriptor,unt=Object.getOwnPropertyNames,hnt=Object.prototype.hasOwnProperty,fnt=(n,t)=>{for(var i in t)PZ(n,i,{get:t[i],enumerable:!0})},pnt=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of unt(t))!hnt.call(n,l)&&l!==i&&PZ(n,l,{get:()=>t[l],enumerable:!(s=dnt(t,l))||s.enumerable});return n},mnt=n=>pnt(PZ({},"__esModule",{value:!0}),n),sSe={};fnt(sSe,{AUDIO_EXTENSIONS:()=>LZ,DASH_EXTENSIONS:()=>ySe,FLV_EXTENSIONS:()=>_Se,HLS_EXTENSIONS:()=>kZ,MATCH_URL_DAILYMOTION:()=>pSe,MATCH_URL_FACEBOOK:()=>lSe,MATCH_URL_FACEBOOK_WATCH:()=>cSe,MATCH_URL_KALTURA:()=>vSe,MATCH_URL_MIXCLOUD:()=>mSe,MATCH_URL_SOUNDCLOUD:()=>aSe,MATCH_URL_STREAMABLE:()=>dSe,MATCH_URL_TWITCH_CHANNEL:()=>fSe,MATCH_URL_TWITCH_VIDEO:()=>hSe,MATCH_URL_VIDYARD:()=>gSe,MATCH_URL_VIMEO:()=>oSe,MATCH_URL_WISTIA:()=>uSe,MATCH_URL_YOUTUBE:()=>VX,VIDEO_EXTENSIONS:()=>DZ,canPlay:()=>vnt});var gnt=mnt(sSe),Jfe=iF;const VX=/(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//,aSe=/(?:soundcloud\.com|snd\.sc)\/[^.]+$/,oSe=/vimeo\.com\/(?!progressive_redirect).+/,lSe=/^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/,cSe=/^https?:\/\/fb\.watch\/.+$/,dSe=/streamable\.com\/([a-z0-9]+)$/,uSe=/(?:wistia\.(?:com|net)|wi\.st)\/(?:medias|embed)\/(?:iframe\/)?([^?]+)/,hSe=/(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/,fSe=/(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/,pSe=/^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/,mSe=/mixcloud\.com\/([^/]+\/[^/]+)/,gSe=/vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/,vSe=/^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/,LZ=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,DZ=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,kZ=/\.(m3u8)($|\?)/i,ySe=/\.(mpd)($|\?)/i,_Se=/\.(flv)($|\?)/i,zX=n=>{if(n instanceof Array){for(const t of n)if(typeof t=="string"&&zX(t)||zX(t.src))return!0;return!1}return(0,Jfe.isMediaStream)(n)||(0,Jfe.isBlobUrl)(n)?!0:LZ.test(n)||DZ.test(n)||kZ.test(n)||ySe.test(n)||_Se.test(n)},vnt={youtube:n=>n instanceof Array?n.every(t=>VX.test(t)):VX.test(n),soundcloud:n=>aSe.test(n)&&!LZ.test(n),vimeo:n=>oSe.test(n)&&!DZ.test(n)&&!kZ.test(n),facebook:n=>lSe.test(n)||cSe.test(n),streamable:n=>dSe.test(n),wistia:n=>uSe.test(n),twitch:n=>hSe.test(n)||fSe.test(n),dailymotion:n=>pSe.test(n),mixcloud:n=>mSe.test(n),vidyard:n=>gSe.test(n),kaltura:n=>vSe.test(n),file:zX};var MZ=Object.defineProperty,ynt=Object.getOwnPropertyDescriptor,_nt=Object.getOwnPropertyNames,Ent=Object.prototype.hasOwnProperty,wnt=(n,t)=>{for(var i in t)MZ(n,i,{get:t[i],enumerable:!0})},Snt=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of _nt(t))!Ent.call(n,l)&&l!==i&&MZ(n,l,{get:()=>t[l],enumerable:!(s=ynt(t,l))||s.enumerable});return n},bnt=n=>Snt(MZ({},"__esModule",{value:!0}),n),ESe={};wnt(ESe,{default:()=>Tnt});var Cnt=bnt(ESe),wd=iF,Uc=gnt,Tnt=[{key:"youtube",name:"YouTube",canPlay:Uc.canPlay.youtube,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./YouTube-Bccsz9Yl.js").then(n=>n.Y),__vite__mapDeps([])))},{key:"soundcloud",name:"SoundCloud",canPlay:Uc.canPlay.soundcloud,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./SoundCloud-BI71e4_l.js").then(n=>n.S),__vite__mapDeps([])))},{key:"vimeo",name:"Vimeo",canPlay:Uc.canPlay.vimeo,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Vimeo-Dxa-X4z9.js").then(n=>n.V),__vite__mapDeps([])))},{key:"facebook",name:"Facebook",canPlay:Uc.canPlay.facebook,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Facebook-DJ0hneLF.js").then(n=>n.F),__vite__mapDeps([])))},{key:"streamable",name:"Streamable",canPlay:Uc.canPlay.streamable,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Streamable-CnBBuBIV.js").then(n=>n.S),__vite__mapDeps([])))},{key:"wistia",name:"Wistia",canPlay:Uc.canPlay.wistia,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Wistia-CeioMyv4.js").then(n=>n.W),__vite__mapDeps([])))},{key:"twitch",name:"Twitch",canPlay:Uc.canPlay.twitch,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Twitch-CNaDXULh.js").then(n=>n.T),__vite__mapDeps([])))},{key:"dailymotion",name:"DailyMotion",canPlay:Uc.canPlay.dailymotion,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./DailyMotion-D4uW8REe.js").then(n=>n.D),__vite__mapDeps([])))},{key:"mixcloud",name:"Mixcloud",canPlay:Uc.canPlay.mixcloud,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Mixcloud-CXhqduaQ.js").then(n=>n.M),__vite__mapDeps([])))},{key:"vidyard",name:"Vidyard",canPlay:Uc.canPlay.vidyard,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Vidyard-DU1jnJxN.js").then(n=>n.V),__vite__mapDeps([])))},{key:"kaltura",name:"Kaltura",canPlay:Uc.canPlay.kaltura,lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./Kaltura-Bvtx45-y.js").then(n=>n.K),__vite__mapDeps([])))},{key:"file",name:"FilePlayer",canPlay:Uc.canPlay.file,canEnablePIP:n=>Uc.canPlay.file(n)&&(document.pictureInPictureEnabled||(0,wd.supportsWebKitPresentationMode)())&&!Uc.AUDIO_EXTENSIONS.test(n),lazyPlayer:(0,wd.lazy)(()=>Xi(()=>import("./FilePlayer-CKq2ehRf.js").then(n=>n.F),__vite__mapDeps([])))}],Rnt=Object.create,rF=Object.defineProperty,xnt=Object.getOwnPropertyDescriptor,Ant=Object.getOwnPropertyNames,Int=Object.getPrototypeOf,Nnt=Object.prototype.hasOwnProperty,Ont=(n,t)=>{for(var i in t)rF(n,i,{get:t[i],enumerable:!0})},wSe=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Ant(t))!Nnt.call(n,l)&&l!==i&&rF(n,l,{get:()=>t[l],enumerable:!(s=xnt(t,l))||s.enumerable});return n},Pnt=(n,t,i)=>(i=n!=null?Rnt(Int(n)):{},wSe(t||!n||!n.__esModule?rF(i,"default",{value:n,enumerable:!0}):i,n)),Lnt=n=>wSe(rF({},"__esModule",{value:!0}),n),SSe={};Ont(SSe,{defaultProps:()=>Mnt,propTypes:()=>knt});var bSe=Lnt(SSe),Dnt=Pnt(uQ);const{string:Gl,bool:Wl,number:Ub,array:vK,oneOfType:SI,shape:ku,object:$l,func:ja,node:Qfe}=Dnt.default,knt={url:SI([Gl,vK,$l]),playing:Wl,loop:Wl,controls:Wl,volume:Ub,muted:Wl,playbackRate:Ub,width:SI([Gl,Ub]),height:SI([Gl,Ub]),style:$l,progressInterval:Ub,playsinline:Wl,pip:Wl,stopOnUnmount:Wl,light:SI([Wl,Gl,$l]),playIcon:Qfe,previewTabIndex:Ub,fallback:Qfe,oEmbedUrl:Gl,wrapper:SI([Gl,ja,ku({render:ja.isRequired})]),config:ku({soundcloud:ku({options:$l}),youtube:ku({playerVars:$l,embedOptions:$l,onUnstarted:ja}),facebook:ku({appId:Gl,version:Gl,playerId:Gl,attributes:$l}),dailymotion:ku({params:$l}),vimeo:ku({playerOptions:$l,title:Gl}),file:ku({attributes:$l,tracks:vK,forceVideo:Wl,forceAudio:Wl,forceHLS:Wl,forceSafariHLS:Wl,forceDisableHls:Wl,forceDASH:Wl,forceFLV:Wl,hlsOptions:$l,hlsVersion:Gl,dashVersion:Gl,flvVersion:Gl}),wistia:ku({options:$l,playerId:Gl,customControls:vK}),mixcloud:ku({options:$l}),twitch:ku({options:$l,playerId:Gl}),vidyard:ku({options:$l})}),onReady:ja,onStart:ja,onPlay:ja,onPause:ja,onBuffer:ja,onBufferEnd:ja,onEnded:ja,onError:ja,onDuration:ja,onSeek:ja,onPlaybackRateChange:ja,onPlaybackQualityChange:ja,onProgress:ja,onClickPreview:ja,onEnablePIP:ja,onDisablePIP:ja},Do=()=>{},Mnt={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:"640px",height:"360px",style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:"div",previewTabIndex:0,oEmbedUrl:"https://noembed.com/embed?url={url}",config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:Do},facebook:{appId:"1309697205772819",version:"v3.3",playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:"1.1.4",dashVersion:"3.1.3",flvVersion:"1.5.0",forceDisableHls:!1},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:Do,onStart:Do,onPlay:Do,onPause:Do,onBuffer:Do,onBufferEnd:Do,onEnded:Do,onError:Do,onDuration:Do,onSeek:Do,onPlaybackRateChange:Do,onPlaybackQualityChange:Do,onProgress:Do,onClickPreview:Do,onEnablePIP:Do,onDisablePIP:Do};var jnt=Object.create,oP=Object.defineProperty,Unt=Object.getOwnPropertyDescriptor,Fnt=Object.getOwnPropertyNames,Bnt=Object.getPrototypeOf,Vnt=Object.prototype.hasOwnProperty,znt=(n,t,i)=>t in n?oP(n,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[t]=i,Hnt=(n,t)=>{for(var i in t)oP(n,i,{get:t[i],enumerable:!0})},CSe=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Fnt(t))!Vnt.call(n,l)&&l!==i&&oP(n,l,{get:()=>t[l],enumerable:!(s=Unt(t,l))||s.enumerable});return n},TSe=(n,t,i)=>(i=n!=null?jnt(Bnt(n)):{},CSe(t||!n||!n.__esModule?oP(i,"default",{value:n,enumerable:!0}):i,n)),Gnt=n=>CSe(oP({},"__esModule",{value:!0}),n),da=(n,t,i)=>(znt(n,typeof t!="symbol"?t+"":t,i),i),RSe={};Hnt(RSe,{default:()=>sF});var Wnt=Gnt(RSe),Zfe=TSe(k),$nt=TSe(VU),xSe=bSe,Knt=iF;const qnt=5e3;class sF extends Zfe.Component{constructor(){super(...arguments),da(this,"mounted",!1),da(this,"isReady",!1),da(this,"isPlaying",!1),da(this,"isLoading",!0),da(this,"loadOnReady",null),da(this,"startOnPlay",!0),da(this,"seekOnPlay",null),da(this,"onDurationCalled",!1),da(this,"handlePlayerMount",t=>{if(this.player){this.progress();return}this.player=t,this.player.load(this.props.url),this.progress()}),da(this,"getInternalPlayer",t=>this.player?this.player[t]:null),da(this,"progress",()=>{if(this.props.url&&this.player&&this.isReady){const t=this.getCurrentTime()||0,i=this.getSecondsLoaded(),s=this.getDuration();if(s){const l={playedSeconds:t,played:t/s};i!==null&&(l.loadedSeconds=i,l.loaded=i/s),(l.playedSeconds!==this.prevPlayed||l.loadedSeconds!==this.prevLoaded)&&this.props.onProgress(l),this.prevPlayed=l.playedSeconds,this.prevLoaded=l.loadedSeconds}}this.progressTimeout=setTimeout(this.progress,this.props.progressFrequency||this.props.progressInterval)}),da(this,"handleReady",()=>{if(!this.mounted)return;this.isReady=!0,this.isLoading=!1;const{onReady:t,playing:i,volume:s,muted:l}=this.props;t(),!l&&s!==null&&this.player.setVolume(s),this.loadOnReady?(this.player.load(this.loadOnReady,!0),this.loadOnReady=null):i&&this.player.play(),this.handleDurationCheck()}),da(this,"handlePlay",()=>{this.isPlaying=!0,this.isLoading=!1;const{onStart:t,onPlay:i,playbackRate:s}=this.props;this.startOnPlay&&(this.player.setPlaybackRate&&s!==1&&this.player.setPlaybackRate(s),t(),this.startOnPlay=!1),i(),this.seekOnPlay&&(this.seekTo(this.seekOnPlay),this.seekOnPlay=null),this.handleDurationCheck()}),da(this,"handlePause",t=>{this.isPlaying=!1,this.isLoading||this.props.onPause(t)}),da(this,"handleEnded",()=>{const{activePlayer:t,loop:i,onEnded:s}=this.props;t.loopOnEnded&&i&&this.seekTo(0),i||(this.isPlaying=!1,s())}),da(this,"handleError",(...t)=>{this.isLoading=!1,this.props.onError(...t)}),da(this,"handleDurationCheck",()=>{clearTimeout(this.durationCheckTimeout);const t=this.getDuration();t?this.onDurationCalled||(this.props.onDuration(t),this.onDurationCalled=!0):this.durationCheckTimeout=setTimeout(this.handleDurationCheck,100)}),da(this,"handleLoaded",()=>{this.isLoading=!1})}componentDidMount(){this.mounted=!0}componentWillUnmount(){clearTimeout(this.progressTimeout),clearTimeout(this.durationCheckTimeout),this.isReady&&this.props.stopOnUnmount&&(this.player.stop(),this.player.disablePIP&&this.player.disablePIP()),this.mounted=!1}componentDidUpdate(t){if(!this.player)return;const{url:i,playing:s,volume:l,muted:d,playbackRate:u,pip:p,loop:g,activePlayer:_,disableDeferredLoading:y}=this.props;if(!(0,$nt.default)(t.url,i)){if(this.isLoading&&!_.forceLoad&&!y&&!(0,Knt.isMediaStream)(i)){console.warn(`ReactPlayer: the attempt to load ${i} is being deferred until the player has loaded`),this.loadOnReady=i;return}this.isLoading=!0,this.startOnPlay=!0,this.onDurationCalled=!1,this.player.load(i,this.isReady)}!t.playing&&s&&!this.isPlaying&&this.player.play(),t.playing&&!s&&this.isPlaying&&this.player.pause(),!t.pip&&p&&this.player.enablePIP&&this.player.enablePIP(),t.pip&&!p&&this.player.disablePIP&&this.player.disablePIP(),t.volume!==l&&l!==null&&this.player.setVolume(l),t.muted!==d&&(d?this.player.mute():(this.player.unmute(),l!==null&&setTimeout(()=>this.player.setVolume(l)))),t.playbackRate!==u&&this.player.setPlaybackRate&&this.player.setPlaybackRate(u),t.loop!==g&&this.player.setLoop&&this.player.setLoop(g)}getDuration(){return this.isReady?this.player.getDuration():null}getCurrentTime(){return this.isReady?this.player.getCurrentTime():null}getSecondsLoaded(){return this.isReady?this.player.getSecondsLoaded():null}seekTo(t,i,s){if(!this.isReady){t!==0&&(this.seekOnPlay=t,setTimeout(()=>{this.seekOnPlay=null},qnt));return}if(i?i==="fraction":t>0&&t<1){const d=this.player.getDuration();if(!d){console.warn("ReactPlayer: could not seek using fraction – duration not yet available");return}this.player.seekTo(d*t,s);return}this.player.seekTo(t,s)}render(){const t=this.props.activePlayer;return t?Zfe.default.createElement(t,{...this.props,onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError}):null}}da(sF,"displayName","Player");da(sF,"propTypes",xSe.propTypes);da(sF,"defaultProps",xSe.defaultProps);var Ynt=Object.create,lP=Object.defineProperty,Xnt=Object.getOwnPropertyDescriptor,Jnt=Object.getOwnPropertyNames,Qnt=Object.getPrototypeOf,Znt=Object.prototype.hasOwnProperty,eit=(n,t,i)=>t in n?lP(n,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[t]=i,tit=(n,t)=>{for(var i in t)lP(n,i,{get:t[i],enumerable:!0})},ASe=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Jnt(t))!Znt.call(n,l)&&l!==i&&lP(n,l,{get:()=>t[l],enumerable:!(s=Xnt(t,l))||s.enumerable});return n},cP=(n,t,i)=>(i=n!=null?Ynt(Qnt(n)):{},ASe(t||!n||!n.__esModule?lP(i,"default",{value:n,enumerable:!0}):i,n)),nit=n=>ASe(lP({},"__esModule",{value:!0}),n),la=(n,t,i)=>(eit(n,typeof t!="symbol"?t+"":t,i),i),ISe={};tit(ISe,{createReactPlayer:()=>uit});var iit=nit(ISe),Jb=cP(k),rit=cP(UU),yK=cP(r2e),epe=cP(VU),t4=bSe,NSe=iF,sit=cP(Wnt);const ait=(0,NSe.lazy)(()=>Xi(()=>import("./Preview-DE052SrE.js").then(n=>n.P),__vite__mapDeps([]))),oit=typeof window<"u"&&window.document,lit=typeof Vs<"u"&&Vs.window&&Vs.window.document,cit=Object.keys(t4.propTypes),dit=oit||lit?Jb.Suspense:()=>null,bI=[],uit=(n,t)=>{var i;return i=class extends Jb.Component{constructor(){super(...arguments),la(this,"state",{showPreview:!!this.props.light}),la(this,"references",{wrapper:s=>{this.wrapper=s},player:s=>{this.player=s}}),la(this,"handleClickPreview",s=>{this.setState({showPreview:!1}),this.props.onClickPreview(s)}),la(this,"showPreview",()=>{this.setState({showPreview:!0})}),la(this,"getDuration",()=>this.player?this.player.getDuration():null),la(this,"getCurrentTime",()=>this.player?this.player.getCurrentTime():null),la(this,"getSecondsLoaded",()=>this.player?this.player.getSecondsLoaded():null),la(this,"getInternalPlayer",(s="player")=>this.player?this.player.getInternalPlayer(s):null),la(this,"seekTo",(s,l,d)=>{if(!this.player)return null;this.player.seekTo(s,l,d)}),la(this,"handleReady",()=>{this.props.onReady(this)}),la(this,"getActivePlayer",(0,yK.default)(s=>{for(const l of[...bI,...n])if(l.canPlay(s))return l;return t||null})),la(this,"getConfig",(0,yK.default)((s,l)=>{const{config:d}=this.props;return rit.default.all([t4.defaultProps.config,t4.defaultProps.config[l]||{},d,d[l]||{}])})),la(this,"getAttributes",(0,yK.default)(s=>(0,NSe.omit)(this.props,cit))),la(this,"renderActivePlayer",s=>{if(!s)return null;const l=this.getActivePlayer(s);if(!l)return null;const d=this.getConfig(s,l.key);return Jb.default.createElement(sit.default,{...this.props,key:l.key,ref:this.references.player,config:d,activePlayer:l.lazyPlayer||l,onReady:this.handleReady})})}shouldComponentUpdate(s,l){return!(0,epe.default)(this.props,s)||!(0,epe.default)(this.state,l)}componentDidUpdate(s){const{light:l}=this.props;!s.light&&l&&this.setState({showPreview:!0}),s.light&&!l&&this.setState({showPreview:!1})}renderPreview(s){if(!s)return null;const{light:l,playIcon:d,previewTabIndex:u,oEmbedUrl:p}=this.props;return Jb.default.createElement(ait,{url:s,light:l,playIcon:d,previewTabIndex:u,oEmbedUrl:p,onClick:this.handleClickPreview})}render(){const{url:s,style:l,width:d,height:u,fallback:p,wrapper:g}=this.props,{showPreview:_}=this.state,y=this.getAttributes(s),E=typeof g=="string"?this.references.wrapper:void 0;return Jb.default.createElement(g,{ref:E,style:{...l,width:d,height:u},...y},Jb.default.createElement(dit,{fallback:p},_?this.renderPreview(s):this.renderActivePlayer(s)))}},la(i,"displayName","ReactPlayer"),la(i,"propTypes",t4.propTypes),la(i,"defaultProps",t4.defaultProps),la(i,"addCustomPlayer",s=>{bI.push(s)}),la(i,"removeCustomPlayers",()=>{bI.length=0}),la(i,"canPlay",s=>{for(const l of[...bI,...n])if(l.canPlay(s))return!0;return!1}),la(i,"canEnablePIP",s=>{for(const l of[...bI,...n])if(l.canEnablePIP&&l.canEnablePIP(s))return!0;return!1}),i};var hit=Object.create,aF=Object.defineProperty,fit=Object.getOwnPropertyDescriptor,pit=Object.getOwnPropertyNames,mit=Object.getPrototypeOf,git=Object.prototype.hasOwnProperty,vit=(n,t)=>{for(var i in t)aF(n,i,{get:t[i],enumerable:!0})},OSe=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of pit(t))!git.call(n,l)&&l!==i&&aF(n,l,{get:()=>t[l],enumerable:!(s=fit(t,l))||s.enumerable});return n},yit=(n,t,i)=>(i=n!=null?hit(mit(n)):{},OSe(t||!n||!n.__esModule?aF(i,"default",{value:n,enumerable:!0}):i,n)),_it=n=>OSe(aF({},"__esModule",{value:!0}),n),PSe={};vit(PSe,{default:()=>bit});var Eit=_it(PSe),HX=yit(Cnt),wit=iit;const Sit=HX.default[HX.default.length-1];var bit=(0,wit.createReactPlayer)(HX.default,Sit);const LSe=Mv(Eit);function jZ({url:n,allowControls:t,allowLightMode:i,allowPlaying:s,previewImage:l,className:d,style:u,title:p}){const[g,_]=k.useState(!0),[y,E]=k.useState(""),[b,A]=k.useState(s),[N,O]=k.useState(i),[D,P]=k.useState(t);k.useEffect(()=>{console.log("Inside useeffect"),console.log("CustomMediaViewer loads =",y),n&&(console.log("inside if --- ",n),E(n),_(!1))},[n]);const j=d||"",M=u||null,V=l&&N?l:"/img/default-bg-low-quality.jpg",H=N&&h.jsx("div",{className:"d-flex justify-content-center align-items-center btn-theme btn-lg btn-icon rounded-circle shadow-lg",style:{background:"rgba(255,255,255,0.75)",color:"var(--color-gray2)"},onClick:Y=>$(),children:h.jsx(Zt,{tag:"play3",className:"font-30"})});function $(Y){A(!0)}const Q=g&&h.jsx(Ji,{animation:"border",variant:"dark"});return h.jsx(h.Fragment,{children:y?h.jsx("div",{className:`custom-video-viewer-card ratio ratio-16x9 overflow-hidden rounded-2 ${j}`,style:M,children:h.jsx(LSe,{url:y,width:"100%",height:"100%",playing:b,controls:D,light:N?V:!1,playIcon:H,fallback:Q})}):h.jsx("div",{className:"fw-sb font-16",children:"Video not found"})})}function UZ({url:n,allowControls:t,allowLightMode:i,allowPlaying:s,previewImage:l,className:d,style:u,title:p}){const[g,_]=k.useState(!0),[y,E]=k.useState(""),[b,A]=k.useState(s),[N,O]=k.useState(i),[D,P]=k.useState(t);k.useEffect(()=>{console.log("Inside useeffect"),console.log("CustomMediaViewer loads =",y),n&&(console.log("inside if --- ",n),E(n),_(!1))},[n]);const j=d||"",M=u||null,V=l&&N?l:"/img/default-bg-low-quality.jpg",H=N&&h.jsx("div",{className:"d-flex justify-content-center align-items-center btn-theme btn-lg btn-icon rounded-circle shadow-lg",style:{background:"rgba(255,255,255,0.75)",color:"var(--color-gray2)"},onClick:Y=>$(),children:h.jsx(Zt,{tag:"play3",className:"font-30"})});function $(Y){A(!0)}const Q=g&&h.jsx(Ji,{animation:"border",variant:"dark"});return h.jsx(h.Fragment,{children:y?h.jsx("div",{className:`custom-audio-viewer-card ratio ratio-21x9 overflow-hidden rounded-2 ${j}`,style:M,children:h.jsx(LSe,{url:y,width:"100%",height:"100%",playing:b,controls:D,light:N?V:!1,playIcon:H,fallback:Q})}):h.jsx("div",{className:"fw-sb font-16",children:"Video not found"})})}function Cit({show:n,handleClose:t,classNames:i,likesData:s,likeCount:l,isLiked:d,loading:u,isHandleLoading:p,parentId:g,handleLike:_}){return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom likes-list-modal",show:n,onHide:t,children:[h.jsx(vn.Header,{className:"",closeButton:!0,children:h.jsxs(vn.Title,{className:"d-flex align-items-center",children:[h.jsx(Pt,{className:`btn-theme btn-s btn-likes-light me-2 px- ${d&&"active"}`,onClick:()=>_(g),children:p?h.jsx(Ji,{size:"sm",className:"me-1"}):h.jsx(Zt,{tag:"favorite3",className:"font-20 me-"})}),l," Likes"]})}),h.jsxs(vn.Body,{className:"no-scrollbar",children:[h.jsxs("div",{className:"d-flex justify-content-between align-items-center p-2 bg-gray-lighter3 rounded-3 mb-2",children:[h.jsx("span",{className:"font-13 fw-sb",children:d?"You liked it":"You did not like it yet!"}),h.jsxs(Pt,{className:`btn-theme btn-sm btn-likes-light ms-2 px-2 ${d&&"active"}`,onClick:()=>_(g),children:[p?h.jsx(Ji,{size:"sm",className:"me-1"}):h.jsx(Zt,{tag:"favorite3",className:"font-18 me-1"}),h.jsx("span",{className:"",children:d?"Dislike now":"Like now"})]})]}),u&&h.jsx("div",{className:"d-grid gap-2",children:h.jsx(h.Fragment,{children:[0,1,2].map((y,E)=>h.jsx(ci,{type:"likes-list"},E))})}),!u&&(s==null?void 0:s.length)>0&&h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-2",children:h.jsx(h.Fragment,{children:s.map(y=>h.jsx(k_e,{item:y,className:"",bodyClassName:"px-0"},y.name+y.date))})})}),!(s!=null&&s.length)>0&&!u&&h.jsx("div",{className:"p-2 font-14 fw-sb",children:"No more likes!"})]})]})})}function Tit(n){var d,u,p,g,_,y,E,b,A,N,O,D,P,j,M,V,H,$,Q,Y,le,ae,te,de,G,ie,_e,he,Ce,fe;const[t,i]=k.useState("msg_details_tab");console.log("WallMessageDetailsCard props = ",n);const s=(u=(d=n.data)==null?void 0:d.user_info)!=null&&u.avatar?(g=(p=n.data)==null?void 0:p.user_info)==null?void 0:g.avatar:"/img/profile-pic.png";switch((_=n.data)==null?void 0:_.media_type.toLowerCase()){}const l=me=>{var Ne;console.log("Key in handleSelectedTab =",me),me=="msg_details_tab"&&console.log("Entering into msg_details_tab"),me=="msg_likes_tab"&&(console.log("Entering into msg_likes_tab"),n.likesListHandler((Ne=n.data)==null?void 0:Ne.id)),me=="msg_comments_tab"&&(console.log("Entering into msg_comments_tab parent id =",n.parent_id),n.handleCommentList(n.parent_id),console.log(n.loading)),i(me)};return h.jsxs("div",{className:"wall-message-details-card",children:[h.jsx("div",{className:"p-2 px-0 font-15 fw-sb mb-0",children:(y=n.data)==null?void 0:y.title}),h.jsx("div",{className:"no-scrollbar pt-2",children:n.loadingData?h.jsx(h.Fragment,{children:h.jsx(ci,{type:"details"})}):h.jsxs(h.Fragment,{children:[((E=n.data)==null?void 0:E.media_type.toLowerCase())==="pdf"?h.jsx(h.Fragment,{children:h.jsxs("div",{className:"font-13 text-gray6 pb-2 d-flex justify-content-between",children:[h.jsxs("div",{className:"flex-grow-1",children:[h.jsxs("div",{className:"fw-sb",children:[h.jsx("span",{className:"text-theme-primary pe-1",children:"By:"}),(A=(b=n==null?void 0:n.data)==null?void 0:b.user_info)==null?void 0:A.name]})," ",h.jsx("div",{children:`${(N=n==null?void 0:n.data)==null?void 0:N.date}`})]}),h.jsx("div",{className:"",children:h.jsx("a",{href:`${(O=n.data)==null?void 0:O.media_url}`,target:"_system",className:"btn btn-theme btn-sm btn-secondary py-2",children:"View in Browser"})})]})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:"font-13 text-gray6 pb-2 d-flex justify-content-between",children:[h.jsxs("div",{className:"flex-grow-1",children:[h.jsxs("div",{className:"fw-sb",children:[h.jsx("span",{className:"text-theme-primary pe-1",children:"By:"}),(P=(D=n==null?void 0:n.data)==null?void 0:D.user_info)==null?void 0:P.name]})," "]}),h.jsx("div",{className:"flex-shrink-0",children:h.jsx("div",{children:`${(j=n==null?void 0:n.data)==null?void 0:j.date}`})})]})}),((M=n.data)==null?void 0:M.media_type.toLowerCase())==="pdf"&&h.jsx(h.Fragment,{children:h.jsx(Jd,{aspectRatio:"9x16",className:"pdf-container mb-2 overflow-hidden mt-3 border rounded-3",style:{height:"calc(100% - 15vh)"},children:h.jsx(gZ,{fileUrl:(V=n.data)==null?void 0:V.media_url,isModalOpen:!0,className:"overflow-scroll mb-2"})})}),((H=n.data)==null?void 0:H.media_type.toLowerCase())==="video"&&h.jsx(jZ,{url:($=n.data)==null?void 0:$.media_url,allowControls:!0,allowLightMode:!0,allowPlaying:!0,previewImage:null,className:"mb-2",style:null}),((Q=n.data)==null?void 0:Q.media_type.toLowerCase())==="audio"&&h.jsx(UZ,{url:(Y=n.data)==null?void 0:Y.media_url,allowControls:!0,allowLightMode:!0,allowPlaying:!0,previewImage:null,className:"mb-2",style:null}),((le=n.data)==null?void 0:le.media_type.toLowerCase())==="image"&&h.jsx("div",{className:"media-container text-center mb-2",children:h.jsx(us,{src:(ae=n.data)==null?void 0:ae.media_url,alt:`${(te=n.data)==null?void 0:te.title} image`,wrapperClassName:"img-fluid mx-auto"})}),h.jsxs(Zn.Container,{id:"msg-tabs",className:"main_tabs",activeKey:t,onSelect:me=>l(me),children:[h.jsx("div",{className:"tab_links",children:h.jsxs(jn,{variant:"pills",className:"nav-justified",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_details_tab",children:h.jsx("div",{className:"",children:"Details"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"",children:`${n.likeCount?n.likeCount:0} ${n.likeCount===1?"Like":"Likes"}`})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"",children:`${n!=null&&n.commentsCount?n==null?void 0:n.commentsCount:0} ${(n==null?void 0:n.commentsCount)===1?"Comment":"Comments"}`})})})]})}),h.jsxs(Zn.Content,{className:"p-2",children:[h.jsx(Zn.Pane,{className:"",eventKey:"msg_details_tab",children:h.jsxs("div",{className:"py-2",children:[h.jsx(et,{className:"border-0 evaluation-status-card bg-transparent",children:h.jsx(et.Header,{className:"font-13 p-2 px-0 border-0 pb-3",children:h.jsxs("div",{className:"media",children:[h.jsx("div",{className:"media_icon_wrap d-flex justify-content-center align-items-center align-self-start",children:h.jsx("img",{src:s,className:"rounded-circle media_img",alt:`${(G=(de=n==null?void 0:n.data)==null?void 0:de.user_info)==null?void 0:G.name} profile`})}),h.jsx("div",{className:"media_body ms-1 d-flex justify-content-betwee align-items-center",children:h.jsxs("div",{className:"mb-0 font-12 text-gray6 fw-",children:["Messaged on"," ",h.jsx("span",{className:"font-12 text-gray6",children:(ie=n==null?void 0:n.data)==null?void 0:ie.date}),h.jsxs("div",{className:"d-block",children:["by"," ",h.jsx("span",{className:"fw-sb text-theme-primary",children:(he=(_e=n==null?void 0:n.data)==null?void 0:_e.user_info)==null?void 0:he.name})]})]})})]})})}),h.jsx("div",{className:"font-14 text-gray7",children:(Ce=n.data)==null?void 0:Ce.body})]})}),h.jsx(Zn.Pane,{className:"",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(nx,{isLiked:n.isLiked,loadingMediaLike:n.loadingMediaLike,loadingLikesList:n.loadingLikesList,likesData:n.likesData,likeActionHandler:n.likeActionHandler,parentId:(fe=n.data)==null?void 0:fe.id})})}),h.jsx(Zn.Pane,{className:"",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(YE,{comment_type:n.comment_type,loading:n.loadingCommentsList,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:"fixed-bottom"})})})]})]})]})})]})}function Rit(){const{msgId:n}=iU(),[t,i]=k.useState(null),[s,l]=k.useState(!0),[d,u]=k.useState(t==null?void 0:t.is_liked),[p,g]=k.useState(t==null?void 0:t.likes_count),[_,y]=k.useState(t==null?void 0:t.comments_count),[E,b]=k.useState(!1),[A,N]=k.useState([]),[O,D]=k.useState(!0),[P,j]=k.useState([]),[M,V]=k.useState(!0);k.useState([]),k.useState({isVisible:!1});async function H(le){console.log("msgId =",le),So.getWallMessageDetails(le).then(ae=>{var te,de,G,ie,_e,he;console.log("getWallMessageDetails RES = ",ae.data),ae.data.status==="success"&&(console.log("Success in getWallMessageDetails =",(te=ae.data.data)==null?void 0:te.message),i((de=ae.data.data)==null?void 0:de.message),y((ie=(G=ae.data.data)==null?void 0:G.message)==null?void 0:ie.comments_count),g((he=(_e=ae.data.data)==null?void 0:_e.message)==null?void 0:he.likes_count),l(!1))}).catch(ae=>{l(!1),i(null),console.log("Error in getWallMessageDetails = ",ae)})}async function $(le){console.log("function getWallMessageLike... called for MediaCard =",le),b(!0),le&&So.getWallMessageLike(le).then(ae=>{var te,de;console.log("getWallMessageLike RES = ",ae.data),ae.data.status==="success"&&(console.log("Success in getWallMessageLike =",ae.data.data),u((te=ae.data.data)==null?void 0:te.is_liked),console.log("Success in Wall Message Card =",ae.data.data),g((de=ae.data.data)==null?void 0:de.likes_count),b(!1),Q(le))}).catch(ae=>{var te,de;b(!1),u((te=props.media)==null?void 0:te.is_liked),g((de=props.media)==null?void 0:de.likes_count),console.log("Error in getWallMessageLike = ",ae)})}async function Q(le){console.log("function getWallMessageLikesList... called for MediaCard =",le),le&&So.getWallMessageLikesList(le).then(ae=>{var te;console.log("getWallMessageLikesList RES = ",ae.data),ae.data.status==="success"&&(console.log("Success in getWallMessageLikesList =",ae.data.data.likes),N((te=ae.data.data)==null?void 0:te.likes),console.log("Success in WallMessage Card Likes lIst =",ae.data.data),D(!1))}).catch(ae=>{D(!1),N([]),console.log("Error in getWallMessageLikesList = ",ae)})}async function Y(le){console.log("function getAllWallMessageCommentList... called for MediaCard =",le),le&&So.getAllWallMessageCommentList(le).then(ae=>{var te;console.log("getAllWallMessageCommentList RES = ",ae.data),ae.data.status==="success"&&(console.log("Success in getAllWallMessageCommentList =",ae.data.data.comments),j((te=ae.data.data)==null?void 0:te.comments),console.log("Success in WallMessage Card Comments lIst =",ae.data.data),V(!1))}).catch(ae=>{V(!1),j([]),console.log("Error in getAllWallMessageCommentList = ",ae)})}return k.useEffect(()=>{H(n)},[]),h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[s&&h.jsx(ci,{type:"magazine",className:"card-theme overflow-hidden"}),!s&&h.jsx(Tit,{itemDetails:t,data:t,loadingData:s,likesData:A,likeCount:p,isLiked:d,likeActionHandler:$,loadingMediaLike:E,likesListHandler:Q,loadingLikesList:O,comment_type:"message",loadingCommentsList:M,parent_id:t==null?void 0:t.id,parent_owner_id:null,comments:P,handleCommentList:Y,setCommentsCount:y,commentsCount:_})]})})}function xit(n){var d,u,p,g,_,y,E,b,A,N,O,D,P,j,M,V,H,$,Q,Y,le,ae,te,de,G,ie,_e,he,Ce,fe,me;const[t,i]=k.useState("msg_details_tab"),s=(u=(d=n.data)==null?void 0:d.user_info)!=null&&u.avatar?(g=(p=n.data)==null?void 0:p.user_info)==null?void 0:g.avatar:"/img/profile-pic.png";switch((_=n.data)==null?void 0:_.media_type.toLowerCase()){}(y=n.data)==null||y.media_type;const l=Ne=>{var Fe;console.log("Key in handleSelectedTab =",Ne),Ne=="msg_details_tab"&&console.log("Entering into msg_details_tab"),Ne=="msg_likes_tab"&&(console.log("Entering into msg_likes_tab"),n.likesListHandler((Fe=n.data)==null?void 0:Fe.id)),Ne=="msg_comments_tab"&&(console.log("Entering into msg_comments_tab parent id =",n.parent_id),n.handleCommentList(n.parent_id),console.log(n.loading)),i(Ne)};return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom media-viewer-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:(E=n.data)==null?void 0:E.title})}),h.jsx(vn.Body,{className:"no-scrollbar pt-2",children:n.loadingData?h.jsx(h.Fragment,{children:h.jsx(ci,{type:"details"})}):h.jsxs(h.Fragment,{children:[((b=n.data)==null?void 0:b.media_type.toLowerCase())==="pdf"?h.jsx(h.Fragment,{children:h.jsxs("div",{className:"font-13 text-gray6 pb-2 d-flex justify-content-between",children:[h.jsxs("div",{className:"flex-grow-1",children:[h.jsxs("div",{className:"fw-sb",children:[h.jsx("span",{className:"text-theme-primary pe-1",children:"By:"}),(N=(A=n==null?void 0:n.data)==null?void 0:A.user_info)==null?void 0:N.name]})," ",h.jsx("div",{children:`${(O=n==null?void 0:n.data)==null?void 0:O.date}`})]}),h.jsx("div",{className:"",children:h.jsx("a",{href:`${(D=n.data)==null?void 0:D.media_url}`,target:"_system",className:"btn btn-theme btn-sm btn-secondary py-2",children:"View in Browser"})})]})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:"font-13 text-gray6 pb-2 d-flex justify-content-between",children:[h.jsxs("div",{className:"flex-grow-1",children:[h.jsxs("div",{className:"fw-sb",children:[h.jsx("span",{className:"text-theme-primary pe-1",children:"By:"}),(j=(P=n==null?void 0:n.data)==null?void 0:P.user_info)==null?void 0:j.name]})," "]}),h.jsx("div",{className:"flex-shrink-0",children:h.jsx("div",{children:`${(M=n==null?void 0:n.data)==null?void 0:M.date}`})})]})}),((V=n.data)==null?void 0:V.media_type.toLowerCase())==="pdf"&&h.jsx(Jd,{aspectRatio:"9x16",className:"pdf-container mb-2 overflow-hidden",style:{height:"calc(100% - 15vh)"},children:h.jsx(gZ,{fileUrl:(H=n.data)==null?void 0:H.media_url,isModalOpen:!0,className:"overflow-scroll mb-2"})}),(($=n.data)==null?void 0:$.media_type.toLowerCase())==="video"&&h.jsx(jZ,{url:(Q=n.data)==null?void 0:Q.media_url,allowControls:!0,allowLightMode:!0,allowPlaying:!0,previewImage:null,className:"mb-2",style:null}),((Y=n.data)==null?void 0:Y.media_type.toLowerCase())==="audio"&&h.jsx(UZ,{url:(le=n.data)==null?void 0:le.media_url,allowControls:!0,allowLightMode:!0,allowPlaying:!0,previewImage:null,className:"mb-2",style:null}),((ae=n.data)==null?void 0:ae.media_type.toLowerCase())==="image"&&h.jsx("div",{className:"media-container text-center mb-2",children:h.jsx(us,{src:(te=n.data)==null?void 0:te.media_url,alt:`${(de=n.data)==null?void 0:de.title} image`,wrapperClassName:"img-fluid mx-auto"})}),h.jsxs(Zn.Container,{id:"msg-tabs",className:"main_tabs",activeKey:t,onSelect:Ne=>l(Ne),children:[h.jsx("div",{className:"tab_links",children:h.jsxs(jn,{variant:"pills",className:"nav-justified",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_details_tab",children:h.jsx("div",{className:"",children:"Details"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"",children:`${n.likeCount} ${n.likeCount===1?"Like":"Likes"}`})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"",children:`${n==null?void 0:n.commentsCount} ${(n==null?void 0:n.commentsCount)===1?"Comment":"Comments"}`})})})]})}),h.jsxs(Zn.Content,{className:"p-2",children:[h.jsx(Zn.Pane,{className:"",eventKey:"msg_details_tab",children:h.jsxs("div",{className:"py-2",children:[h.jsx(et,{className:"border-0 evaluation-status-card",children:h.jsx(et.Header,{className:"font-13 p-2 px-0 bg-transparent border-0 pb-3",children:h.jsxs("div",{className:"media",children:[h.jsx("div",{className:"media_icon_wrap d-flex justify-content-center align-items-center align-self-start",children:h.jsx("img",{src:s,className:"rounded-circle media_img",alt:`${(ie=(G=n==null?void 0:n.data)==null?void 0:G.user_info)==null?void 0:ie.name} profile`})}),h.jsx("div",{className:"media_body ms-1 d-flex justify-content-betwee align-items-center",children:h.jsxs("div",{className:"mb-0 font-12 text-gray6 fw-",children:["Messaged on"," ",h.jsx("span",{className:"font-12 text-gray6",children:(_e=n==null?void 0:n.data)==null?void 0:_e.date}),h.jsxs("div",{className:"d-block",children:["by"," ",h.jsx("span",{className:"fw-sb text-theme-primary",children:(Ce=(he=n==null?void 0:n.data)==null?void 0:he.user_info)==null?void 0:Ce.name})]})]})})]})})}),h.jsx("div",{className:"font-14 text-gray7",children:(fe=n.data)==null?void 0:fe.body})]})}),h.jsx(Zn.Pane,{className:"",eventKey:"msg_likes_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(nx,{isLiked:n.isLiked,loadingMediaLike:n.loadingMediaLike,loadingLikesList:n.loadingLikesList,likesData:n.likesData,likeActionHandler:n.likeActionHandler,parentId:(me=n.data)==null?void 0:me.id})})}),h.jsx(Zn.Pane,{className:"",eventKey:"msg_comments_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(YE,{comment_type:n.comment_type,loading:n.loadingCommentsList,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:"fixed-bottom"})})})]})]})]})})]})})}function Ait({handleWallMessageCardClick:n,message:t,index:i,className:s}){var we,Ge,rt,pt;const[l,d]=k.useState(t==null?void 0:t.is_liked),[u,p]=k.useState(t==null?void 0:t.likes_count),[g,_]=k.useState(t==null?void 0:t.comments_count),[y,E]=k.useState(null),[b,A]=k.useState(!0),[N,O]=k.useState(!1),[D,P]=k.useState([]),[j,M]=k.useState(!0),[V,H]=k.useState([]),[$,Q]=k.useState(!0),[Y,le]=k.useState(!1),ae=s||"",te=t!=null&&t.title?t==null?void 0:t.title:"Default title",de=t!=null&&t.type?t==null?void 0:t.type:"",G=t!=null&&t.body?t==null?void 0:t.body:"",ie=t!=null&&t.media_type?t==null?void 0:t.media_type:"",_e=t!=null&&t.media_url?t==null?void 0:t.media_url:"/img/default-bg.jpg",he=(we=t==null?void 0:t.user_info)!=null&&we.name?(Ge=t==null?void 0:t.user_info)==null?void 0:Ge.name:"",Ce=(rt=t==null?void 0:t.user_info)!=null&&rt.avatar?(pt=t==null?void 0:t.user_info)==null?void 0:pt.avatar:"/img/profile-pic.png";t!=null&&t.view_count&&(t==null||t.view_count),t!=null&&t.comments_count&&(t==null||t.comments_count),t!=null&&t.likes_count&&(t==null||t.likes_count);const fe=t!=null&&t.date?t==null?void 0:t.date:"";switch(ie.toLowerCase()){}t==null||t.media_type;const me=()=>{le(!1)},Ne=()=>{le(!0),Ve(t==null?void 0:t.id)};function Fe(Ze){Ze.stopPropagation(),console.log("handleMediaAction called...")}function je(Ze){Ze.stopPropagation(),console.log("Detials But clicked.."),Ne()}async function Ve(Ze){console.log("msgId =",Ze),So.getWallMessageDetails(Ze).then(Je=>{console.log("getWallMessageDetails RES = ",Je.data),Je.data.status==="success"&&(console.log("Success in getWallMessageDetails =",Je.data.data.message),E(Je.data.data.message),A(!1))}).catch(Je=>{A(!1),E(null),console.log("Error in getWallMessageDetails = ",Je)})}async function Re(Ze){console.log("function getWallMessageLike... called for MediaCard =",Ze),O(!0),Ze&&So.getWallMessageLike(Ze).then(Je=>{var _t,Xt;console.log("getWallMessageLike RES = ",Je.data),Je.data.status==="success"&&(console.log("Success in getWallMessageLike =",Je.data.data),d((_t=Je.data.data)==null?void 0:_t.is_liked),console.log("Success in Wall Message Card =",Je.data.data),p((Xt=Je.data.data)==null?void 0:Xt.likes_count),O(!1),Be(Ze))}).catch(Je=>{var _t,Xt;O(!1),d((_t=props.media)==null?void 0:_t.is_liked),p((Xt=props.media)==null?void 0:Xt.likes_count),console.log("Error in getWallMessageLike = ",Je)})}async function Be(Ze){console.log("function getWallMessageLikesList... called for MediaCard =",Ze),Ze&&So.getWallMessageLikesList(Ze).then(Je=>{var _t;console.log("getWallMessageLikesList RES = ",Je.data),Je.data.status==="success"&&(console.log("Success in getWallMessageLikesList =",Je.data.data.likes),P((_t=Je.data.data)==null?void 0:_t.likes),console.log("Success in WallMessage Card Likes lIst =",Je.data.data),M(!1))}).catch(Je=>{M(!1),P([]),console.log("Error in getWallMessageLikesList = ",Je)})}async function Xe(Ze){console.log("function getAllWallMessageCommentList... called for MediaCard =",Ze),Ze&&So.getAllWallMessageCommentList(Ze).then(Je=>{var _t;console.log("getAllWallMessageCommentList RES = ",Je.data),Je.data.status==="success"&&(console.log("Success in getAllWallMessageCommentList =",Je.data.data.comments),H((_t=Je.data.data)==null?void 0:_t.comments),console.log("Success in WallMessage Card Comments lIst =",Je.data.data),Q(!1))}).catch(Je=>{Q(!1),H([]),console.log("Error in getAllWallMessageCommentList = ",Je)})}return h.jsxs(h.Fragment,{children:[de==="message"?h.jsxs(et,{className:`border-0 card-theme wall-message-card overflow-hidden ${ae}`,onClick:Ze=>{je(Ze)},children:[h.jsxs("div",{className:"font-13 mb-1 py-2 px-2 pb-0 d-flex align-items-center",children:[h.jsx("span",{className:"text-theme-prim fw-sb user-img overflow-hidden rounded-cicle d-flex",children:h.jsx(us,{src:Ce,alt:he,wrapperClassName:"overflow-hidden rounded-cicle"})})," ",h.jsx("div",{className:"ps-2",children:he})]}),h.jsx(et.Header,{className:"border-bottom-0 p-2 p-sm-3 pt-0 pb-0 line-clamp",children:te}),h.jsx(et.Body,{className:"p-2 p-sm-3 pt-1",children:h.jsx("div",{className:"line-clamp-3 font-13 text-gray6",children:G})}),_e&&(ie.toLowerCase()==="video"||ie.toLowerCase()==="audio")?h.jsxs("div",{className:"px-2 px-sm-3",onClick:Ze=>{Fe(Ze)},children:[ie.toLowerCase()==="video"&&h.jsx(jZ,{url:_e,allowControls:!0,allowLightMode:!0,allowPlaying:!0,previewImage:null}),ie.toLowerCase()==="audio"&&h.jsx(UZ,{url:_e,allowControls:!0,allowLightMode:!0,allowPlaying:!0,previewImage:null})]}):h.jsx(h.Fragment,{children:ie.toLowerCase()==="pdf"?h.jsx("div",{className:"px-2 mb-2",children:h.jsxs("div",{className:"p-2 py-4 text-center overflow-hidden rounded-2",style:{backgroundColor:"var(--color-likes-lighter)"},children:[h.jsx(Zt,{tag:"pdf1",className:"text-danger",style:{fontSize:52}}),h.jsx(Ga,{className:"d-block text-danger",size:"lg",children:"PDF Document"})]})}):h.jsx("div",{className:"px-2 mb-2",children:h.jsx(us,{src:_e,alt:`${te} image`,wrapperClassName:"card-img"})})}),h.jsxs(et.Footer,{className:"px-2 px-sm-3 py-1 pt-2 border-top- d-flex justify-content-between",children:[h.jsx("div",{className:"d-flex align-items-center flex-grow-1",style:{maxWidth:"140px"},children:h.jsxs("div",{className:"font-13 text-gray6 d-flex align-items-center",children:[h.jsx(Zt,{tag:"events1",className:"font-20"})," ",h.jsx("span",{className:"ms-1",children:fe})]})}),h.jsxs("div",{className:"btn-wrap ms-2",children:[h.jsxs(Pt,{className:`btn-theme btn-sm btn-likes-light px-2 pe-none ${l&&"active"}`,children:[h.jsx(Zt,{tag:"favorite3",className:"font-18"})," ",u]}),h.jsxs(Pt,{className:"btn-theme btn-sm btn-gray px-2 pe-none",children:[h.jsx(Zt,{tag:"message8",className:"font-18"})," ",g]})]})]})]}):h.jsxs(et,{className:`border-0 card-theme wall-message-card wall-message-card-horizontal overflow-hidden ${ae}`,onClick:Ze=>{je(Ze)},children:[h.jsx(et.Body,{className:"p-2 p-sm-3 ps-0 pt-0",children:h.jsxs("div",{className:"d-flex",children:[h.jsx("div",{className:"img-container flex-shrink-0",style:{width:100,height:100},children:h.jsx(us,{src:_e,alt:`${te} image`,wrapperClassName:"card-img overflow-hidden rounded-3"})}),h.jsxs("div",{className:"flex-grow-1 ps-2 pt-0 ps-sm-3 pt-sm-2",children:[h.jsxs("div",{className:"font-13 mb-1 py-2 px-0 pb-0 d-flex align-items-center",children:[h.jsx("span",{className:"text-theme-prim fw-sb user-img overflow-hidden rounded-cicle d-flex",children:h.jsx(us,{src:Ce,alt:he,wrapperClassName:"overflow-hidden rounded-cicle"})})," ",h.jsx("div",{className:"ps-2",children:he})]}),h.jsx(et.Header,{className:"border-bottom-0 p-0 line-clamp mb-1",children:te}),h.jsx("div",{className:"line-clamp-3 font-13 text-gray6",children:G})]})]})}),h.jsxs(et.Footer,{className:"px-2 px-sm-3 py-1 border-top- d-flex justify-content-between",children:[h.jsx("div",{className:"d-flex align-items-center flex-grow-1",style:{maxWidth:"140px"},children:h.jsxs("div",{className:"font-13 text-gray6 d-flex align-items-center",children:[h.jsx(Zt,{tag:"events1",className:"font-20"})," ",h.jsx("span",{className:"ms-1",children:fe})]})}),h.jsxs("div",{className:"btn-wrap ms-2",children:[h.jsxs(Pt,{className:`btn-theme btn-sm btn-likes-light px-2 pe-none ${l&&"active"}`,children:[h.jsx(Zt,{tag:"favorite3",className:"font-18"})," ",u]}),h.jsxs(Pt,{className:"btn-theme btn-sm btn-gray px-2 pe-none",children:[h.jsx(Zt,{tag:"message8",className:"font-18"})," ",g]})]})]})]}),h.jsx(xit,{show:Y,handleClose:me,data:y,loadingData:b,likesData:D,likeCount:u,isLiked:l,likeActionHandler:Re,loadingMediaLike:N,likesListHandler:Be,loadingLikesList:j,comment_type:"message",loadingCommentsList:$,parent_id:t==null?void 0:t.id,parent_owner_id:null,comments:V,handleCommentList:Xe,setCommentsCount:_,commentsCount:g})]})}function Iit(){var le,ae;const n=Ii(),[t,i]=k.useState([]),[s,l]=k.useState(),[d,u]=k.useState(0),[p,g]=k.useState(null),[_,y]=k.useState(!0),[E,b]=k.useState(!1),[A,N]=k.useState("all");k.useState("");const[O,D]=k.useState(!0),P=k.useRef();async function j(){let te;p&&(console.log("lastKey = ",p),te=p),So.getAllWallMessages(te).then(de=>{var G,ie,_e,he,Ce,fe,me,Ne;if(console.log("getAllWallMessages RES = ",de.data),de.data.status==="success"){console.log("Success in getAllWallMessages =",de.data.data.messages);const Fe=(ie=(G=de.data)==null?void 0:G.data)==null?void 0:ie.messages,je=(he=(_e=de.data)==null?void 0:_e.data)==null?void 0:he.cansend,Ve=(fe=(Ce=de.data)==null?void 0:Ce.data)==null?void 0:fe.count,Re=(Ne=(me=de.data)==null?void 0:me.data)==null?void 0:Ne.lastkey;i(Be=>[...Be,...Fe]),D(je),u(Ve),g(Re),y(!1)}}).catch(de=>{y(!1),i([]),u(0),g(null),console.log("Error in getAllWallMessages = ",de)})}function M(te){te&&n(`/messages/${te}`)}k.useEffect(()=>{j()},[]),k.useEffect(()=>{t&&!_&&l(t);const te=V(A,t);console.log("filteredData === ",te),l(te)},[t]);function V(te,de){switch(console.log("selectedSegment =",te,` +data = `,de),te){case"all":return console.log("case : ",te),de;default:return $(A,de)}}const H=()=>{P.current.value="",N("all");const te=V("all",t);l(te)};function $(te,de){console.log("searchMessages - filteredData =",de);const G=de.filter((ie,_e)=>{var he;return(ie==null?void 0:ie.title.toLowerCase().includes(te.toLowerCase()))||(ie==null?void 0:ie.body.toLowerCase().includes(te.toLowerCase()))||((he=ie==null?void 0:ie.user_info)==null?void 0:he.name.toLowerCase().includes(te.toLowerCase()))});return console.log("Result =",G),G}const Q=tx.debounce(te=>{console.log("This is function from lodash..."),console.log("Search text =",te),N(te.trim());const de=V(A,t);te.trim().length>0?(console.log(te.trim()),l($(te.trim(),de))):l(de)},500),Y=()=>{n("/messages/send-message",{state:{pageTitle:"Send a Message",hideFooterNav:!0}})};return h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[_?h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-3",children:[0,1].map((te,de)=>h.jsx(ci,{type:"magazine",className:"card-theme overflow-hidden"},de))})}):h.jsx(h.Fragment,{children:t.length>0?h.jsxs(h.Fragment,{children:[h.jsxs(kt.Group,{className:"form-group rounded_corners search_field autocomplete_field mb-3 position-relative",children:[h.jsx(kt.Control,{type:"text",name:"searchInput",onChange:te=>{console.log("Search input = ",te),Q(te.target.value)},ref:P,placeholder:"Search",style:{backgroundImage:"url(/img/search-icon.png)",backgroundRepeat:"no-repeat",backgroundPosition:"center right 12px"},autoComplete:"off"}),((le=P==null?void 0:P.current)==null?void 0:le.value.length)>0&&h.jsx(Pt,{onClick:H,className:"btn-theme btn-icon btn-sm btn-gray position-absolute",style:{top:4,right:6},type:"button",children:h.jsx(VE,{})}),((ae=P==null?void 0:P.current)==null?void 0:ae.value.length)>0&&h.jsx("span",{className:"font-13 fw-sb px-1 text-gray9",children:`Results found ${s==null?void 0:s.length}`})]}),t.length>0&&!_?h.jsx(h.Fragment,{children:(s==null?void 0:s.length)>0?h.jsx(h.Fragment,{children:h.jsx(L_e,{dataLength:s.length,next:j,scrollThreshold:1,hasMore:!!p,loader:h.jsx(D_e,{}),children:h.jsx("div",{className:"d-grid gap-3",children:s.map((te,de)=>h.jsx(Ait,{message:te,index:de,className:"shadow-sm ",handleWallMessageCardClick:M},te.id))})})}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No more messages found."})})})})}):h.jsx(h.Fragment,{})]}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more messages"})})}),O&&h.jsx(ZQ,{btnTitle:"Send",className:"",isWide:!1,icon:"send2",loading:E,primaryActionHandler:Y})]})})}function tpe({type:n,text:t,subText:i,actionHandler:s,className:l}){const d=Ii(),u=l||"";function p(){console.log("btnClickHandler"),s(),d("/notifications")}return h.jsxs("div",{className:`${u}`,children:[h.jsx("div",{className:`icon-wrapper ${n==="reject"?"wrapper-fail":""} d-flex justify-content-center align-items-center rounded-circle mx-auto`,children:h.jsx(Zt,{tag:`${n==="reject"?"delete7":"check1"}`,className:"font-40"})}),h.jsxs("div",{className:"py-4 px-5 text-center font-15 text-gray-6",children:[h.jsx("div",{className:"fw-sb font-16 mb-1",children:t}),i]}),h.jsx("div",{className:"d-grid gap-2",children:h.jsx(Pt,{className:"btn-theme btn-primary btn-lg",onClick:p,children:"Go Back"})})]})}function Nit(n){const[t,i]=k.useState(!1),s={reason:""},l=uc({reason:hf().required("Required")}),d=async(u,{resetForm:p})=>{i(!0),console.log("Form Values :",u);let g={...u,approval_id:n.approvalId,action:n.action};console.log("Calling rejectReasonForm...",g),lQ.rejectForm(g).then(_=>{console.log("rejectForm RES = ",_.data),_.data.status==="success"&&(console.log("Success in rejectForm =",_.data),i(!1),n.setIsRejected(!0))}).catch(_=>{i(!1),n.setIsRejected(!1),console.log("Error in rejectForm = ",_)})};return h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-flex flex-column",children:h.jsx(id,{initialValues:s,validationSchema:l,onSubmit:d,children:u=>h.jsxs(kt,{className:"form_style",onSubmit:u.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group rounded_corners mb-4",children:[h.jsx(kt.Label,{className:"d-block font-14 text-start",children:"Reason to Reject"}),h.jsx("div",{className:"pt-0 pb-3 text-gray6 font-12 text-start",children:"Your reason to reject will help the submitter to improve and submit again."}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto",maxHeight:"100px"},placeholder:"Reason",name:"reason",...u.getFieldProps("reason"),autoComplete:"off"}),u.touched.reason&&u.errors.reason?h.jsx("p",{className:"error-state-text text-start font-12 text-danger mb-0",children:u.errors.reason}):null]}),h.jsx("div",{className:"btn-wrap d-grid",children:h.jsx(Pt,{type:"submit",className:"btn btn-theme btn-lg btn-red",children:t?h.jsx(h.Fragment,{children:h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})}):"Submit"})})]})})})})}function Oit(n){Ii();const[t,i]=k.useState(!1),[s,l]=k.useState(!1),[d,u]=k.useState(!0),p={backdrop:"static",keyboard:!1},g={closeButton:n.action==="reject"&&!t};console.log(n.loading),console.log(n.action),k.useEffect(()=>{if(console.log(n.action),n.action==="approve"&&!s){let y={approval_id:n==null?void 0:n.approvalId,action:n==null?void 0:n.action};console.log("approveData =",y),_(y)}if(n.action==="reject"&&!t){let y={approval_id:n==null?void 0:n.approvalId,action:n==null?void 0:n.action,reason:""};console.log("rejectData =",y)}},[n.action]);async function _(y){console.log("Inside Modal: approveForm()..."),u(!0),lQ.approveForm(y).then(E=>{console.log("approveForm RES = ",E.data),E.data.status==="success"&&(console.log("Success in approveForm =",E.data),l(!0),u(!1))}).catch(E=>{u(!1),l(!1),console.log("Error in approveForm = ",E)})}return h.jsxs(vn,{centered:!0,size:"md",className:"theme-modal approve-reject-form-modal",...p,show:n.show.isVisible,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb-0 border-0 pt-2",...g,children:" "}),h.jsxs(vn.Body,{className:"no-scrollbar text-center pt-0",children:[n.action==="approve"&&!s&&h.jsx("div",{className:"p-5 d-flex justify-content-center align-items-center mx-auto",children:h.jsx(Ji,{animation:"border"})}),n.action==="approve"&&s&&h.jsx(h.Fragment,{children:h.jsx(tpe,{type:"approve",text:"Thanks!",subText:"You have successfully approved the submission.",actionHandler:n.handleClose,className:"pt-3"})}),n.action==="reject"&&!t&&h.jsx(Nit,{action:n.action,isRejected:t,setIsRejected:i,approvalId:n==null?void 0:n.approvalId}),n.action==="reject"&&t&&h.jsx(h.Fragment,{children:h.jsx(tpe,{type:"reject",text:"",subText:"You have rejected the submission. We Have notified the submitter about the rejection.",actionHandler:n.handleClose,className:"pt-3"})})]})]})}function npe(){const{entityId:n}=iU(),[t,i]=k.useState(null),[s,l]=k.useState(""),[d,u]=k.useState(""),[p,g]=k.useState(!0),[_,y]=k.useState(!0);k.useState(!0);const[E,b]=k.useState({isVisible:!1});k.useEffect(()=>{console.log("id = ",n),n?(console.log("id found = ",n),O({entity_id:n})):(console.log("id = ",n),console.log("Id not found"))},[]);const A=()=>{console.log("Closing Form Submission modal"),b({isVisible:!1})},N=j=>{b({isVisible:!0}),u(j)};Xo();async function O(j){console.log("Inside ApproveRejectFormSubmission: getFormApprovalInfo()..."),lQ.getFormApprovalInfo(j).then(M=>{var V,H,$,Q,Y;console.log("getFormApprovalInfo RES = ",M.data),M.data.status==="success"&&(console.log("Success in getFormApprovalInfo =",(H=(V=M.data)==null?void 0:V.data)==null?void 0:H.preview),i((Q=($=M.data)==null?void 0:$.data)==null?void 0:Q.preview),g(!1),l("")),M.data.status==="failed"&&(g(!1),console.log("Inside es.data.status === 'failed'"),((Y=M==null?void 0:M.data)==null?void 0:Y.statusCode)===401?l("You dont have permissions!"):l("Something went wrong!"))}).catch(M=>{handleAlert("something went wrong!","error"),l("Something went wrong!"),i(null),g(!1),console.log("Error in getFormApprovalInfo = ",M)})}function D(j){console.log("handleApproveBtnClick called...",j),N("approve")}function P(j){console.log("handleRejectBtnClick called...",j),N("reject")}return h.jsx(h.Fragment,{children:h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"",children:[p?h.jsx(h.Fragment,{children:h.jsx(ci,{type:"iframe-loader"})}):h.jsx(h.Fragment,{children:s===""?h.jsx(Jd,{aspectRatio:"1x1",className:"",style:{height:"calc(100vh - 30vh)"},children:h.jsx("iframe",{src:`${t==null?void 0:t.preview_url}`,title:"Approve or Reject Submission",onLoad:()=>y(!1)})}):h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:h.jsxs(et.Body,{className:"text-center",children:[h.jsx(Zt,{tag:"warning2",className:"font-40 text-theme-warning mb-3"}),h.jsx(Ga,{size:"",className:"text-gray6",children:s})]})})}),s===""&&h.jsxs("div",{className:"footer-btn-overlay d-flex flex-column",children:[h.jsxs("div",{className:"d-flex justify-content-center pt-2 pb-3",children:[h.jsx("div",{className:"font-14 text-theme-primary",children:"Submitted By: "}),h.jsx("div",{className:"font-14 fw-sb ps-2",children:t==null?void 0:t.submitted_by})]}),h.jsxs("div",{className:"btn-wrap d-flex justify-content-center align-items-center",children:[h.jsx(Pt,{type:"button",className:"btn-theme btn-md btn-green flex-grow-1",onClick:()=>{let j={approval_id:t==null?void 0:t.approval_id,action:"approve"};D(j)},children:"Approve"}),h.jsx(Pt,{type:"button",className:"btn-theme btn-md btn-red flex-grow-1",onClick:()=>{let j={approval_id:t==null?void 0:t.approval_id,action:"reject",reason:"Testing reason"};P(j)},children:"Reject"})]})]}),h.jsx(Oit,{show:E,handleClose:A,action:d,approvalId:t==null?void 0:t.approval_id})]})})})}function Pit(n){var j,M,V,H,$,Q,Y,le,ae,te,de,G,ie,_e,he,Ce,fe,me,Ne,Fe,je,Ve,Re,Be,Xe,we,Ge,rt,pt,Ze,Je,_t,Xt,Ht,gn,It,xt;const t=Ii();k.useState(!1),k.useState(!1);let i=n!=null&&n.className?n==null?void 0:n.className:"";const s=(j=n==null?void 0:n.item)!=null&&j.title?(M=n==null?void 0:n.item)==null?void 0:M.title:"Default title",l=(V=n.item)!=null&&V.cover_image?(H=n.item)==null?void 0:H.cover_image:"/img/default-bg.jpg",d=($=n==null?void 0:n.item)!=null&&$.media?(Q=n==null?void 0:n.item)==null?void 0:Q.media:"",u=(Y=n==null?void 0:n.item)!=null&&Y.media_type?(le=n==null?void 0:n.item)==null?void 0:le.media_type:"",p=(ae=n.item)!=null&&ae.description?(te=n.item)==null?void 0:te.description:"",g=(G=(de=n.item)==null?void 0:de.user_info)!=null&&G.name?(_e=(ie=n.item)==null?void 0:ie.user_info)==null?void 0:_e.name:"";(Ce=(he=n.item)==null?void 0:he.user_info)!=null&&Ce.avatar&&((me=(fe=n.item)==null?void 0:fe.user_info)==null||me.avatar);const _=(Fe=(Ne=n.item)==null?void 0:Ne.expiry_date)!=null&&Fe.day?(Ve=(je=n.item)==null?void 0:je.expiry_date)==null?void 0:Ve.day:"",y=(Be=(Re=n.item)==null?void 0:Re.expiry_date)!=null&&Be.month?(we=(Xe=n.item)==null?void 0:Xe.expiry_date)==null?void 0:we.month:"";(rt=(Ge=n.item)==null?void 0:Ge.expiry_date)!=null&&rt.year&&((Ze=(pt=n.item)==null?void 0:pt.expiry_date)==null||Ze.year);const E=(Je=n.item)==null?void 0:Je.button;(_t=n.item)!=null&&_t.response_sources&&((Xt=n.item)==null||Xt.response_sources),(Ht=n.item)!=null&&Ht.response_types&&((gn=n.item)==null||gn.response_types);let b="16x9";switch((It=n.item)==null?void 0:It.media_type.toLowerCase()){case"video":b="16x9";break;case"audio":b="21x9";break;case"image":b="16x9";break;default:b="16x9"}const A=((xt=n.item)==null?void 0:xt.media_type)==="audio"&&{marginTop:"-90px"};function N(mt){mt.stopPropagation(),console.log("handleMediaAction called...")}function O(mt){n.handleContestCardClick(mt.id)}function D(mt){mt.stopPropagation(),console.log("handleContestSecondaryAction called",mt),P(n.item)}function P(mt){var dt;console.log("handleRecordResponse called...",mt,event),((dt=mt==null?void 0:mt.button)==null?void 0:dt.action)!=="upload"?n.handleContestCardClick(mt.id):t(`/contests/${mt.id}/upload-response`,{state:{item:mt}})}return h.jsx(h.Fragment,{children:h.jsxs(et,{className:`border-0 card-theme contest-card overflow-hidden ${i}`,onClick:()=>O(n.item),children:[h.jsx(et.Header,{className:"border-bottom-0 p-2 p-sm-3",children:s}),d&&(u.toLowerCase()==="video"||u.toLowerCase()==="audio")?h.jsx("div",{className:"px-2 px-sm-3",onClick:mt=>{N(mt)},children:h.jsx(Jd,{aspectRatio:`${b}`,style:A,children:h.jsx(XE,{url:d,width:"100%",height:"100%",controls:!0,light:`${l}`,playing:!0,playIcon:h.jsx("div",{className:"d-flex justify-content-center align-items-center btn-theme btn-lg btn-icon rounded-circle shadow-lg",style:{background:"rgba(255,255,255,0.75)",color:"var(--color-gray2)"},children:h.jsx(Zt,{tag:"play3",className:"font-30"})})})})}):h.jsx("div",{className:"px-2",children:h.jsx(us,{src:l,alt:`${s} image`,wrapperClassName:"card-im"})}),h.jsx(et.Body,{className:"p-2 p-sm-3",children:h.jsxs("div",{className:"font-13 mb-0",children:[h.jsxs("div",{className:"mb-1",children:[h.jsx("span",{className:"text-theme-primary mb-2",children:"Published By: "})," ",g]}),h.jsx(YO,{text:p,linesToShow:2,containerClass:"contest-info text-gray7",buttonClass:"btn btn-theme btn-link btn-sm btn-gray position-relative ps-0",buttonStyles:{zIndex:1}})]})}),h.jsxs(et.Footer,{className:"px-2 px-sm-3 py-3 border-top- d-flex justify-content-between align-items-center",children:[h.jsx("div",{className:"d-flex align-items-center flex-grow-1 pe-3",children:h.jsx(Pt,{className:"btn-theme btn-primary btn-md py-2 py-sm-3 position-relative font-14 w-100",style:{zIndex:1},onClick:mt=>D(mt),children:E.title})}),h.jsx("div",{className:"btn-wrap ms-2",children:h.jsxs(Pt,{className:"btn-theme btn-sm btn-date btn-transparent px-0 pe-none",children:[h.jsx(Zt,{tag:"events1",className:"font-18"})," ",h.jsx("span",{className:"",children:`${_} ${y}`})]})})]})]})})}function Lit(){const n=Ii(),[t,i]=k.useState([]),[s,l]=k.useState(!0);async function d(){console.log("Inside Dashboard: getAllContests()..."),Wa.getAllContests().then(p=>{console.log("getAllContests RES = ",p.data),p.data.status==="success"&&(console.log("Success in getAllContests =",p.data.data.contests),i(p.data.data.contests),l(!1))}).catch(p=>{l(!1),i([]),console.log("Error in getAllContests = ",p)})}function u(p){p&&n(`/contests/${p}`,{state:{pageTitle:"Detailing Contest Details"}})}return k.useEffect(()=>{d()},[]),h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:s?h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-3",children:[0,1].map((p,g)=>h.jsx(ci,{type:"magazine",className:"card-theme overflow-hidden"},g))})}):h.jsx(h.Fragment,{children:t.length>0?h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-3",children:t.map((p,g)=>h.jsx(Pit,{item:p,className:"shadow-sm ",handleContestCardClick:u},p.id))})}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more contests"})})})})})}var DSe={},kSe;Object.defineProperty(DSe,"__esModule",{value:!0});var Uh=h,Mu=k,Eo=function(){return Eo=Object.assign||function(n){for(var t,i=1,s=arguments.length;i0}(function(n,t){t===void 0&&(t={});var i=t.insertAt;if(n&&typeof document<"u"){var s=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css",i==="top"&&s.firstChild?s.insertBefore(l,s.firstChild):s.appendChild(l),l.styleSheet?l.styleSheet.cssText=n:l.appendChild(document.createTextNode(n))}})(".style-module_starRatingWrap__q-lJC{display:inline-block;touch-action:none}.style-module_simpleStarRating__nWUxf{display:inline-block;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.style-module_fillIcons__6---A{display:inline-block;overflow:hidden;position:absolute;top:0;white-space:nowrap}.style-module_emptyIcons__Bg-FZ{display:inline-block}.style-module_tooltip__tKc3i{background-color:#333;border-radius:5px;color:#fff;display:inline-block;padding:5px 15px;vertical-align:middle}"),kSe=DSe.Rating=function(n){var t,i,s=n.onClick,l=n.onPointerMove,d=n.onPointerEnter,u=n.onPointerLeave,p=n.initialValue,g=p===void 0?0:p,_=n.iconsCount,y=_===void 0?5:_,E=n.size,b=E===void 0?40:E,A=n.readonly,N=A!==void 0&&A,O=n.rtl,D=O!==void 0&&O,P=n.customIcons,j=P===void 0?[]:P,M=n.allowFraction,V=M!==void 0&&M,H=n.style,$=n.className,Q=$===void 0?"react-simple-star-rating":$,Y=n.transition,le=Y!==void 0&&Y,ae=n.allowHover,te=ae===void 0||ae,de=n.disableFillHover,G=de!==void 0&&de,ie=n.fillIcon,_e=ie===void 0?null:ie,he=n.fillColor,Ce=he===void 0?"#ffbc0b":he,fe=n.fillColorArray,me=fe===void 0?[]:fe,Ne=n.fillStyle,Fe=n.fillClassName,je=Fe===void 0?"filled-icons":Fe,Ve=n.emptyIcon,Re=Ve===void 0?null:Ve,Be=n.emptyColor,Xe=Be===void 0?"#cccccc":Be,we=n.emptyStyle,Ge=n.emptyClassName,rt=Ge===void 0?"empty-icons":Ge,pt=n.allowTitleTag,Ze=pt===void 0||pt,Je=n.showTooltip,_t=Je!==void 0&&Je,Xt=n.tooltipDefaultText,Ht=Xt===void 0?"Your Rate":Xt,gn=n.tooltipArray,It=gn===void 0?[]:gn,xt=n.tooltipStyle,mt=n.tooltipClassName,dt=mt===void 0?"react-simple-star-rating-tooltip":mt,it=n.SVGclassName,Me=it===void 0?"star-svg":it,We=n.titleSeparator,bt=We===void 0?"out of":We,St=n.SVGstyle,Lt=n.SVGstorkeWidth,tn=Lt===void 0?0:Lt,un=n.SVGstrokeColor,an=un===void 0?"currentColor":un,ye=Mu.useReducer(Dit,{hoverIndex:0,valueIndex:0,ratingValue:g,hoverValue:null}),J=ye[0],ne=J.ratingValue,Se=J.hoverValue,Ue=J.hoverIndex,tt=J.valueIndex,Te=ye[1];Mu.useEffect(function(){g&&Te({type:"MouseClick",payload:0})},[g]);var Pe=Mu.useMemo(function(){return V?2*y:y},[V,y]),Qe=Mu.useMemo(function(){return g>Pe?0:V||Math.floor(g)===g?Math.round(g/y*100):2*Math.ceil(g)*10},[V,g,y,Pe]),nt=Mu.useMemo(function(){return(V?2*g-1:g-1)||0},[V,g]),$e=Mu.useCallback(function(qt){return y%2!=0?qt/2/10:qt*y/100},[y]),st=function(qt){for(var Jt=qt.clientX,mn=qt.currentTarget.children[0].getBoundingClientRect(),Kn=mn.left,Nn=mn.right,Tn=mn.width,Ui=D?Nn-Jt:Jt-Kn,xr=Pe,bi=Math.round(Tn/Pe),Ia=0;Ia<=Pe;Ia+=1)if(Ui<=bi*Ia){xr=Ia===0&&Ui0&&(Te({type:"PointerMove",payload:100*xr/Pe,index:Sl}),l&&Se&&l($e(Se),Sl,qt))},_n=function(qt){Se&&(Te({type:"MouseClick",payload:Se}),s&&s($e(Se),Ue,qt))},Dt=Mu.useMemo(function(){if(te){if(G){var qt=ne&&ne||Qe;return Se&&Se>qt?Se:qt}return Se&&Se||ne&&ne||Qe}return ne&&ne||Qe},[te,G,Se,ne,Qe]);Mu.useEffect(function(){It.length>Pe&&console.error("tooltipArray Array length is bigger then Icons Count length.")},[It.length,Pe]);var nn=Mu.useCallback(function(qt){return Se&&qt[Ue]||ne&&qt[tt]||g&&qt[nt]},[Se,Ue,ne,tt,g,nt]),en=Mu.useMemo(function(){return Se&&$e(Se)||ne&&$e(ne)||g&&$e(Qe)},[Se,$e,ne,g,Qe]);return Uh.jsxs("span",Eo({className:kit,style:{direction:"".concat(D?"rtl":"ltr")}},{children:[Uh.jsxs("span",Eo({className:"".concat(Mit," ").concat(Q),style:Eo({cursor:N?"":"pointer"},H),onPointerMove:N?void 0:st,onPointerEnter:N?void 0:function(qt){d&&d(qt),spe()&&st(qt)},onPointerLeave:N?void 0:function(qt){spe()&&_n(),Te({type:"PointerLeave"}),u&&u(qt)},onClick:N?void 0:_n,"aria-hidden":"true"},{children:[Uh.jsx("span",Eo({className:"".concat(Uit," ").concat(rt),style:Eo({color:Xe},we)},{children:ipe([],Array(y),!0).map(function(qt,Jt){var mn;return Uh.jsx(Mu.Fragment,{children:((mn=j[Jt])===null||mn===void 0?void 0:mn.icon)||Re||Uh.jsx(rpe,{SVGclassName:Me,SVGstyle:St,SVGstorkeWidth:tn,SVGstrokeColor:an,size:b})},Jt)})})),Uh.jsx("span",Eo({className:"".concat(jit," ").concat(je),style:Eo((t={},t[D?"right":"left"]=0,t.color=nn(me)||Ce,t.transition=le?"width .2s ease, color .2s ease":"",t.width="".concat(Dt,"%"),t),Ne),title:Ze?"".concat(en," ").concat(bt," ").concat(y):void 0},{children:ipe([],Array(y),!0).map(function(qt,Jt){var mn;return Uh.jsx(Mu.Fragment,{children:((mn=j[Jt])===null||mn===void 0?void 0:mn.icon)||_e||Uh.jsx(rpe,{SVGclassName:Me,SVGstyle:St,SVGstorkeWidth:tn,SVGstrokeColor:an,size:b})},Jt)})}))]})),_t&&Uh.jsx("span",Eo({className:"".concat(Fit," ").concat(dt),style:Eo((i={},i[D?"marginRight":"marginLeft"]=20,i),xt)},{children:(It.length>0?nn(It):en)||Ht}))]}))};function Bit(n){k.useState(0);const[t,i]=k.useState(0),s=`custom-rating-tooltip ${n.tooltipSize?n.tooltipSize==="small"?"tooltip-small":"tooltip-large":""} ${n.showTooltipOnHover?"show-hover":""}`,l=n.tooltipStyles?n.tooltipStyles:null,d=n.tooltipArray?n.tooltipArray:[],u={size:n.size?n.size:30,fillColor:"#FFCC80",emptyColor:n.emptyColor?n.emptyColor:"#ccc",readonly:n.readonly?n.readonly:!1,transition:n.transition?n.transition:!1,showTooltip:n.showTooltip?n.showTooltip:!1,allowHover:n.allowHover?n.allowHover:!1,initialValue:n.initialValue?n.initialValue:0,iconsCount:n.iconsCount?n.iconsCount:5,className:`custom-rating ${n.className!==""?n.className:""}`,tooltipClassName:s,tooltipDefaultText:n.tooltipDefaultText?n.tooltipDefaultText:"",tooltipArray:d},p=g=>{console.log("rate =",g),i(g),n.onUserRateChange&&n.onUserRateChange(g,n.parameterId)};return h.jsxs(h.Fragment,{children:[h.jsx(kSe,{onClick:p,emptyIcon:n.emptyIcon,fillIcon:n.fillIcon,tooltipStyles:l,...u}),t!==0&&h.jsxs("span",{className:"mt-1 fw-sb d-inline-flex justify-content-ce align-items-center rounded-3 font-13",style:{maxWidth:160,color:"var(--color-gray6)"},children:[h.jsx("span",{className:"font-12 fw-b me-2 badge rounded-pill",style:{background:"#9E9E9E",color:"#fff"},children:t}),(d==null?void 0:d.length)>0&&h.jsx("span",{className:"font-",children:`${d[t-1]}`})]})]})}function Vit({evaluationInfo:n,submissionUserId:t}){var s,l,d,u,p;const i=(s=n==null?void 0:n.user_info)!=null&&s.avatar?(l=n==null?void 0:n.user_info)==null?void 0:l.avatar:"/img/profile-pic.png";return JSON.parse(Ai.getAuthUser()),h.jsxs(et,{className:`border-0 evaluation-status-card ${n!=null&&n.is_self_evaluation?"self-evaluation":""}`,children:[h.jsx(et.Header,{className:`font-13 p-2 ${n!=null&&n.is_self_evaluation?"px-1":"px-0"}`,children:h.jsxs("div",{className:"media",children:[h.jsx("div",{className:"media_icon_wrap d-flex justify-content-center align-items-center align-self-start",children:h.jsx("img",{src:i,className:"rounded-circle media_img",alt:`${(d=n==null?void 0:n.user_info)==null?void 0:d.name} profile`})}),h.jsx("div",{className:"media_body ms-1 ms-sm-3 d-flex justify-content-betwee align-items-center",children:h.jsxs("div",{className:"mb-0 font-13 text-gray6 fw-",children:[`${n!=null&&n.is_self_evaluation?"Self Evaluated on":"Evaluated on"} `,h.jsx("span",{className:`text-gray6 ${n!=null&&n.is_self_evaluation?"d-block":""}`,children:n==null?void 0:n.createdAt}),!(n!=null&&n.is_self_evaluation)&&h.jsxs("div",{className:"d-block",children:["by"," ",h.jsx("span",{className:"fw-sb text-theme-primary",children:(u=n==null?void 0:n.user_info)==null?void 0:u.name})]})]})}),h.jsx("span",{className:"font-11 fw-b rounded-5",style:{padding:"3px 7px",backgroundColor:"var(--color-green-lighter)",color:"var(--color-gray6)"},children:`${n.marks}/${n.total}`})]})}),h.jsx(et.Body,{className:"p-2 px-0",children:((p=n==null?void 0:n.scores)==null?void 0:p.length)>0&&n.scores.map((g,_)=>{const E=100/g.max*g.scale,b=g.score/g.scale*100;return h.jsxs("div",{className:"d-flex flex-column text-gray7 mb-3",children:[h.jsxs("div",{className:"d-flex justify-content-between align-items-center text-gray6 mb-2",children:[h.jsx("div",{className:"font-13 fw-sb flex-grow-1",children:g.name}),h.jsxs("div",{className:"font-13 fw-sb text-end",style:{width:130},children:[h.jsx("span",{className:"p-1 font-12 fw-sb",children:g.regard}),h.jsxs("span",{children:[h.jsx("span",{className:"fw-b text-danger",children:`${g.score}`}),h.jsx("span",{className:"font-11",children:`/${g.scale}`})]})]})]}),h.jsx("div",{className:"d-flex justify-content-between align-items-center text-gray7",children:h.jsx("div",{className:"d-block w-100",children:h.jsx("div",{className:"",style:{width:`${E}%`},children:h.jsx(bQ,{now:b,className:"flex-grow-1"})})})})]},g.id)})})]})}function zit(n){var _,y,E,b,A,N,O,D,P,j,M,V;const t=Ii(),[i,s]=k.useState(!1),[l,d]=k.useState("evaluations_tab"),u=H=>{var $;console.log("Key in handleSelectedTab =",H),H=="evaluations_tab"&&console.log("Entering into evaluations"),H=="likes_tab"&&(console.log("Entering into likes"),n.likesListHandler(($=n.data)==null?void 0:$.id)),H=="comments_tab"&&(console.log("Entering into comments parent id =",n.parent_id),n.handleCommentList(n.parent_id),console.log(n.loading)),d(H)};let p="16x9";switch((_=n.data)==null?void 0:_.media_type.toLowerCase()){case"video":p="16x9";break;case"audio":p="21x9";break;case"image":p="16x9";break;default:p="16x9"}(y=n.data)==null||y.media_type;function g(){const H={contest_id:n.contestId,contest_title:n.contestTitle,response_id:n.data.id,response_user:n.data.user_name};t(`/contests/${n.contestId}/evaluate`,{state:{data:H,pageTitle:"Evaluate"}})}return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom media-viewer-modal",show:n.show.isVisible,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsxs(vn.Title,{className:"d-flex align-items-center",children:[h.jsx("div",{className:"heading-icon-wrap flex-shrink-0",children:h.jsx("span",{className:`heading-icon ${n.mediaIconClass} d-flex justify-content-center align-items-center rounded-circl font-24`,children:h.jsx(Zt,{tag:n.mediaIcon})})}),h.jsx("div",{className:"heading flex-grow-1 ms-2",children:(E=n.data)==null?void 0:E.title})]})}),h.jsx(vn.Body,{className:"no-scrollbar pt-2",children:n.loadingData?h.jsxs(h.Fragment,{children:[h.jsx(ci,{type:"details"})," "]}):h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"font-13 text-gray6 pb-2 d-flex justify-content-between",children:[h.jsx("span",{className:"fw-sb",children:(b=n==null?void 0:n.data)==null?void 0:b.user_name})," ",h.jsx("span",{children:(A=n==null?void 0:n.data)==null?void 0:A.created_date})]}),((N=n.data)==null?void 0:N.media_type.toLowerCase())==="pdf"?h.jsx(h.Fragment,{children:h.jsxs("div",{className:"position-relative border-1",children:[i?h.jsx("div",{className:"card position-absolute start-0 end-0 top-0 bottom-0",style:{minHeight:120},children:h.jsx("div",{className:"card-body d-flex justify-content-center align-items-center",children:h.jsx(Ji,{animation:"border"})})}):null,h.jsx(Jd,{aspectRatio:"9x16",className:"pdf-container",children:h.jsx("iframe",{width:"100%",src:`http://docs.google.com/gview?url=${n.data.media_url}&embedded=true`,title:(O=n.data)==null?void 0:O.name,onLoad:()=>s(!1)})})]})}):h.jsx(h.Fragment,{children:((D=n.data)==null?void 0:D.media_type.toLowerCase())==="image"?h.jsx(h.Fragment,{children:h.jsx("div",{className:"media-container mb-2",children:h.jsx("img",{src:n.data.media_url,alt:`${(P=n.data)==null?void 0:P.title} image`,className:"img-fluid mx-auto"})})}):h.jsx(h.Fragment,{children:h.jsx("div",{className:"media-container mb-2",children:h.jsx(Jd,{aspectRatio:`${p}`,children:h.jsx(XE,{url:n.data.media_url,width:"100%",height:"100%",controls:!0,light:!1,playing:!1})})})})}),h.jsxs(Zn.Container,{id:"contest-tabs-example",className:"main_tabs",activeKey:l,onSelect:H=>u(H),children:[h.jsx("div",{className:"tab_links",children:h.jsxs(jn,{variant:"pills",className:"nav-justified",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"evaluations_tab",children:h.jsx("div",{className:"",children:"Evaluations"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"likes_tab",children:h.jsx("div",{className:"",children:`${n.likeCount} ${n.likeCount===1?"Like":"Likes"}`})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"comments_tab",children:h.jsx("div",{className:"",children:`${n==null?void 0:n.commentsCount} ${(n==null?void 0:n.commentsCount)===1?"Comment":"Comments"}`})})})]})}),h.jsxs(Zn.Content,{className:"p-2 py-sm-3",children:[h.jsx(Zn.Pane,{className:"",eventKey:"evaluations_tab",children:((M=(j=n.data)==null?void 0:j.evaluations)==null?void 0:M.length)>0?h.jsx(h.Fragment,{children:h.jsx("div",{className:"mb-2 d-flex flex-column",children:n.data.evaluations.map((H,$)=>h.jsxs(dn.Fragment,{children:[h.jsx(Vit,{evaluationInfo:H,submissionUserId:n.data.user_id},H.id),$+1!==n.data.evaluations.length&&h.jsx("div",{className:"pt-2 pb-3",style:{marginLeft:"-15px",marginRight:"-15px"},children:h.jsx("div",{className:"border-top"})})]},H.id))})}):h.jsxs("div",{className:"d-flex align-items-center justify-content-between rounded-3 p-2 mt-3",style:{backgroundColor:"var(--color-red-lighter)",color:"var(--color-gray5)"},children:[h.jsx("div",{className:"font-14 fw-sb",children:"Not Yet Evaluated!"}),h.jsx("div",{children:(V=n.data)==null?void 0:V.score})]})}),h.jsx(Zn.Pane,{className:"",eventKey:"likes_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(nx,{isLiked:n.isLiked,loadingMediaLike:n.loadingMediaLike,loadingLikesList:n.loadingLikesList,likesData:n.likesData,likeActionHandler:n.likeActionHandler,parentId:n.data.id})})}),h.jsx(Zn.Pane,{className:"",eventKey:"comments_tab",children:h.jsx("div",{className:"py-2",children:h.jsx(YE,{comment_type:n.comment_type,loading:n.loading,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount,addPlacement:"fixed-bottom"})})})]})]})]})}),n.data.can_evaluate&&l==="evaluations_tab"&&h.jsx(vn.Footer,{className:"justify-content-center pb-0",children:h.jsx(Pt,{className:"btn-theme btn-primary btn-lg w-100",onClick:g,children:`${n.isParticipant?"Self Evaluate":"Evaluate"}`})})]})})}function Hit(n){return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom comments-list-modal",show:n.show.isVisible,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsxs(vn.Title,{className:"d-flex align-items-center",children:[`${n.commentsCount}`," Comments"]})}),h.jsx(vn.Body,{className:"no-scrollbar pb-0",children:h.jsx(YE,{comment_type:n.comment_type,loading:n.loading,parent_id:n.parent_id,parent_owner_id:n.parent_owner_id,comments:n.comments,handleCommentList:n.handleCommentList,setCommentsCount:n.setCommentsCount})})]})})}function Git({submission:n,getContestDetails:t,loadingData:i,contestId:s,contestTitle:l,contestMarks:d,contest:u}){var it;const g=JSON.parse(Ai.getAuthUser()).id===(n==null?void 0:n.user_id),_=u.show_pass_fail_icon.toLowerCase()==="yes"&&u.pass_icon?u.pass_icon:"",y=u.show_pass_fail_icon.toLowerCase()==="yes"&&u.fail_icon?u.fail_icon:"",[E,b]=k.useState(n==null?void 0:n.is_liked),[A,N]=k.useState(n==null?void 0:n.likes_count),[O,D]=k.useState(n==null?void 0:n.comments_count),[P,j]=k.useState(!1),[M,V]=k.useState(!1),[H,$]=k.useState(!0),[Q,Y]=k.useState([]),[le,ae]=k.useState([]),[te,de]=k.useState(!0),[G,ie]=k.useState(!1),[_e,he]=k.useState({isVisible:!1}),[Ce,fe]=k.useState({isVisible:!1}),[me,Ne]=k.useState(!1),[Fe,je]=k.useState(!1),Ve=()=>{ie(!1)},Re=()=>{he({isVisible:!1})},Be=()=>{he({isVisible:!0})},Xe=()=>{fe({isVisible:!1})},we=()=>{Ne(!1)},Ge=()=>{Ne(!0)},rt=()=>{je(!1)},pt=()=>{je(!0)},Ze=()=>{console.log("handleShowMediaBtnClick called..."),t(s),Be()},Je=Me=>{Me.stopPropagation(),console.log("handleDeleteBtnClick called..."),Ge()},_t=Me=>{Me.stopPropagation(),console.log("handleDeleteForReattemptBtnClick called..."),pt()};let Xt="play1",Ht="media-video";switch(n==null?void 0:n.media_type.toLowerCase()){case"video":Xt="play1",Ht="media-video";break;case"audio":Xt="consult1",Ht="media-audio";break;case"pdf":Xt="pdf2",Ht="media-doc";break;case"image":Xt="image2",Ht="media-image";break;default:Xt="consult1"}async function gn(Me){console.log("function getContestSubmissionLike... called for MediaCard =",Me),V(!0),Me&&Wa.getContestSubmissionLike(Me).then(We=>{var bt,St;console.log("getContestSubmissionLike RES = ",We.data),We.data.status==="success"&&(console.log("Success in getContestSubmissionLike =",We.data.data),b((bt=We.data.data)==null?void 0:bt.is_liked),console.log("Success in Media Card =",We.data.data),N((St=We.data.data)==null?void 0:St.likes_count),It(Me),V(!1))}).catch(We=>{V(!1),b(n==null?void 0:n.is_liked),N(n==null?void 0:n.likes_count),console.log("Error in getContestSubmissionLike = ",We)})}async function It(Me){console.log("function getContestSubmissionLikesList... called for SubmissionCard =",Me),Me&&Wa.getContestSubmissionLikesList(Me).then(We=>{var bt;console.log("getContestSubmissionLikesList RES = ",We.data),We.data.status==="success"&&(console.log("Success in getContestSubmissionLikesList =",We.data.data.likes),Y((bt=We.data.data)==null?void 0:bt.likes),console.log("Success in Submission Card Likes lIst =",We.data.data),$(!1))}).catch(We=>{$(!1),Y([]),console.log("Error in getContestSubmissionLikesList = ",We)})}async function xt(Me){console.log("function getAllContestSubmissionCommentList... called for Contest Card =",Me),Me&&Wa.getAllContestSubmissionCommentList(Me).then(We=>{var bt;console.log("getAllContestSubmissionCommentList RES = ",We.data),We.data.status==="success"&&(console.log("Success in getAllContestSubmissionCommentList =",We.data.data.comments),ae((bt=We.data.data)==null?void 0:bt.comments),de(!1),console.log("Success in Submission Card Comments lIst =",We.data.data))}).catch(We=>{de(!1),ae([]),console.log("Error in getAllContestSubmissionCommentList = ",We)})}async function mt(Me){console.log("function deleteContestResponseRecord... called for SubmissionCard =",Me),j(!0),Me&&Wa.deleteContestResponseRecord(Me).then(We=>{console.log("deleteContestResponseRecord RES = ",We.data),We.data.status==="success"&&(console.log("Success in deleteContestResponseRecord =",We.data.data),j(!1),we(),t(s))}).catch(We=>{j(!1),console.log("Error in deleteContestResponseRecord = ",We)})}async function dt(Me){console.log("function deleteContestResponseRecordForReattempt... called for SubmissionCard =",Me),j(!0),Me&&Wa.deleteContestResponseRecordForReattempt(Me).then(We=>{console.log("deleteContestResponseRecordForReattempt RES = ",We.data),We.data.status==="success"&&(console.log("Success in deleteContestResponseRecordForReattempt =",We.data.data),j(!1),we(),t(s))}).catch(We=>{j(!1),console.log("Error in deleteContestResponseRecordForReattempt = ",We)})}return h.jsxs(h.Fragment,{children:[h.jsxs(et,{className:"card-theme submission-card border-0 shadow-sm position-relative overflow-hidden",children:[((it=n==null?void 0:n.evaluations)==null?void 0:it.length)>0&&h.jsx("div",{className:"media-viewed-icon position-absolute",children:h.jsx(Zt,{tag:"check1",className:"font-18"})}),h.jsx("div",{className:"position-absolute",style:{top:20,right:15},children:(u==null?void 0:u.show_pass_fail_icon.toLowerCase())==="yes"&&n.score>0?n.score>=d?h.jsx(h.Fragment,{children:h.jsx("img",{src:_,className:"position-absolue",width:42,alt:"Pass Icon"})}):h.jsx(h.Fragment,{children:h.jsx("img",{src:y,className:"position-absolue",width:42,alt:"Fail Icon"})}):h.jsx(h.Fragment,{})}),h.jsxs(et.Header,{className:"p-2 px-sm-3 py-3 position-relative border-bottom-0",onClick:Ze,children:[h.jsxs("div",{className:"d-flex justify-content-betwee align-items-center font-13 text-gray6 pb-2 pb-sm-3",children:[h.jsx("div",{className:"mb-0 font-1 text-gra fw-sb",children:n==null?void 0:n.user_name}),h.jsx("span",{className:"dot-seperator"}),h.jsx("div",{className:"font-1 text-gra",children:n==null?void 0:n.created_date})]}),h.jsxs("div",{className:"d-flex media-header-container align-items-center py-2",children:[h.jsx("div",{className:"flex-shrink-0 media-icon-container position-relative d-flex",children:h.jsx("div",{className:`d-flex justify-content-center align-items-center media-icon-wrapper overflow-hidden ${Ht}`,children:h.jsx(Zt,{tag:Xt,className:"font-28"})})}),h.jsxs("div",{className:"text-start flex-grow-1 ms-2 ms-sm-3 media-info-container",children:[h.jsx("span",{className:"d-block mb-1 pe-3 pe-sm-5 fw-sb",children:n==null?void 0:n.title}),h.jsxs("div",{className:"d-flex justify-content-betwee align-items-center font-12 text-gray8",children:[h.jsxs("span",{className:"",children:[h.jsx("span",{className:"fw-sb text-gray6",children:n==null?void 0:n.score}),`/${n==null?void 0:n.total} score`]}),h.jsx("span",{className:"dot-seperator"}),h.jsx("span",{className:"",children:`${A} ${A===1?"like":"likes"}`}),h.jsx("span",{className:"dot-seperator"}),h.jsx("span",{className:"border-nd ",children:`${O} ${O===1?"comment":"comments"}`})]}),n.can_delete&&h.jsx(Pt,{size:"sm",className:"btn-theme btn-red btn-sm font-12 px-2 position-absolute top-50",style:{right:8,zIndex:1},onClick:Me=>Je(Me),children:h.jsx(Zt,{tag:"delete5",className:"font-16"})})]})]})]}),h.jsxs(et.Footer,{className:"p-0 bg-transparent border-0",children:[(n==null?void 0:n.can_evaluate)&&h.jsx(Pt,{className:"btn-theme btn-md btn-primary-light w-100 rounded-0 text-uppercase fw-sb",style:{letterSpacing:"0.06rem"},onClick:Ze,children:`${g?"Self Evalute":"Evalute"}`}),(n==null?void 0:n.can_reattempt)&&h.jsx(Pt,{className:"btn-theme btn-md btn-red-light w-100 rounded-0 text-uppercase fw-sb",style:{letterSpacing:"0.06rem"},onClick:Me=>_t(Me),children:"Re-attempt"}),h.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[h.jsx("div",{className:"d-fl"}),h.jsx("div",{className:"btn-wrap"})]})]})]}),h.jsx(Cit,{classNames:"",show:G,handleClose:Ve,likesData:Q,isLiked:E,likeCount:A,loading:H,isHandleLoading:M,handleLike:gn,parentId:n==null?void 0:n.id}),h.jsx(zit,{show:_e,handleClose:Re,mediaUrl:n==null?void 0:n.media_url,data:n,loadingData:i,mediaIcon:Xt,mediaIconClass:Ht,likesData:Q,likeCount:A,isLiked:E,likeActionHandler:gn,loadingMediaLike:M,loadingLikesList:H,likesListHandler:It,contestId:s,contestTitle:l,contest:u,isParticipant:g,comment_type:"contest",loading:te,parent_id:n==null?void 0:n.id,parent_owner_id:null,comments:le,handleCommentList:xt,setCommentsCount:D,commentsCount:O}),h.jsx(Hit,{show:Ce,handleClose:Xe,comment_type:"contest",loading:te,parent_id:n==null?void 0:n.id,parent_owner_id:null,comments:le,handleCommentList:xt,setCommentsCount:D,commentsCount:O}),h.jsx(NR,{show:me,loading:P,handleClose:we,primaryActionData:n==null?void 0:n.id,content_type:"submission-delete-modal",handlePrimaryAction:mt}),h.jsx(NR,{show:Fe,loading:P,handleClose:rt,primaryActionData:n==null?void 0:n.id,content_type:"reattempt-submission-delete-modal",handlePrimaryAction:dt})]})}function Wit({itemDetails:n,submissions:t,getContestDetails:i,loading:s}){var j,M,V;const l=Ii();JSON.parse(Ai.getAuthUser()),k.useState(!1);const[d,u]=k.useState(t);k.useState(!1);const[p,g]=k.useState("all");k.useEffect(()=>{const H=N(p,t);u(H)},[n,s]);const _=[{key:"All",value:"all"},{key:"Pending",value:"pending"},{key:"Evaluated",value:"evaluated"}],y=k.useRef();let E="16x9";switch(n==null?void 0:n.media_type.toLowerCase()){case"video":E="16x9";break;case"audio":E="21x9";break;case"image":E="1x1";break;default:E="16x9"}const b=(n==null?void 0:n.media_type)==="audio"&&{marginTop:"-90px"};function A(H){const $=H.target.value.toLowerCase();console.log($),g($);const Q=N($,t);u(Q)}function N(H,$){switch(console.log("selectedSegment =",H,` +data = `,$),H){case"all":return console.log("case : ",H),$;case"pending":console.log("case : ",H);const Q=$.filter((le,ae)=>!le.evaluations.length>0||le.score===0);return console.log("Result =",Q),Q;case"evaluated":console.log("case : ",H);const Y=$.filter((le,ae)=>le.evaluations.length>0);return console.log("Result =",Y),Y}}const O=()=>{y.current.value="";const H=N(p,t);u(H)};function D(H,$){console.log("searchContestResponse - filteredData =",$);const Q=$.filter((Y,le)=>Y.user_name.toLowerCase().includes(H.toLowerCase())||Y.title.toLowerCase().includes(H.toLowerCase()));return console.log("Result =",Q),Q}const P=tx.debounce(H=>{console.log("This is function from lodash..."),console.log("Search text =",H);const $=N(p,t);H.trim().length>0?(console.log(H.trim()),u(D(H.trim(),$))):u($)},500);return h.jsxs("div",{className:"contest-details-card",children:[h.jsx("div",{className:"p-2 px-0 font-15 fw-sb mb-0",children:n==null?void 0:n.title}),h.jsxs("div",{className:"font-13 mb-3 d-flex align-items-center",children:[h.jsx("span",{className:"text-theme-primary",children:"Published By: "})," ",h.jsx("span",{className:"ps-2",children:(j=n==null?void 0:n.user_info)==null?void 0:j.name})]}),((n==null?void 0:n.media_type.toLowerCase())==="video"||(n==null?void 0:n.media_type.toLowerCase())==="video")&&(n==null?void 0:n.media)!==""?h.jsx(h.Fragment,{children:h.jsx("div",{className:"media-container mb-2",children:h.jsx(Jd,{aspectRatio:`${E}`,style:b,children:h.jsx(XE,{url:n.media,width:"100%",height:"100%",controls:!0,playing:!1})})})}):h.jsx(h.Fragment,{children:h.jsx("div",{className:"media-container mb-2",children:h.jsx(us,{src:n==null?void 0:n.cover_image,alt:`${n==null?void 0:n.title} image`,wrapperClassName:"card-img mb-3"})})}),h.jsx(YO,{text:n==null?void 0:n.description,linesToShow:2,containerClass:"font-13 contest-info text-gray7",buttonClass:"btn btn-theme btn-link btn-sm btn-gray position-relative ps-0",buttonStyles:{zIndex:1}}),h.jsx("hr",{}),(n==null?void 0:n.is_result_published)!=="yes"?h.jsx("div",{className:"font-15 fw-sb mb-2 mb-sm-3",children:"Responses"}):h.jsx("div",{className:"font-15 fw-sb mb-2 mb-sm-3",children:"Top Results"}),(t==null?void 0:t.length)>0&&!(n!=null&&n.is_participant)&&h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"py- pt-1 pb-3",children:h.jsx("div",{className:"custom-segment-btn-group",children:_.map(H=>h.jsxs("div",{className:"segment-btn",children:[h.jsx("input",{type:"radio",name:"segments",id:H.value,value:H.value,onChange:A,checked:p===H.value}),h.jsxs("label",{htmlFor:H.value,children:[h.jsx(Zt,{tag:"check1",className:`font-20 text-gray5 ${p===H.value?"d-inline-flex opacity-100 visible":"d-inline-flex opacity-0 invisible"}`}),H.key]})]},H.value))})}),h.jsxs(kt.Group,{className:"form-group rounded_corners search_field autocomplete_field mb-3 position-relative",children:[h.jsx(kt.Control,{type:"text",name:"searchInput",onChange:H=>{console.log("Search input = ",H),P(H.target.value)},ref:y,placeholder:"Search",style:{backgroundImage:"url(/img/search-icon.png)",backgroundRepeat:"no-repeat",backgroundPosition:"center right 12px"},autoComplete:"off"}),((M=y==null?void 0:y.current)==null?void 0:M.value.length)>0&&h.jsx(Pt,{onClick:O,className:"btn-theme btn-icon btn-sm btn-gray position-absolute",style:{top:4,right:6},type:"button",children:h.jsx(VE,{})}),((V=y==null?void 0:y.current)==null?void 0:V.value.length)>0&&h.jsx("span",{className:"font-13 fw-sb px-1 text-gray9",children:`Results found ${d==null?void 0:d.length}`})]})]}),h.jsx("div",{className:"d-grid gap-3",children:!s&&(t==null?void 0:t.length)>0?h.jsx(h.Fragment,{children:(d==null?void 0:d.length)>0?h.jsx(h.Fragment,{children:d.map(H=>h.jsx(Git,{submission:H,getContestDetails:i,loadingData:s,contestId:n==null?void 0:n.id,contestTitle:n==null?void 0:n.title,contestMarks:n==null?void 0:n.marks,contest:n},H.id))}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No more responses found."})})})})}):h.jsx(et,{className:"border-0 shadow-sm",children:h.jsxs(et.Body,{className:"text-center",children:[h.jsx("div",{className:"p-2 p-sm-3 font-14 fw-sb",children:"Have not submitted any response yet!"}),(n==null?void 0:n.upload_btn)&&h.jsx(fn,{className:"row-cols-1 justify-content-center pt-2",children:h.jsx(Gt,{className:"col-8",children:h.jsx(Pt,{className:"btn-theme btn-primary btn-md px- position-relative font-14 w-100",onClick:()=>l(`/contests/${n==null?void 0:n.id}/upload-response`,{state:{item:n,pageTitle:"Upload Response"}}),children:"Upload"})})})]})})})]})}function $it(){const{contestId:n}=iU();Xo();const[t,i]=k.useState(null),[s,l]=k.useState(!0);k.useState(!1);const[d,u]=k.useState([]);async function p(g){console.log("contestId =",g),Wa.getContestDetails(g).then(_=>{var y,E;console.log("getContestDetails RES = ",_.data),_.data.status==="success"&&(console.log("Success in getContestDetails =",_.data.data.contest),i(_.data.data.contest),u((E=(y=_.data)==null?void 0:y.data)==null?void 0:E.submissions),l(!1))}).catch(_=>{l(!1),i(null),u([]),console.log("Error in getContestDetails = ",_)})}return k.useEffect(()=>{p(n)},[n]),h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"mb-4",children:[s&&h.jsx(ci,{type:"magazine",className:"card-theme overflow-hidden"}),!s&&h.jsx(Wit,{itemDetails:t,submissions:d,getContestDetails:p,loading:s})]})})}function Kit({className:n}){const t=n||"";return h.jsx(h.Fragment,{children:h.jsxs("div",{className:`waves-container ${t}`,children:[h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"}),h.jsx("div",{className:"line"})]})})}function MSe(n){k.useState(!1);const[t,i]=k.useState(!1);k.useEffect(()=>{console.log("counter - ",n.counter)},[n.counter]);let s={backdrop:"static",keyboard:!1};function l(){console.log("Inside handleStartRecordingAction btn click handler"),t||(i(!0),n.handleStart(),n.onRecordingStart())}function d(){console.log("Inside handleStopRecordingAction btn click handler"),t&&(n.handlePause(),n.onRecordingStop(),n.handleClose(),i(!1))}function u(){i(!1),n.handleClose()}return h.jsx(h.Fragment,{children:h.jsx(vn,{centered:!0,size:"md",className:"theme-modal confirmation-modal audio-recording-modal",...s,show:n.show,onHide:n.handleClose,children:h.jsxs(vn.Body,{children:[h.jsx(Pt,{type:"button",className:`btn-theme btn-icon btn-sm btn-transparent position-absolute ${t?"d-none":""}`,style:{right:5,top:8},onClick:u,children:h.jsx(Zt,{tag:"delete7",className:"font-32 text-gray9"})}),h.jsx("div",{className:"font-18 fw-sb mb-3 text-center",style:{color:"#684609"},children:"Start recording audio"}),h.jsxs("div",{className:"font-16 fw-sb mb-3 text-center",children:["Time:"," ",n.counter<=60?n.counter+"s":eQ(n.counter,":")+"m"]}),h.jsx(Kit,{className:`my-3 ${t?"":"d-none"}`}),h.jsxs("div",{className:"btn-wrap d-flex align-items-center pt-3 pb-1 text-en",children:[!t&&h.jsx(h.Fragment,{children:h.jsx(Pt,{type:"submit",className:`btn-theme + btn-yellow btn-md flex-grow-1`,onClick:l,children:"Start Recording"})}),t&&h.jsx(h.Fragment,{children:h.jsx(Pt,{type:"submit",className:`btn-theme + btn-yellow btn-md flex-grow-1`,onClick:d,children:"Stop Recording"})})]})]})})})}const FZ=(n,t)=>{const[i,s]=k.useState(n),[l,d]=k.useState(t),[u,p]=k.useState(!1);let g=k.useRef();return k.useEffect(()=>{g.current=!l&&setTimeout(()=>{s(i+1)},1e3),console.log("counter = ",i)},[i,l,u]),{counter:i,handleStart:()=>{d(!1)},handlePause:()=>{d(!0)},handleIncrement:()=>s(i+1),handleDecrement:()=>s(i-1),handleReset:()=>{s(0),clearTimeout(g.current)},handleStop:()=>{d(!0),s(0),clearTimeout(g.current)},handleChange:D=>{const{value:P}=D.target;s(parseInt(P,0))}}},Lp=hc("VoiceRecorder",{web:()=>Xi(()=>import("./web-AScraMDr.js").then(n=>n.w),__vite__mapDeps([])).then(n=>new n.VoiceRecorderWeb)});function qit({mediaType:n,mediaSource:t,className:i,contestId:s,handleClose:l,data:d,fileSizelimit:u,videoDurationLimit:p,audioDurationLimit:g,minCompressionLimit:_}){const y=Ii(),[E,b]=k.useState(),[A,N]=k.useState(null),[O,D]=k.useState(""),[P,j]=k.useState(null),[M,V]=k.useState(""),[H,$]=k.useState(0),[Q,Y]=k.useState(!1);k.useState();const[le,ae]=k.useState(0),[te,de]=k.useState(!1),[G,ie]=k.useState(!1);k.useState(!1);const[_e,he]=k.useState(!1),[Ce,fe]=k.useState(null),[me,Ne]=k.useState(!1);k.useState(!1);const[Fe,je]=k.useState(!1),[Ve,Re]=k.useState(!1),{counter:Be,handleStart:Xe,handlePause:we,handleReset:Ge}=FZ(0,!0),rt=k.useRef(!1);k.useRef(null);const pt=k.useRef(null),Ze=k.useRef(null);k.useRef(null);const Je=k.useRef(null),_t=k.useRef(null);k.useRef(null);const Xt=k.useRef(null),Ht={title:""},gn=uc({title:hf().required("Required")}),It=n?n==="pdf"?".pdf":`${n}/*`:"image/*",xt=n!==""?"user":"",mt=n?`${n}-gallery-file`:"media-gallery-file",dt=n?`${n}-camera-file`:"media-camera-file",it=()=>{Ne(!1)},Me=Dt=>{console.log("handleShowRecordAudioModal () - MEDIA TYPE = ",Dt),Ne(!0)},We=()=>{je(!1)},bt=()=>{je(!0)};async function St(){console.log("onRecordingStart called...");const Dt=await Lp.startRecording();console.log("recordStartResult = ",Dt)}async function Lt(){console.log("onRecordingStop called...");const Dt=await Lp.stopRecording();if(console.log("onRecordingStop counter =",Be),console.log("recordStopResult = ",Dt),Dt.value){const qt=Dt.value;$(Math.round(qt.msDuration/1e3)),Y(!0),he(!0);const Jt=qt.msDuration,mn=Math.round(Jt/1e3);console.log("fileDurationInMS = ",Jt," fileDurationInSec =",mn);const Kn=qt.recordDataBase64,Nn=qt.mimeType;let Tn=Nn.substring(0,Nn.indexOf(";"));const Ui=`data:${Tn};base64,${Kn}`;var nn=tn(Ui);console.log("Binary file =",nn);var en=new Blob([nn],{type:`${Tn}`});console.log("blob = ",en),b({...Dt.value,size:en.size}),fe(Tn);const xr=kR(en.size,{standard:"jedec"});console.log("Recorded Audio fileSize = ",xr),j(xr);const bi=URL.createObjectURL(en);console.log("blobUrl = ",bi),N(bi),console.log("File Obj =",E)}else console.log("Unable to record/play audio")}function tn(Dt){var nn=";base64,",en=Dt.indexOf(nn)+nn.length,qt=Dt.substring(en),Jt=window.atob(qt),mn=Jt.length,Kn=new Uint8Array(new ArrayBuffer(mn));for(let Nn=0;Nn{console.log("tempVideoRef.current.onloadedmetadata evt = ",mn),URL.revokeObjectURL(qt)};break;case"audio":let Jt=URL.createObjectURL(Dt.target.files[0]);console.log("Case audio: ",Jt),N(Jt);break;case"pdf":console.log("PDF Preview =",Ze.current),Ze.current.className="d-block";break;default:console.log("No case matched...")}}}function ye(){if(E)switch(b(null),Y(!1),V(""),j(null),Ge(),Je.current&&(Je.current.value=""),_t.current&&(_t.current.value=""),n){case"image":console.log("Image Preview =",pt.current),pt.current.src="",pt.current.className="d-none";break;case"video":N(null);break;case"audio":N(null),he(!1);break;case"pdf":console.log("PDF Preview =",Ze.current),Ze.current.className="d-none";break;default:console.log("No case matched...")}}const J=Dt=>new Promise((nn,en)=>{const qt=new FileReader;qt.onload=()=>{const Jt=qt.result;nn(Jt)},qt.onerror=()=>{en(new Error("Unable to read the file as binary data"))},qt.readAsArrayBuffer(Dt)}),ne=new AbortController,Ue=zr.CancelToken.source();k.useEffect(()=>()=>{console.log("Called cancellation from UploadResponseMediaFile..."),rt.current&&(console.log("Called cancellation inside if(bool.current)...",rt==null?void 0:rt.current),Ue.cancel("Upload cancelled by user"),ne.abort())},[]);function tt(){rt.current=!0,l(),Ue.cancel("Upload cancelled by user"),ne.abort(),ne.signal.aborted&&Qt("Uploading cancelled!","error")}async function Te(Dt){return await hs.getSignedUploadUrl(Dt)}async function Pe(Dt,nn,en,qt){const Jt=nn.map((Nn,Tn)=>{const Ui=new URL(Nn);console.log("parser = ",Ui);const xr=Ui.pathname;return{url:Nn,pathName:xr.replace("/","")}});console.log("urls = ",Jt);let mn=null,Kn=[];try{const Nn=100/qt;let Tn=0,Ui=0,xr=0;for(ie(!0);xr<=E.size;){console.log("Value of start = ",Ui),console.log("Value of end = ",xr),Ui=Tn*en,xr=Ui+en;const Ia=await E.slice(Ui,xr).arrayBuffer(),Sl=d0e.from(Ia),mc={headers:{ExposeHeader:"ETag","Access-Control-Expose-Headers":"ETag"},cancelToken:Ue.token,signal:ne.signal,onUploadProgress:function(nu){const To=Math.round(Tn*Nn);ae(To)}};mn=await zr.put(Jt[Tn].url,Sl,mc),Kn.push({PartNumber:Tn+1,Part:Jt[Tn].pathName}),Tn++}}catch(Nn){console.log("error in uploading = ",Nn),Qt("Failed to upload!");return}return console.log("parts_info = ",Kn),mn={...mn,parts_info:Kn},mn}async function Qe(Dt,nn){let en=null;if(_e){const mn=E==null?void 0:E.recordDataBase64,Kn=E==null?void 0:E.mimeType,Tn=`data:${Kn.substring(0,Kn.indexOf(";"))};base64,${mn}`;en=tn(Tn),console.log("Binary file =",en)}else en=await J(E),console.log("Normal - else condition binaryData = ",en);const qt={headers:{},cancelToken:Ue.token,signal:ne.signal,onUploadProgress:function(mn){const Kn=Math.round(mn.loaded*100/mn.total);ae(Kn)}};return console.log(qt),await zr.put(nn,en,qt)}const nt=async(Dt,{resetForm:nn})=>{var Kn,Nn,Tn,Ui,xr;if(O===""){console.log("Inside mediaUrl === '' "),Qt("Upload Valid File","error");return}console.log("File for uploading = ",E),de(!0);let en="";_e?en=Ce.split("/")[1]:en=E.name.substring(E.name.lastIndexOf(".")+1),console.log("fileExtension = ",en);let qt={fileextention:en,modulename:"detailing"};const Jt=25*1024*1024,mn=Math.ceil((E==null?void 0:E.size)/Jt);n==="video"&&(qt={...qt,parts:mn}),console.log("data for getSignedUrl = ",qt);try{const bi=await Te(qt);if(console.log("getSignedUrl response =",bi),((Kn=bi==null?void 0:bi.data)==null?void 0:Kn.status)==="success"&&(bi==null?void 0:bi.status)===200){const Ia=(Tn=(Nn=bi==null?void 0:bi.data)==null?void 0:Nn.data)==null?void 0:Tn.resourceUrl,Sl=(xr=(Ui=bi==null?void 0:bi.data)==null?void 0:Ui.data)==null?void 0:xr.uploadURL;console.log("--- uploadUrls = ",Sl);let mc=null;if(n==="video"){const nu=await Pe(bi,Sl,Jt,mn);if(nu.status===200){const To=new URL(Ia);console.log("parser = ",To);const Fg=To.pathname,Bg={parts:nu.parts_info,filename:Fg.replace("/","")};console.log("completeUploadData = ",Bg);try{mc=await hs.completeChunkUpload(Bg),Qt("Saving contest response...","success"),console.log("completeUploadRes = ",mc)}catch(Ka){console.log("Error while calliing wallmessage/completechunkupload = ",Ka),Qt("Problem in uploading file! Please try after sometime","error"),ie(!1),ae(0),de(!1),b(null),Y(!1),l();return}}else console.log("THERE IS AN ERROR IN uploadConfig...",result1)}else mc=await Qe(bi,Sl);if(console.log("uploadResult =",mc),mc.status===200){console.log("uploadProgress in uploadResult.status === 200 =",le);const nu={contest_id:s,title:Dt.title,media_type:n,media_url:Ia};if(console.log("contestResponseData = ",nu),console.log("bool after upload = ",rt==null?void 0:rt.current),rt.current)return;ie(!1),ae(0),de(!1),b(null),Y(!1),Wa.addContestResponseRecord(nu).then(To=>{console.log("addContestResponseRecord RES =",To.data),To.data.status==="success"&&(console.log("addContestResponseRecord SUCCESS RES =",To.data),Qt("Contest Response Saved","success"),ae(0),de(!1),b(null),Y(!1),l(),y(`/contests/${s}`,{state:{pageTitle:"Detailing Contest Details"}}))}).catch(To=>{console.log(To),Qt("Failed to save Contest Response","error"),de(!1)})}else{console.log("THERE IS AN ERROR IN uploadConfig...",result1),Qt("UploadResult Else: Problem in uploading file! Please try after sometime","error"),ie(!1),ae(0),de(!1),b(null),Y(!1),l();return}}else{console.log("Error in signedUrlResponse =",bi),Qt("Problem in uploading file! Please try after sometime","error"),ie(!1),ae(0),de(!1),b(null),Y(!1),l();return}}catch(bi){Qt("Problem in uploading file! Please try after sometime","error"),ie(!1),ae(0),de(!1),b(null),Y(!1),l(),console.log("ERROR in uploading (get signed urls) = ",bi)}};function $e(Dt){console.log("getDuration called...",Dt),_e||$(Math.round(Dt))}function st(Dt){console.log("Video player ready --- t = ",Dt),console.log("active layer ---- ",Dt.getActivePlayer()),console.log("getInternalPlayer layer ---- ",Dt.getInternalPlayer())}const _n=({played:Dt,playedSeconds:nn,loaded:en,loadedSeconds:qt})=>{var Jt,mn,Kn;console.log("File Obj =",E),console.log("handleProgress called...",en),n==="video"&&H>((Jt=d==null?void 0:d.limits)==null?void 0:Jt.video)||n==="audio"&&H>((mn=d==null?void 0:d.limits)==null?void 0:mn.audio)||(E==null?void 0:E.size)>((Kn=d==null?void 0:d.limits)==null?void 0:Kn.size)*1024*1024?(console.log("getDuration condition If part"),console.log("fileDuration = ",H," mediaType = ",n," Size =",E==null?void 0:E.size),D("")):(console.log("getDuration condition else part"),console.log("fileDuration = ",H," mediaType = ",n," Size =",E==null?void 0:E.size," compression Limit =",_),D(E.name),V(""))};return h.jsxs(h.Fragment,{children:[h.jsx(id,{initialValues:Ht,validationSchema:gn,onSubmit:nt,enableReinitialize:!0,children:Dt=>{var nn,en,qt,Jt,mn;return h.jsx(h.Fragment,{children:h.jsxs(kt,{className:"form_style",onSubmit:Dt.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Label,{className:"font-13",children:"Response title"}),h.jsx(kt.Control,{type:"text",placeholder:"title",name:"title",...Dt.getFieldProps("title"),autoComplete:"off"}),Dt.touched.title&&Dt.errors.title?h.jsx("p",{className:"error-state-text font-12 text-danger",children:Dt.errors.title}):null]}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx("div",{className:"font-13",children:"Choose upload type"}),h.jsx("div",{className:"btn-wrap d-flex py-2",children:t.length>0&&h.jsxs(h.Fragment,{children:[(n==="video"||n==="image")&&h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:Je,name:dt,id:dt,className:"uploadMediafile",capture:xt,accept:It,onChange:an,disabled:Q}),h.jsx("label",{htmlFor:dt,className:"justify-content-center px-2 capture-btn",children:"Camera"})]}),n==="audio"&&h.jsx("div",{className:"flex-grow-1",children:h.jsx(Pt,{onClick:un,className:"btn-theme btn-primary w-100 font-14 fw-sb",style:{padding:"10px 12px"},children:"Record"})}),h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:_t,name:mt,id:mt,className:"uploadMediafile",accept:It,onChange:an,disabled:Q}),h.jsx("label",{htmlFor:mt,className:"justify-content-center px-2 gallery-btn",children:"Gallery"})]})]})})]}),(le>0||G)&&h.jsxs("div",{className:"d-flex justify-content-center align-items-center p-2 pb-3",children:[h.jsx("span",{className:"font-13 fw-sb pe-2",children:"Uploading: "}),h.jsx("progress",{value:le,max:"100"}),h.jsx("span",{className:"font-13 fw-sb ps-2",children:`${le}%`})]}),h.jsx("div",{className:"d-flex justify-content-between font-14",children:!E&&H<=0?"No file selected":n==="video"&&H>((nn=d==null?void 0:d.limits)==null?void 0:nn.video)||n==="audio"&&H>((en=d==null?void 0:d.limits)==null?void 0:en.audio)||(E==null?void 0:E.size)>((qt=d==null?void 0:d.limits)==null?void 0:qt.size)*1024*1024?h.jsx(h.Fragment,{children:h.jsxs("div",{className:`p-2 rounded-1 w-100 ${E?"d-flex":"d-none"}`,style:{background:"var(--color-red-lighter)"},children:[h.jsxs("span",{className:" fw-sb font-13 flex-grow- me-1",children:[h.jsx("span",{className:"text-dange",children:"Upload limit exceeds"})," ",pE(H)]}),h.jsx("span",{className:"fw-sb font-13",children:P?` and ${P}`:""})]})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:`p-2 rounded-1 w-100 ${E?"d-flex":"d-none"}`,style:{background:"var(--color-green-lighter)"},children:[h.jsxs("span",{className:"font-13 fw-sb flex-grow- text-break",children:['"Uploaded file: "'," ",pE(H)]}),h.jsx("span",{className:"ms-1 fw-sb font-13",children:P?`and ${P}`:""})]})})}),E&&n==="video"&&H<((Jt=d==null?void 0:d.limits)==null?void 0:Jt.video)&&(E==null?void 0:E.size)<((mn=d==null?void 0:d.limits)==null?void 0:mn.size)*1024*1024?h.jsx("div",{}):h.jsx(h.Fragment,{}),h.jsxs("div",{className:"preview-container-wrapper position-relative",children:[h.jsx(Pt,{type:"button",className:`btn-theme btn-red btn-sm btn-icon position-absolute rounded-circle ${Q?"d-block":"d-none"} ${te?"pe-none":""}`,style:{right:"-10px",top:"-10px",zIndex:1},onClick:ye,children:h.jsx(Zt,{tag:"delete7",className:"font-26"})}),h.jsx(Jd,{aspectRatio:`${n==="audio"?"21x9":n==="image"?"1x1":"16x9"}`,className:"preview-container",children:h.jsxs(h.Fragment,{children:[n==="image"&&h.jsx("img",{ref:pt,src:"",alt:"preview image",className:"img-fluid mx-auto d-none"}),(n==="video"||n==="audio")&&h.jsx(XE,{url:A,width:"100%",height:"100%",controls:!0,playing:!1,onDuration:Kn=>$e(Kn),onReady:st,onProgress:({played:Kn,playedSeconds:Nn,loaded:Tn,loadedSeconds:Ui})=>_n({played:Kn,playedSeconds:Nn,loaded:Tn,loadedSeconds:Ui})}),n==="pdf"&&h.jsxs("div",{ref:Ze,className:"d-none",children:[h.jsx(Zt,{tag:"pdf1",className:"me-2 font-30 text-danger"}),h.jsx("span",{className:"font-16 fw-sb",children:E==null?void 0:E.name})]})]})})]}),h.jsx("video",{ref:Xt,autoPlay:!1,className:"d-none opacity-0 visibility-hidden",style:{height:"0.1px",width:"0.1px"}}),M&&h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-flex w-100 p-1 rounded-2 mt-2",style:{background:"var(--color-red-lighter)"},children:h.jsx("span",{className:"d-block text-danger font-13 fw-sb",children:M})})}),h.jsxs("div",{className:"btn-wrap pt-3 pb-4 d-flex justify-content-center position-fixed px-3 bg-white border-top",style:{bottom:0,right:0,left:0},children:[h.jsx(Pt,{type:"button",className:"btn-theme btn-gray btn-md flex-grow-1",onClick:bt,children:"Back"}),h.jsx(Pt,{type:"submit",disabled:!Dt.isValid,className:"btn-theme btn-primary btn-md flex-grow-1",children:te?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):(Dt.isValid,"Submit")})]})]})})}}),h.jsx(MSe,{show:me,handleClose:it,onRecordingStart:St,onRecordingStop:Lt,counter:Be,handlePause:we,handleStart:Xe,className:""}),h.jsx(NR,{show:Fe,loading:Ve,handleClose:We,primaryActionData:null,content_type:"force-upload-submission-cancel-modal",handlePrimaryAction:tt})]})}var ape;(function(n){n[n.voice_call=0]="voice_call",n[n.system=1]="system",n[n.ring=2]="ring",n[n.default=3]="default",n[n.music=3]="music",n[n.alarm=4]="alarm",n[n.notification=5]="notification",n[n.dtmf=8]="dtmf"})(ape||(ape={}));const oo=hc("Volumes",{web:()=>Xi(()=>import("./web-aBKShXG8.js"),__vite__mapDeps([])).then(n=>new n.VolumesWeb)}),LE=hc("Device",{web:()=>Xi(()=>import("./web-CYAAqD_l.js"),__vite__mapDeps([])).then(n=>new n.DeviceWeb)}),ope=30;function Yit({show:n,handleClose:t,contestId:i,videoDurationLimit:s,counter:l,handlePause:d,handleStart:u,handleReset:p,handleStop:g,handleSaveAgoraRecording:_}){let y={backdrop:"static",keyboard:!1};const[E,b]=k.useState(!1),A=Bp(),[N,O]=k.useState(null),[D,P]=k.useState(!0),[j,M]=k.useState(!1),[V,H]=k.useState(!0),[$,Q]=k.useState(!1),[Y,le]=k.useState(!1),[ae,te]=k.useState(!1),[de,G]=k.useState(1);async function ie(){console.log("getDeviceVolume called...");const Ge=await oo.getVolumeLevel({type:0}),rt=await oo.getVolumeLevel({type:1}),pt=await oo.getVolumeLevel({type:2}),Ze=await oo.getVolumeLevel({type:3}),Je=await oo.getVolumeLevel({type:4}),_t=await oo.getVolumeLevel({type:5}),Xt=await oo.getVolumeLevel({type:6}),Ht=await oo.getVolumeLevel({type:7}),gn=await oo.getVolumeLevel({type:8});Ge&&G(Ge.value),console.log("--vol1 = ",JSON.stringify(Ge)),console.log("--vol2 = ",JSON.stringify(rt)),console.log("--vol3 = ",JSON.stringify(pt)),console.log("--vol4 = ",JSON.stringify(Ze)),console.log("--vol5 = ",JSON.stringify(Je)),console.log("--vol6 = ",JSON.stringify(_t)),console.log("--vol7 = ",JSON.stringify(Xt)),console.log("--vol8 = ",JSON.stringify(Ht)),console.log("--vol9 = ",JSON.stringify(gn))}async function _e(Ge){console.log("setDeviceVolume called..."),console.log("setDeviceVolume called...for android");const rt=await oo.setVolumeLevel({value:Ge,type:0});await oo.setVolumeLevel({value:Ge,type:1}),await oo.setVolumeLevel({value:Ge,type:2}),await oo.setVolumeLevel({value:Ge,type:3}),await oo.setVolumeLevel({value:Ge,type:4}),await oo.setVolumeLevel({value:Ge,type:5}),await oo.setVolumeLevel({value:Ge,type:6}),await oo.setVolumeLevel({value:Ge,type:7}),await oo.setVolumeLevel({value:Ge,type:8}),console.log("Set --vol = ",JSON.stringify(rt))}k.useEffect(()=>{n&&(console.log("Inside useEffect = ",n),console.log("videoCallData = ",N),he(i),ie())},[n]);async function he(Ge){var rt,pt,Ze,Je;if(console.log("Called initializeCallAndGetDetails() from AgoraVideoModal..."),!Ge){Qt("Unable to initialize...");return}try{const _t=await Wa.initializeCallAndGetDetails(Ge);if(((rt=_t.data)==null?void 0:rt.status)==="success"){console.log("initializeCallAndGetDetails res = ",_t.data);const Xt=(Ze=(pt=_t.data)==null?void 0:pt.data)==null?void 0:Ze.call_details;O(Xt),P(!1),Ce(),_e(1)}((Je=_t.data)==null?void 0:Je.status)==="failed"&&(console.log("initializeCallAndGetDetails res = ",_t.data),O(null),P(!1),Qt("Failed to connect to camera!","error"),H(!1),M(!1),we())}catch(_t){console.log("Error in initializeCallAndGetDetails Error = ",_t),H(!1),M(!1),we()}}function Ce(){b(!0),H(!0),M(!0),Ve.current=setTimeout(me,ope*1e3),console.log("idleTimeLimitRef.current = ",Ve.current)}function fe(){b(!1),M(!1),H(!1)}function me(){if($){clearTimeout(Ve.current);return}Qt(`Your are idle for more than ${ope}s! Closing Camera option`,"error"),setTimeout(()=>{we()},400)}function Ne(){Qt("Recording stopped","info"),Xe()}_0e({appid:N==null?void 0:N.app_id,channel:N==null?void 0:N.channel,token:N!=null&&N.token?N==null?void 0:N.token:null},E);const{localMicrophoneTrack:Fe}=w0e(j,{encoderConfig:"high_quality_stereo"}),{localCameraTrack:je}=S0e(V);E0e([Fe,je]);const Ve=k.useRef(null),Re=k.useRef(null);async function Be(){if(console.log("idleTimeLimitRef.current = ",Ve.current),clearTimeout(Ve.current),M(!0),le(!0),g(),!$&&E&&A)try{const Ge=await Wa.startVideoRecording(N==null?void 0:N.id);console.log("Called startVideoRecording Res = ",Ge.data),Ge.data.status==="success"&&(le(!1),Q(!0),u(),_e(1),Re.current=setTimeout(Ne,(s-5)*1e3)),Ge.data.status==="failed"&&(Qt("Unable to start recording!","error"),le(!1),g(),we())}catch(Ge){console.log("Error in startVideoRecording = ",Ge),Qt("Unable to start recording!","error"),le(!1),g(),we()}}async function Xe(){var Ge,rt;console.log("handleStopRecordingAction called...",$),te(!0),d();try{Qt("Processing a video","info");const pt=await Wa.stopVideoRecording(N==null?void 0:N.id);if(console.log("Called stopVideoRecording Res = ",pt.data),pt.data.status==="success"){const Ze=(rt=(Ge=pt.data)==null?void 0:Ge.data)==null?void 0:rt.video_url;Qt("Video saved successfully!","success"),te(!1),Q(!1),d(),_({url:Ze}),fe(),we()}pt.data.status==="failed"&&(Qt("Failed to record a video!","error"),te(!1),Q(!1),g(),we())}catch(pt){console.log("Error in stopVideoRecording = ",pt),Qt("Failed to record a video!","error"),te(!1),Q(!1),g(),we()}}function we(){Ve!=null&&Ve.current&&clearTimeout(Ve.current),Re!=null&&Re.current&&clearTimeout(Re.current),_e(10),g(),fe(),O(null),P(!0),H(!1),M(!1),t()}return h.jsx(h.Fragment,{children:h.jsx(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom agora-video-modal",show:n,onHide:t,...y,children:h.jsx(vn.Body,{className:"no-scrollbar p-2 pb-3",children:D&&!N?h.jsx(et,{className:"shadow-sm rounded-4 bg-gray-md border-0 mt-2",children:h.jsxs(et.Body,{children:[h.jsx("div",{className:"my-2 text-center",children:h.jsx(Ji,{animation:"border",variant:"light"})}),h.jsx("div",{className:"p-2 text-center fw-sb font-16 text-light",children:"Initializing...Please wait!!"})]})}):h.jsx(h.Fragment,{children:h.jsx("div",{className:"room",children:A?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"user-list",children:h.jsx("div",{className:"user",children:h.jsx(A0e,{audioTrack:Fe,cameraOn:V,micOn:j,videoTrack:je,cover:"https://www.agora.io/en/wp-content/uploads/2022/10/3d-spatial-audio-icon.svg",children:h.jsx("samp",{className:"user-name",children:"You"})})})}),h.jsxs("div",{className:"control",children:[h.jsx("div",{className:"timer-container",children:h.jsx("span",{className:"btn btn-theme btn- btn-red rounded-5 d-flex align-items-center justify-content-center text-white px-2 fw-b",style:{minWidth:60},children:$?h.jsx(h.Fragment,{children:l<=60?l+"s":eQ(l,":")+"m"}):h.jsx(h.Fragment,{children:"0s"})})}),h.jsx("div",{className:"left-control",children:$?h.jsxs("button",{className:"btn btn-theme btn-start-recording btn-white btn- d-flex align-items-center rounded-5 active",onClick:Xe,children:[h.jsx("div",{className:"icon",children:ae?h.jsx(Ji,{animation:"border",variant:"light",size:"sm"}):h.jsx("span",{})}),h.jsx("span",{className:"ms-1",children:"Stop"})]}):h.jsxs("button",{className:"btn btn-theme btn-start-recording btn-white btn- d-flex align-items-center rounded-5 ",onClick:Be,children:[h.jsx("div",{className:"icon",children:Y?h.jsx(Ji,{animation:"border",variant:"light",size:"sm"}):h.jsx("span",{})}),h.jsx("span",{className:"ms-1",children:"Start"})]})}),h.jsx("div",{className:"right-control",children:!$&&h.jsx("button",{className:`btn btn-theme btn-white btn- d-flex align-items-center justify-content-center rounded-5 ${$?"opacity-0 pe-none":""}`,style:{minWidth:60},onClick:we,children:h.jsx(Zt,{tag:"delete7",className:"font-24"})})})]})]}):h.jsx(h.Fragment,{})})})})})})}function Xit({mediaType:n,mediaSource:t,className:i,contestId:s,handleClose:l,data:d,fileSizelimit:u,videoDurationLimit:p,audioDurationLimit:g,minCompressionLimit:_,deviceOS:y}){const E=Ii(),[b,A]=k.useState(),[N,O]=k.useState(null),[D,P]=k.useState(""),[j,M]=k.useState(null),[V,H]=k.useState(""),[$,Q]=k.useState(0),[Y,le]=k.useState(!1),[ae,te]=k.useState(0),[de,G]=k.useState(!1),[ie,_e]=k.useState(!1);k.useState(!1);const[he,Ce]=k.useState(!1),[fe,me]=k.useState(null),[Ne,Fe]=k.useState(!1),[je,Ve]=k.useState(!1),{counter:Re,handleStart:Be,handlePause:Xe,handleReset:we,handleStop:Ge}=FZ(0,!0),rt=k.useRef(!1);k.useRef(null);const pt=k.useRef(null),Ze=k.useRef(null);k.useRef(null);const Je={title:""},_t=uc({title:hf().required("Required")}),Xt=n?n==="pdf"?".pdf":`${n}/*`:"image/*",Ht=n!==""?"user":"",gn=n?`${n}-gallery-file`:"media-gallery-file",It=n?`${n}-camera-file`:"media-camera-file";function xt(Te){Te&&(me(Te),O(Te.url),le(!0))}const mt=()=>{Ce(!1)},dt=()=>{console.log("handleShowAgoraVideoModal () - MEDIA TYPE = "),Ce(!0)},it=()=>{Fe(!1)},Me=()=>{Fe(!0)};async function We(){console.log("onCameraBtnClick called..."),dt()}function bt(Te){if(console.log("Inside handleChange =",Te.target.files[0]),Te.target.files[0]){A(Te.target.files[0]),le(!0);const Pe=kR(Te.target.files[0].size,{standard:"jedec"});switch(console.log("fileSize = ",Pe),M(Pe),n){case"video":let Qe=URL.createObjectURL(Te.target.files[0]);console.log("Preview Video blobVideoURL =",Qe),O(Qe);break;default:console.log("No case matched...")}}}function St(){if(b)switch(A(null),le(!1),H(""),M(null),we(),pt.current&&(pt.current.value=""),Ze.current&&(Ze.current.value=""),n){case"video":O(null);break;default:console.log("No case matched...")}fe&&(O(null),me(null),le(!1))}const Lt=new AbortController,un=zr.CancelToken.source();k.useEffect(()=>()=>{console.log("Called cancellation from UploadResponseMediaFile..."),rt.current&&(console.log("Called cancellation inside if(bool.current)...",rt==null?void 0:rt.current),un.cancel("Upload cancelled by user"),Lt.abort())},[]);function an(){rt.current=!0,l(),un.cancel("Upload cancelled by user"),Lt.abort(),Lt.signal.aborted&&Qt("Uploading cancelled!","error")}async function ye(Te){return await hs.getSignedUploadUrl(Te)}async function J(Te,Pe,Qe,nt){const $e=Pe.map((Dt,nn)=>{const en=new URL(Dt);console.log("parser = ",en);const qt=en.pathname;return{url:Dt,pathName:qt.replace("/","")}});console.log("urls = ",$e);let st=null,_n=[];try{const Dt=100/nt;let nn=0,en=0,qt=0;for(_e(!0);qt<=b.size;){console.log("Value of start = ",en),console.log("Value of end = ",qt),en=nn*Qe,qt=en+Qe;const mn=await b.slice(en,qt).arrayBuffer(),Kn=d0e.from(mn),Nn={headers:{ExposeHeader:"ETag","Access-Control-Expose-Headers":"ETag"},cancelToken:un.token,signal:Lt.signal,onUploadProgress:function(Tn){console.log("progressEvent = ",Tn);const Ui=Math.round(100/nt*nn+Tn.loaded*100/Tn.total/(100/nt));console.log("percentCompleted = ",Ui),te(Ui>100?100:Ui)}};st=await zr.put($e[nn].url,Kn,Nn),_n.push({PartNumber:nn+1,Part:$e[nn].pathName}),nn++}}catch(Dt){console.log("error in uploading = ",Dt),Qt("Failed to upload!");return}return console.log("parts_info = ",_n),st={...st,parts_info:_n},st}const ne=async(Te,{resetForm:Pe})=>{var _n,Dt,nn,en,qt;if(y==="android"&&!fe&&!b){Qt("Upload Valid File","error");return}if(y==="android"&&fe&&!b){const Jt={contest_id:s,title:Te.title,media_type:n,media_url:fe.url};console.log("deviceOS === android in contestResponseData = ",Jt),Wa.addContestResponseRecord(Jt).then(mn=>{console.log("addContestResponseRecord RES =",mn.data),mn.data.status==="success"&&(console.log("addContestResponseRecord SUCCESS RES =",mn.data),Qt("Contest Response Saved","success"),te(0),G(!1),A(null),le(!1),l(),E(`/contests/${s}`,{state:{pageTitle:"Detailing Contest Details"}}))}).catch(mn=>{console.log(mn),Qt("Failed to save Contest Response","error"),G(!1)});return}if(D===""){console.log("Inside mediaUrl === '' "),Qt("Upload Valid File","error");return}console.log("File for uploading = ",b),G(!0);let Qe=b.name.substring(b.name.lastIndexOf(".")+1);console.log("fileExtension = ",Qe);const nt=25*1024*1024,$e=Math.ceil((b==null?void 0:b.size)/nt);let st={fileextention:Qe,modulename:"detailing",parts:$e};console.log("data for getSignedUrl = ",st);try{const Jt=await ye(st);if(console.log("getSignedUrl response =",Jt),((_n=Jt==null?void 0:Jt.data)==null?void 0:_n.status)==="success"&&(Jt==null?void 0:Jt.status)===200){const mn=(nn=(Dt=Jt==null?void 0:Jt.data)==null?void 0:Dt.data)==null?void 0:nn.resourceUrl,Kn=(qt=(en=Jt==null?void 0:Jt.data)==null?void 0:en.data)==null?void 0:qt.uploadURL;console.log("--- uploadUrls = ",Kn);let Nn=null;if(n==="video"){const Tn=await J(Jt,Kn,nt,$e);if(Tn.status===200){const Ui=new URL(mn);console.log("parser = ",Ui);const xr=Ui.pathname,bi={parts:Tn.parts_info,filename:xr.replace("/","")};console.log("completeUploadData = ",bi);try{Nn=await hs.completeChunkUpload(bi),Qt("Saving contest response...","success"),console.log("completeUploadRes = ",Nn)}catch(Ia){console.log("Error while calliing wallmessage/completechunkupload = ",Ia),Qt("Problem in uploading file! Please try after sometime","error"),_e(!1),te(0),G(!1),A(null),le(!1),l();return}}else console.log("THERE IS AN ERROR IN uploadConfig...",result1)}if(console.log("uploadResult =",Nn),Nn.status===200){console.log("uploadProgress in uploadResult.status === 200 =",ae);const Tn={contest_id:s,title:Te.title,media_type:n,media_url:mn};if(console.log("contestResponseData = ",Tn),console.log("bool after upload = ",rt==null?void 0:rt.current),rt.current)return;_e(!1),te(0),G(!1),A(null),le(!1),Wa.addContestResponseRecord(Tn).then(Ui=>{console.log("addContestResponseRecord RES =",Ui.data),Ui.data.status==="success"&&(console.log("addContestResponseRecord SUCCESS RES =",Ui.data),Qt("Contest Response Saved","success"),te(0),G(!1),A(null),le(!1),l(),E(`/contests/${s}`,{state:{pageTitle:"Detailing Contest Details"}}))}).catch(Ui=>{console.log(Ui),Qt("Failed to save Contest Response","error"),G(!1)})}else{console.log("THERE IS AN ERROR IN uploadConfig...",result1),Qt("UploadResult Else: Problem in uploading file! Please try after sometime","error"),_e(!1),te(0),G(!1),A(null),le(!1),l();return}}else{console.log("Error in signedUrlResponse =",Jt),Qt("Problem in uploading file! Please try after sometime","error"),_e(!1),te(0),G(!1),A(null),le(!1),l();return}}catch(Jt){Qt("Problem in uploading file! Please try after sometime","error"),_e(!1),te(0),G(!1),A(null),le(!1),l(),console.log("ERROR in uploading (get signed urls) = ",Jt)}};function Se(Te){console.log("getDuration called...",Te),Q(Math.round(Te))}function Ue(Te){}const tt=({played:Te,playedSeconds:Pe,loaded:Qe,loadedSeconds:nt})=>{var $e,st;console.log("File Obj =",b),console.log("handleProgress called...",Qe),n==="video"&&$>(($e=d==null?void 0:d.limits)==null?void 0:$e.video)||(b==null?void 0:b.size)>((st=d==null?void 0:d.limits)==null?void 0:st.size)*1024*1024?(console.log("getDuration condition If part"),console.log("fileDuration = ",$," mediaType = ",n," Size =",b==null?void 0:b.size),P("")):(console.log("getDuration condition else part"),console.log("fileDuration = ",$," mediaType = ",n," Size =",b==null?void 0:b.size," compression Limit =",_),P(b.name),H(""))};return h.jsxs(h.Fragment,{children:[h.jsx(id,{initialValues:Je,validationSchema:_t,onSubmit:ne,enableReinitialize:!0,children:Te=>{var Pe,Qe,nt,$e;return h.jsx(h.Fragment,{children:h.jsxs(kt,{className:"form_style",onSubmit:Te.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx(kt.Label,{className:"font-13",children:"Response title"}),h.jsx(kt.Control,{type:"text",placeholder:"title",name:"title",...Te.getFieldProps("title"),autoComplete:"off"}),Te.touched.title&&Te.errors.title?h.jsx("p",{className:"error-state-text font-12 text-danger",children:Te.errors.title}):null]}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx("div",{className:"font-13",children:"Choose upload type"}),h.jsx("div",{className:"btn-wrap d-flex py-2",children:t.length>0&&h.jsxs(h.Fragment,{children:[n==="video"&&y==="android"?h.jsx("div",{className:"flex-grow-1",children:h.jsx(Pt,{onClick:()=>{console.log("On agora btn clicked..."),We()},className:"btn-theme btn-secondary w-100 font-14 fw-sb",style:{padding:"10px 12px"},children:"Camera"})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:pt,name:It,id:It,className:"uploadMediafile",capture:Ht,accept:Xt,onChange:bt,disabled:Y}),h.jsx("label",{htmlFor:It,className:"justify-content-center px-2 capture-btn",children:"Camera"})]})}),h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:Ze,name:gn,id:gn,className:"uploadMediafile",accept:Xt,onChange:bt,disabled:Y}),h.jsx("label",{htmlFor:gn,className:"justify-content-center px-2 gallery-btn",children:"Gallery"})]})]})})]}),(ae>0||ie)&&h.jsxs("div",{className:"d-flex justify-content-center align-items-center p-2 pb-3",children:[h.jsx("span",{className:"font-13 fw-sb pe-2",children:"Uploading: "}),h.jsx("progress",{value:ae,max:"100"}),h.jsx("span",{className:"font-13 fw-sb ps-2",children:`${ae}%`})]}),h.jsx("div",{className:"d-flex justify-content-between font-14",children:!b&&$<=0?"No file selected":n==="video"&&$>((Pe=d==null?void 0:d.limits)==null?void 0:Pe.video)||(b==null?void 0:b.size)>((Qe=d==null?void 0:d.limits)==null?void 0:Qe.size)*1024*1024?h.jsx(h.Fragment,{children:h.jsxs("div",{className:`p-2 rounded-1 w-100 ${b?"d-flex":"d-none"}`,style:{background:"var(--color-red-lighter)"},children:[h.jsxs("span",{className:" fw-sb font-13 flex-grow- me-1",children:[h.jsx("span",{className:"text-dange",children:"Upload limit exceeds"})," ",pE($)]}),h.jsx("span",{className:"fw-sb font-13",children:j?` and ${j}`:""})]})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:`p-2 rounded-1 w-100 ${b?"d-flex":"d-none"}`,style:{background:"var(--color-green-lighter)"},children:[h.jsxs("span",{className:"font-13 fw-sb flex-grow- text-break",children:['"Uploaded file: "',pE($)]}),h.jsx("span",{className:"ms-1 fw-sb font-13",children:j?`and ${j}`:""})]})})}),b&&n==="video"&&$<((nt=d==null?void 0:d.limits)==null?void 0:nt.video)&&(b==null?void 0:b.size)<(($e=d==null?void 0:d.limits)==null?void 0:$e.size)*1024*1024?h.jsx("div",{}):h.jsx(h.Fragment,{}),h.jsxs("div",{className:"preview-container-wrapper position-relative",children:[h.jsx(Pt,{type:"button",className:`btn-theme btn-red btn-sm btn-icon position-absolute rounded-circle ${Y?"d-block":"d-none"} ${de?"pe-none":""}`,style:{right:"-10px",top:"-10px",zIndex:1},onClick:St,children:h.jsx(Zt,{tag:"delete7",className:"font-26"})}),h.jsx(Jd,{aspectRatio:"16x9",className:"preview-container",children:h.jsx(h.Fragment,{children:n==="video"&&h.jsx(XE,{url:N,width:"100%",height:"100%",controls:!0,playing:!1,onDuration:st=>Se(st),onReady:Ue,onProgress:({played:st,playedSeconds:_n,loaded:Dt,loadedSeconds:nn})=>tt({played:st,playedSeconds:_n,loaded:Dt,loadedSeconds:nn})})})})]}),h.jsxs("div",{className:"btn-wrap pt-3 pb-4 d-flex justify-content-center position-fixed px-3 bg-white border-top",style:{bottom:0,right:0,left:0},children:[h.jsx(Pt,{type:"button",className:"btn-theme btn-gray btn-md flex-grow-1",onClick:Me,children:"Back"}),h.jsx(Pt,{type:"submit",disabled:!Te.isValid,className:"btn-theme btn-primary btn-md flex-grow-1",children:de?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):(Te.isValid,"Submit")})]})]})})}}),h.jsx(Yit,{show:he,handleClose:mt,contestId:s,videoDurationLimit:p,counter:Re,handlePause:Xe,handleStart:Be,handleReset:we,handleStop:Ge,handleSaveAgoraRecording:xt}),h.jsx(NR,{show:Ne,loading:je,handleClose:it,primaryActionData:null,content_type:"force-upload-submission-cancel-modal",handlePrimaryAction:an})]})}function Jit(n){var u,p,g,_,y,E,b,A,N,O,D,P,j,M,V,H;k.useState(!1);const t=(p=(u=n.data)==null?void 0:u.limits)!=null&&p.size?(_=(g=n.data)==null?void 0:g.limits)==null?void 0:_.size:"NA",i=(E=(y=n.data)==null?void 0:y.limits)!=null&&E.video?(A=(b=n.data)==null?void 0:b.limits)==null?void 0:A.video:"NA",s=(O=(N=n.data)==null?void 0:N.limits)!=null&&O.audio?(P=(D=n.data)==null?void 0:D.limits)==null?void 0:P.audio:"NA",l=(M=(j=n.data)==null?void 0:j.limits)!=null&&M.min_compression_size?(H=(V=n.data)==null?void 0:V.limits)==null?void 0:H.min_compression_size:0,d=(n==null?void 0:n.deviceOS)||"android";return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom -modal",show:n.show.isVisible,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:`Upload ${n.uploadMediaType}`})}),h.jsxs(vn.Body,{className:"no-scrollbar",style:{paddingBottom:100},children:[h.jsx(et,{className:"mb-1 mb-sm-2",children:h.jsxs(et.Body,{className:"p-1 p-sm-2 font-13 text-gray4",style:{background:"var(--color-yellow-lighter)"},children:[h.jsx("span",{className:"fw-b font-13",children:"Note: "}),"Upload file size should not exceeds"," ",h.jsx("span",{className:"fw-b text-danger",children:t!=="NA"&&`${t} mb`})," ","and video/audio duration not more than"," ",h.jsx("span",{className:"fw-b text-danger",children:i!=="NA"&&`${i}s`}),"."]})}),n.uploadMediaType.toLowerCase()==="video"?h.jsx(Xit,{mediaType:n.uploadMediaType.toLowerCase(),mediaSource:n==null?void 0:n.resSources,contestId:n.contestId,handleClose:n.handleClose,data:n.data,fileSizelimit:t,videoDurationLimit:i,audioDurationLimit:s,minCompressionLimit:l,deviceOS:d}):h.jsx(qit,{mediaType:n.uploadMediaType.toLowerCase(),mediaSource:n==null?void 0:n.resSources,contestId:n.contestId,handleClose:n.handleClose,data:n.data,fileSizelimit:t,videoDurationLimit:i,audioDurationLimit:s,minCompressionLimit:l})]})]})})}function Qit(){var O,D,P,j,M,V,H,$,Q,Y,le,ae;const[n,t]=k.useState({isVisible:!1}),[i,s]=k.useState(""),[l,d]=k.useState(""),{state:u}=Xo(),p=(O=u==null?void 0:u.item)==null?void 0:O.response_types,g=(D=u==null?void 0:u.item)==null?void 0:D.response_sources,_=(P=u==null?void 0:u.item)==null?void 0:P.title,y=(j=u==null?void 0:u.item)==null?void 0:j.id,E=(V=(M=u==null?void 0:u.item)==null?void 0:M.limits)==null?void 0:V.size;($=(H=u==null?void 0:u.item)==null?void 0:H.limits)==null||$.video,(Y=(Q=u==null?void 0:u.item)==null?void 0:Q.limits)==null||Y.audio,(ae=(le=u==null?void 0:u.item)==null?void 0:le.limits)==null||ae.min_compression_size;const b=async()=>{const te=await LE.getInfo();d(te.platform)};k.useEffect(()=>{b()},[]);const A=()=>{t({isVisible:!1})},N=te=>{s(te),t({isVisible:!0})};return h.jsx(qi,{className:"upload-response-page",children:h.jsxs(Yn,{className:"mb-4",children:[h.jsx("div",{className:"d-flex align-items-center justify-content-between pt-2 mb-3",children:h.jsxs("p",{className:"font-14",children:["Select source for uploading your response for contest."," ",h.jsxs("span",{className:"fw-sb",children:['"',_,'"']})]})}),(p==null?void 0:p.length)>0&&h.jsx(fn,{className:"row-cols-2 mb-3 g-3",children:p==null?void 0:p.map((te,de)=>h.jsx(Gt,{children:h.jsx(et,{className:"card-theme",onClick:()=>N(te),children:h.jsxs(et.Body,{className:"p-2 p-sm-3 justify-content-center d-flex flex-column",children:[h.jsxs("div",{className:"icon-wra",children:[te==="video"&&h.jsx(Zt,{tag:"play1",className:"mb-2 font-36 text-theme-primary"}),te==="audio"&&h.jsx(Zt,{tag:"consult1",className:"mb-2 font-36 text-theme-primary"}),te==="pdf"&&h.jsx(Zt,{tag:"pdf1",className:"mb-2 font-36 text-theme-primary"}),te==="image"&&h.jsx(Zt,{tag:"image2",className:"mb-2 font-36 text-theme-primary"})]}),h.jsxs("div",{className:"font-14 fw-sb pt-sm-2",children:[`Upload ${te}`,h.jsx("small",{className:"d-block fw-sb text-danger font-11",children:E&&h.jsxs(h.Fragment,{children:["max ",E,"mb"]})})]})]})})},`${de}-type`))}),h.jsx(Jit,{show:n,handleClose:A,resSources:g,uploadMediaType:i,contestId:y,className:"",data:u==null?void 0:u.item,deviceOS:l})]})})}function Zit(n){var fe,me,Ne,Fe;const t=Ii(),{state:i}=Xo(),s=(fe=i.data)==null?void 0:fe.contest_id,l=(me=i.data)==null?void 0:me.response_id,d=(Ne=i.data)==null?void 0:Ne.contest_title,u=(Fe=i.data)==null?void 0:Fe.response_user,[p,g]=k.useState([]),[_,y]=k.useState(!0),[E,b]=k.useState(!0),[A,N]=k.useState({}),[O,D]=k.useState({}),[P,j]=k.useState(null),[M,V]=k.useState(!0),[H,$]=k.useState(!1),[Q,Y]=k.useState(!1),le=k.useRef(null);k.useEffect(()=>{console.log("useEffect parameters =",p),N(p.reduce((je,Ve)=>({...je,[Ve.id]:0}),{}))},[p]),k.useEffect(()=>{s&&ae(s)},[]);async function ae(je){Wa.getDetailingContestParameters(je).then(Ve=>{Ve.data.status==="success"&&(g(Ve.data.data.items),y(!1))}).catch(Ve=>{y(!1),g([]),console.log("Error in getDetailingContestParameters = ",Ve)})}const te=()=>{Y(!1)},de=()=>{Y(!0)},G={feedback:"",evaluations:"",response_id:l,contest_id:s},ie=uc({});async function _e(je){console.log("*****************************"),console.log("******** Inside seperate async func evaluateDetailingContestResponse *************"),console.log("evaluateDetailingContestResponse newValues = ",je),console.log("*****************************"),$(!0),Wa.evaluateDetailingContestResponse(je).then(Ve=>{var Re,Be;if(console.log("evaluateDetailingContestResponse RES = ",Ve.data),Ve.data.status==="success")console.log("Inside Evaluate case : ",Ve.data),Qt("Successfully evaluated!","success"),$(!1),t(`/contests/${s}`,{state:{pageTitle:"Detailing Contest Details"}});else if(Ve.data.status==="failed")if(console.log("ERROR:",Ve.data.error),Qt("Evaluation failed!","error"),$(!1),je.hasOwnProperty("force"))console.log("newValues contains force property...",je);else{const Xe={btnOptions:(Be=(Re=Ve.data)==null?void 0:Re.data)==null?void 0:Be.options,message:Ve.data.message};j(Xe),de()}}).catch(Ve=>{console.log(Ve),$(!1),Qt("Evaluation failed!","error")})}const he=async(je,{resetForm:Ve})=>{if(console.log("Form Values :",je),console.log("Evaluation = ",A),le.current.value===""){je.feedback===""&&b(!1),Qt("Feedback Required","error");return}je.feedback!==""&&b(!0);const Re={...je,response_id:l,contest_id:s,evaluations:A};console.log("New values in Compose =",Re),D(Re);for(const[Xe,we]of Object.entries(A))if(we===0){V(!1),Qt("Required Parameters to be selected","error");return}$(!0),console.log("MOved ahead");const Be=await _e(Re);console.log("evalResponse in onSubmit = ",Be)},Ce=(je,Ve)=>{console.log(je,Ve),N(Re=>({...Re,[Ve]:je}))};return h.jsxs(h.Fragment,{children:[h.jsx(qi,{className:"evaluate-page",children:h.jsxs(Yn,{className:"mb-4",children:[h.jsxs("div",{className:"font-14 pt-2 pb-0",children:["Submit your evaluation to contest"," ",h.jsx("span",{className:"fw-sb",children:`"${d}"`})]}),h.jsxs("div",{className:"py-2 font-14",children:[h.jsx("span",{className:"fw-sb me-1",children:"Evaluating:"}),h.jsx("span",{className:"text-theme-primary fw-sb",children:u})]}),h.jsx("div",{className:"py-1",style:{border:"0px solid #999"},children:h.jsx(id,{initialValues:G,validationSchema:ie,onSubmit:he,children:je=>h.jsxs(kt,{className:"form_style",onSubmit:je.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group rounded_corners mb-0",children:[h.jsx(kt.Label,{className:"font-14",children:"Feedback"}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto"},placeholder:"Feedback",name:"feedback",...je.getFieldProps("feedback"),autoComplete:"off",ref:le}),E?null:h.jsx(h.Fragment,{children:h.jsx("p",{className:"error-state-text font-13 text-danger",children:"Required"})})]}),h.jsx("hr",{}),h.jsxs("div",{className:"eval-options-wrap d-grid gap-3",children:[_&&h.jsx(ci,{type:""}),!_&&p.length>0&&h.jsx(h.Fragment,{children:p.map(Ve=>h.jsxs("div",{className:"d-flex flex-column",children:[h.jsx("div",{className:"font-14 mb-1",children:Ve.title}),h.jsx(Bit,{initialValue:0,onUserRateChange:Ce,allowHover:!1,transition:!0,showTooltip:!1,tooltipSize:"small",tooltipDefaultText:"",tooltipArray:Ve.regards,iconsCount:Ve.scale,parameterId:Ve.id,size:50,emptyIcon:h.jsx(VFe,{className:"font-28"}),fillIcon:h.jsx(BFe,{className:"font-28"})}),!M&&h.jsx("div",{className:"font-12 text-danger",children:A.hasOwnProperty(Ve.id)&&A[Ve.id]===0&&"Required"})]},Ve.id))})]}),h.jsx(fn,{className:"row-cols-1 justify-content-center pt-5 pb-3",children:h.jsx(Gt,{className:"col-12",children:h.jsx(Pt,{type:"submit",disabled:H,className:"btn-theme btn-primary btn-md w-100",children:H?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):(je.isValid,"Submit")})})}),h.jsx("div",{className:"btn-wrap pt-3 d-flex justify-content-center"})]})})})]})}),h.jsx(NR,{show:Q,loading:H,handleClose:te,primaryActionData:O,content_type:"force-evaluation-submission-modal",handlePrimaryAction:_e,data:P})]})}function RC({item:n,className:t,type:i,title:s,subTitle:l,iconImg:d,handleItemSelect:u}){const p=t||"",g=d||((n==null?void 0:n.type)==="group"?"/img/groups-icon.png":"/img/user-profile.jpg"),_=s||"Guest User",y=l||"";return h.jsx(et,{onClick:()=>u(n),className:`card-theme border-0 rounded-1 custom-select-list-btn-card card-md ${p}`,children:h.jsxs(et.Body,{className:"d-flex align-items-center info-container p-2",children:[h.jsx("div",{className:"d-flex flex-shrink-0 img-wra media-icon-wrapper",children:h.jsx(us,{src:g,alt:`${_} image`,className:"img-fluid"})}),h.jsxs("div",{className:"flex-grow-1 ps-2 ps-sm-3",children:[h.jsx("div",{className:"welcome-user fw-n",style:{maxWidth:"90%"},children:`${_} `}),h.jsx("div",{className:"d-block w-100 font-13 text-gray6",children:$R(y)})]}),h.jsx(Zt,{tag:"circle1",className:"font-20 position-absolute radio-status-icon unchecked-icon"}),h.jsx(Zt,{tag:"check2",className:"font-20 position-absolute radio-status-icon checked-icon"})]})})}function BZ({className:n,items:t,type:i,handleRemoveItems:s,...l}){const d=n||"",u=t&&(t==null?void 0:t.length)>0?t==null?void 0:t.length:0;function p(g){const _=g.target.getAttribute("data-id"),y=t.filter((E,b)=>E.id===_)[0];s(y)}return h.jsxs("div",{className:`d-flex align-items-center selected-items-list position-relative border-bottom ${d}`,children:[h.jsx("div",{className:"d-flex justify-content-center align-items-center total flex-shrink-0",style:{width:30,height:30,background:"var(--color-gray-light5)",borderRadius:6},children:u}),h.jsx("div",{className:"flex-grow-1 d-flex flex-nowrap no-scrollbar align-items-center overflow-auto border-botto bg-gray-lighte position-relative ps-2",style:{minHeight:40},children:t&&t.length>0?h.jsx(h.Fragment,{children:t.map((g,_)=>{const y=g!=null&&g.avatar&&(g==null?void 0:g.type)==="user"?g==null?void 0:g.avatar:"/img/groups-icon.png";return h.jsxs("div",{className:`d-flex align-items-center p-1 rounded-3 text-wrap position-relative border-0 me-2 ${i==="single"?"pe-none":""}`,children:[h.jsx("div",{className:"overflow-hidden rounded-circle flex-shrink-0 pe-none",style:{width:26,height:26},children:h.jsx("img",{src:y,className:"img-fluid mx-auto",alt:Pv(g==null?void 0:g.firstname,g==null?void 0:g.lastname),style:{objectFit:"cover"}})}),h.jsxs("div",{className:"ms-1 font-13 text-truncate flex-grow-1",children:[Pv(g==null?void 0:g.firstname,g==null?void 0:g.lastname),i!=="single"&&h.jsx(Pt,{type:"button",className:"btn btn-theme btn-white bg-transparent btn-icon btn-sm","data-item":`${JSON.stringify(g)}`,"data-id":g.id,onClick:p,children:h.jsx(Zt,{tag:"delete8",className:"text-gray6 font-18 mx-1 pe-none"})})]})]},g.id)})}):h.jsx(h.Fragment,{children:h.jsx("div",{className:"font-14 fw-sb text-gray6 ps-2",children:"Please select user"})})})]})}function ert({item:n,className:t,type:i,title:s,subTitle:l,iconImg:d,handleImageSelect:u}){const p=t||"";return h.jsx(et,{onClick:()=>{u(n)},className:`card-theme border-0 rounded-2 custom-select-image-btn-card card-md ${p} h-100 position-relative`,children:h.jsxs(et.Body,{className:"p-0 rounded-1 h-100 d-flex align-items-center",children:[h.jsx("div",{className:"card-overlay bg-gray-normal-overlay",children:h.jsx(Zt,{tag:"check2",className:"font-24"})}),h.jsx(us,{src:d,alt:`${n==null?void 0:n.id} image`,className:"img-fluid"})]})})}function va(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function DE(n){"@babel/helpers - typeof";return DE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},DE(n)}function trt(n,t){if(DE(n)!="object"||!n)return n;var i=n[Symbol.toPrimitive];if(i!==void 0){var s=i.call(n,t||"default");if(DE(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(n)}function jSe(n){var t=trt(n,"string");return DE(t)=="symbol"?t:t+""}function lpe(n,t){for(var i=0;i div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',ae=Y.head||Y.getElementsByTagName("head")[0],te=Y.createElement("style");te.id="detectElementResize",te.type="text/css",n!=null&&te.setAttribute("nonce",n),te.styleSheet?te.styleSheet.cssText=le:te.appendChild(Y.createTextNode(le)),ae.appendChild(te)}},H=function(Y,le){if(s)Y.attachEvent("onresize",le);else{if(!Y.__resizeTriggers__){var ae=Y.ownerDocument,te=i.getComputedStyle(Y);te&&te.position=="static"&&(Y.style.position="relative"),V(ae),Y.__resizeLast__={},Y.__resizeListeners__=[],(Y.__resizeTriggers__=ae.createElement("div")).className="resize-triggers";var de=ae.createElement("div");de.className="expand-trigger",de.appendChild(ae.createElement("div"));var G=ae.createElement("div");G.className="contract-trigger",Y.__resizeTriggers__.appendChild(de),Y.__resizeTriggers__.appendChild(G),Y.appendChild(Y.__resizeTriggers__),u(Y),Y.addEventListener("scroll",g,!0),E&&(Y.__resizeTriggers__.__animationListener__=function(_e){_e.animationName==P&&u(Y)},Y.__resizeTriggers__.addEventListener(E,Y.__resizeTriggers__.__animationListener__))}Y.__resizeListeners__.push(le)}},$=function(Y,le){if(s)Y.detachEvent("onresize",le);else if(Y.__resizeListeners__.splice(Y.__resizeListeners__.indexOf(le),1),!Y.__resizeListeners__.length){Y.removeEventListener("scroll",g,!0),Y.__resizeTriggers__.__animationListener__&&(Y.__resizeTriggers__.removeEventListener(E,Y.__resizeTriggers__.__animationListener__),Y.__resizeTriggers__.__animationListener__=null);try{Y.__resizeTriggers__=!Y.removeChild(Y.__resizeTriggers__)}catch{}}};return{addResizeListener:H,removeResizeListener:$}}function upe(n,t){var i=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(l){return Object.getOwnPropertyDescriptor(n,l).enumerable})),i.push.apply(i,s)}return i}function hpe(n){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:!0,t={};return function(i){var s=i.callback,l=i.indices,d=Object.keys(l),u=!n||d.every(function(g){var _=l[g];return Array.isArray(_)?_.length>0:_>=0}),p=d.length!==Object.keys(t).length||d.some(function(g){var _=t[g],y=l[g];return Array.isArray(y)?_.join(",")!==y.join(","):_!==y});t=l,u&&p&&s(l)}}function fpe(n,t){var i=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(l){return Object.getOwnPropertyDescriptor(n,l).enumerable})),i.push.apply(i,s)}return i}function ppe(n){for(var t=1;t=0){var O=p.getScrollPositionForCell({align:_,cellIndex:y,height:g,scrollLeft:A,scrollTop:N,width:E});(O.scrollLeft!==A||O.scrollTop!==N)&&i._setScrollPosition(O)}}),wt(i,"_onScroll",function(u){if(u.target===i._scrollingContainer){i._enablePointerEventsAfterDelay();var p=i.props,g=p.cellLayoutManager,_=p.height,y=p.isScrollingChange,E=p.width,b=i._scrollbarSize,A=g.getTotalSize(),N=A.height,O=A.width,D=Math.max(0,Math.min(O-E+b,u.target.scrollLeft)),P=Math.max(0,Math.min(N-_+b,u.target.scrollTop));if(i.state.scrollLeft!==D||i.state.scrollTop!==P){var j=u.cancelable?Fb.OBSERVED:Fb.REQUESTED;i.state.isScrolling||y(!0),i.setState({isScrolling:!0,scrollLeft:D,scrollPositionChangeReason:j,scrollTop:P})}i._invokeOnScrollMemoizer({scrollLeft:D,scrollTop:P,totalWidth:O,totalHeight:N})}}),i._scrollbarSize=G4(),i._scrollbarSize===void 0?(i._scrollbarSizeMeasured=!1,i._scrollbarSize=0):i._scrollbarSizeMeasured=!0,i}return pc(t,n),ya(t,[{key:"recomputeCellSizesAndPositions",value:function(){this._calculateSizeAndPositionDataOnNextUpdate=!0,this.forceUpdate()}},{key:"componentDidMount",value:function(){var s=this.props,l=s.cellLayoutManager,d=s.scrollLeft,u=s.scrollToCell,p=s.scrollTop;this._scrollbarSizeMeasured||(this._scrollbarSize=G4(),this._scrollbarSizeMeasured=!0,this.setState({})),u>=0?this._updateScrollPositionForScrollToCell():(d>=0||p>=0)&&this._setScrollPosition({scrollLeft:d,scrollTop:p}),this._invokeOnSectionRenderedHelper();var g=l.getTotalSize(),_=g.height,y=g.width;this._invokeOnScrollMemoizer({scrollLeft:d||0,scrollTop:p||0,totalHeight:_,totalWidth:y})}},{key:"componentDidUpdate",value:function(s,l){var d=this.props,u=d.height,p=d.scrollToAlignment,g=d.scrollToCell,_=d.width,y=this.state,E=y.scrollLeft,b=y.scrollPositionChangeReason,A=y.scrollTop;b===Fb.REQUESTED&&(E>=0&&E!==l.scrollLeft&&E!==this._scrollingContainer.scrollLeft&&(this._scrollingContainer.scrollLeft=E),A>=0&&A!==l.scrollTop&&A!==this._scrollingContainer.scrollTop&&(this._scrollingContainer.scrollTop=A)),(u!==s.height||p!==s.scrollToAlignment||g!==s.scrollToCell||_!==s.width)&&this._updateScrollPositionForScrollToCell(),this._invokeOnSectionRenderedHelper()}},{key:"componentWillUnmount",value:function(){this._disablePointerEventsTimeoutId&&clearTimeout(this._disablePointerEventsTimeoutId)}},{key:"render",value:function(){var s=this.props,l=s.autoHeight,d=s.cellCount,u=s.cellLayoutManager,p=s.className,g=s.height,_=s.horizontalOverscanSize,y=s.id,E=s.noContentRenderer,b=s.style,A=s.verticalOverscanSize,N=s.width,O=this.state,D=O.isScrolling,P=O.scrollLeft,j=O.scrollTop;(this._lastRenderedCellCount!==d||this._lastRenderedCellLayoutManager!==u||this._calculateSizeAndPositionDataOnNextUpdate)&&(this._lastRenderedCellCount=d,this._lastRenderedCellLayoutManager=u,this._calculateSizeAndPositionDataOnNextUpdate=!1,u.calculateSizeAndPositionData());var M=u.getTotalSize(),V=M.height,H=M.width,$=Math.max(0,P-_),Q=Math.max(0,j-A),Y=Math.min(H,P+N+_),le=Math.min(V,j+g+A),ae=g>0&&N>0?u.cellRenderers({height:le-Q,isScrolling:D,width:Y-$,x:$,y:Q}):[],te={boxSizing:"border-box",direction:"ltr",height:l?"auto":g,position:"relative",WebkitOverflowScrolling:"touch",width:N,willChange:"transform"},de=V>g?this._scrollbarSize:0,G=H>N?this._scrollbarSize:0;return te.overflowX=H+de<=N?"hidden":"auto",te.overflowY=V+G<=g?"hidden":"auto",k.createElement("div",{ref:this._setScrollingContainerRef,"aria-label":this.props["aria-label"],className:af("ReactVirtualized__Collection",p),id:y,onScroll:this._onScroll,role:"grid",style:ppe(ppe({},te),b),tabIndex:0},d>0&&k.createElement("div",{className:"ReactVirtualized__Collection__innerScrollContainer",style:{height:V,maxHeight:V,maxWidth:H,overflow:"hidden",pointerEvents:D?"none":"",width:H}},ae),d===0&&E())}},{key:"_enablePointerEventsAfterDelay",value:function(){var s=this;this._disablePointerEventsTimeoutId&&clearTimeout(this._disablePointerEventsTimeoutId),this._disablePointerEventsTimeoutId=setTimeout(function(){var l=s.props.isScrollingChange;l(!1),s._disablePointerEventsTimeoutId=null,s.setState({isScrolling:!1})},crt)}},{key:"_invokeOnScrollMemoizer",value:function(s){var l=this,d=s.scrollLeft,u=s.scrollTop,p=s.totalHeight,g=s.totalWidth;this._onScrollMemoizer({callback:function(y){var E=y.scrollLeft,b=y.scrollTop,A=l.props,N=A.height,O=A.onScroll,D=A.width;O({clientHeight:N,clientWidth:D,scrollHeight:p,scrollLeft:E,scrollTop:b,scrollWidth:g})},indices:{scrollLeft:d,scrollTop:u}})}},{key:"_setScrollPosition",value:function(s){var l=s.scrollLeft,d=s.scrollTop,u={scrollPositionChangeReason:Fb.REQUESTED};l>=0&&(u.scrollLeft=l),d>=0&&(u.scrollTop=d),(l>=0&&l!==this.state.scrollLeft||d>=0&&d!==this.state.scrollTop)&&this.setState(u)}}],[{key:"getDerivedStateFromProps",value:function(s,l){return s.cellCount===0&&(l.scrollLeft!==0||l.scrollTop!==0)?{scrollLeft:0,scrollTop:0,scrollPositionChangeReason:Fb.REQUESTED}:s.scrollLeft!==l.scrollLeft||s.scrollTop!==l.scrollTop?{scrollLeft:s.scrollLeft!=null?s.scrollLeft:l.scrollLeft,scrollTop:s.scrollTop!=null?s.scrollTop:l.scrollTop,scrollPositionChangeReason:Fb.REQUESTED}:null}}])}(k.PureComponent);wt(lF,"defaultProps",{"aria-label":"grid",horizontalOverscanSize:0,noContentRenderer:function(){return null},onScroll:function(){return null},onSectionRendered:function(){return null},scrollToAlignment:"auto",scrollToCell:-1,style:{},verticalOverscanSize:0});lF.propTypes={};VO(lF);var drt=function(){function n(t){var i=t.height,s=t.width,l=t.x,d=t.y;va(this,n),this.height=i,this.width=s,this.x=l,this.y=d,this._indexMap={},this._indices=[]}return ya(n,[{key:"addCellIndex",value:function(i){var s=i.index;this._indexMap[s]||(this._indexMap[s]=!0,this._indices.push(s))}},{key:"getCellIndices",value:function(){return this._indices}},{key:"toString",value:function(){return"".concat(this.x,",").concat(this.y," ").concat(this.width,"x").concat(this.height)}}])}(),urt=100,hrt=function(){function n(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:urt;va(this,n),this._sectionSize=t,this._cellMetadata=[],this._sections={}}return ya(n,[{key:"getCellIndices",value:function(i){var s=i.height,l=i.width,d=i.x,u=i.y,p={};return this.getSections({height:s,width:l,x:d,y:u}).forEach(function(g){return g.getCellIndices().forEach(function(_){p[_]=_})}),Object.keys(p).map(function(g){return p[g]})}},{key:"getCellMetadata",value:function(i){var s=i.index;return this._cellMetadata[s]}},{key:"getSections",value:function(i){for(var s=i.height,l=i.width,d=i.x,u=i.y,p=Math.floor(d/this._sectionSize),g=Math.floor((d+l-1)/this._sectionSize),_=Math.floor(u/this._sectionSize),y=Math.floor((u+s-1)/this._sectionSize),E=[],b=p;b<=g;b++)for(var A=_;A<=y;A++){var N="".concat(b,".").concat(A);this._sections[N]||(this._sections[N]=new drt({height:this._sectionSize,width:this._sectionSize,x:b*this._sectionSize,y:A*this._sectionSize})),E.push(this._sections[N])}return E}},{key:"getTotalSectionCount",value:function(){return Object.keys(this._sections).length}},{key:"toString",value:function(){var i=this;return Object.keys(this._sections).map(function(s){return i._sections[s].toString()})}},{key:"registerCell",value:function(i){var s=i.cellMetadatum,l=i.index;this._cellMetadata[l]=s,this.getSections(s).forEach(function(d){return d.addCellIndex({index:l})})}}])}();function frt(n){for(var t=n.cellCount,i=n.cellSizeAndPositionGetter,s=n.sectionSize,l=[],d=new hrt(s),u=0,p=0,g=0;g=0&&d=0&&g===p&&_())}function n4(n,t){if(n==null)return{};var i,s,l=cQ(n,t);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(n);for(s=0;s=this._cellCount)throw Error("Requested index ".concat(i," is outside of range 0..").concat(this._cellCount));if(i>this._lastMeasuredIndex)for(var s=this.getSizeAndPositionOfLastMeasuredCell(),l=s.offset+s.size,d=this._lastMeasuredIndex+1;d<=i;d++){var u=this._cellSizeGetter({index:d});if(u===void 0||isNaN(u))throw Error("Invalid size returned for cell ".concat(d," of value ").concat(u));u===null?(this._cellSizeAndPositionData[d]={offset:l,size:0},this._lastBatchedIndex=i):(this._cellSizeAndPositionData[d]={offset:l,size:u},l+=u,this._lastMeasuredIndex=i)}return this._cellSizeAndPositionData[i]}},{key:"getSizeAndPositionOfLastMeasuredCell",value:function(){return this._lastMeasuredIndex>=0?this._cellSizeAndPositionData[this._lastMeasuredIndex]:{offset:0,size:0}}},{key:"getTotalSize",value:function(){var i=this.getSizeAndPositionOfLastMeasuredCell(),s=i.offset+i.size,l=this._cellCount-this._lastMeasuredIndex-1,d=l*this._estimatedCellSize;return s+d}},{key:"getUpdatedOffsetForIndex",value:function(i){var s=i.align,l=s===void 0?"auto":s,d=i.containerSize,u=i.currentOffset,p=i.targetIndex;if(d<=0)return 0;var g=this.getSizeAndPositionOfCell(p),_=g.offset,y=_-d+g.size,E;switch(l){case"start":E=_;break;case"end":E=y;break;case"center":E=_-(d-g.size)/2;break;default:E=Math.max(y,Math.min(_,u));break}var b=this.getTotalSize();return Math.max(0,Math.min(b-d,E))}},{key:"getVisibleCellRange",value:function(i){var s=i.containerSize,l=i.offset,d=this.getTotalSize();if(d===0)return{};var u=l+s,p=this._findNearestCell(l),g=this.getSizeAndPositionOfCell(p);l=g.offset+g.size;for(var _=p;ll&&(i=d-1)}return s>0?s-1:0}},{key:"_exponentialSearch",value:function(i,s){for(var l=1;i=i?this._binarySearch(l,0,i):this._exponentialSearch(l,i)}}])}(),_rt=15e5,Ert=16777100,wrt=function(){return typeof window<"u"},Srt=function(){return!!window.chrome},brt=function(){return wrt()&&Srt()?Ert:_rt},Crt=["maxScrollSize"],vpe=function(){function n(t){var i=t.maxScrollSize,s=i===void 0?brt():i,l=n4(t,Crt);va(this,n),wt(this,"_cellSizeAndPositionManager",void 0),wt(this,"_maxScrollSize",void 0),this._cellSizeAndPositionManager=new yrt(l),this._maxScrollSize=s}return ya(n,[{key:"areOffsetsAdjusted",value:function(){return this._cellSizeAndPositionManager.getTotalSize()>this._maxScrollSize}},{key:"configure",value:function(i){this._cellSizeAndPositionManager.configure(i)}},{key:"getCellCount",value:function(){return this._cellSizeAndPositionManager.getCellCount()}},{key:"getEstimatedCellSize",value:function(){return this._cellSizeAndPositionManager.getEstimatedCellSize()}},{key:"getLastMeasuredIndex",value:function(){return this._cellSizeAndPositionManager.getLastMeasuredIndex()}},{key:"getOffsetAdjustment",value:function(i){var s=i.containerSize,l=i.offset,d=this._cellSizeAndPositionManager.getTotalSize(),u=this.getTotalSize(),p=this._getOffsetPercentage({containerSize:s,offset:l,totalSize:u});return Math.round(p*(u-d))}},{key:"getSizeAndPositionOfCell",value:function(i){return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(i)}},{key:"getSizeAndPositionOfLastMeasuredCell",value:function(){return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell()}},{key:"getTotalSize",value:function(){return Math.min(this._maxScrollSize,this._cellSizeAndPositionManager.getTotalSize())}},{key:"getUpdatedOffsetForIndex",value:function(i){var s=i.align,l=s===void 0?"auto":s,d=i.containerSize,u=i.currentOffset,p=i.targetIndex;u=this._safeOffsetToOffset({containerSize:d,offset:u});var g=this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({align:l,containerSize:d,currentOffset:u,targetIndex:p});return this._offsetToSafeOffset({containerSize:d,offset:g})}},{key:"getVisibleCellRange",value:function(i){var s=i.containerSize,l=i.offset;return l=this._safeOffsetToOffset({containerSize:s,offset:l}),this._cellSizeAndPositionManager.getVisibleCellRange({containerSize:s,offset:l})}},{key:"resetCell",value:function(i){this._cellSizeAndPositionManager.resetCell(i)}},{key:"_getOffsetPercentage",value:function(i){var s=i.containerSize,l=i.offset,d=i.totalSize;return d<=s?0:l/(d-s)}},{key:"_offsetToSafeOffset",value:function(i){var s=i.containerSize,l=i.offset,d=this._cellSizeAndPositionManager.getTotalSize(),u=this.getTotalSize();if(d===u)return l;var p=this._getOffsetPercentage({containerSize:s,offset:l,totalSize:d});return Math.round(p*(u-s))}},{key:"_safeOffsetToOffset",value:function(i){var s=i.containerSize,l=i.offset,d=this._cellSizeAndPositionManager.getTotalSize(),u=this.getTotalSize();if(d===u)return l;var p=this._getOffsetPercentage({containerSize:s,offset:l,totalSize:u});return Math.round(p*(d-s))}}])}(),Lk=-1,Pm=1;function Trt(n){var t=n.cellCount,i=n.overscanCellsCount,s=n.scrollDirection,l=n.startIndex,d=n.stopIndex;return s===Pm?{overscanStartIndex:Math.max(0,l),overscanStopIndex:Math.min(t-1,d+i)}:{overscanStartIndex:Math.max(0,l-i),overscanStopIndex:Math.min(t-1,d)}}function ype(n){var t=n.cellSize,i=n.cellSizeAndPositionManager,s=n.previousCellsCount,l=n.previousCellSize,d=n.previousScrollToAlignment,u=n.previousScrollToIndex,p=n.previousSize,g=n.scrollOffset,_=n.scrollToAlignment,y=n.scrollToIndex,E=n.size,b=n.sizeJustIncreasedFromZero,A=n.updateScrollIndexCallback,N=i.getCellCount(),O=y>=0&&y0&&(Ei.getTotalSize()-E&&A(N-1)}function Rrt(n){for(var t=n.cellCache,i=n.cellRenderer,s=n.columnSizeAndPositionManager,l=n.columnStartIndex,d=n.columnStopIndex,u=n.deferredMeasurementCache,p=n.horizontalOffsetAdjustment,g=n.isScrolling,_=n.isScrollingOptOut,y=n.parent,E=n.rowSizeAndPositionManager,b=n.rowStartIndex,A=n.rowStopIndex,N=n.styleCache,O=n.verticalOffsetAdjustment,D=n.visibleColumnIndices,P=n.visibleRowIndices,j=[],M=s.areOffsetsAdjusted()||E.areOffsetsAdjusted(),V=!g&&!M,H=b;H<=A;H++)for(var $=E.getSizeAndPositionOfCell(H),Q=l;Q<=d;Q++){var Y=s.getSizeAndPositionOfCell(Q),le=Q>=D.start&&Q<=D.stop&&H>=P.start&&H<=P.stop,ae="".concat(H,"-").concat(Q),te=void 0;V&&N[ae]?te=N[ae]:u&&!u.has(H,Q)?te={height:"auto",left:0,position:"absolute",top:0,width:"auto"}:(te={height:$.size,left:Y.offset+p,position:"absolute",top:$.offset+O,width:Y.size},N[ae]=te);var de={columnIndex:Q,isScrolling:g,isVisible:le,key:ae,parent:y,rowIndex:H,style:te},G=void 0;(_||g)&&!p&&!O?(t[ae]||(t[ae]=i(de)),G=t[ae]):G=i(de),!(G==null||G===!1)&&(G.props.role||(G=dn.cloneElement(G,{role:"gridcell"})),j.push(G))}return j}var rc;typeof window<"u"?rc=window:typeof self<"u"?rc=self:rc={};var xrt=rc.requestAnimationFrame||rc.webkitRequestAnimationFrame||rc.mozRequestAnimationFrame||rc.oRequestAnimationFrame||rc.msRequestAnimationFrame||function(n){return rc.setTimeout(n,1e3/60)},Art=rc.cancelAnimationFrame||rc.webkitCancelAnimationFrame||rc.mozCancelAnimationFrame||rc.oCancelAnimationFrame||rc.msCancelAnimationFrame||function(n){rc.clearTimeout(n)},_pe=xrt,Irt=Art,FR=function(t){return Irt(t.id)},VZ=function(t,i){var s;Promise.resolve().then(function(){s=Date.now()});var l=function(){Date.now()-s>=i?t.call():d.id=_pe(l)},d={id:_pe(l)};return d};function Epe(n,t){var i=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(l){return Object.getOwnPropertyDescriptor(n,l).enumerable})),i.push.apply(i,s)}return i}function Fc(n){for(var t=1;t0&&(s._initialScrollTop=s._getCalculatedScrollTop(i,s.state)),i.scrollToColumn>0&&(s._initialScrollLeft=s._getCalculatedScrollLeft(i,s.state)),s}return pc(t,n),ya(t,[{key:"getOffsetForCell",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},l=s.alignment,d=l===void 0?this.props.scrollToAlignment:l,u=s.columnIndex,p=u===void 0?this.props.scrollToColumn:u,g=s.rowIndex,_=g===void 0?this.props.scrollToRow:g,y=Fc(Fc({},this.props),{},{scrollToAlignment:d,scrollToColumn:p,scrollToRow:_});return{scrollLeft:this._getCalculatedScrollLeft(y),scrollTop:this._getCalculatedScrollTop(y)}}},{key:"getTotalRowsHeight",value:function(){return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize()}},{key:"getTotalColumnsWidth",value:function(){return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize()}},{key:"handleScrollEvent",value:function(s){var l=s.scrollLeft,d=l===void 0?0:l,u=s.scrollTop,p=u===void 0?0:u;if(!(p<0)){this._debounceScrollEnded();var g=this.props,_=g.autoHeight,y=g.autoWidth,E=g.height,b=g.width,A=this.state.instanceProps,N=A.scrollbarSize,O=A.rowSizeAndPositionManager.getTotalSize(),D=A.columnSizeAndPositionManager.getTotalSize(),P=Math.min(Math.max(0,D-b+N),d),j=Math.min(Math.max(0,O-E+N),p);if(this.state.scrollLeft!==P||this.state.scrollTop!==j){var M=P!==this.state.scrollLeft?P>this.state.scrollLeft?Pm:Lk:this.state.scrollDirectionHorizontal,V=j!==this.state.scrollTop?j>this.state.scrollTop?Pm:Lk:this.state.scrollDirectionVertical,H={isScrolling:!0,scrollDirectionHorizontal:M,scrollDirectionVertical:V,scrollPositionChangeReason:_K.OBSERVED};_||(H.scrollTop=j),y||(H.scrollLeft=P),H.needToResetStyleCache=!1,this.setState(H)}this._invokeOnScrollMemoizer({scrollLeft:P,scrollTop:j,totalColumnsWidth:D,totalRowsHeight:O})}}},{key:"invalidateCellSizeAfterRender",value:function(s){var l=s.columnIndex,d=s.rowIndex;this._deferredInvalidateColumnIndex=typeof this._deferredInvalidateColumnIndex=="number"?Math.min(this._deferredInvalidateColumnIndex,l):l,this._deferredInvalidateRowIndex=typeof this._deferredInvalidateRowIndex=="number"?Math.min(this._deferredInvalidateRowIndex,d):d}},{key:"measureAllCells",value:function(){var s=this.props,l=s.columnCount,d=s.rowCount,u=this.state.instanceProps;u.columnSizeAndPositionManager.getSizeAndPositionOfCell(l-1),u.rowSizeAndPositionManager.getSizeAndPositionOfCell(d-1)}},{key:"recomputeGridSize",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},l=s.columnIndex,d=l===void 0?0:l,u=s.rowIndex,p=u===void 0?0:u,g=this.props,_=g.scrollToColumn,y=g.scrollToRow,E=this.state.instanceProps;E.columnSizeAndPositionManager.resetCell(d),E.rowSizeAndPositionManager.resetCell(p),this._recomputeScrollLeftFlag=_>=0&&(this.state.scrollDirectionHorizontal===Pm?d<=_:d>=_),this._recomputeScrollTopFlag=y>=0&&(this.state.scrollDirectionVertical===Pm?p<=y:p>=y),this._styleCache={},this._cellCache={},this.forceUpdate()}},{key:"scrollToCell",value:function(s){var l=s.columnIndex,d=s.rowIndex,u=this.props.columnCount,p=this.props;u>1&&l!==void 0&&this._updateScrollLeftForScrollToColumn(Fc(Fc({},p),{},{scrollToColumn:l})),d!==void 0&&this._updateScrollTopForScrollToRow(Fc(Fc({},p),{},{scrollToRow:d}))}},{key:"componentDidMount",value:function(){var s=this.props,l=s.getScrollbarSize,d=s.height,u=s.scrollLeft,p=s.scrollToColumn,g=s.scrollTop,_=s.scrollToRow,y=s.width,E=this.state.instanceProps;if(this._initialScrollTop=0,this._initialScrollLeft=0,this._handleInvalidatedGridSize(),E.scrollbarSizeMeasured||this.setState(function(N){var O=Fc(Fc({},N),{},{needToResetStyleCache:!1});return O.instanceProps.scrollbarSize=l(),O.instanceProps.scrollbarSizeMeasured=!0,O}),typeof u=="number"&&u>=0||typeof g=="number"&&g>=0){var b=t._getScrollToPositionStateUpdate({prevState:this.state,scrollLeft:u,scrollTop:g});b&&(b.needToResetStyleCache=!1,this.setState(b))}this._scrollingContainer&&(this._scrollingContainer.scrollLeft!==this.state.scrollLeft&&(this._scrollingContainer.scrollLeft=this.state.scrollLeft),this._scrollingContainer.scrollTop!==this.state.scrollTop&&(this._scrollingContainer.scrollTop=this.state.scrollTop));var A=d>0&&y>0;p>=0&&A&&this._updateScrollLeftForScrollToColumn(),_>=0&&A&&this._updateScrollTopForScrollToRow(),this._invokeOnGridRenderedHelper(),this._invokeOnScrollMemoizer({scrollLeft:u||0,scrollTop:g||0,totalColumnsWidth:E.columnSizeAndPositionManager.getTotalSize(),totalRowsHeight:E.rowSizeAndPositionManager.getTotalSize()}),this._maybeCallOnScrollbarPresenceChange()}},{key:"componentDidUpdate",value:function(s,l){var d=this,u=this.props,p=u.autoHeight,g=u.autoWidth,_=u.columnCount,y=u.height,E=u.rowCount,b=u.scrollToAlignment,A=u.scrollToColumn,N=u.scrollToRow,O=u.width,D=this.state,P=D.scrollLeft,j=D.scrollPositionChangeReason,M=D.scrollTop,V=D.instanceProps;this._handleInvalidatedGridSize();var H=_>0&&s.columnCount===0||E>0&&s.rowCount===0;j===_K.REQUESTED&&(!g&&P>=0&&(P!==this._scrollingContainer.scrollLeft||H)&&(this._scrollingContainer.scrollLeft=P),!p&&M>=0&&(M!==this._scrollingContainer.scrollTop||H)&&(this._scrollingContainer.scrollTop=M));var $=(s.width===0||s.height===0)&&y>0&&O>0;if(this._recomputeScrollLeftFlag?(this._recomputeScrollLeftFlag=!1,this._updateScrollLeftForScrollToColumn(this.props)):ype({cellSizeAndPositionManager:V.columnSizeAndPositionManager,previousCellsCount:s.columnCount,previousCellSize:s.columnWidth,previousScrollToAlignment:s.scrollToAlignment,previousScrollToIndex:s.scrollToColumn,previousSize:s.width,scrollOffset:P,scrollToAlignment:b,scrollToIndex:A,size:O,sizeJustIncreasedFromZero:$,updateScrollIndexCallback:function(){return d._updateScrollLeftForScrollToColumn(d.props)}}),this._recomputeScrollTopFlag?(this._recomputeScrollTopFlag=!1,this._updateScrollTopForScrollToRow(this.props)):ype({cellSizeAndPositionManager:V.rowSizeAndPositionManager,previousCellsCount:s.rowCount,previousCellSize:s.rowHeight,previousScrollToAlignment:s.scrollToAlignment,previousScrollToIndex:s.scrollToRow,previousSize:s.height,scrollOffset:M,scrollToAlignment:b,scrollToIndex:N,size:y,sizeJustIncreasedFromZero:$,updateScrollIndexCallback:function(){return d._updateScrollTopForScrollToRow(d.props)}}),this._invokeOnGridRenderedHelper(),P!==l.scrollLeft||M!==l.scrollTop){var Q=V.rowSizeAndPositionManager.getTotalSize(),Y=V.columnSizeAndPositionManager.getTotalSize();this._invokeOnScrollMemoizer({scrollLeft:P,scrollTop:M,totalColumnsWidth:Y,totalRowsHeight:Q})}this._maybeCallOnScrollbarPresenceChange()}},{key:"componentWillUnmount",value:function(){this._disablePointerEventsTimeoutId&&FR(this._disablePointerEventsTimeoutId)}},{key:"render",value:function(){var s=this.props,l=s.autoContainerWidth,d=s.autoHeight,u=s.autoWidth,p=s.className,g=s.containerProps,_=s.containerRole,y=s.containerStyle,E=s.height,b=s.id,A=s.noContentRenderer,N=s.role,O=s.style,D=s.tabIndex,P=s.width,j=this.state,M=j.instanceProps,V=j.needToResetStyleCache,H=this._isScrolling(),$={boxSizing:"border-box",direction:"ltr",height:d?"auto":E,position:"relative",width:u?"auto":P,WebkitOverflowScrolling:"touch",willChange:"transform"};V&&(this._styleCache={}),this.state.isScrolling||this._resetStyleCache(),this._calculateChildrenToRender(this.props,this.state);var Q=M.columnSizeAndPositionManager.getTotalSize(),Y=M.rowSizeAndPositionManager.getTotalSize(),le=Y>E?M.scrollbarSize:0,ae=Q>P?M.scrollbarSize:0;(ae!==this._horizontalScrollBarSize||le!==this._verticalScrollBarSize)&&(this._horizontalScrollBarSize=ae,this._verticalScrollBarSize=le,this._scrollbarPresenceChanged=!0),$.overflowX=Q+le<=P?"hidden":"auto",$.overflowY=Y+ae<=E?"hidden":"auto";var te=this._childrenToDisplay,de=te.length===0&&E>0&&P>0;return k.createElement("div",$d({ref:this._setScrollingContainerRef},g,{"aria-label":this.props["aria-label"],"aria-readonly":this.props["aria-readonly"],className:af("ReactVirtualized__Grid",p),id:b,onScroll:this._onScroll,role:N,style:Fc(Fc({},$),O),tabIndex:D}),te.length>0&&k.createElement("div",{className:"ReactVirtualized__Grid__innerScrollContainer",role:_,style:Fc({width:l?"auto":Q,height:Y,maxWidth:Q,maxHeight:Y,overflow:"hidden",pointerEvents:H?"none":"",position:"relative"},y)},te),de&&A())}},{key:"_calculateChildrenToRender",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state,d=s.cellRenderer,u=s.cellRangeRenderer,p=s.columnCount,g=s.deferredMeasurementCache,_=s.height,y=s.overscanColumnCount,E=s.overscanIndicesGetter,b=s.overscanRowCount,A=s.rowCount,N=s.width,O=s.isScrollingOptOut,D=l.scrollDirectionHorizontal,P=l.scrollDirectionVertical,j=l.instanceProps,M=this._initialScrollTop>0?this._initialScrollTop:l.scrollTop,V=this._initialScrollLeft>0?this._initialScrollLeft:l.scrollLeft,H=this._isScrolling(s,l);if(this._childrenToDisplay=[],_>0&&N>0){var $=j.columnSizeAndPositionManager.getVisibleCellRange({containerSize:N,offset:V}),Q=j.rowSizeAndPositionManager.getVisibleCellRange({containerSize:_,offset:M}),Y=j.columnSizeAndPositionManager.getOffsetAdjustment({containerSize:N,offset:V}),le=j.rowSizeAndPositionManager.getOffsetAdjustment({containerSize:_,offset:M});this._renderedColumnStartIndex=$.start,this._renderedColumnStopIndex=$.stop,this._renderedRowStartIndex=Q.start,this._renderedRowStopIndex=Q.stop;var ae=E({direction:"horizontal",cellCount:p,overscanCellsCount:y,scrollDirection:D,startIndex:typeof $.start=="number"?$.start:0,stopIndex:typeof $.stop=="number"?$.stop:-1}),te=E({direction:"vertical",cellCount:A,overscanCellsCount:b,scrollDirection:P,startIndex:typeof Q.start=="number"?Q.start:0,stopIndex:typeof Q.stop=="number"?Q.stop:-1}),de=ae.overscanStartIndex,G=ae.overscanStopIndex,ie=te.overscanStartIndex,_e=te.overscanStopIndex;if(g){if(!g.hasFixedHeight()){for(var he=ie;he<=_e;he++)if(!g.has(he,0)){de=0,G=p-1;break}}if(!g.hasFixedWidth()){for(var Ce=de;Ce<=G;Ce++)if(!g.has(0,Ce)){ie=0,_e=A-1;break}}}this._childrenToDisplay=u({cellCache:this._cellCache,cellRenderer:d,columnSizeAndPositionManager:j.columnSizeAndPositionManager,columnStartIndex:de,columnStopIndex:G,deferredMeasurementCache:g,horizontalOffsetAdjustment:Y,isScrolling:H,isScrollingOptOut:O,parent:this,rowSizeAndPositionManager:j.rowSizeAndPositionManager,rowStartIndex:ie,rowStopIndex:_e,scrollLeft:V,scrollTop:M,styleCache:this._styleCache,verticalOffsetAdjustment:le,visibleColumnIndices:$,visibleRowIndices:Q}),this._columnStartIndex=de,this._columnStopIndex=G,this._rowStartIndex=ie,this._rowStopIndex=_e}}},{key:"_debounceScrollEnded",value:function(){var s=this.props.scrollingResetTimeInterval;this._disablePointerEventsTimeoutId&&FR(this._disablePointerEventsTimeoutId),this._disablePointerEventsTimeoutId=VZ(this._debounceScrollEndedCallback,s)}},{key:"_handleInvalidatedGridSize",value:function(){if(typeof this._deferredInvalidateColumnIndex=="number"&&typeof this._deferredInvalidateRowIndex=="number"){var s=this._deferredInvalidateColumnIndex,l=this._deferredInvalidateRowIndex;this._deferredInvalidateColumnIndex=null,this._deferredInvalidateRowIndex=null,this.recomputeGridSize({columnIndex:s,rowIndex:l})}}},{key:"_invokeOnScrollMemoizer",value:function(s){var l=this,d=s.scrollLeft,u=s.scrollTop,p=s.totalColumnsWidth,g=s.totalRowsHeight;this._onScrollMemoizer({callback:function(y){var E=y.scrollLeft,b=y.scrollTop,A=l.props,N=A.height,O=A.onScroll,D=A.width;O({clientHeight:N,clientWidth:D,scrollHeight:g,scrollLeft:E,scrollTop:b,scrollWidth:p})},indices:{scrollLeft:d,scrollTop:u}})}},{key:"_isScrolling",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state;return Object.hasOwnProperty.call(s,"isScrolling")?!!s.isScrolling:!!l.isScrolling}},{key:"_maybeCallOnScrollbarPresenceChange",value:function(){if(this._scrollbarPresenceChanged){var s=this.props.onScrollbarPresenceChange;this._scrollbarPresenceChanged=!1,s({horizontal:this._horizontalScrollBarSize>0,size:this.state.instanceProps.scrollbarSize,vertical:this._verticalScrollBarSize>0})}}},{key:"scrollToPosition",value:function(s){var l=s.scrollLeft,d=s.scrollTop,u=t._getScrollToPositionStateUpdate({prevState:this.state,scrollLeft:l,scrollTop:d});u&&(u.needToResetStyleCache=!1,this.setState(u))}},{key:"_getCalculatedScrollLeft",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state;return t._getCalculatedScrollLeft(s,l)}},{key:"_updateScrollLeftForScrollToColumn",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state,d=t._getScrollLeftForScrollToColumnStateUpdate(s,l);d&&(d.needToResetStyleCache=!1,this.setState(d))}},{key:"_getCalculatedScrollTop",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state;return t._getCalculatedScrollTop(s,l)}},{key:"_resetStyleCache",value:function(){var s=this._styleCache,l=this._cellCache,d=this.props.isScrollingOptOut;this._cellCache={},this._styleCache={};for(var u=this._rowStartIndex;u<=this._rowStopIndex;u++)for(var p=this._columnStartIndex;p<=this._columnStopIndex;p++){var g="".concat(u,"-").concat(p);this._styleCache[g]=s[g],d&&(this._cellCache[g]=l[g])}}},{key:"_updateScrollTopForScrollToRow",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state,d=t._getScrollTopForScrollToRowStateUpdate(s,l);d&&(d.needToResetStyleCache=!1,this.setState(d))}}],[{key:"getDerivedStateFromProps",value:function(s,l){var d={};s.columnCount===0&&l.scrollLeft!==0||s.rowCount===0&&l.scrollTop!==0?(d.scrollLeft=0,d.scrollTop=0):(s.scrollLeft!==l.scrollLeft&&s.scrollToColumn<0||s.scrollTop!==l.scrollTop&&s.scrollToRow<0)&&Object.assign(d,t._getScrollToPositionStateUpdate({prevState:l,scrollLeft:s.scrollLeft,scrollTop:s.scrollTop}));var u=l.instanceProps;d.needToResetStyleCache=!1,(s.columnWidth!==u.prevColumnWidth||s.rowHeight!==u.prevRowHeight)&&(d.needToResetStyleCache=!0),u.columnSizeAndPositionManager.configure({cellCount:s.columnCount,estimatedCellSize:t._getEstimatedColumnSize(s),cellSizeGetter:t._wrapSizeGetter(s.columnWidth)}),u.rowSizeAndPositionManager.configure({cellCount:s.rowCount,estimatedCellSize:t._getEstimatedRowSize(s),cellSizeGetter:t._wrapSizeGetter(s.rowHeight)}),(u.prevColumnCount===0||u.prevRowCount===0)&&(u.prevColumnCount=0,u.prevRowCount=0),s.autoHeight&&s.isScrolling===!1&&u.prevIsScrolling===!0&&Object.assign(d,{isScrolling:!1});var p,g;return gpe({cellCount:u.prevColumnCount,cellSize:typeof u.prevColumnWidth=="number"?u.prevColumnWidth:null,computeMetadataCallback:function(){return u.columnSizeAndPositionManager.resetCell(0)},computeMetadataCallbackProps:s,nextCellsCount:s.columnCount,nextCellSize:typeof s.columnWidth=="number"?s.columnWidth:null,nextScrollToIndex:s.scrollToColumn,scrollToIndex:u.prevScrollToColumn,updateScrollOffsetForScrollToIndex:function(){p=t._getScrollLeftForScrollToColumnStateUpdate(s,l)}}),gpe({cellCount:u.prevRowCount,cellSize:typeof u.prevRowHeight=="number"?u.prevRowHeight:null,computeMetadataCallback:function(){return u.rowSizeAndPositionManager.resetCell(0)},computeMetadataCallbackProps:s,nextCellsCount:s.rowCount,nextCellSize:typeof s.rowHeight=="number"?s.rowHeight:null,nextScrollToIndex:s.scrollToRow,scrollToIndex:u.prevScrollToRow,updateScrollOffsetForScrollToIndex:function(){g=t._getScrollTopForScrollToRowStateUpdate(s,l)}}),u.prevColumnCount=s.columnCount,u.prevColumnWidth=s.columnWidth,u.prevIsScrolling=s.isScrolling===!0,u.prevRowCount=s.rowCount,u.prevRowHeight=s.rowHeight,u.prevScrollToColumn=s.scrollToColumn,u.prevScrollToRow=s.scrollToRow,u.scrollbarSize=s.getScrollbarSize(),u.scrollbarSize===void 0?(u.scrollbarSizeMeasured=!1,u.scrollbarSize=0):u.scrollbarSizeMeasured=!0,d.instanceProps=u,Fc(Fc(Fc({},d),p),g)}},{key:"_getEstimatedColumnSize",value:function(s){return typeof s.columnWidth=="number"?s.columnWidth:s.estimatedColumnSize}},{key:"_getEstimatedRowSize",value:function(s){return typeof s.rowHeight=="number"?s.rowHeight:s.estimatedRowSize}},{key:"_getScrollToPositionStateUpdate",value:function(s){var l=s.prevState,d=s.scrollLeft,u=s.scrollTop,p={scrollPositionChangeReason:_K.REQUESTED};return typeof d=="number"&&d>=0&&(p.scrollDirectionHorizontal=d>l.scrollLeft?Pm:Lk,p.scrollLeft=d),typeof u=="number"&&u>=0&&(p.scrollDirectionVertical=u>l.scrollTop?Pm:Lk,p.scrollTop=u),typeof d=="number"&&d>=0&&d!==l.scrollLeft||typeof u=="number"&&u>=0&&u!==l.scrollTop?p:{}}},{key:"_wrapSizeGetter",value:function(s){return typeof s=="function"?s:function(){return s}}},{key:"_getCalculatedScrollLeft",value:function(s,l){var d=s.columnCount,u=s.height,p=s.scrollToAlignment,g=s.scrollToColumn,_=s.width,y=l.scrollLeft,E=l.instanceProps;if(d>0){var b=d-1,A=g<0?b:Math.min(b,g),N=E.rowSizeAndPositionManager.getTotalSize(),O=E.scrollbarSizeMeasured&&N>u?E.scrollbarSize:0;return E.columnSizeAndPositionManager.getUpdatedOffsetForIndex({align:p,containerSize:_-O,currentOffset:y,targetIndex:A})}return 0}},{key:"_getScrollLeftForScrollToColumnStateUpdate",value:function(s,l){var d=l.scrollLeft,u=t._getCalculatedScrollLeft(s,l);return typeof u=="number"&&u>=0&&d!==u?t._getScrollToPositionStateUpdate({prevState:l,scrollLeft:u,scrollTop:-1}):{}}},{key:"_getCalculatedScrollTop",value:function(s,l){var d=s.height,u=s.rowCount,p=s.scrollToAlignment,g=s.scrollToRow,_=s.width,y=l.scrollTop,E=l.instanceProps;if(u>0){var b=u-1,A=g<0?b:Math.min(b,g),N=E.columnSizeAndPositionManager.getTotalSize(),O=E.scrollbarSizeMeasured&&N>_?E.scrollbarSize:0;return E.rowSizeAndPositionManager.getUpdatedOffsetForIndex({align:p,containerSize:d-O,currentOffset:y,targetIndex:A})}return 0}},{key:"_getScrollTopForScrollToRowStateUpdate",value:function(s,l){var d=l.scrollTop,u=t._getCalculatedScrollTop(s,l);return typeof u=="number"&&u>=0&&d!==u?t._getScrollToPositionStateUpdate({prevState:l,scrollLeft:-1,scrollTop:u}):{}}}])}(k.PureComponent);wt(gv,"defaultProps",{"aria-label":"grid","aria-readonly":!0,autoContainerWidth:!1,autoHeight:!1,autoWidth:!1,cellRangeRenderer:Rrt,containerRole:"row",containerStyle:{},estimatedColumnSize:100,estimatedRowSize:30,getScrollbarSize:G4,noContentRenderer:Prt,onScroll:function(){},onScrollbarPresenceChange:function(){},onSectionRendered:function(){},overscanColumnCount:0,overscanIndicesGetter:Trt,overscanRowCount:10,role:"grid",scrollingResetTimeInterval:Ort,scrollToAlignment:"auto",scrollToColumn:-1,scrollToRow:-1,style:{},tabIndex:0,isScrollingOptOut:!1});VO(gv);var Lrt=1;function YSe(n){var t=n.cellCount,i=n.overscanCellsCount,s=n.scrollDirection,l=n.startIndex,d=n.stopIndex;return i=Math.max(1,i),s===Lrt?{overscanStartIndex:Math.max(0,l-1),overscanStopIndex:Math.min(t-1,d+i)}:{overscanStartIndex:Math.max(0,l-i),overscanStopIndex:Math.min(t-1,d+1)}}function GX(n,t){(t==null||t>n.length)&&(t=n.length);for(var i=0,s=Array(t);ii||l0;){var N=A.startIndex-1;if(!t({index:N}))A.startIndex=N;else break}return u}function Vrt(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=typeof n.recomputeGridSize=="function"?n.recomputeGridSize:n.recomputeRowHeights;i?i.call(n,t):n.forceUpdate()}function zrt(n,t,i){return t=Cr(t),fc(n,ZSe()?Reflect.construct(t,i||[],Cr(n).constructor):t.apply(n,i))}function ZSe(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ZSe=function(){return!!n})()}var cF=function(n){function t(){var i;va(this,t);for(var s=arguments.length,l=new Array(s),d=0;d0&&arguments[0]!==void 0?arguments[0]:{},l=s.columnIndex,d=l===void 0?0:l,u=s.rowIndex,p=u===void 0?0:u;this.Grid&&this.Grid.recomputeGridSize({rowIndex:p,columnIndex:d})}},{key:"recomputeRowHeights",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.Grid&&this.Grid.recomputeGridSize({rowIndex:s,columnIndex:0})}},{key:"scrollToPosition",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.Grid&&this.Grid.scrollToPosition({scrollTop:s})}},{key:"scrollToRow",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.Grid&&this.Grid.scrollToCell({columnIndex:0,rowIndex:s})}},{key:"render",value:function(){var s=this.props,l=s.className,d=s.noRowsRenderer,u=s.scrollToIndex,p=s.width,g=af("ReactVirtualized__List",l);return k.createElement(gv,$d({},this.props,{autoContainerWidth:!0,cellRenderer:this._cellRenderer,className:g,columnWidth:p,columnCount:1,noContentRenderer:d,onScroll:this._onScroll,onSectionRendered:this._onSectionRendered,ref:this._setRef,scrollToRow:u}))}}])}(k.PureComponent);wt(cF,"defaultProps",{autoHeight:!1,estimatedRowSize:30,onScroll:function(){},noRowsRenderer:function(){return null},onRowsRendered:function(){},overscanIndicesGetter:YSe,overscanRowCount:10,scrollToAlignment:"auto",scrollToIndex:-1,style:{}});function Hrt(n){if(Array.isArray(n))return n}function Grt(n,t){var i=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(i!=null){var s,l,d,u,p=[],g=!0,_=!1;try{if(d=(i=i.call(n)).next,t===0){if(Object(i)!==i)return;g=!1}else for(;!(g=(s=d.call(i)).done)&&(p.push(s.value),p.length!==t);g=!0);}catch(y){_=!0,l=y}finally{try{if(!g&&i.return!=null&&(u=i.return(),Object(u)!==u))return}finally{if(_)throw l}}return p}}function Wrt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $rt(n,t){return Hrt(n)||Grt(n,t)||XSe(n,t)||Wrt()}function Krt(n,t,i,s){for(var l=i+1;t<=i;){var d=t+i>>>1,u=n[d];u>=s?(l=d,i=d-1):t=d+1}return l}function qrt(n,t,i,s,l){for(var d=i+1;t<=i;){var u=t+i>>>1,p=n[u];l(p,s)>=0?(d=u,i=u-1):t=u+1}return d}function Yrt(n,t,i,s,l){return typeof i=="function"?qrt(n,s===void 0?0:s|0,l===void 0?n.length-1:l|0,t,i):Krt(n,i===void 0?0:i|0,s===void 0?n.length-1:s|0,t)}function Xrt(n,t,i,s){for(var l=i+1;t<=i;){var d=t+i>>>1,u=n[d];u>s?(l=d,i=d-1):t=d+1}return l}function Jrt(n,t,i,s,l){for(var d=i+1;t<=i;){var u=t+i>>>1,p=n[u];l(p,s)>0?(d=u,i=u-1):t=u+1}return d}function Qrt(n,t,i,s,l){return typeof i=="function"?Jrt(n,s===void 0?0:s|0,l===void 0?n.length-1:l|0,t,i):Xrt(n,i===void 0?0:i|0,s===void 0?n.length-1:s|0,t)}function Zrt(n,t,i,s){for(var l=t-1;t<=i;){var d=t+i>>>1,u=n[d];u>>1,p=n[u];l(p,s)<0?(d=u,t=u+1):i=u-1}return d}function tst(n,t,i,s,l){return typeof i=="function"?est(n,s===void 0?0:s|0,l===void 0?n.length-1:l|0,t,i):Zrt(n,i===void 0?0:i|0,s===void 0?n.length-1:s|0,t)}function nst(n,t,i,s){for(var l=t-1;t<=i;){var d=t+i>>>1,u=n[d];u<=s?(l=d,t=d+1):i=d-1}return l}function ist(n,t,i,s,l){for(var d=t-1;t<=i;){var u=t+i>>>1,p=n[u];l(p,s)<=0?(d=u,t=u+1):i=u-1}return d}function rst(n,t,i,s,l){return typeof i=="function"?ist(n,s===void 0?0:s|0,l===void 0?n.length-1:l|0,t,i):nst(n,i===void 0?0:i|0,s===void 0?n.length-1:s|0,t)}function sst(n,t,i,s){for(;t<=i;){var l=t+i>>>1,d=n[l];if(d===s)return l;d<=s?t=l+1:i=l-1}return-1}function ast(n,t,i,s,l){for(;t<=i;){var d=t+i>>>1,u=n[d],p=l(u,s);if(p===0)return d;p<=0?t=d+1:i=d-1}return-1}function ost(n,t,i,s,l){return typeof i=="function"?ast(n,s===void 0?0:s|0,l===void 0?n.length-1:l|0,t,i):sst(n,i===void 0?0:i|0,s===void 0?n.length-1:s|0,t)}const z7={ge:Yrt,gt:Qrt,lt:tst,le:rst,eq:ost};var fC=0,C_=1,MM=2;function zZ(n,t,i,s,l){this.mid=n,this.left=t,this.right=i,this.leftPoints=s,this.rightPoints=l,this.count=(t?t.count:0)+(i?i.count:0)+s.length}var dP=zZ.prototype;function EK(n,t){n.mid=t.mid,n.left=t.left,n.right=t.right,n.leftPoints=t.leftPoints,n.rightPoints=t.rightPoints,n.count=t.count}function ebe(n,t){var i=BR(t);n.mid=i.mid,n.left=i.left,n.right=i.right,n.leftPoints=i.leftPoints,n.rightPoints=i.rightPoints,n.count=i.count}function wpe(n,t){var i=n.intervals([]);i.push(t),ebe(n,i)}function Spe(n,t){var i=n.intervals([]),s=i.indexOf(t);return s<0?fC:(i.splice(s,1),ebe(n,i),C_)}dP.intervals=function(n){return n.push.apply(n,this.leftPoints),this.left&&this.left.intervals(n),this.right&&this.right.intervals(n),n};dP.insert=function(n){var t=this.count-this.leftPoints.length;if(this.count+=1,n[1]3*(t+1)?wpe(this,n):this.left.insert(n):this.left=BR([n]);else if(n[0]>this.mid)this.right?4*(this.right.count+1)>3*(t+1)?wpe(this,n):this.right.insert(n):this.right=BR([n]);else{var i=z7.ge(this.leftPoints,n,HZ),s=z7.ge(this.rightPoints,n,GZ);this.leftPoints.splice(i,0,n),this.rightPoints.splice(s,0,n)}};dP.remove=function(n){var t=this.count-this.leftPoints;if(n[1]3*(t-1))return Spe(this,n);var s=this.left.remove(n);return s===MM?(this.left=null,this.count-=1,C_):(s===C_&&(this.count-=1),s)}else if(n[0]>this.mid){if(!this.right)return fC;var l=this.left?this.left.count:0;if(4*l>3*(t-1))return Spe(this,n);var s=this.right.remove(n);return s===MM?(this.right=null,this.count-=1,C_):(s===C_&&(this.count-=1),s)}else{if(this.count===1)return this.leftPoints[0]===n?MM:fC;if(this.leftPoints.length===1&&this.leftPoints[0]===n){if(this.left&&this.right){for(var d=this,u=this.left;u.right;)d=u,u=u.right;if(d===this)u.right=this.right;else{var p=this.left,s=this.right;d.count-=u.count,d.right=u.left,u.left=p,u.right=s}EK(this,u),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?EK(this,this.left):EK(this,this.right);return C_}for(var p=z7.ge(this.leftPoints,n,HZ);p=0&&n[s][1]>=t;--s){var l=i(n[s]);if(l)return l}}function ibe(n,t){for(var i=0;ithis.mid){if(this.right){var i=this.right.queryPoint(n,t);if(i)return i}return nbe(this.rightPoints,n,t)}else return ibe(this.leftPoints,t)};dP.queryInterval=function(n,t,i){if(nthis.mid&&this.right){var s=this.right.queryInterval(n,t,i);if(s)return s}return tthis.mid?nbe(this.rightPoints,n,i):ibe(this.leftPoints,i)};function lst(n,t){return n-t}function HZ(n,t){var i=n[0]-t[0];return i||n[1]-t[1]}function GZ(n,t){var i=n[1]-t[1];return i||n[0]-t[0]}function BR(n){if(n.length===0)return null;for(var t=[],i=0;i>1],l=[],d=[],u=[],i=0;i"u"?(ae=ie,te=ie):(ae=Math.min(ae,ie),te=Math.max(te,ie)),$.push(g({index:ie,isScrolling:V,key:b(ie),parent:s,style:wt(wt(wt(wt({height:p.getHeight(ie)},j==="ltr"?"left":"right",_e),"position","absolute"),"top",he),"width",p.getWidth(ie))}))}),Y0&&arguments[0]!==void 0?arguments[0]:{};va(this,n),wt(this,"_cellMeasurerCache",void 0),wt(this,"_columnIndexOffset",void 0),wt(this,"_rowIndexOffset",void 0),wt(this,"columnWidth",function(g){var _=g.index;t._cellMeasurerCache.columnWidth({index:_+t._columnIndexOffset})}),wt(this,"rowHeight",function(g){var _=g.index;t._cellMeasurerCache.rowHeight({index:_+t._rowIndexOffset})});var s=i.cellMeasurerCache,l=i.columnIndexOffset,d=l===void 0?0:l,u=i.rowIndexOffset,p=u===void 0?0:u;this._cellMeasurerCache=s,this._columnIndexOffset=d,this._rowIndexOffset=p}return ya(n,[{key:"clear",value:function(i,s){this._cellMeasurerCache.clear(i+this._rowIndexOffset,s+this._columnIndexOffset)}},{key:"clearAll",value:function(){this._cellMeasurerCache.clearAll()}},{key:"defaultHeight",get:function(){return this._cellMeasurerCache.defaultHeight}},{key:"defaultWidth",get:function(){return this._cellMeasurerCache.defaultWidth}},{key:"hasFixedHeight",value:function(){return this._cellMeasurerCache.hasFixedHeight()}},{key:"hasFixedWidth",value:function(){return this._cellMeasurerCache.hasFixedWidth()}},{key:"getHeight",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return this._cellMeasurerCache.getHeight(i+this._rowIndexOffset,s+this._columnIndexOffset)}},{key:"getWidth",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return this._cellMeasurerCache.getWidth(i+this._rowIndexOffset,s+this._columnIndexOffset)}},{key:"has",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return this._cellMeasurerCache.has(i+this._rowIndexOffset,s+this._columnIndexOffset)}},{key:"set",value:function(i,s,l,d){this._cellMeasurerCache.set(i+this._rowIndexOffset,s+this._columnIndexOffset,l,d)}}])}(),mst=["rowIndex"],gst=["columnIndex","rowIndex"],vst=["columnIndex"],yst=["onScroll","onSectionRendered","onScrollbarPresenceChange","scrollLeft","scrollToColumn","scrollTop","scrollToRow"];function Tpe(n,t){var i=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(l){return Object.getOwnPropertyDescriptor(n,l).enumerable})),i.push.apply(i,s)}return i}function is(n){for(var t=1;t0?new SK({cellMeasurerCache:d,columnIndexOffset:0,rowIndexOffset:p}):d,l._deferredMeasurementCacheBottomRightGrid=u>0||p>0?new SK({cellMeasurerCache:d,columnIndexOffset:u,rowIndexOffset:p}):d,l._deferredMeasurementCacheTopRightGrid=u>0?new SK({cellMeasurerCache:d,columnIndexOffset:u,rowIndexOffset:0}):d),l}return pc(t,n),ya(t,[{key:"forceUpdateGrids",value:function(){this._bottomLeftGrid&&this._bottomLeftGrid.forceUpdate(),this._bottomRightGrid&&this._bottomRightGrid.forceUpdate(),this._topLeftGrid&&this._topLeftGrid.forceUpdate(),this._topRightGrid&&this._topRightGrid.forceUpdate()}},{key:"invalidateCellSizeAfterRender",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},l=s.columnIndex,d=l===void 0?0:l,u=s.rowIndex,p=u===void 0?0:u;this._deferredInvalidateColumnIndex=typeof this._deferredInvalidateColumnIndex=="number"?Math.min(this._deferredInvalidateColumnIndex,d):d,this._deferredInvalidateRowIndex=typeof this._deferredInvalidateRowIndex=="number"?Math.min(this._deferredInvalidateRowIndex,p):p}},{key:"measureAllCells",value:function(){this._bottomLeftGrid&&this._bottomLeftGrid.measureAllCells(),this._bottomRightGrid&&this._bottomRightGrid.measureAllCells(),this._topLeftGrid&&this._topLeftGrid.measureAllCells(),this._topRightGrid&&this._topRightGrid.measureAllCells()}},{key:"recomputeGridSize",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},l=s.columnIndex,d=l===void 0?0:l,u=s.rowIndex,p=u===void 0?0:u,g=this.props,_=g.fixedColumnCount,y=g.fixedRowCount,E=Math.max(0,d-_),b=Math.max(0,p-y);this._bottomLeftGrid&&this._bottomLeftGrid.recomputeGridSize({columnIndex:d,rowIndex:b}),this._bottomRightGrid&&this._bottomRightGrid.recomputeGridSize({columnIndex:E,rowIndex:b}),this._topLeftGrid&&this._topLeftGrid.recomputeGridSize({columnIndex:d,rowIndex:p}),this._topRightGrid&&this._topRightGrid.recomputeGridSize({columnIndex:E,rowIndex:p}),this._leftGridWidth=null,this._topGridHeight=null,this._maybeCalculateCachedStyles(!0)}},{key:"componentDidMount",value:function(){var s=this.props,l=s.scrollLeft,d=s.scrollTop;if(l>0||d>0){var u={};l>0&&(u.scrollLeft=l),d>0&&(u.scrollTop=d),this.setState(u)}this._handleInvalidatedGridSize()}},{key:"componentDidUpdate",value:function(){this._handleInvalidatedGridSize()}},{key:"render",value:function(){var s=this.props,l=s.onScroll,d=s.onSectionRendered;s.onScrollbarPresenceChange,s.scrollLeft;var u=s.scrollToColumn;s.scrollTop;var p=s.scrollToRow,g=n4(s,yst);if(this._prepareForRender(),this.props.width===0||this.props.height===0)return null;var _=this.state,y=_.scrollLeft,E=_.scrollTop;return k.createElement("div",{style:this._containerOuterStyle},k.createElement("div",{style:this._containerTopStyle},this._renderTopLeftGrid(g),this._renderTopRightGrid(is(is({},g),{},{onScroll:l,scrollLeft:y}))),k.createElement("div",{style:this._containerBottomStyle},this._renderBottomLeftGrid(is(is({},g),{},{onScroll:l,scrollTop:E})),this._renderBottomRightGrid(is(is({},g),{},{onScroll:l,onSectionRendered:d,scrollLeft:y,scrollToColumn:u,scrollToRow:p,scrollTop:E}))))}},{key:"_getBottomGridHeight",value:function(s){var l=s.height,d=this._getTopGridHeight(s);return l-d}},{key:"_getLeftGridWidth",value:function(s){var l=s.fixedColumnCount,d=s.columnWidth;if(this._leftGridWidth==null)if(typeof d=="function"){for(var u=0,p=0;p=0?s.scrollLeft:l.scrollLeft,scrollTop:s.scrollTop!=null&&s.scrollTop>=0?s.scrollTop:l.scrollTop}:null}}])}(k.PureComponent);wt(WZ,"defaultProps",{classNameBottomLeftGrid:"",classNameBottomRightGrid:"",classNameTopLeftGrid:"",classNameTopRightGrid:"",enableFixedColumnScroll:!1,enableFixedRowScroll:!1,fixedColumnCount:0,fixedRowCount:0,scrollToColumn:-1,scrollToRow:-1,style:{},styleBottomLeftGrid:{},styleBottomRightGrid:{},styleTopLeftGrid:{},styleTopRightGrid:{},hideTopRightGridScrollbar:!1,hideBottomLeftGridScrollbar:!1});WZ.propTypes={};VO(WZ);function Est(n,t,i){return t=Cr(t),fc(n,obe()?Reflect.construct(t,i||[],Cr(n).constructor):t.apply(n,i))}function obe(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(obe=function(){return!!n})()}var wst=function(n){function t(i,s){var l;return va(this,t),l=Est(this,t,[i,s]),l.state={clientHeight:0,clientWidth:0,scrollHeight:0,scrollLeft:0,scrollTop:0,scrollWidth:0},l._onScroll=l._onScroll.bind(l),l}return pc(t,n),ya(t,[{key:"render",value:function(){var s=this.props.children,l=this.state,d=l.clientHeight,u=l.clientWidth,p=l.scrollHeight,g=l.scrollLeft,_=l.scrollTop,y=l.scrollWidth;return s({clientHeight:d,clientWidth:u,onScroll:this._onScroll,scrollHeight:p,scrollLeft:g,scrollTop:_,scrollWidth:y})}},{key:"_onScroll",value:function(s){var l=s.clientHeight,d=s.clientWidth,u=s.scrollHeight,p=s.scrollLeft,g=s.scrollTop,_=s.scrollWidth;this.setState({clientHeight:l,clientWidth:d,scrollHeight:u,scrollLeft:p,scrollTop:g,scrollWidth:_})}}])}(k.PureComponent);wst.propTypes={};function Sst(n){var t=n.dataKey,i=n.rowData;return typeof i.get=="function"?i.get(t):i[t]}function bst(n){var t=n.cellData;return t==null?"":String(t)}function Cst(n){var t=n.className,i=n.columns,s=n.style;return k.createElement("div",{className:t,role:"row",style:s},i)}var vv={ASC:"ASC",DESC:"DESC"};function lbe(n){var t=n.sortDirection,i=af("ReactVirtualized__Table__sortableHeaderIcon",{"ReactVirtualized__Table__sortableHeaderIcon--ASC":t===vv.ASC,"ReactVirtualized__Table__sortableHeaderIcon--DESC":t===vv.DESC});return k.createElement("svg",{className:i,width:18,height:18,viewBox:"0 0 24 24"},t===vv.ASC?k.createElement("path",{d:"M7 14l5-5 5 5z"}):k.createElement("path",{d:"M7 10l5 5 5-5z"}),k.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}lbe.propTypes={};function Tst(n){var t=n.dataKey,i=n.label,s=n.sortBy,l=n.sortDirection,d=s===t,u=[k.createElement("span",{className:"ReactVirtualized__Table__headerTruncatedText",key:"label",title:typeof i=="string"?i:null},i)];return d&&u.push(k.createElement(lbe,{key:"SortIndicator",sortDirection:l})),u}function Rst(n){var t=n.className,i=n.columns,s=n.index,l=n.key,d=n.onRowClick,u=n.onRowDoubleClick,p=n.onRowMouseOut,g=n.onRowMouseOver,_=n.onRowRightClick,y=n.rowData,E=n.style,b={"aria-rowindex":s+1};return(d||u||p||g||_)&&(b["aria-label"]="row",b.tabIndex=0,d&&(b.onClick=function(A){return d({event:A,index:s,rowData:y})}),u&&(b.onDoubleClick=function(A){return u({event:A,index:s,rowData:y})}),p&&(b.onMouseOut=function(A){return p({event:A,index:s,rowData:y})}),g&&(b.onMouseOver=function(A){return g({event:A,index:s,rowData:y})}),_&&(b.onContextMenu=function(A){return _({event:A,index:s,rowData:y})})),k.createElement("div",$d({},b,{className:t,key:l,role:"row",style:E}),i)}function xst(n,t,i){return t=Cr(t),fc(n,cbe()?Reflect.construct(t,i||[],Cr(n).constructor):t.apply(n,i))}function cbe(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(cbe=function(){return!!n})()}var $Z=function(n){function t(){return va(this,t),xst(this,t,arguments)}return pc(t,n),ya(t)}(k.Component);wt($Z,"defaultProps",{cellDataGetter:Sst,cellRenderer:bst,defaultSortDirection:vv.ASC,flexGrow:0,flexShrink:1,headerRenderer:Tst,style:{}});$Z.propTypes={};function xpe(n,t){var i=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(l){return Object.getOwnPropertyDescriptor(n,l).enumerable})),i.push.apply(i,s)}return i}function Zf(n){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{},l=s.columnIndex,d=l===void 0?0:l,u=s.rowIndex,p=u===void 0?0:u;this.Grid&&this.Grid.recomputeGridSize({rowIndex:p,columnIndex:d})}},{key:"recomputeRowHeights",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.Grid&&this.Grid.recomputeGridSize({rowIndex:s})}},{key:"scrollToPosition",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.Grid&&this.Grid.scrollToPosition({scrollTop:s})}},{key:"scrollToRow",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.Grid&&this.Grid.scrollToCell({columnIndex:0,rowIndex:s})}},{key:"getScrollbarWidth",value:function(){if(this.GridElement){var s=this.GridElement,l=s.clientWidth||0,d=s.offsetWidth||0;return d-l}return 0}},{key:"componentDidMount",value:function(){this._setScrollbarWidth()}},{key:"componentDidUpdate",value:function(){this._setScrollbarWidth()}},{key:"render",value:function(){var s=this,l=this.props,d=l.children,u=l.className,p=l.disableHeader,g=l.gridClassName,_=l.gridStyle,y=l.headerHeight,E=l.headerRowRenderer,b=l.height,A=l.id,N=l.noRowsRenderer,O=l.rowClassName,D=l.rowStyle,P=l.scrollToIndex,j=l.style,M=l.width,V=this.state.scrollbarWidth,H=p?b:b-y,$=typeof O=="function"?O({index:-1}):O,Q=typeof D=="function"?D({index:-1}):D;return this._cachedColumnStyles=[],k.Children.toArray(d).forEach(function(Y,le){var ae=s._getFlexStyleForColumn(Y,Y.props.style||$Z.defaultProps.style);s._cachedColumnStyles[le]=Zf({overflow:"hidden"},ae)}),k.createElement("div",{"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-colcount":k.Children.toArray(d).length,"aria-rowcount":this.props.rowCount,className:af("ReactVirtualized__Table",u),id:A,role:"grid",style:j},!p&&E({className:af("ReactVirtualized__Table__headerRow",$),columns:this._getHeaderColumns(),style:Zf({height:y,overflow:"hidden",paddingRight:V,width:M},Q)}),k.createElement(gv,$d({},this.props,{elementRef:this._setGridElementRef,"aria-readonly":null,autoContainerWidth:!0,className:af("ReactVirtualized__Table__Grid",g),cellRenderer:this._createRow,columnWidth:M,columnCount:1,height:H,id:void 0,noContentRenderer:N,onScroll:this._onScroll,onSectionRendered:this._onSectionRendered,ref:this._setRef,role:"rowgroup",scrollbarWidth:V,scrollToRow:P,style:Zf(Zf({},_),{},{overflowX:"hidden"})})))}},{key:"_createColumn",value:function(s){var l=s.column,d=s.columnIndex,u=s.isScrolling,p=s.parent,g=s.rowData,_=s.rowIndex,y=this.props.onColumnClick,E=l.props,b=E.cellDataGetter,A=E.cellRenderer,N=E.className,O=E.columnData,D=E.dataKey,P=E.id,j=b({columnData:O,dataKey:D,rowData:g}),M=A({cellData:j,columnData:O,columnIndex:d,dataKey:D,isScrolling:u,parent:p,rowData:g,rowIndex:_}),V=function(Y){y&&y({columnData:O,dataKey:D,event:Y})},H=this._cachedColumnStyles[d],$=typeof M=="string"?M:null;return k.createElement("div",{"aria-colindex":d+1,"aria-describedby":P,className:af("ReactVirtualized__Table__rowColumn",N),key:"Row"+_+"-Col"+d,onClick:V,role:"gridcell",style:H,title:$},M)}},{key:"_createHeader",value:function(s){var l=s.column,d=s.index,u=this.props,p=u.headerClassName,g=u.headerStyle,_=u.onHeaderClick,y=u.sort,E=u.sortBy,b=u.sortDirection,A=l.props,N=A.columnData,O=A.dataKey,D=A.defaultSortDirection,P=A.disableSort,j=A.headerRenderer,M=A.id,V=A.label,H=!P&&y,$=af("ReactVirtualized__Table__headerColumn",p,l.props.headerClassName,{ReactVirtualized__Table__sortableHeaderColumn:H}),Q=this._getFlexStyleForColumn(l,Zf(Zf({},g),l.props.headerStyle)),Y=j({columnData:N,dataKey:O,disableSort:P,label:V,sortBy:E,sortDirection:b}),le,ae,te,de,G;if(H||_){var ie=E!==O,_e=ie?D:b===vv.DESC?vv.ASC:vv.DESC,he=function(me){H&&y({defaultSortDirection:D,event:me,sortBy:O,sortDirection:_e}),_&&_({columnData:N,dataKey:O,event:me})},Ce=function(me){(me.key==="Enter"||me.key===" ")&&he(me)};G=l.props["aria-label"]||V||O,de="none",te=0,le=he,ae=Ce}return E===O&&(de=b===vv.ASC?"ascending":"descending"),k.createElement("div",{"aria-label":G,"aria-sort":de,className:$,id:M,key:"Header-Col"+d,onClick:le,onKeyDown:ae,role:"columnheader",style:Q,tabIndex:te},Y)}},{key:"_createRow",value:function(s){var l=this,d=s.rowIndex,u=s.isScrolling,p=s.key,g=s.parent,_=s.style,y=this.props,E=y.children,b=y.onRowClick,A=y.onRowDoubleClick,N=y.onRowRightClick,O=y.onRowMouseOver,D=y.onRowMouseOut,P=y.rowClassName,j=y.rowGetter,M=y.rowRenderer,V=y.rowStyle,H=this.state.scrollbarWidth,$=typeof P=="function"?P({index:d}):P,Q=typeof V=="function"?V({index:d}):V,Y=j({index:d}),le=k.Children.toArray(E).map(function(de,G){return l._createColumn({column:de,columnIndex:G,isScrolling:u,parent:g,rowData:Y,rowIndex:d,scrollbarWidth:H})}),ae=af("ReactVirtualized__Table__row",$),te=Zf(Zf({},_),{},{height:this._getRowHeight(d),overflow:"hidden",paddingRight:H},Q);return M({className:ae,columns:le,index:d,isScrolling:u,key:p,onRowClick:b,onRowDoubleClick:A,onRowRightClick:N,onRowMouseOver:O,onRowMouseOut:D,rowData:Y,style:te})}},{key:"_getFlexStyleForColumn",value:function(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d="".concat(s.props.flexGrow," ").concat(s.props.flexShrink," ").concat(s.props.width,"px"),u=Zf(Zf({},l),{},{flex:d,msFlex:d,WebkitFlex:d});return s.props.maxWidth&&(u.maxWidth=s.props.maxWidth),s.props.minWidth&&(u.minWidth=s.props.minWidth),u}},{key:"_getHeaderColumns",value:function(){var s=this,l=this.props,d=l.children,u=l.disableHeader,p=u?[]:k.Children.toArray(d);return p.map(function(g,_){return s._createHeader({column:g,index:_})})}},{key:"_getRowHeight",value:function(s){var l=this.props.rowHeight;return typeof l=="function"?l({index:s}):l}},{key:"_onScroll",value:function(s){var l=s.clientHeight,d=s.scrollHeight,u=s.scrollTop,p=this.props.onScroll;p({clientHeight:l,scrollHeight:d,scrollTop:u})}},{key:"_onSectionRendered",value:function(s){var l=s.rowOverscanStartIndex,d=s.rowOverscanStopIndex,u=s.rowStartIndex,p=s.rowStopIndex,g=this.props.onRowsRendered;g({overscanStartIndex:l,overscanStopIndex:d,startIndex:u,stopIndex:p})}},{key:"_setRef",value:function(s){this.Grid=s}},{key:"_setGridElementRef",value:function(s){this.GridElement=s}},{key:"_setScrollbarWidth",value:function(){var s=this.getScrollbarWidth();this.setState({scrollbarWidth:s})}}])}(k.PureComponent);wt(ube,"defaultProps",{disableHeader:!1,estimatedRowSize:30,headerHeight:0,headerStyle:{},noRowsRenderer:function(){return null},onRowsRendered:function(){return null},onScroll:function(){return null},overscanIndicesGetter:YSe,overscanRowCount:10,rowRenderer:Rst,headerRowRenderer:Cst,rowStyle:{},scrollToAlignment:"auto",scrollToIndex:-1,style:{}});ube.propTypes={};var Iv=[],v4=null,yE=null;function hbe(){yE&&(yE=null,document.body&&v4!=null&&(document.body.style.pointerEvents=v4),v4=null)}function Ist(){hbe(),Iv.forEach(function(n){return n.__resetIsScrolling()})}function Nst(){yE&&FR(yE);var n=0;Iv.forEach(function(t){n=Math.max(n,t.props.scrollingResetTimeInterval)}),yE=VZ(Ist,n)}function fbe(n){n.currentTarget===window&&v4==null&&document.body&&(v4=document.body.style.pointerEvents,document.body.style.pointerEvents="none"),Nst(),Iv.forEach(function(t){t.props.scrollElement===n.currentTarget&&t.__handleWindowScrollEvent()})}function Ape(n,t){Iv.some(function(i){return i.props.scrollElement===t})||t.addEventListener("scroll",fbe),Iv.push(n)}function Ipe(n,t){Iv=Iv.filter(function(i){return i!==n}),Iv.length||(t.removeEventListener("scroll",fbe),yE&&(FR(yE),hbe()))}var KZ=function(t){return t===window},i4=function(t){return t.getBoundingClientRect()};function Npe(n,t){if(n)if(KZ(n)){var i=window,s=i.innerHeight,l=i.innerWidth;return{height:typeof s=="number"?s:0,width:typeof l=="number"?l:0}}else return i4(n);else return{height:t.serverHeight,width:t.serverWidth}}function Ost(n,t){if(KZ(t)&&document.documentElement){var i=document.documentElement,s=i4(n),l=i4(i);return{top:s.top-l.top,left:s.left-l.left}}else{var d=pbe(t),u=i4(n),p=i4(t);return{top:u.top+d.top-p.top,left:u.left+d.left-p.left}}}function pbe(n){return KZ(n)&&document.documentElement?{top:"scrollY"in window?window.scrollY:document.documentElement.scrollTop,left:"scrollX"in window?window.scrollX:document.documentElement.scrollLeft}:{top:n.scrollTop,left:n.scrollLeft}}function Ope(n,t){var i=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(l){return Object.getOwnPropertyDescriptor(n,l).enumerable})),i.push.apply(i,s)}return i}function Ppe(n){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:this.props.scrollElement,l=this.props.onResize,d=this.state,u=d.height,p=d.width,g=this._child||this._windowScrollerRef.current;if(g instanceof Element&&s){var _=Ost(g,s);this._positionFromTop=_.top,this._positionFromLeft=_.left}var y=Npe(s,this.props);(u!==y.height||p!==y.width)&&(this.setState({height:y.height,width:y.width}),l({height:y.height,width:y.width})),this.props.updateScrollTopOnUpdatePosition===!0&&(this.__handleWindowScrollEvent(),this.__resetIsScrolling())}},{key:"componentDidMount",value:function(){var s=this.props.scrollElement;this._detectElementResize=BSe(),this.updatePosition(s),s&&(Ape(this,s),this._registerResizeListener(s)),this._isMounted=!0}},{key:"componentDidUpdate",value:function(s,l){var d=this.props.scrollElement,u=s.scrollElement;u!==d&&u!=null&&d!=null&&(this.updatePosition(d),Ipe(this,u),Ape(this,d),this._unregisterResizeListener(u),this._registerResizeListener(d))}},{key:"componentWillUnmount",value:function(){var s=this.props.scrollElement;s&&(Ipe(this,s),this._unregisterResizeListener(s)),this._isMounted=!1}},{key:"render",value:function(){var s=this.props.children,l=this.state,d=l.isScrolling,u=l.scrollTop,p=l.scrollLeft,g=l.height,_=l.width;return k.createElement("div",{ref:this._windowScrollerRef},s({onChildScroll:this._onChildScroll,registerChild:this._registerChild,height:g,isScrolling:d,scrollLeft:p,scrollTop:u,width:_}))}}])}(k.PureComponent);wt(Dst,"defaultProps",{onResize:function(){},onScroll:function(){},scrollingResetTimeInterval:Lst,scrollElement:gbe(),serverHeight:0,serverWidth:0});function kst(){var je,Ve;const n=Ii(),t=JSON.parse(Ai.getAuthUser()),i=["name","designation"],s="appreciation",[l,d]=k.useState(0),[u,p]=k.useState([]),[g,_]=k.useState([]),[y,E]=k.useState([]),[b,A]=k.useState(""),[N,O]=k.useState(""),[D,P]=k.useState(""),[j,M]=k.useState(!1),V=async({queryKey:Re})=>{var we,Ge;const[Be,Xe]=Re;try{const rt=await hs.getAllRecipients(Xe);if(rt.data.status==="success"){const pt=((Ge=(we=rt.data)==null?void 0:we.data)==null?void 0:Ge.recipients)||[],Ze=new Set;return pt.filter(_t=>Ze.has(_t.id)?!1:(Ze.add(_t.id),!0))}return[]}catch{throw new Error("Error fetching all recipients")}};async function H(){var Re,Be;try{const Xe=await Z4.getAppreciationCreationHelpers();return Xe.data.status==="success"?{images:(Re=Xe.data)==null?void 0:Re.data.images,reasons:(Be=Xe.data)==null?void 0:Be.data.reasons}:null}catch{throw new Error("Error fetching appreciation creation helpers")}}const{isPending:$,isError:Q,data:Y,error:le}=Qd({queryKey:["appreciationRecipients",s],queryFn:V}),{data:ae}=Qd({queryKey:["appreciationCreationHelpers"],queryFn:H}),te=k.useMemo(()=>FO(Y,b,i),[Y,b]),de=(Re,Be="single")=>{p(Be==="single"?[Re]:Xe=>Xe.some(we=>we.id===Re.id)?Xe.filter(we=>we.id!==Re.id):[...Xe,Re])},G=(Re,Be="single")=>{_(Be==="single"?[Re]:Xe=>Xe.some(we=>we.id===Re.id)?Xe.filter(we=>we.id!==Re.id):[...Xe,Re])},ie=(Re,Be="single")=>{E(Be==="single"?[Re]:Xe=>Xe.some(we=>we.id===Re.id)?Xe.filter(we=>we.id!==Re.id):[...Xe,Re])},_e=({index:Re,key:Be,style:Xe})=>{const we=te[Re];return h.jsx("div",{style:Xe,children:h.jsx(RC,{item:we,className:`user-card ${u.some(Ge=>Ge.id===we.id)?"selected":""} ${te.length!==Re+1?"border-bottom":""}`,type:"single",title:we!=null&&we.firstname?Pv(we==null?void 0:we.firstname,we==null?void 0:we.lastname):we==null?void 0:we.name,subTitle:we==null?void 0:we.designation,iconImg:we==null?void 0:we.avatar,isRoundedIcon:!0,handleItemSelect:de})},Be)},he=()=>u.length===0?(Qt("Users not selected!","error"),!1):!0,Ce=()=>(g==null?void 0:g.length)===0?(Qt("Reason not selected!","error"),!1):g.some(Re=>Re.id==="other")&&N===""?(Qt("Own Reason is empty!","error"),!1):!0,fe=()=>!y&&(y==null?void 0:y.length)===0?(Qt("Graphics not selected!","error"),!1):!0;function me(Re){d(Number(Re))}const Ne=()=>{l===0&&he()?d(1):l===1&&Ce()?d(2):l===2&&fe()&&Fe()};async function Fe(){var pt;console.log("## Inside handleSubmit ##"),M(!0);const Re=u[0],Be=g[0];console.log("selectedReason = ",Be);const Xe={};if(Be!=null&&Be.id&&((Be==null?void 0:Be.id)==="other"?(Xe.reason=N,Xe.points=0,Xe.icon="/img/default-profile.jpg"):(Xe.reason=Be==null?void 0:Be.reason,Xe.points=Be==null?void 0:Be.points,Xe.icon=Be==null?void 0:Be.icon)),!y&&!y.length>0){Qt("Graphics not selected!","error");return}const we=(pt=y[0])==null?void 0:pt.image,Ge=`${t.name} appreciated ${Re==null?void 0:Re.firstname} ${Re==null?void 0:Re.lastname}`,rt={receiver_id:Re==null?void 0:Re.id,receiver_info:Re,title:Ge,reason:Xe==null?void 0:Xe.reason,icon:Xe==null?void 0:Xe.icon,image:we,points:Xe==null?void 0:Xe.points,message:D};Z4.sendAppreciation(rt).then(Ze=>{console.log("sendAppreciation response result = ",Ze.data),Ze.data.status==="success"&&(M(!1),Qt("Appreciation sent successfully!","success"),n("/appreciations",{state:{data:"sent"}}))}).catch(Ze=>{console.log(Ze),Qt("Failed to Send Appreciation!","error")}).finally(()=>{M(!1)})}return $?h.jsx(qi,{className:"position-relative",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(ci,{type:"details"})})}):Q?h.jsx(Ga,{className:"mt-5",children:le.message}):h.jsx(h.Fragment,{children:h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx("div",{className:"send-appreciation-page",children:h.jsxs(vU,{activeKey:l,onSelect:me,id:"stepper-tabs",children:[h.jsxs(Zn,{eventKey:0,title:"Step 1",unmountOnExit:!0,children:[h.jsxs("div",{className:"py-0 pt-2 sticky-top",style:{top:"var(--navbar-height)",padding:"0 0rem",background:"var(--color-body-bg-light)"},children:[h.jsxs(Ga,{size:"",className:"mb-1",children:[h.jsx("span",{className:"text-danger",children:"*"})," Whom do you want to appreciate?"]}),h.jsxs("div",{className:"py-1 pb-0",children:[h.jsx(XO,{filters:i,onSearch:Re=>A(Re),className:"mb-"}),(te==null?void 0:te.length)>0&&(b==null?void 0:b.length)>0&&h.jsx(Ga,{size:"sm",className:"px-1 text-gray9",children:`Results found ${te==null?void 0:te.length}`})]}),h.jsx("div",{className:"px-1 d-block mb-1",children:h.jsx(BZ,{items:u,className:"",type:"single",handleRemoveItems:de})})]}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-0",style:{height:"calc(100vh - 35vh)",overflowY:"auto",overflowX:"hidden"},children:h.jsx(oF,{children:({height:Re,width:Be})=>h.jsx(cF,{width:Be,height:Re,rowHeight:60,rowCount:te.length,rowRenderer:_e})})}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:Ne,children:"Next"},"step2_handler")})]})})]}),h.jsx(Zn,{eventKey:1,title:"Step 2",unmountOnExit:!0,children:h.jsxs("div",{className:"form-step-container",children:[h.jsxs(Ga,{size:"",className:"mb-1",children:[h.jsx("span",{className:"text-danger",children:"*"})," Select appreciation reason"]}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3",style:{overflowY:"auto",borderBottom:"1px solid var(--color-gray-light5)"},children:h.jsxs(h.Fragment,{children:[((je=ae==null?void 0:ae.reasons)==null?void 0:je.length)>0&&(ae==null?void 0:ae.reasons.map(Re=>h.jsx(h.Fragment,{children:h.jsx(RC,{item:Re,className:`user-card ${g.some(Be=>Be.id===(Re==null?void 0:Re.id))?"selected":""}`,type:"single",title:Re==null?void 0:Re.reason,subTitle:"",iconImg:Re==null?void 0:Re.icon,isRoundedIcon:!1,handleItemSelect:G},Re==null?void 0:Re.id)}))),h.jsx(RC,{item:{id:"other"},className:`user-card ${g.some(Re=>Re.id==="other")?"selected":""}`,type:"single",title:"Write your own",subTitle:"",iconImg:"/img/default-profile.jpg",isRoundedIcon:!1,handleItemSelect:G},"other")]})}),g.some(Re=>Re.id==="other")&&h.jsx(h.Fragment,{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2 pt-3",children:[h.jsx(kt.Label,{className:"font-14 fw-sb",children:"Write your own reason"}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto",maxHeight:"100px"},value:N,onChange:Re=>O(Re.target.value),placeholder:"",name:"own_reason",autoComplete:"off"})]})}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>d(0),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:Ne,children:"Next"},"step3_handler")})]})})]})}),h.jsx(Zn,{eventKey:2,title:"Step 3",unmountOnExit:!0,children:h.jsxs("div",{className:"form-step-container",children:[h.jsx(Ga,{size:"",className:"mb-1",children:"Choose a graphic and write a personalised message"}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-3 pt-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb",children:"Personal Note (optional)"}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto",maxHeight:"100px"},value:D,onChange:Re=>P(Re.target.value),placeholder:"",name:"message",autoComplete:"off"})]}),h.jsxs("div",{className:"pt-2",children:[h.jsxs(Ga,{size:"",className:"mb-1",children:[h.jsx("span",{className:"text-danger",children:"*"})," Choose a graphic"]}),h.jsx("div",{className:"content-container no-scrollbar border-botto px-1 py-3",style:{overflowY:"auto"},children:h.jsx(fn,{className:"row-cols-3 g-2",children:(Ve=ae==null?void 0:ae.images)==null?void 0:Ve.map(Re=>h.jsx(Gt,{children:h.jsx(ert,{item:Re,className:`${y.some(Be=>Be.id===Re.id)?"selected":""}`,type:"single",title:Re==null?void 0:Re.id,subTitle:"",iconImg:Re==null?void 0:Re.image,handleImageSelect:ie})},Re.id))})})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 justify-content-center gx-3 mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>d(1),children:"Prev"},"prev_step2_handler")}),h.jsx(Gt,{children:h.jsx("div",{className:"btn-wrap text-center",children:h.jsx(Pt,{type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:Ne,children:j?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Processing"]}):"Submit"})})})]})})]})})]})})})})})}function y4({className:n,type:t,item:i,name:s,title:l,subTitle:d,id:u,iconImg:p,isDisabled:g,isChecked:_,handleChange:y,selectedUserList:E,setSelectedUserList:b}){const A=n||"",N=t||"radio",O=p||((i==null?void 0:i.type)==="group"?"/img/groups-icon.png":"/img/user-profile.jpg"),D=l||"Guest User",P=d||"",j={};g?j.disabled=!0:j.disabled=!1;function M(V){console.log(V.target),console.log(JSON.stringify(V.target.value)),y(V),b&&b(H=>[{id:V.target.value,name:D,image:O}])}return h.jsx(h.Fragment,{children:h.jsxs(et,{className:`card-theme border-0 rounded-1 custom-radio-list-btn-card card-md ${A}`,children:[h.jsx("input",{type:N,id:u,name:s,value:i.id,onChange:M,...j,checked:_||!1}),h.jsx("label",{htmlFor:u,children:h.jsxs(et.Body,{className:"position-relative rounded-1",children:[h.jsx("div",{className:"d-flex profile-info-container align-items-center",children:h.jsxs("div",{className:"flex-shrink-0 media-icon-container position-relative d-flex align-items-center",children:[h.jsx("div",{className:"media-icon-wrapper flex-shrink-0",children:h.jsx(us,{src:O,alt:`${D} image`,className:"img-fluid"})}),h.jsxs("div",{className:"text-start flex-grow-1 ms-2 ms-sm-3 media-info-container d-flex flex-wrap",children:[h.jsx("span",{className:"welcome-user fw-n",style:{maxWidth:"90%"},children:`${D} `}),h.jsx("div",{className:"d-block w-100 font-13 text-gray6",children:$R(P)})]})]})}),h.jsx(Zt,{tag:"circle1",className:"font-20 position-absolute radio-status-icon unchecked-icon"}),h.jsx(Zt,{tag:"check2",className:"font-20 position-absolute radio-status-icon checked-icon"})]})})]})})}function Mst({className:n,item:t,name:i,title:s,id:l,iconImg:d,isDisabled:u,isChecked:p,handleChange:g}){const _=n||"",y={};u?y.disabled=!0:y.disabled=!1;function E(b){console.log(b.target),console.log(JSON.stringify(b.target.value)),g(b)}return h.jsx(h.Fragment,{children:h.jsxs(et,{className:`card-theme border-0 rounded-2 overflow-hidden custom-radio-img-gallery-btn-card card-md ${_} h-100`,children:[h.jsx("input",{type:"radio",id:l,name:i,value:t.id,onChange:E,...y}),h.jsx("label",{htmlFor:l,className:"h-100",children:h.jsxs(et.Body,{className:"position-relative rounded-1 h-100 d-flex align-items-center",children:[h.jsx("div",{className:"card-overlay bg-gray-normal-overlay",children:h.jsx(Zt,{tag:"check2",className:"font-24"})}),h.jsx(us,{src:d,alt:`${l} image`,className:"img-fluid"})]})})]})})}const H7=hc("Preferences",{web:()=>Xi(()=>import("./web-Dzl3-xxO.js"),__vite__mapDeps([])).then(n=>new n.PreferencesWeb)});function jst(){Ii();const[n,t]=k.useState([]),[i,s]=k.useState([]),[l,d]=k.useState([]),[u,p]=k.useState(!1),[g,_]=k.useState([]),[y,E]=k.useState([]),[b,A]=k.useState("step1"),[N,O]=k.useState(!1),D=JSON.parse(Ai.getAuthUser()),P=k.useRef(),j=()=>{P.current.value="",s(n)};function M(de,G){console.log("searchItems - filteredData =",G);const ie=G.filter((_e,he)=>_e.name.toLowerCase().includes(de.toLowerCase())||_e.designation.toLowerCase().includes(de.toLowerCase()));return console.log("Result =",ie),ie}const V=tx.debounce(de=>{console.log("This is function from lodash..."),console.log("Search text =",de);const G=n;de.trim().length>0?(console.log(de.trim()),s(M(de.trim(),G))):s(G)},500),H=(de,G)=>{var ie,_e,he;if(console.log("Key in handleSelectedTab =",de),console.log("formik in handleSelected Tag = ",G),b==="step1"&&(G!=null&&G.values)&&!((ie=G.values)!=null&&ie.receiver_id)){Qt("User not selected!","error");return}if(b==="step2"&&(G!=null&&G.values)&&!((_e=G.values)!=null&&_e.reason)){Qt("Reason not selected!","error");return}if(b==="step2"&&(G!=null&&G.values)&&((he=G.values)==null?void 0:he.reason.toLowerCase())==="other"&&!G.values.own_reason){Qt("Own Reason is empty!","error");return}A(de)},$={receiver_id:"",reason:"",own_reason:"",icon:"",image:"",points:"",message:""},Q=uc({}),Y=async(de,{resetForm:G})=>{var Ne;if(console.log("Form Values :",de),b==="step3"&&de&&!(de!=null&&de.image)){Qt("Graphics not selected!","error");return}const ie=n.filter(Fe=>Fe.id===de.receiver_id)[0];console.log("receiver_info = ",ie);const _e=g.filter(Fe=>Fe.id===de.reason)[0];console.log("selectedReason = ",_e);const he={};!_e&&de.own_reason?(he.reason=de.own_reason,he.points=0,he.icon="/img/default-profile.jpg"):(he.reason=_e.reason,he.points=_e.points,he.icon=_e.icon),console.log("reasonInfo = ",he);const Ce=(Ne=y.filter(Fe=>Fe.id===de.image)[0])==null?void 0:Ne.image,fe=`${D.name} appreciated ${ie.firstname} ${ie.lastname}`,me={receiver_id:de.receiver_id,receiver_info:ie,title:fe,reason:he.reason,icon:he.icon,image:Ce,points:he.points,message:de.message};console.log("Final formData = ",me)};async function le(de){p(!0),hs.getAllRecipients(de).then(G=>{var ie,_e;if(console.log("getAllRecipients called == ",G.data),G.data.status==="success"){const he=(_e=(ie=G.data)==null?void 0:ie.data)==null?void 0:_e.recipients;t(he),s(he),p(!1)}}).catch(G=>{console.log("ERROR in getAllRecipients ",G),t([]),s([]),p(!1)})}async function ae(){Z4.getAppreciationCreationHelpers().then(de=>{var G,ie;if(console.log("getAppreciationCreationHelpers called == ",de.data),de.data.status==="success"){const _e=(G=de.data)==null?void 0:G.data.images,he=(ie=de.data)==null?void 0:ie.data.reasons;E(_e),_(he)}}).catch(de=>{console.log("ERROR in getAppreciationCreationHelpers ",e),E([]),_([])})}const te=async()=>{p(!0);const{value:de}=await H7.get({key:"appreciationUsers"});if(console.log("Appreciation Users:",JSON.parse(de)),de){let G=JSON.parse(de);t(G),s(G),p(!1)}else le("appreciation")};return k.useEffect(()=>{te(),ae()},[]),h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(id,{initialValues:$,validationSchema:Q,onSubmit:Y,children:de=>{var G,ie,_e;return h.jsxs(kt,{className:"form_style",onSubmit:de.handleSubmit,children:[h.jsxs(Zn.Container,{id:"appreciation-step-form",className:"main_tabs",activeKey:b,onSelect:he=>H(he),children:[h.jsx("div",{className:"tab_links d-none",children:h.jsxs(jn,{variant:"pills",className:"nav-stepper justify-content-center",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step1",children:h.jsx("div",{className:"",children:"1"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step2",children:h.jsx("div",{className:"",children:"2"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step3",children:h.jsx("div",{children:"3"})})})]})}),h.jsxs(Zn.Content,{className:"p-2 pt-0",children:[h.jsxs(Zn.Pane,{className:"",eventKey:"step1",children:[h.jsxs("div",{className:"form-step-container",children:[h.jsxs("div",{className:"font-14 fw-sb py-1 pt-0",children:[h.jsx("span",{className:"text-danger",children:"*"})," Whom do you want to appreciate?"]}),!u&&(n==null?void 0:n.length)>0?h.jsx("div",{className:"py-1",children:h.jsxs(kt.Group,{className:"form-group rounded_corners search_field autocomplete_field mb-1 position-relative px-1",children:[h.jsx(kt.Control,{type:"text",name:"searchInput",onChange:he=>{console.log("Search input = ",he),V(he.target.value)},ref:P,placeholder:"Search",style:{backgroundImage:"url(/img/search-icon.png)",backgroundRepeat:"no-repeat",backgroundPosition:"center right 12px"},autoComplete:"off"}),((G=P==null?void 0:P.current)==null?void 0:G.value.length)>0&&h.jsx(Pt,{onClick:j,className:"btn-theme btn-icon btn-sm btn-gray position-absolute",style:{top:4,right:6,fontSize:18},type:"button",children:h.jsx(VE,{})},"search-clear-btn"),((ie=P==null?void 0:P.current)==null?void 0:ie.value.length)>0&&h.jsx("span",{className:"font-13 fw-sb px-1 text-gray9",children:`Results found ${i==null?void 0:i.length}`})]})}):h.jsx(h.Fragment,{}),l&&l.length>0?h.jsx("div",{className:"p-2 d-flex flex-nowrap no-scrollbar align-items-center overflow-auto mb-1 border-bottom bg-gray-lighter2",children:h.jsxs(h.Fragment,{children:[h.jsx("span",{className:"font-14 me-2",children:"Selected: "}),l.map((he,Ce)=>h.jsxs("div",{className:"d-flex align-items-center p-1 rounded-3 text-wrap border me-2 bg-white",children:[h.jsx("div",{className:"overflow-hidden rounded-circle flex-shrink-0",style:{width:24,height:24},children:h.jsx("img",{src:he.image,className:"img-fluid mx-auto",alt:he.name,style:{objectFit:"cover"}})}),h.jsx("div",{className:"ms-2 font-12 text-truncate flex-grow-1",children:he.name})]},he.id))]})}):h.jsx(h.Fragment,{}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-0",style:{maxHeight:"calc(100vh - 35vh)",overflowY:"auto"},children:u?h.jsx(ci,{type:"details"}):h.jsx(h.Fragment,{children:!u&&(n==null?void 0:n.length)>0?h.jsx(h.Fragment,{children:(i==null?void 0:i.length)>0?h.jsx(h.Fragment,{children:i.map((he,Ce)=>h.jsx(y4,{className:`${i.length!==Ce+1?"border-bottom":""}`,name:"receiver_id",item:he,inputName:"users",title:Pv(he==null?void 0:he.firstname,he==null?void 0:he.lastname),subTitle:he==null?void 0:he.designation,id:he==null?void 0:he.id,iconImg:he==null?void 0:he.avatar,handleChange:de.handleChange,isDisabled:!1,isChecked:de.values.receiver_id.indexOf(he==null?void 0:he.id)>-1,initialValues:$==null?void 0:$.receiver_id,selectedUserList:l,setSelectedUserList:d},he.id))}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No user found."})})})})}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No more records"})})})})})})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:()=>H("step2",de),children:"Next"},"step2_handler")})]})})]}),h.jsxs(Zn.Pane,{className:"",eventKey:"step2",children:[h.jsxs("div",{className:"form-step-container",children:[h.jsxs("div",{className:"font-14 fw-sb py-2",children:[h.jsx("span",{className:"text-danger",children:"*"})," Select appreciation reason"]}),h.jsxs("div",{className:"content-container no-scrollbar border-botto py-3",style:{overflowY:"auto",borderBottom:"1px solid var(--color-gray-light5)"},children:[(g==null?void 0:g.length)>0&&g.map(he=>{var Ce;return h.jsx(y4,{className:"card-normal-radius",name:"reason",item:he,inputName:"reasons",title:he.reason,subTitle:"",id:he==null?void 0:he.id,iconImg:he==null?void 0:he.icon,handleChange:de.handleChange,isDisabled:!1,isChecked:((Ce=de.values)==null?void 0:Ce.reason.indexOf(he.id))>-1,initialValues:$==null?void 0:$.reason},he.id)}),h.jsx(y4,{className:"card-normal-radius",name:"reason",item:{id:"other"},inputName:"reasons",title:"Write your own",subTitle:"",id:"other",iconImg:"/img/default-profile.jpg",handleChange:de.handleChange,isDisabled:!1,isChecked:((_e=de.values)==null?void 0:_e.reason.indexOf("other"))>-1,initialValues:null})]})]}),h.jsx("div",{children:de.values.reason==="other"&&h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2 pt-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb",children:"Write your own reason"}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto",maxHeight:"100px"},placeholder:"",name:"own_reason",...de.getFieldProps("own_reason"),autoComplete:"off"})]})}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>H("step1"),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:()=>H("step3",de),children:"Next"},"step3_handler")})]})})]}),h.jsx(Zn.Pane,{className:"",eventKey:"step3",children:h.jsxs("div",{className:"form-step-container",children:[h.jsx("div",{className:"font-14 fw-sb py-2",children:"Choose a graphic and write a personalised message"}),h.jsx("div",{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-3 pt-2",children:[h.jsx(kt.Label,{className:"font-14 fw-sb",children:"Personal Note"}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto",maxHeight:"100px"},placeholder:"",name:"message",...de.getFieldProps("message"),autoComplete:"off"}),de.touched.message&&de.errors.message?h.jsx("p",{className:"error-state-text font-12 text-danger",children:de.errors.message}):null]})}),h.jsxs("div",{className:"pt-2",children:[h.jsxs("div",{className:"font-14 fw-sb",children:[h.jsx("span",{className:"text-danger",children:"*"})," Choose a graphic"]}),h.jsx("div",{className:"content-container no-scrollbar border-botto px-1 py-3",style:{overflowY:"auto"},children:h.jsx(fn,{className:"row-cols-3 g-2",children:(y==null?void 0:y.length)>0&&y.map(he=>h.jsx(Gt,{children:h.jsx(Mst,{className:"",name:"image",item:he,inputName:"images",title:he.id,subTitle:"",id:he==null?void 0:he.id,iconImg:he==null?void 0:he.image,handleChange:de.handleChange,isDisabled:!1,initialValues:$==null?void 0:$.image})},he.id))})})]})]})})]})]}),b==="step3"&&h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 justify-content-center gx-3 mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>H("step2"),children:"Prev"},"prev_step2_handler")}),h.jsx(Gt,{children:h.jsx("div",{className:"btn-wrap text-center",children:h.jsx(Pt,{type:"submit",className:"btn-theme btn-primary btn-md w-100",children:N?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Processing"]}):de.isValid?"Submit":"Please fill out all info"})})})]})})]})}})})})}function Ust({contest:n,className:t,handleCompetitionContestBtnClick:i}){const s=t||"",l=n!=null&&n.role?n==null?void 0:n.role:"",d=n!=null&&n.contest_name?n==null?void 0:n.contest_name:"";n!=null&&n.cover_image&&(n==null||n.cover_image);const u=n!=null&&n.points_unit?n==null?void 0:n.points_unit:"Points",p=n!=null&&n.points?n==null?void 0:n.points:0,g=n!=null&&n.team_points?n==null?void 0:n.team_points:0,_=n!=null&&n.team_rank?n==null?void 0:n.team_rank:0,y=n!=null&&n.team_rank_out_of?n==null?void 0:n.team_rank_out_of:0,E=n!=null&&n.rank_in_team?n==null?void 0:n.rank_in_team:0,b=n!=null&&n.rank_in_team_out_of?n==null?void 0:n.rank_in_team_out_of:0,A=n!=null&&n.team_dashboard?n==null?void 0:n.team_dashboard:null,N=n!=null&&n.contest_dashboard?n==null?void 0:n.contest_dashboard:null,O=n!=null&&n.top3?n==null?void 0:n.top3:[];function D(P,j){console.log("----- Inside handleBtnClick ----"),i(P,j)}return h.jsx(h.Fragment,{children:h.jsxs(et,{className:`border-0 card-theme shadow-sm campaigns-card overflow-hidden ${s}`,children:[h.jsx(et.Header,{className:"border-bottom-0 p-2 pb-1 p-sm-3 line-clamp",children:h.jsx("div",{className:"d-flex align-items-center",children:h.jsx("div",{className:"ms-",children:d})})}),h.jsxs(et.Body,{className:"p-2 p-sm-3",children:[l.toLowerCase()==="player"&&h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"px-0 py-3 bg-primary-lighter rounded-3 mb-1",children:[h.jsxs(fn,{className:"row-cols-2 g-0",children:[h.jsx(Gt,{className:"",children:h.jsxs(et,{className:"border-0 campaigns-counter-card bg-primary-lighter bg-transparent border-botto border-end rounded-0 h-100",children:[h.jsx(et.Header,{className:"bg-transparent border-0 p-2 position-relative py-0",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"font-13 fw-sb text-uppercase text-gray7 flex-grow-1 px-1",children:`Team ${u}`}),h.jsx("span",{className:"position-absolute flex-shrink-0",style:{right:10,top:"-2px"},children:h.jsx(Zt,{tag:"insights1",className:"font-20 text-theme-secondary"})})]})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center p-2 pt- position-relative",children:h.jsxs("div",{className:"font-26 text-theme-secondary",children:[g," ",h.jsx("span",{className:"font-13 text-gray8"})]})})]})}),h.jsx(Gt,{className:"",children:h.jsxs(et,{className:"border-0 campaigns-counter-card bg-gray-lighter bg-transparent border-botto rounded-0 h-100",children:[h.jsx(et.Header,{className:"bg-transparent border-0 p-2 position-relative py-0",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"font-13 fw-sb text-uppercase text-gray7 flex-grow-1 px-1",children:"Team Rank"}),h.jsx("span",{className:"position-absolute flex-shrink-0",style:{right:10,top:"-2px"},children:h.jsx(Zt,{tag:"crown1",className:"font-20 text-theme-secondary"})})]})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center p-2 pt- position-relative",children:h.jsxs("div",{className:"font-26 text-theme-secondary",children:[_," ",h.jsxs("span",{className:"font-13 text-gray8",children:["(",y,")"]})]})})]})})]}),h.jsx(fn,{className:"row-cols-1 mt-2 d-flex justify-content-center",children:h.jsx(Gt,{className:"col-8",children:h.jsx(Pt,{type:"button",className:"btn-theme btn-md btn-secondary w-100",onClick:()=>{D(n,N)},children:"Contest Dashboard"})})})]}),h.jsxs("div",{className:"px-0 py-3 bg-warning-lighter rounded-3",children:[h.jsxs(fn,{className:"row-cols-2 g-0",children:[h.jsx(Gt,{className:"",children:h.jsxs(et,{className:"border-0 campaigns-counter-card bg-gray-lighter bg-transparent border-end rounded-0 h-100",children:[h.jsx(et.Header,{className:"bg-transparent border-0 p-2 position-relative py-0",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"font-13 fw-sb text-uppercase text-gray7 flex-grow-1 px-1",children:`My ${u}`}),h.jsx("span",{className:"position-absolute flex-shrink-0",style:{right:10,top:"-2px"},children:h.jsx(Zt,{tag:"insights1",className:"font-20 text-theme-secondary"})})]})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center p-2 pt- position-relative",children:h.jsxs("div",{className:"font-26 text-theme-warning",children:[p," ",h.jsx("span",{className:"font-13 text-gray8"})]})})]})}),h.jsx(Gt,{className:"",children:h.jsxs(et,{className:"border-0 campaigns-counter-card bg-gray-lighter bg-transparent border-star rounded-0 h-100",children:[h.jsx(et.Header,{className:"bg-transparent border-0 p-2 position-relative py-0",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"font-13 fw-sb text-uppercase text-gray7 flex-grow-1 px-1",children:"Rank in Team"}),h.jsx("span",{className:"position-absolute flex-shrink-0",style:{right:10,top:"-2px"},children:h.jsx(Zt,{tag:"crown1",className:"font-20 text-theme-warning"})})]})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center p-2 pt- position-relative",children:h.jsxs("div",{className:"font-26 text-theme-warning",children:[E," ",h.jsxs("span",{className:"font-13 text-gray8",children:["(",b,")"]})]})})]})})]}),h.jsx(fn,{className:"row-cols-1 mt-2 d-flex justify-content-center",children:h.jsx(Gt,{className:"col-8",children:h.jsx(Pt,{type:"button",className:"btn-theme btn-md btn-badges w-100",onClick:()=>{D(n,A)},children:"Team Dashboard"})})})]})]}),l.toLowerCase()==="observer"&&h.jsx(h.Fragment,{children:h.jsxs("div",{className:"px-0 py-3 bg-primary-lighter rounded-3",children:[h.jsxs("div",{className:"font-13 fw-sb text-uppercase flex-grow-1 px-1 d-flex align-items-center justify-content-center mb-2",children:[h.jsx(Pt,{type:"button",className:"btn btn-theme btn-secondary btn-sm rounded-circle btn-icon pe-none",children:h.jsx(Zt,{tag:"crown1",className:"font-18"})}),h.jsx("span",{className:"lh-1 ms-1",children:"Toppers"})]}),(O==null?void 0:O.length)>0?h.jsxs(h.Fragment,{children:[h.jsx(fn,{className:"row-cols-3 g-0",children:O==null?void 0:O.map((P,j)=>{const M=P!=null&&P.team_image?P==null?void 0:P.team_image:"/img/default-bg.jpg",V=P!=null&&P.team_name?P==null?void 0:P.team_name:"",H=P!=null&&P.rank?P==null?void 0:P.rank:"";return h.jsx(Gt,{className:"",children:h.jsxs(et,{className:`border-0 campaigns-counter-card bg-primary-lighter bg-transparent rounded-0 h-100 ${j+1!==(O==null?void 0:O.length)?"border-end":""}`,children:[h.jsx(et.Header,{className:"border-0 text-center pt-3 pb-0 px-2",children:h.jsx("div",{className:"ms-2 font-13 fw-sb text-center lh-sm text-gray6",children:V})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center justify-content-center p-2 pt- position-relative",children:h.jsx("div",{className:"d-flex align-items-center mb-2",children:h.jsx("div",{className:"flex-shrink-0",style:{width:60},children:h.jsx(us,{src:M,alt:V,wrapperClassName:"img-fluid"})})})}),h.jsx(et.Footer,{className:"border-theme-top border-0 p-2 pt-0 bg-transparent text-center",children:h.jsx("div",{className:"btn btn-theme btn-icon btn-sm bg-primary-light-overlay rounded-circle fw-sb shadow-sm",children:H})})]})},P==null?void 0:P.team_name)})}),h.jsx(fn,{className:"row-cols-1 mt-2 d-flex justify-content-center",children:h.jsx(Gt,{className:"col-8",children:h.jsx(Pt,{type:"button",className:"btn-theme btn-md btn-secondary w-100",onClick:()=>{D(n,N)},children:"Contest Dashboard"})})})]}):h.jsx("div",{children:"No toppers found"})]})}),l.toLowerCase()==="non_player"&&h.jsx(h.Fragment,{children:h.jsxs("div",{className:"px-0 py-3 bg-warning-lighter rounded-3",children:[h.jsxs(fn,{className:"row-cols-2 g-0",children:[h.jsx(Gt,{className:"",children:h.jsxs(et,{className:"border-0 campaigns-counter-card bg-gray-lighter bg-transparent border-end rounded-0 h-100",children:[h.jsx(et.Header,{className:"bg-transparent border-0 p-2 position-relative py-0",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"font-13 fw-sb text-uppercase text-gray7 flex-grow-1 px-1",children:`Team ${u}`}),h.jsx("span",{className:"position-absolute flex-shrink-0",style:{right:10,top:"-2px"},children:h.jsx(Zt,{tag:"insights1",className:"font-20 text-theme-warning"})})]})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center p-2 pt- position-relative",children:h.jsxs("div",{className:"font-26 text-theme-warning",children:[g," ",h.jsx("span",{className:"font-13 text-gray8"})]})})]})}),h.jsx(Gt,{className:"",children:h.jsxs(et,{className:"border-0 campaigns-counter-card bg-gray-lighter bg-transparent border-star rounded-0 h-100",children:[h.jsx(et.Header,{className:"bg-transparent border-0 p-2 position-relative py-0",children:h.jsxs("div",{className:"d-flex align-items-center",children:[h.jsx("div",{className:"font-13 fw-sb text-uppercase text-gray7 flex-grow-1 px-1",children:"Team Rank"}),h.jsx("span",{className:"position-absolute flex-shrink-0",style:{right:10,top:"-2px"},children:h.jsx(Zt,{tag:"crown1",className:"font-20 text-theme-warning"})})]})}),h.jsx(et.Body,{className:"d-flex flex-column align-items-center p-2 pt- position-relative",children:h.jsxs("div",{className:"font-26 text-theme-warning",children:[_," ",h.jsxs("span",{className:"font-13 text-gray8",children:["(",y,")"]})]})})]})})]}),h.jsx(fn,{className:"row-cols-1 mt-2 d-flex justify-content-center",children:h.jsx(Gt,{className:"col-8",children:h.jsx(Pt,{type:"button",className:"btn-theme btn-badges w-100",onClick:()=>{D(n,N)},children:"Contest Dashboard"})})})]})})]})]})})}function Fst(){const n=Ii(),[t,i]=k.useState([1,2]),[s,l]=k.useState(!0);async function d(){console.log("Inside Dashboard: getAllCompetitionContests()..."),Wa.getAllCompetitionContests().then(p=>{console.log("getAllCompetitionContests RES = ",p.data),p.data.status==="success"&&(i(p.data.data.items),l(!1))}).catch(p=>{l(!1),i([]),console.log("Error in getAllCompetitionContests = ",p)})}k.useEffect(()=>{d()},[]);function u(p,g){p&&n("/competition-contests/competition-contest-details",{state:{item:p,url:g,pageTitle:p==null?void 0:p.contest_name}})}return h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:s?h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-3",children:[0,1].map((p,g)=>h.jsx(ci,{type:"competition-contest",className:"card-theme overflow-hidden"},g))})}):h.jsx(h.Fragment,{children:t.length>0?h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-grid gap-4",children:t.map((p,g)=>h.jsx(Ust,{className:"",contest:p,handleCompetitionContestBtnClick:u},g))})}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"card-theme border-0 shadow-sm p-3 rounded-3 font-14",children:"No more contests"})})})})})}function Bst(){const[n,t]=k.useState(!0),{state:i}=Xo();return console.log("Data passed via navigate = ",i),h.jsx(qi,{className:"",children:h.jsxs(Yn,{className:"rati0 ratio-1x1 position-relativ px-0",style:{height:"calc(100vh - 160px)",zIndex:1},children:[n?h.jsx(ci,{type:"iframe-loader"}):null,h.jsx("iframe",{src:`${i.url}`,title:"Competition Contest Details",onLoad:()=>t(!1),className:`no-scrollbar ${n?"opacity-0":""}`,sandbox:"allow-scripts",height:"100%",width:"100%"})]})})}function Vst(){const n=Ii(),t=["name","firstname","lastname","designation"],i="badges",[s,l]=k.useState(0),[d,u]=k.useState([]),[p,g]=k.useState([]),[_,y]=k.useState(""),[E,b]=k.useState(!1),A=async({queryKey:G})=>{var he,Ce;const[ie,_e]=G;try{const fe=await hs.getAllRecipients(_e);if(fe.data.status==="success"){const me=((Ce=(he=fe.data)==null?void 0:he.data)==null?void 0:Ce.recipients)||[],Ne=new Set;return me.filter(je=>Ne.has(je.id)?!1:(Ne.add(je.id),!0))}return[]}catch{throw new Error("Error fetching all recipients")}};async function N(){var G,ie,_e;try{const he=await Q4.getBadgeCreationHelpers();return((G=he==null?void 0:he.data)==null?void 0:G.status)==="success"?(_e=(ie=he==null?void 0:he.data)==null?void 0:ie.data)==null?void 0:_e.badges:null}catch{throw new Error("Error fetching appreciation creation helpers")}}const{isPending:O,isError:D,data:P,error:j}=Qd({queryKey:["badgeRecipients",i],queryFn:A}),{data:M}=Qd({queryKey:["badgeCreationHelpers"],queryFn:N}),V=k.useMemo(()=>FO(P,_,t),[P,_]),H=(G,ie="single")=>{u(ie==="single"?[G]:_e=>_e.some(he=>he.id===G.id)?_e.filter(he=>he.id!==G.id):[..._e,G])},$=(G,ie="single")=>{g(ie==="single"?[G]:_e=>_e.some(he=>he.id===G.id)?_e.filter(he=>he.id!==G.id):[..._e,G])},Q=({index:G,key:ie,style:_e})=>{const he=V[G];return h.jsx("div",{style:_e,children:h.jsx(RC,{item:he,className:`user-card ${d.some(Ce=>Ce.id===he.id)?"selected":""} ${V.length!==G+1?"border-bottom":""}`,type:"single",title:he!=null&&he.firstname?Pv(he==null?void 0:he.firstname,he==null?void 0:he.lastname):he==null?void 0:he.name,subTitle:he==null?void 0:he.designation,iconImg:he==null?void 0:he.avatar,isRoundedIcon:!0,handleItemSelect:H})},ie)},Y=()=>d.length===0?(Qt("Users not selected!","error"),!1):!0,le=()=>(p==null?void 0:p.length)===0?(Qt("Badge not selected!","error"),!1):!0;function ae(G){l(Number(G))}const te=()=>{s===0&&Y()?l(1):s===1&&le()&&de()};async function de(){b(!0);const G=d[0],ie=p[0],_e={receiver_id:G==null?void 0:G.id,receiver_info:G,badge_id:ie.id,status:"active"};Q4.sendBadge(_e).then(he=>{console.log("sendBadge response result = ",he.data),he.data.status==="success"&&(b(!1),Qt("Badge sent successfully!","success"),n("/badges",{state:{data:"sent"}}))}).catch(he=>{console.log(he),Qt("Failed to Send Badge!","error")}).finally(()=>{b(!1)})}return O?h.jsx(qi,{className:"position-relative",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(ci,{type:"details"})})}):D?h.jsx(Ga,{className:"mt-5",children:j.message}):h.jsx(h.Fragment,{children:h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx("div",{className:"send-badges-page",children:h.jsxs(vU,{activeKey:s,onSelect:ae,id:"stepper-tabs",children:[h.jsxs(Zn,{eventKey:0,title:"Step 1",unmountOnExit:!0,children:[h.jsxs("div",{className:"py-0 pt-2 sticky-top",style:{top:"var(--navbar-height)",padding:"0 0rem",background:"var(--color-body-bg-light)"},children:[h.jsxs(Ga,{size:"",className:"mb-1",children:[h.jsx("span",{className:"text-danger",children:"*"})," Whom do you want to give a badge?"]}),h.jsxs("div",{className:"py-1 pb-0",children:[h.jsx(XO,{filters:t,onSearch:G=>y(G),className:"mb-"}),(V==null?void 0:V.length)>0&&(_==null?void 0:_.length)>0&&h.jsx(Ga,{size:"sm",className:"px-1 text-gray9",children:`Results found ${V==null?void 0:V.length}`})]}),h.jsx("div",{className:"px-1 d-block mb-1",children:h.jsx(BZ,{items:d,className:"",type:"single",handleRemoveItems:H})})]}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-0",style:{height:"calc(100vh - 35vh)",overflowY:"auto",overflowX:"hidden"},children:h.jsx(oF,{children:({height:G,width:ie})=>h.jsx(cF,{width:ie,height:G,rowHeight:60,rowCount:V.length,rowRenderer:Q})})}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:te,children:"Next"},"step2_handler")})]})})]}),h.jsx(Zn,{eventKey:1,title:"Step 2",unmountOnExit:!0,children:h.jsxs("div",{className:"form-step-container",children:[h.jsxs(Ga,{size:"",className:"mb-1",children:[h.jsx("span",{className:"text-danger",children:"*"})," Select a badge"]}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3",style:{overflowY:"auto",borderBottom:"1px solid var(--color-gray-light5)"},children:h.jsx(h.Fragment,{children:(M==null?void 0:M.length)>0&&M.map(G=>h.jsx(h.Fragment,{children:h.jsx(RC,{item:G,className:`user-card ${p.some(ie=>ie.id===(G==null?void 0:G.id))?"selected":""}`,type:"single",title:G==null?void 0:G.title,subTitle:"",iconImg:G==null?void 0:G.image,isRoundedIcon:!1,handleItemSelect:$},G==null?void 0:G.id)}))})}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>l(0),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:te,children:E?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Processing"]}):"Submit"},"submit_handler")})]})})]})})]})})})})})}function zst(){const n=Ii(),[t,i]=k.useState([]),[s,l]=k.useState([]),[d,u]=k.useState([]),[p,g]=k.useState(!1),[_,y]=k.useState([]),[E,b]=k.useState("step1"),[A,N]=k.useState(!1);JSON.parse(Ai.getAuthUser());const O=k.useRef(),D=()=>{O.current.value="",l(t)};function P(te,de){console.log("searchItems - filteredData =",de);const G=de.filter((ie,_e)=>ie.firstname.toLowerCase().includes(te.toLowerCase())||ie.lastname.toLowerCase().includes(te.toLowerCase())||ie.designation.toLowerCase().includes(te.toLowerCase()));return console.log("Result =",G),G}const j=tx.debounce(te=>{console.log("This is function from lodash..."),console.log("Search text =",te);const de=t;te.trim().length>0?(console.log(te.trim()),l(P(te.trim(),de))):l(de)},500),M=(te,de)=>{var G;if(console.log("Key in handleSelectedTab =",te),console.log("formik in handleSelected Tag = ",de),E==="step1"&&(de!=null&&de.values)&&!((G=de.values)!=null&&G.receiver_id)){Qt("User not selected!","error");return}b(te)},V={receiver_id:"",badge_id:"",points:""},H=uc({}),$=async(te,{resetForm:de})=>{if(console.log("Form Values :",te),E==="step2"&&te&&!(te!=null&&te.badge)){Qt("badge not selected!","error");return}const G=t.filter(Ce=>Ce.id===te.receiver_id)[0];console.log("receiver_info = ",G);const ie=_.filter(Ce=>Ce.id===te.badge)[0];console.log("selectedBadge = ",ie);const _e={receiver_id:te.receiver_id,receiver_info:G,badge_id:ie.id,status:"active"};console.log("Final formData = ",_e);const he=await le(_e);console.log("sendBadgeResponse in onSubmit = ",he)};async function Q(te){g(!0),hs.getAllRecipients(te).then(de=>{var G,ie;if(console.log("getAllRecipients called == ",de.data),de.data.status==="success"){const _e=(ie=(G=de.data)==null?void 0:G.data)==null?void 0:ie.recipients;i(_e),l(_e),g(!1)}}).catch(de=>{console.log("ERROR in getAllRecipients ",de),i([]),l([]),g(!1)})}async function Y(){Q4.getBadgeCreationHelpers().then(te=>{var de;if(console.log("getBadgeCreationHelpers called == ",te.data),te.data.status==="success"){const G=(de=te.data)==null?void 0:de.data.badges;y(G)}}).catch(te=>{console.log("ERROR in getBadgeCreationHelpers ",e),y([])})}async function le(te){console.log("called sendBadge in sendBadge comp...",te),N(!0),Q4.sendBadge(te).then(de=>{console.log("sendBadge response result = ",de.data),de.data.status==="success"&&(N(!1),Qt("Badge sent successfully!","success"),n("/badges",{state:{data:"sent"}}))}).catch(de=>{console.log(de),N(!1),Qt("Failed to Send Badge!","error")})}const ae=async()=>{g(!0);const{value:te}=await H7.get({key:"badgeUsers"});if(console.log("Badge Users:",JSON.parse(te)),te){let de=JSON.parse(te);i(de),l(de),g(!1)}else Q("badges")};return k.useEffect(()=>{ae(),Y()},[]),h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(id,{initialValues:V,validationSchema:H,onSubmit:$,children:te=>{var de,G;return h.jsxs(kt,{className:"form_style",onSubmit:te.handleSubmit,children:[h.jsxs(Zn.Container,{id:"badge-step-form",className:"main_tabs",activeKey:E,onSelect:ie=>M(ie),children:[h.jsx("div",{className:"tab_links d-none",children:h.jsxs(jn,{variant:"pills",className:"nav-stepper justify-content-center",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step1",children:h.jsx("div",{className:"",children:"1"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step2",children:h.jsx("div",{className:"",children:"2"})})})]})}),h.jsxs(Zn.Content,{className:"p-2 pt-0",children:[h.jsxs(Zn.Pane,{className:"",eventKey:"step1",children:[h.jsxs("div",{className:"form-step-container",children:[h.jsxs("div",{className:"font-14 fw-sb py-1 pt-0",children:[h.jsx("span",{className:"text-danger",children:"*"})," Whom do you want to give a badge?"]}),!p&&(t==null?void 0:t.length)>0?h.jsx("div",{className:"py-1",children:h.jsxs(kt.Group,{className:"form-group rounded_corners search_field autocomplete_field mb-1 position-relative px-1",children:[h.jsx(kt.Control,{type:"text",name:"searchInput",onChange:ie=>{console.log("Search input = ",ie),j(ie.target.value)},ref:O,placeholder:"Search",style:{backgroundImage:"url(/img/search-icon.png)",backgroundRepeat:"no-repeat",backgroundPosition:"center right 12px"},autoComplete:"off"}),((de=O==null?void 0:O.current)==null?void 0:de.value.length)>0&&h.jsx(Pt,{onClick:D,className:"btn-theme btn-icon btn-sm btn-gray position-absolute",style:{top:4,right:6,fontSize:18},type:"button",children:h.jsx(VE,{})},"search-clear-btn"),((G=O==null?void 0:O.current)==null?void 0:G.value.length)>0&&h.jsx("span",{className:"font-13 fw-sb px-1 text-gray9",children:`Results found ${s==null?void 0:s.length}`})]})}):h.jsx(h.Fragment,{}),d&&d.length>0?h.jsx(h.Fragment,{children:h.jsx("div",{className:"p-2 d-flex flex-nowrap no-scrollbar align-items-center overflow-auto mb-1 border-bottom bg-gray-lighter2",children:h.jsxs(h.Fragment,{children:[h.jsx("span",{className:"font-14 me-2",children:"Selected: "}),d.map((ie,_e)=>h.jsxs("div",{className:"d-flex align-items-center p-1 rounded-3 text-wrap border me-2 bg-white",children:[h.jsx("div",{className:"overflow-hidden rounded-circle flex-shrink-0",style:{width:24,height:24},children:h.jsx("img",{src:ie.image,className:"img-fluid mx-auto",alt:ie.name,style:{objectFit:"cover"}})}),h.jsx("div",{className:"ms-2 font-12 text-truncate flex-grow-1",children:ie.name})]},ie.id))]})})}):h.jsx(h.Fragment,{}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-0",style:{maxHeight:"calc(100vh - 35vh)",overflowY:"auto"},children:p?h.jsx(ci,{type:"details"}):h.jsx(h.Fragment,{children:!p&&(t==null?void 0:t.length)>0?h.jsx(h.Fragment,{children:(s==null?void 0:s.length)>0?h.jsx(h.Fragment,{children:s.map((ie,_e)=>h.jsx(y4,{className:`${s.length!==_e+1?"border-bottom":""}`,name:"receiver_id",item:ie,inputName:"users",title:Pv(ie==null?void 0:ie.firstname,ie==null?void 0:ie.lastname),subTitle:ie==null?void 0:ie.designation,id:ie==null?void 0:ie.id,iconImg:ie==null?void 0:ie.avatar,handleChange:te.handleChange,isDisabled:!1,isChecked:te.values.receiver_id.indexOf(ie==null?void 0:ie.id)>-1,initialValues:V==null?void 0:V.receiver_id,selectedUserList:d,setSelectedUserList:u},ie.id))}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No user found."})})})})}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No more records"})})})})})})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:()=>M("step2",te),children:"Next"},"step2_handler")})]})})]}),h.jsxs(Zn.Pane,{className:"",eventKey:"step2",children:[h.jsxs("div",{className:"form-step-container",children:[h.jsxs("div",{className:"font-14 fw-sb py-2",children:[h.jsx("span",{className:"text-danger",children:"*"})," Select badge"]}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3",style:{overflowY:"auto",borderBottom:"1px solid var(--color-gray-light5)"},children:(_==null?void 0:_.length)>0&&_.map(ie=>{var _e,he;return h.jsx(y4,{className:"card-normal-radius",name:"badge",item:ie,inputName:"badges",title:ie.title,subTitle:`${ie.points} Points`,id:ie==null?void 0:ie.id,iconImg:ie==null?void 0:ie.image,handleChange:te.handleChange,isDisabled:!1,isChecked:((he=(_e=te.values)==null?void 0:_e.badge)==null?void 0:he.indexOf(ie.id))>-1,initialValues:V==null?void 0:V.badge_id},ie.id)})})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>M("step1"),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:()=>M("step3",te),children:"Next"},"step3_handler")})]})})]})]})]}),E==="step2"&&h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 justify-content-center gx-3 mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>M("step1"),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx("div",{className:"btn-wrap text-center",children:h.jsx(Pt,{type:"submit",className:"btn-theme btn-primary btn-md w-100",children:A?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Processing"]}):te.isValid?"Submit":"Please fill out all info"})})})]})})]})}})})})}function Hst({mediaType:n,mediaSource:t,setUploadMediaUrl:i,className:s,contestId:l,handleClose:d,data:u,fileSizelimit:p,videoDurationLimit:g,audioDurationLimit:_}){console.log("mediaSource = ",t),Ii();const[y,E]=k.useState(),[b,A]=k.useState(null),[N,O]=k.useState(""),[D,P]=k.useState(null),[j,M]=k.useState(""),[V,H]=k.useState(0),[$,Q]=k.useState(!1),[Y,le]=k.useState(0),[ae,te]=k.useState(!1);k.useState(!1);const[de,G]=k.useState(!1),[ie,_e]=k.useState(null),[he,Ce]=k.useState(!1),{counter:fe,handleStart:me,handlePause:Ne,handleReset:Fe}=FZ(0,!0),je=k.useRef(!1);k.useRef(null);const Ve=k.useRef(null),Re=k.useRef(null);k.useRef(null);const Be=k.useRef(null),Xe=k.useRef(null);k.useRef(null);const we={title:""},Ge=uc({}),rt=n?n==="pdf"?".pdf":`${n}/*`:"image/*",pt=n!==""?"user":"",Ze=n?`${n}-gallery-file`:"media-gallery-file",Je=n?`${n}-camera-file`:"media-camera-file",_t=()=>{Ce(!1)},Xt=an=>{console.log("handleShowRecordAudioModal () - MEDIA TYPE = ",an),Ce(!0)};async function Ht(){console.log("onRecordingStart called...");const an=await Lp.startRecording();console.log("recordStartResult = ",an)}async function gn(){console.log("onRecordingStop called...");const an=await Lp.stopRecording();if(console.log("onRecordingStop counter =",fe),console.log("recordStopResult = ",an),an.value){const ne=an.value;H(Math.round(ne.msDuration/1e3)),Q(!0),G(!0);const Se=ne.msDuration,Ue=Math.round(Se/1e3);console.log("fileDurationInMS = ",Se," fileDurationInSec =",Ue);const tt=ne.recordDataBase64,Te=ne.mimeType;let Pe=Te.substring(0,Te.indexOf(";"));const Qe=`data:${Pe};base64,${tt}`;var ye=It(Qe);console.log("Binary file =",ye);var J=new Blob([ye],{type:`${Pe}`});console.log("blob = ",J),E({...an.value,size:J.size}),_e(Pe);const nt=kR(J.size,{standard:"jedec"});console.log("Recorded Audio fileSize = ",nt),P(nt);const $e=URL.createObjectURL(J);console.log("blobUrl = ",$e),A($e),console.log("File Obj =",y)}else console.log("Unable to record/play audio")}function It(an){var ye=";base64,",J=an.indexOf(ye)+ye.length,ne=an.substring(J),Se=window.atob(ne),Ue=Se.length,tt=new Uint8Array(new ArrayBuffer(Ue));for(let Te=0;Tenew Promise((ye,J)=>{const ne=new FileReader;ne.onload=()=>{const Se=ne.result;ye(Se)},ne.onerror=()=>{J(new Error("Unable to read the file as binary data"))},ne.readAsArrayBuffer(an)}),Me=new AbortController,bt=zr.CancelToken.source();k.useEffect(()=>()=>{console.log("Called cancellation from UploadResponseMediaFile..."),je.current&&(console.log("Called cancellation inside if(bool.current)...",je==null?void 0:je.current),bt.cancel("Upload cancelled by user"),Me.abort())},[je.current]);function St(){je.current=!0,d(),bt.cancel("Upload cancelled by user"),Me.abort(),Me.signal.aborted&&Qt("Uploading cancelled!","error")}const Lt=async(an,{resetForm:ye})=>{if(console.log("Form Values :",an),console.log("bool at start of onSubmit = ",je==null?void 0:je.current),N===""){console.log('Inside if (mediaUrl === "")'),Qt("Upload Valid File","error");return}te(!0);let J="";de?J=ie.split("/")[1]:J=y.name.substring(y.name.lastIndexOf(".")+1);const ne={fileextention:J,modulename:"wallmessage"};console.log("data for getSignedUrl = ",ne);const Se=await hs.getSignedUploadUrl(ne);let Ue=null;if(de){const Pe=y==null?void 0:y.recordDataBase64,Qe=y==null?void 0:y.mimeType,$e=`data:${Qe.substring(0,Qe.indexOf(";"))};base64,${Pe}`;Ue=It($e),console.log("Binary file =",Ue)}else Ue=await it(y);const tt={headers:{},cancelToken:bt.token,signal:Me.signal,onUploadProgress:function(Pe){const Qe=Math.round(Pe.loaded*100/Pe.total);le(Qe)}};console.log(tt);const Te=await zr.put(Se.data.data.uploadURL,Ue,tt);if(console.log("result =",Te),console.log("result status =",Te.status),Te.status===200){if(console.log("uploadProgress =",Y),console.log("bool after upload = ",je==null?void 0:je.current),je.current){i("");return}i(Se.data.data.resourceUrl),setTimeout(()=>{d()},500)}else console.log("THERE IS AN ERROR IN uploadConfig...");console.log("Outside if uploadProgress =",Y)};function tn(an){console.log("getDuration called...",an),de||H(Math.round(an))}const un=({played:an,playedSeconds:ye,loaded:J,loadedSeconds:ne})=>{var Se,Ue,tt;console.log("File Obj =",y),console.log("handleProgress called...",J),n==="video"&&V>((Se=u==null?void 0:u.limits)==null?void 0:Se.video)||n==="audio"&&V>((Ue=u==null?void 0:u.limits)==null?void 0:Ue.audio)||(y==null?void 0:y.size)>((tt=u==null?void 0:u.limits)==null?void 0:tt.size)*1024*1024?(console.log("getDuration condition If part"),console.log("fileDuration = ",V," mediaType = ",n," Size =",y==null?void 0:y.size),O("")):(console.log("getDuration condition else part"),console.log("fileDuration = ",V," mediaType = ",n," Size =",y==null?void 0:y.size),O(y.name),M(""))};return console.log("Duaration in minutes = ",pE(V)),console.log("D in minutes using secondsToTime = ",eQ(V,":")),h.jsxs(h.Fragment,{children:[h.jsx(id,{initialValues:we,validationSchema:Ge,onSubmit:Lt,enableReinitialize:!0,children:an=>{var ye,J,ne;return h.jsxs(kt,{className:"form_style",onSubmit:an.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2",children:[h.jsx("div",{className:"font-13",children:"Choose upload from"}),h.jsx("div",{className:"btn-wrap d-flex py-2",children:t.length>0&&h.jsx(h.Fragment,{children:t.map((Se,Ue)=>Se.toLowerCase()!=="camera"?h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:Xe,name:Ze,id:Ze,className:"uploadMediafile",accept:rt,onChange:mt,disabled:$}),h.jsx("label",{htmlFor:Ze,className:"justify-content-center px-2 gallery-btn",children:"Gallery"})]},`${Se}-${Ue}`):h.jsxs(dn.Fragment,{children:[(n==="video"||n==="image")&&h.jsxs("div",{className:"flex-grow-1",children:[h.jsx("input",{type:"file",ref:Be,name:Je,id:Je,className:"uploadMediafile",capture:pt,accept:rt,onChange:mt,disabled:$}),h.jsx("label",{htmlFor:Je,className:"justify-content-center px-2 capture-btn",children:"Camera"})]}),n==="audio"&&h.jsx("div",{className:"flex-grow-1",children:h.jsx(Pt,{onClick:xt,className:"btn-theme btn-primary btn-md w-100 font-14 fw-sb",style:{padding:"10px 12px"},children:"Record"})})]},`${Se}-${Ue}`))})})]}),Y>0&&h.jsxs("div",{className:"d-flex justify-content-center align-items-center p-2 pb-0",children:[h.jsx("progress",{value:Y,max:"100"}),h.jsx("span",{className:"font-12 fw-sb ps-2",children:`${Y}%`})]}),h.jsx("div",{className:"d-flex justify-content-between font-14",children:!y&&V<=0?"No file selected":n==="video"&&V>((ye=u==null?void 0:u.limits)==null?void 0:ye.video)||n==="audio"&&V>((J=u==null?void 0:u.limits)==null?void 0:J.audio)||(y==null?void 0:y.size)>((ne=u==null?void 0:u.limits)==null?void 0:ne.size)*1024*1024?h.jsx(h.Fragment,{children:h.jsxs("div",{className:`p-2 rounded-1 w-100 ${y?"d-flex":"d-none"}`,style:{background:"var(--color-red-lighter)"},children:[h.jsxs("span",{className:" fw-sb font-13 flex-grow- me-1",children:[h.jsx("span",{className:"text-dange",children:"Upload limit exceeds"})," ",pE(V)]}),h.jsx("span",{className:"fw-sb font-13",children:D?` and ${D}`:""})]})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:`p-2 rounded-1 w-100 ${y?"d-flex":"d-none"}`,style:{background:"var(--color-green-lighter)"},children:[n==="video"||n==="audio"&&h.jsxs("span",{className:"font-13 fw-sb flex-grow- text-break",children:["Uploaded file: ",pE(V)," ","+ ' and '"]}),h.jsx("span",{className:"ms-1 fw-sb font-13",children:D?`${D}`:""})]})})}),h.jsxs("div",{className:"preview-container-wrapper position-relative",children:[h.jsx(Pt,{type:"button",className:`btn-theme btn-red btn-sm btn-icon position-absolute rounded-circle ${$?"d-block":"d-none"} ${ae?"pe-none":""}`,style:{right:"-10px",top:"-10px",zIndex:1},onClick:dt,children:h.jsx(Zt,{tag:"delete7",className:"font-26"})}),h.jsx(Jd,{aspectRatio:`${n==="audio"?"21x9":n==="image"?"1x1":"16x9"}`,className:"preview-container",children:h.jsxs(h.Fragment,{children:[n==="image"&&h.jsx("img",{ref:Ve,src:"",alt:"preview image",className:"img-fluid mx-auto d-none"}),(n==="video"||n==="audio")&&h.jsx(XE,{url:b,width:"100%",height:"100%",controls:!0,playing:!1,onDuration:Se=>tn(Se),onProgress:({played:Se,playedSeconds:Ue,loaded:tt,loadedSeconds:Te})=>un({played:Se,playedSeconds:Ue,loaded:tt,loadedSeconds:Te})}),n==="pdf"&&h.jsxs("div",{ref:Re,className:"d-none",children:[h.jsx(Zt,{tag:"pdf1",className:"me-2 font-30 text-danger"}),h.jsx("span",{className:"font-16 fw-sb",children:y==null?void 0:y.name})]})]})})]}),j&&h.jsx(h.Fragment,{children:h.jsx("div",{className:"d-flex w-100 p-1 rounded-2 mt-2",style:{background:"var(--color-red-lighter)"},children:h.jsx("span",{className:"d-block text-danger font-13 fw-sb",children:j})})}),h.jsxs("div",{className:"btn-wrap pt-3 pb-4 d-flex justify-content-center position-fixed px-3 bg-white border-top",style:{bottom:0,right:0,left:0},children:[h.jsx(Pt,{type:"button",className:"btn-theme btn-gray btn-md flex-grow-1",onClick:St,children:"Back"}),h.jsx(Pt,{type:"submit",disabled:!an.isValid,className:"btn-theme btn-primary btn-md flex-grow-1",children:ae?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):(an.isValid,"Confirm Upload")})]})]})}}),h.jsx(MSe,{show:he,handleClose:_t,onRecordingStart:Ht,onRecordingStop:gn,counter:fe,handlePause:Ne,handleStart:me,className:""})]})}function vbe(n){var l,d,u,p,g,_,y,E,b,A,N,O;console.log("UploadMessageMediaTypeModal props - ",n),k.useState(!1);const t=(d=(l=n.data)==null?void 0:l.limits)!=null&&d.size?(p=(u=n.data)==null?void 0:u.limits)==null?void 0:p.size:"NA",i=(_=(g=n.data)==null?void 0:g.limits)!=null&&_.video?(E=(y=n.data)==null?void 0:y.limits)==null?void 0:E.video:"NA",s=(A=(b=n.data)==null?void 0:b.limits)!=null&&A.audio?(O=(N=n.data)==null?void 0:N.limits)==null?void 0:O.audio:"NA";return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,size:"md",scrollable:!0,className:"theme-modal modal-bottom -modal",show:n.show.isVisible,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb",closeButton:!0,children:h.jsx(vn.Title,{className:"d-flex align-items-center",children:`Upload ${n.uploadMediaType}`})}),h.jsxs(vn.Body,{className:"no-scrollbar",style:{paddingBottom:100},children:[h.jsx(et,{className:"mb-2 mb-sm-2",children:h.jsxs(et.Body,{className:"p-1 p-sm-2 font-13 text-gray4",style:{background:"var(--color-yellow-lighter)"},children:[h.jsx("span",{className:"fw-b font-13",children:"Note: "}),"Upload file size should not exceeds"," ",h.jsx("span",{className:"fw-b text-danger",children:t!=="NA"&&`${t} mb`})," ",n.uploadMediaType.toLowerCase()==="audio"||n.uploadMediaType.toLowerCase()==="video"&&h.jsxs(h.Fragment,{children:["and video/audio duration not more than"," ",h.jsx("span",{className:"fw-b text-danger",children:i!=="NA"&&`${i}s`})]}),"."]})}),h.jsx(Hst,{mediaType:n.uploadMediaType.toLowerCase(),mediaSource:n==null?void 0:n.resSources,setUploadMediaUrl:n.setUploadMediaUrl,handleClose:n.handleClose,fileSizelimit:t,videoDurationLimit:i,audioDurationLimit:s})]})]})})}function Gst({className:n,type:t,item:i,name:s,title:l,subTitle:d,id:u,iconImg:p,isDisabled:g,isChecked:_,handleChange:y,selectedUserList:E,setSelectedUserList:b}){const A=n||"",N=t||"radio",O=p||((i==null?void 0:i.type)==="group"?"/img/groups-icon.png":"/img/user-profile.jpg"),D=l||"Guest User",P=d||"",j={};g?j.disabled=!0:j.disabled=!1;function M(V){console.log(V.target),console.log(JSON.stringify(V.target.value)),y(V),b&&(!E.includes(V.target.value)&&!_?b(H=>{let $={id:V.target.value,name:D,image:O};return console.log("tempUserObj = ",$),[...H,$]}):(console.log("isCHecked = ",_),_&&b(H=>{let $=H.filter(Q=>Q.id!==V.target.value);return console.log("tempUserObj = ",$),$})))}return h.jsx(h.Fragment,{children:h.jsxs(et,{className:`card-theme border-0 rounded-1 custom-radio-list-btn-card card-md ${A}`,children:[h.jsx("input",{type:N,id:u,name:s,value:i.id,onChange:M,...j,checked:_||!1}),h.jsx("label",{htmlFor:u,children:h.jsxs(et.Body,{className:"position-relative rounded-1",children:[h.jsx("div",{className:"d-flex profile-info-container align-items-center",children:h.jsxs("div",{className:"flex-shrink-0 media-icon-container position-relative d-flex align-items-center",children:[h.jsx("div",{className:"media-icon-wrapper",children:h.jsx(us,{src:O,alt:`${D} image`,className:"img-fluid"})}),h.jsxs("div",{className:"text-start flex-grow-1 ms-2 ms-sm-3 media-info-container d-flex flex-wrap",children:[h.jsx("span",{className:"welcome-user fw-n",style:{maxWidth:"90%"},children:`${D} `}),h.jsx("div",{className:"d-block w-100 font-13 text-gray6",children:$R(P)})]})]})}),h.jsx(Zt,{tag:"circle1",className:"font-20 position-absolute radio-status-icon unchecked-icon"}),h.jsx(Zt,{tag:"check2",className:"font-20 position-absolute radio-status-icon checked-icon"})]})})]})})}function Wst(){const n=Ii();JSON.parse(Ai.getAuthUser());const t=["name","designation"],i="message",s=["audio","video","image","pdf"],l=["gallery"],d=500,[u,p]=k.useState(0),[g,_]=k.useState(""),[y,E]=k.useState([]),[b,A]=k.useState(""),[N,O]=k.useState(""),[D,P]=k.useState(""),[j,M]=k.useState(""),[V,H]=k.useState(""),[$,Q]=k.useState(!1),[Y,le]=k.useState({isVisible:!1});k.useRef(),k.useRef();const ae=async()=>{const rt=await LE.getInfo();_(rt.platform)};k.useEffect(()=>{ae()},[]);const te=()=>{le({isVisible:!1})},de=rt=>{O(rt),le({isVisible:!0})},G=async({queryKey:rt})=>{var Je,_t;const[pt,Ze]=rt;try{const Xt=await hs.getAllRecipients(Ze);if(Xt.data.status==="success"){const Ht=((_t=(Je=Xt.data)==null?void 0:Je.data)==null?void 0:_t.recipients)||[],gn=new Set;return Ht.filter(xt=>gn.has(xt.id)?!1:(gn.add(xt.id),!0))}return[]}catch{throw new Error("Error fetching all recipients")}},{isLoading:ie,isPending:_e,isFetching:he,isError:Ce,data:fe,error:me}=Qd({queryKey:["messageRecipients",i],queryFn:G}),Ne=k.useMemo(()=>FO(fe,b,t),[fe,b]),Fe=(rt,pt="multi")=>{E(pt==="single"?[rt]:Ze=>Ze.some(Je=>Je.id===rt.id)?Ze.filter(Je=>Je.id!==rt.id):[...Ze,rt])},je=({index:rt,key:pt,style:Ze})=>{const Je=Ne[rt];return h.jsx("div",{style:Ze,children:h.jsx(RC,{item:Je,className:`user-card ${y.some(_t=>_t.id===Je.id)?"selected":""} ${Ne.length!==rt+1?"border-bottom":""}`,type:"multi",title:Je!=null&&Je.firstname?Pv(Je==null?void 0:Je.firstname,Je==null?void 0:Je.lastname):Je==null?void 0:Je.name,subTitle:Je==null?void 0:Je.designation,iconImg:Je==null?void 0:Je.avatar,isRoundedIcon:!0,handleItemSelect:Fe})},pt)},Ve=()=>y.length===0?(Qt("Users not selected!","error"),!1):!0,Re=()=>!j||j===""?(Qt("Title required!","error"),!1):!V||V===""?(Qt("Message required!","error"),!1):!0;function Be(rt){p(Number(rt))}const Xe=()=>{u===0&&Ve()?p(1):u===1&&Re()?p(2):u===2&&we()};async function we(){Q(!0);const rt=y.filter(Je=>Je.type==="user").map(Je=>Je.id),pt=y.filter(Je=>Je.type==="group").map(Je=>Je.id),Ze={title:j,body:V,media_type:N,media_url:D,groups:pt,users:rt};So.sendWallMessage(Ze).then(Je=>{console.log("sendWallMessage response result = ",Je.data),Je.data.status==="success"&&(Q(!1),Qt("Message sent successfully!","success"),n("/messages",{state:{data:"sent"}}))}).catch(Je=>{console.log(Je),Q(!1),Qt("Failed to Send Message!","error")})}function Ge(rt){rt&&P(rt)}return _e?h.jsx(qi,{className:"position-relative",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(ci,{type:"details"})})}):Ce?h.jsx(Ga,{className:"mt-5",children:me.message}):h.jsx(qi,{className:"",children:h.jsx(Yn,{className:"mb-4",children:h.jsxs("div",{className:"send-messages-page",children:[h.jsxs(vU,{activeKey:u,onSelect:Be,id:"stepper-tabs",children:[h.jsxs(Zn,{eventKey:0,title:"Step 1",unmountOnExit:!0,children:[h.jsxs("div",{className:"py-0 pt-2 sticky-top",style:{top:"var(--navbar-height)",padding:"0 0rem",background:"var(--color-body-bg-light)"},children:[h.jsxs(Ga,{size:"",className:"mb-1",children:[h.jsx("span",{className:"text-danger",children:"*"})," Whom do you want to appreciate?"]}),h.jsxs("div",{className:"py-1 pb-0",children:[h.jsx(XO,{filters:t,onSearch:rt=>A(rt),className:"mb-"}),(Ne==null?void 0:Ne.length)>0&&(b==null?void 0:b.length)>0&&h.jsx(Ga,{size:"sm",className:"px-1 text-gray9",children:`Results found ${Ne==null?void 0:Ne.length}`})]}),h.jsx("div",{className:"px-1 d-block mb-1",children:h.jsx(BZ,{items:y,className:"",type:"multi",handleRemoveItems:Fe})})]}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-0",style:{height:"calc(100vh - 35vh)",overflowY:"auto",overflowX:"hidden"},children:h.jsx(oF,{children:({height:rt,width:pt})=>h.jsx(cF,{width:pt,height:rt,rowHeight:60,rowCount:Ne.length,rowRenderer:je})})}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:Xe,children:"Next"},"step2_handler")})]})})]}),h.jsx(Zn,{eventKey:1,title:"Step 2",unmountOnExit:!0,children:h.jsxs("div",{className:"form-step-container pt-2",children:[h.jsx(Ga,{size:"",className:"mb-1",children:"Write a Message"}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2 pt-2",children:[h.jsxs(kt.Label,{className:"font-14 fw-sb",children:[h.jsx("span",{className:"text-danger",children:"*"})," Message Title"]}),h.jsx(kt.Control,{type:"text",placeholder:"",name:"title",value:j,onChange:rt=>M(rt.target.value),autoComplete:"off"})]}),h.jsxs(kt.Group,{className:"form-group rounded_corners mb-3 pt-2",children:[h.jsxs(kt.Label,{className:"font-14 fw-sb",children:[h.jsx("span",{className:"text-danger",children:"*"})," Brief Message"]}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto",maxHeight:"100px"},placeholder:"",name:"body",value:V,onChange:rt=>H(rt.target.value),autoComplete:"off"})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>p(0),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:Xe,children:"Next"},"step3_handler")})]})})]})}),h.jsx(Zn,{eventKey:2,title:"Step 3",unmountOnExit:!0,children:h.jsxs("div",{className:"form-step-container",children:[h.jsxs(Ga,{size:"",className:"mb-1",children:["Choose a media type to upload"," ",h.jsx("span",{className:"d-block font-13 text-gray6",children:"(Optional)"})]}),h.jsxs("div",{className:"content-container no-scrollbar border-botto px-1 py-3",style:{overflowY:"auto",overflowX:"hidden"},children:[(s==null?void 0:s.length)>0&&h.jsx(fn,{className:"row-cols-2 mb-3 g-3",children:s==null?void 0:s.map((rt,pt)=>h.jsx(Gt,{children:h.jsx(et,{className:"card-theme",onClick:()=>de(rt),children:h.jsxs(et.Body,{className:"p-2 p-sm-3 justify-content-center d-flex flex-column",children:[h.jsxs("div",{className:"icon-wra",children:[rt==="video"&&h.jsx(Zt,{tag:"play1",className:"mb-2 font-36 text-theme-primary"}),rt==="audio"&&h.jsx(Zt,{tag:"consult1",className:"mb-2 font-36 text-theme-primary"}),rt==="pdf"&&h.jsx(Zt,{tag:"pdf1",className:"mb-2 font-36 text-theme-primary"}),rt==="image"&&h.jsx(Zt,{tag:"image2",className:"mb-2 font-36 text-theme-primary"})]}),h.jsxs("div",{className:"font-14 fw-sb pt-sm-2",children:[`Upload ${rt}`,h.jsx("small",{className:"d-block fw-sb text-danger font-11",children:h.jsxs(h.Fragment,{children:["max ",d,"mb"]})})]})]})})},`${pt}-${rt}`))}),h.jsx("div",{children:D&&h.jsx(h.Fragment,{children:h.jsx("div",{className:"card card-theme shadow-sm rounded-3 border-0 mb-3 p-2",style:{backgroundColor:"var(--color-green-lighter)"},children:h.jsxs("div",{className:"d-flex media-header-container align-items-center",children:[h.jsx("div",{className:"flex-shrink-0 media-icon-container position-relative d-flex",children:h.jsx("div",{className:"d-flex justify-content-center align-items-center media-icon-wrapper overflow-hidden rounded-circle",style:{backgroundColor:"var(--color-green-light)"},children:h.jsx(Zt,{tag:"check1",className:"font-28 text-success"})})}),h.jsx("div",{className:"text-start flex-grow-1 ms-2 ms-sm-3 media-info-container",children:h.jsxs("span",{className:"d-block font-14",children:["Successfully uploaded selected ",N,". Click submit button to send a message."]})})]})})})})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>p(1),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:Xe,children:$?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Processing"]}):"Submit"},"submit_handler")})]})})]})})]}),h.jsx(vbe,{show:Y,handleClose:te,resSources:l,uploadMediaType:N,className:"",setUploadMediaUrl:P,saveUploadFile:Ge,deviceOS:g})]})})})}function $st(){Ii();const[n,t]=k.useState(""),[i,s]=k.useState([]),[l,d]=k.useState([]),[u,p]=k.useState([]),[g,_]=k.useState(!1);k.useState([]),k.useState([]);const[y,E]=k.useState("step1"),[b,A]=k.useState(!1),[N,O]=k.useState({isVisible:!1}),[D,P]=k.useState(""),[j,M]=k.useState(""),[V,H]=k.useState(!1),$=k.useRef();JSON.parse(Ai.getAuthUser());const Q=["audio","video","image","pdf"],Y=["gallery"],le=500,ae=async()=>{const Re=await LE.getInfo();t(Re.platform)};k.useEffect(()=>{ae()},[]);const te=()=>{O({isVisible:!1})},de=Re=>{P(Re),O({isVisible:!0})},G=()=>{$.current.value="",d(i)};function ie(Re,Be){console.log("searchItems - filteredData =",Be);const Xe=Be.filter((we,Ge)=>we.name.toLowerCase().includes(Re.toLowerCase()));return console.log("Result =",Xe),Xe}const _e=tx.debounce(Re=>{console.log("This is function from lodash..."),console.log("Search text =",Re);const Be=i;Re.trim().length>0?(console.log(Re.trim()),d(ie(Re.trim(),Be))):d(Be)},500),he=(Re,Be)=>{var Xe,we,Ge;if(console.log("Key in handleSelectedTab =",Re),console.log("formik in handleSelected Tag = ",Be),y==="step1"&&(Be!=null&&Be.values)&&!((Xe=Be.values)!=null&&Xe.receiver_ids)){Qt("User not selected!","error");return}if(y==="step2"&&(Be!=null&&Be.values)&&!((we=Be.values)!=null&&we.title)){Qt("Title required!","error");return}if(y==="step2"&&(Be!=null&&Be.values)&&!((Ge=Be.values)!=null&&Ge.body)){Qt("Message required!","error");return}E(Re)},Ce={receiver_ids:[],title:"",body:"",media_type:"",media_url:""},fe=uc({}),me=async(Re,{resetForm:Be})=>{console.log("Form Values :",Re);const Xe=i.filter((pt,Ze)=>Re.receiver_ids.includes(pt.id));console.log("receivers_info = ",Xe);const we=Xe.filter(pt=>pt.type==="user"),Ge=Xe.filter(pt=>pt.type=="group"),rt={title:Re.title,body:Re.body,media_type:D,media_url:j,groups:Ge,users:we};console.log("Final formData = ",rt),console.log("sendWallMessageResponse in onSubmit = ",sendWallMessageResponse)};async function Ne(Re){var Be,Xe;_(!0);try{const we=await hs.getAllRecipients(Re);if(we.data.status==="success"){console.log("getAllRecipients called == ",we.data);const Ge=(Xe=(Be=we.data)==null?void 0:Be.data)==null?void 0:Xe.recipients;console.log("userList == ",Ge);const rt=[],pt=Ge.filter(Je=>rt.includes(Je.id)?!1:(rt.push(Je.id),!0));console.log("uniqueUserList == ",pt);const Ze=Date.now();console.log(Ze),localStorage.setItem(zqe,Ze),s(pt),d(pt),await Fe(pt),_(!1)}}catch(we){console.log("ERROR in getAllRecipients in send messages ",we),s([]),d([]),_(!1)}}const Fe=async Re=>{await H7.set({key:Jhe,value:JSON.stringify(Re)}),console.log("Message user list stored")},je=async()=>{console.log("getUsers called..."),_(!0);const{value:Re}=await H7.get({key:Jhe});if(console.log("messageUsers Users:",JSON.parse(Re)),Re){let Be=JSON.parse(Re);s(Be),d(Be),_(!1)}};k.useEffect(()=>{je()},[]);function Ve(Re){Re&&M(Re)}return h.jsx(qi,{className:"position-relative",children:h.jsxs(Yn,{className:"mb-4",children:[y==="step1"&&h.jsx(Pt,{type:"button",className:"btn-theme btn-sm btn-gray position-absolute px-1 py-1",style:{top:12,right:10,zIndex:1040},onClick:()=>Ne("message"),disabled:g,children:g?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ",h.jsx("span",{className:"ms-1",children:"Loading"})]}):h.jsxs(h.Fragment,{children:[h.jsx(Zt,{tag:"reload4",className:"font-16 me-1"}),h.jsx("span",{className:"fw-sb font-13 btn-title",children:"Force Reload"})]})}),h.jsx(id,{initialValues:Ce,validationSchema:fe,onSubmit:me,children:Re=>{var Be,Xe;return console.log("initialValues - Receivers = ",Ce),console.log("formik.values - Receivers = ",Re.values),h.jsxs(kt,{className:"form_style",onSubmit:Re.handleSubmit,children:[h.jsxs(Zn.Container,{id:"appreciation-step-form",className:"main_tabs",activeKey:y,onSelect:we=>he(we),children:[h.jsx("div",{className:"tab_links d-none",children:h.jsxs(jn,{variant:"pills",className:"nav-stepper justify-content-center",children:[h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step1",children:h.jsx("div",{className:"",children:"1"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step2",children:h.jsx("div",{className:"",children:"2"})})}),h.jsx(jn.Item,{children:h.jsx(jn.Link,{className:"normal_link",eventKey:"step3",children:h.jsx("div",{children:"3"})})})]})}),h.jsxs(Zn.Content,{className:"p-2 pt-0",children:[h.jsxs(Zn.Pane,{className:"",eventKey:"step1",unmountOnExit:!0,children:[h.jsxs("div",{className:"form-step-container",children:[h.jsxs("div",{className:"font-14 fw-sb py-1 pt-0 d-flex justify-content-between",children:[h.jsxs("div",{children:[h.jsx("span",{className:"text-danger",children:"*"})," Select Recipients"]}),h.jsxs("span",{className:"self-align-end font-13 text-gray6",children:["Selected: ",u==null?void 0:u.length]})]}),!g&&(i==null?void 0:i.length)>0?h.jsx("div",{className:"py-1",children:h.jsxs(kt.Group,{className:"form-group rounded_corners search_field autocomplete_field mb-1 position-relative px-1",children:[h.jsx(kt.Control,{type:"text",name:"searchInput",onChange:we=>{console.log("Search input = ",we),_e(we.target.value)},ref:$,placeholder:"Search",style:{backgroundImage:"url(/img/search-icon.png)",backgroundRepeat:"no-repeat",backgroundPosition:"center right 12px"},autoComplete:"off"}),((Be=$==null?void 0:$.current)==null?void 0:Be.value.length)>0&&h.jsx(Pt,{onClick:G,className:"btn-theme btn-icon btn-sm btn-gray position-absolute",style:{top:4,right:6,fontSize:18},type:"button",children:h.jsx(VE,{})},"search-clear-btn"),((Xe=$==null?void 0:$.current)==null?void 0:Xe.value.length)>0&&h.jsx("span",{className:"font-13 fw-sb px-1 text-gray9",children:`Results found ${l==null?void 0:l.length}`})]})}):h.jsx(h.Fragment,{}),u&&u.length>0?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"d-flex justify-content-en",children:h.jsxs(Pt,{type:"button",className:"btn-theme btn-link btn-gray py-0 px-2 font-13 fw-sb text-gray6",onClick:()=>H(!V),"aria-controls":"selected-userlist-collapse","aria-expanded":open,children:[u==null?void 0:u.length," Selected",h.jsx(Zt,{tag:"arrow-down2",className:"ms-1"})]},"show-select-user-toggle-btn")}),h.jsx(pQ,{in:V,children:h.jsx("div",{id:"selected-userlist-collapse",children:h.jsx("div",{className:"p-2 d-flex flex-nowrap no-scrollbar align-items-center overflow-auto mb-1 border-bottom bg-gray-lighter2",children:h.jsx(h.Fragment,{children:u.map((we,Ge)=>h.jsxs("div",{className:"d-flex align-items-center p-1 rounded-3 text-wrap border me-2 bg-white",style:{maxWidth:100},children:[h.jsx("div",{className:"overflow-hidden rounded-circle flex-shrink-0",style:{width:24,height:24},children:h.jsx("img",{src:we.image,className:"img-fluid mx-auto",alt:we.name,style:{objectFit:"cover"}})}),h.jsx("div",{className:"ms-1 font-11 text-truncate pt-1 flex-grow-1",children:we.name})]},we.id))})})})})]}):h.jsx(h.Fragment,{}),h.jsx("div",{className:"content-container no-scrollbar border-botto py-3 pt-0",style:{maxHeight:"calc(100vh - 35vh)",overflowY:"auto",overflowX:"hidden"},children:g?h.jsx(ci,{type:"details"}):h.jsx(h.Fragment,{children:!g&&(i==null?void 0:i.length)>0?h.jsx(h.Fragment,{children:(l==null?void 0:l.length)>0?h.jsx(h.Fragment,{children:l.map((we,Ge)=>h.jsx(Gst,{className:`${l.length!==Ge+1?"border-bottom":""}`,type:"checkbox",name:"receiver_ids",item:we,title:we==null?void 0:we.name,subTitle:we==null?void 0:we.type,id:we==null?void 0:we.id,iconImg:we==null?void 0:we.avatar,handleChange:Re.handleChange,isDisabled:!1,isChecked:Re.values.receiver_ids.indexOf(we==null?void 0:we.id)>-1,selectedUserList:u,setSelectedUserList:p},we.id))}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No user found."})})})})}):h.jsx(h.Fragment,{children:h.jsx(et,{className:"border-0 shadow-sm text-center my-2",children:h.jsx(et.Body,{children:h.jsx("span",{className:"fw-sb font-14",children:"No more records"})})})})})})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:()=>he("step2",Re),children:"Next"},"step2_handler")})]})})]}),h.jsxs(Zn.Pane,{className:"",eventKey:"step2",unmountOnExit:!0,children:[h.jsxs("div",{className:"form-step-container",children:[h.jsx("div",{className:"font-14 fw-sb py-2",children:"Write a Message"}),h.jsx("div",{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-2 pt-2",children:[h.jsxs(kt.Label,{className:"font-14 fw-sb",children:[h.jsx("span",{className:"text-danger",children:"*"})," Message Title"]}),h.jsx(kt.Control,{type:"text",placeholder:"",name:"title",...Re.getFieldProps("title"),autoComplete:"off"})]})}),h.jsx("div",{children:h.jsxs(kt.Group,{className:"form-group rounded_corners mb-3 pt-2",children:[h.jsxs(kt.Label,{className:"font-14 fw-sb",children:[h.jsx("span",{className:"text-danger",children:"*"})," Brief Message"]}),h.jsx(kt.Control,{as:"textarea",rows:3,style:{height:"auto",resize:"auto",maxHeight:"100px"},placeholder:"",name:"body",...Re.getFieldProps("body"),autoComplete:"off"}),Re.touched.body&&Re.errors.body?h.jsx("p",{className:"error-state-text font-12 text-danger",children:Re.errors.body}):null]})})]}),h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 gx-3 justify-content-center mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>he("step1"),children:"Prev"},"prev_step1_handler")}),h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-primary btn-md w-100",onClick:()=>he("step3",Re),children:"Next"},"step3_handler")})]})})]}),h.jsx(Zn.Pane,{className:"",eventKey:"step3",unmountOnExit:!0,children:h.jsx("div",{className:"form-step-container",children:h.jsxs("div",{className:"pt-2",children:[h.jsxs("div",{className:"font-14 fw-sb",children:["Choose a media type to upload"," ",h.jsx("span",{className:"d-block font-13 text-gray6",children:"(Optional)"})]}),h.jsx("div",{className:"content-container no-scrollbar border-botto px-1 py-3",style:{overflowY:"auto",overflowX:"hidden"},children:(Q==null?void 0:Q.length)>0&&h.jsx(fn,{className:"row-cols-2 mb-3 g-3",children:Q==null?void 0:Q.map((we,Ge)=>h.jsx(Gt,{children:h.jsx(et,{className:"card-theme",onClick:()=>de(we),children:h.jsxs(et.Body,{className:"p-2 p-sm-3 justify-content-center d-flex flex-column",children:[h.jsxs("div",{className:"icon-wra",children:[we==="video"&&h.jsx(Zt,{tag:"play1",className:"mb-2 font-36 text-theme-primary"}),we==="audio"&&h.jsx(Zt,{tag:"consult1",className:"mb-2 font-36 text-theme-primary"}),we==="pdf"&&h.jsx(Zt,{tag:"pdf1",className:"mb-2 font-36 text-theme-primary"}),we==="image"&&h.jsx(Zt,{tag:"image2",className:"mb-2 font-36 text-theme-primary"})]}),h.jsxs("div",{className:"font-14 fw-sb pt-sm-2",children:[`Upload ${we}`,h.jsx("small",{className:"d-block fw-sb text-danger font-11",children:h.jsxs(h.Fragment,{children:["max ",le,"mb"]})})]})]})})},`${Ge}-type`))})}),j&&h.jsx(h.Fragment,{children:h.jsx("div",{className:"card card-theme shadow-sm rounded-3 border-0 mb-3 p-2",style:{backgroundColor:"var(--color-green-lighter)"},children:h.jsxs("div",{className:"d-flex media-header-container align-items-center",children:[h.jsx("div",{className:"flex-shrink-0 media-icon-container position-relative d-flex",children:h.jsx("div",{className:"d-flex justify-content-center align-items-center media-icon-wrapper overflow-hidden rounded-circle",style:{backgroundColor:"var(--color-green-light)"},children:h.jsx(Zt,{tag:"check1",className:"font-28 text-success"})})}),h.jsx("div",{className:"text-start flex-grow-1 ms-2 ms-sm-3 media-info-container",children:h.jsxs("span",{className:"d-block font-14",children:["Successfully uploaded selected"," ",D,". Click submit button to send a message."]})})]})})})]})})})]})]}),h.jsx(vbe,{show:N,handleClose:te,resSources:Y,uploadMediaType:D,className:"",setUploadMediaUrl:M,saveUploadFile:Ve,deviceOS:n}),y==="step3"&&h.jsx("div",{className:"fixed-bottom bg-white px-3 border-theme-top",children:h.jsxs(fn,{className:"row-cols-2 justify-content-center gx-3 mt-3 mb-4",children:[h.jsx(Gt,{children:h.jsx(Pt,{id:"",type:"button",className:"btn-theme btn-gray btn-md w-100",onClick:()=>he("step2"),children:"Prev"},"prev_step2_handler")}),h.jsx(Gt,{children:h.jsx("div",{className:"btn-wrap text-center",children:h.jsx(Pt,{type:"submit",className:"btn-theme btn-primary btn-md w-100",children:b?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Processing"]}):Re.isValid?"Submit":"Please fill out all info"})})})]})})]})}})]})})}function Kst(){const n=Ii(),[t,i]=k.useState(!1),s={password:""},l=uc().shape({password:hf().required("Please enter a valid password")});async function d(u,{resetForm:p}){console.log("Executing change password on submit = ",u),i(!0),Ai.changePassword(u).then(g=>{console.log("changePassword Response: ",g),g.data.status==="success"&&(console.log("Success response =",g.data),Qt("Password changed successfully!","success"),i(!1),n("/dashboard")),g.data.status==="failed"&&(console.log("Failed ERROR response : ",g.data),Qt("Failed to change password!","error"),i(!1))}).catch(g=>{var _,y,E;i(!1),((_=g.response)==null?void 0:_.data.status)==="failed"&&Qt((y=g.response)==null?void 0:y.data.message,"error"),console.log("Change Password Error = ",g),console.log("Change Password Error response = ",(E=g.response)==null?void 0:E.data)})}return h.jsx(h.Fragment,{children:h.jsx(qi,{className:"change-password-page",children:h.jsx(Yn,{className:"mb-4",children:h.jsx(et,{className:"login-content-card w-100 border-0 shadow-none",children:h.jsx(et.Body,{children:h.jsx("div",{className:"form-container",children:h.jsx(id,{initialValues:s,validationSchema:l,onSubmit:d,children:u=>h.jsxs(kt,{onSubmit:u.handleSubmit,children:[h.jsxs(kt.Group,{className:"form-group mb-3",children:[h.jsx(kt.Label,{className:"pe-none",children:"New Password"}),h.jsx(kt.Control,{type:"password",placeholder:"New Password",name:"password",value:u.values.password,onBlur:u.handleBlur,onChange:u.handleChange,required:!0,autoComplete:"off"}),u.touched.password&&u.errors.password?h.jsx("p",{className:"form-error",children:u.errors.password}):null]}),h.jsx("div",{className:"btn-wrapper pt-3",children:h.jsx(Pt,{type:"submit",size:"lg",disabled:!u.isValid,className:"btn-theme btn-shadow btn-primary btn-block w-100",children:t?h.jsxs(h.Fragment,{children:[h.jsx(Ji,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"})," ","Loading"]}):u.isValid?"Submit":"Please fill out all info"})})]})})})})})})})})}var rN;(function(n){n.Dark="DARK",n.Light="LIGHT",n.Default="DEFAULT"})(rN||(rN={}));var Lpe;(function(n){n.None="NONE",n.Slide="SLIDE",n.Fade="FADE"})(Lpe||(Lpe={}));const _4=hc("StatusBar"),ybe=hc("EdgeToEdge",{});var Dpe;(function(n){n.WHITE="#FFFFFF",n.BLACK="#000000",n.TRANSPARENT="transparent"})(Dpe||(Dpe={}));const _be=hc("NavigationBar",{web:()=>Xi(()=>import("./web-BCDAlWew.js"),__vite__mapDeps([])).then(n=>new n.NavigationBarWeb)}),qst=({component:n,...t})=>{const i=async()=>{const g=await LE.getInfo();g.platform!=="web"&&l(),g.platform==="android"&&s()},s=async()=>{u(O_e)},l=async()=>{d()},d=async()=>{await _4.setStyle({style:rN.Light})},u=async g=>{await _4.setBackgroundColor({color:g}),await ybe.setBackgroundColor({color:g}),await _be.setNavigationBarColor({color:"#000000"})};k.useEffect(()=>{i()},[]);let p=Ai.getToken();return h.jsx(h.Fragment,{children:p?h.jsx(B0e,{to:"/dashboard"}):h.jsx(n,{...t})})},Bc=({component:n,auth:t,...i})=>{const{backLink:s}=k.useContext(QR);let l=localStorage.getItem("auth_token");const{page:d}={...i},u=async()=>{const b=await LE.getInfo();b.platform!=="web"&&E(),b.platform==="android"&&y()},p=async()=>{console.log("setStatusBarStyleDark called"),await _4.setStyle({style:rN.Dark})},g=async()=>{console.log("setStatusBarStyleLight called"),await _4.setStyle({style:rN.Light})},_=async b=>{console.log("setBackgroundColor called"),await _4.setBackgroundColor({color:b}),await ybe.setBackgroundColor({color:b}),await _be.setNavigationBarColor({color:"#000000"})},y=async()=>{d!=="login"?(console.log("Inside if (page !== 'login')"),_(IE)):(console.log("Inside Else (page === 'login')"),_(O_e))},E=async()=>{d!=="login"?(console.log("Inside if (page !== 'login')"),p()):(console.log("Inside Else (page === 'login')"),g())};return k.useEffect(()=>{u()},[]),k.useEffect(()=>{bC.addListener("backButton",({canGoBack:b})=>{console.log("Got the canGoBack in backButton listener...",b),b?(console.log("Got the canGoBack in backButton listener Else ...",b),window.location.href=s):(console.log("Got the canGoBack in backButton listener if ...",b),bC.exitApp())})},[s]),h.jsx(h.Fragment,{children:l?h.jsx(n,{...i}):h.jsx(B0e,{to:"/"})})},Yst=k.createContext(),Xst={name:"Bhavee Khune",imgUrl:"",desig:"Area Business Manager",email:"bhaveshkhune@gmail.com",mobile:"9823432230",address:{HQ:"Pune East",terrytory:"Pune East",area:"Pune",region:"Maharashtra",zone:"Central India",city:"Pune",state:"Maharashtra",pincode:411041,address:"Flat no 1706, Manhattan, Pride World City"}},Jst=hc("SplashScreen",{web:()=>Xi(()=>import("./web-DJ_H0FsA.js"),__vite__mapDeps([])).then(n=>new n.SplashScreenWeb)}),Qst=hc("DeviceSecurityDetect",{web:()=>Xi(()=>import("./web-Cpi5fhcy.js"),__vite__mapDeps([])).then(n=>new n.DeviceSecurityDetectWeb)}),Bb=hc("PushNotifications",{});function Zst(n){function t(){console.log("handleCloseApp called "),n.handleClose(),n.closeAppHandler()}return h.jsx(h.Fragment,{children:h.jsxs(vn,{centered:!0,fullscreen:!1,backdrop:"static",keyboard:!1,className:"theme-modal app-access-forbidden-modal",show:n.show,onHide:n.handleClose,children:[h.jsx(vn.Header,{className:"pb-2 border-0 d-flex justify-content-center align-items-center",children:h.jsx("div",{className:"heading-icon-wrap flex-shrink-0",children:h.jsx("span",{className:"heading-icon d-flex justify-content-center align-items-center rounded-circle font-24",children:h.jsx(GO,{})})})}),h.jsx(vn.Body,{className:"no-scrollbar text-center d-flex flex-wrap justify-content-center align-items-center",children:n.loading?h.jsx(h.Fragment,{children:h.jsx(Ji,{animation:"border",variant:"dark"})}):h.jsx(h.Fragment,{children:h.jsxs("div",{className:"d-flex flex-column justify-content-center align-items-center",children:[h.jsxs("div",{className:"w-100 d-block",children:[h.jsx("p",{className:"font-18 mb-2 warning-heading",style:{lineHeight:1.6},children:"Rooted device detected!"}),h.jsx("p",{className:"font-16 mb-3",style:{lineHeight:1.6},children:"For security reasons, access to this app is restricted on rooted devices."})]}),h.jsx("div",{className:"btn-wrap d-grid gap-3 pt-1",children:h.jsx(Pt,{type:"button",className:"btn-theme btn-black btn-lg w-100 text-white text-decoration-none rounded-3",onClick:t,children:"Exit App"})})]})})})]})})}function eat(){Jst.hide();const[n,t]=k.useState(!1),[i,s]=k.useState("light"),[l,d]=k.useState(Xst),[u,p]=k.useState("/"),[g,_]=k.useState(null),[y,E]=k.useState(!1),b=()=>{E(!1)},A=()=>{E(!0)};async function N(){console.log("closeAppHandler called"),await bC.exitApp()}const O=async()=>{const j=await LE.getInfo(),M=await LE.getId(),V=await bC.getInfo();if(localStorage.setItem("deviceInfo",JSON.stringify(j)),localStorage.setItem("appCurrentVersion",V.version),localStorage.setItem("appID",V.id),localStorage.setItem("deviceID",M.identifier),j.platform==="android"){async function H(){console.log("**** checkDeviceSecurity called ***");try{const $=await Qst.isJailBreakOrRooted();$.value?(A(),console.log(`*** Device is ROOTED: ${$.value?"Yes":"No"}`)):console.log(`*** Device is NOT ROOTED: ${$.value?"Yes":"No"}`)}catch($){console.error("*** Error checking device security:",$)}}H()}};k.useEffect(()=>{O()},[Ai.getToken()]),k.useEffect(()=>{const j=localStorage.getItem("theme");Y6e(j||i,s),Ai.getToken()&&t(!0)},[]),k.useEffect(()=>{console.log("refreshToken() and appStateChange listener useEffect"),bC.addListener("appStateChange",({isActive:j})=>{j&&console.log("App foregrounded and about to call refreshToken()")})},[]);async function D(){J4.getNotificationStats().then(j=>{var M;j.data.status==="success"&&(console.log("Response from getNotificationsStats on SUCCESS =",j),_((M=j.data)==null?void 0:M.data))}).catch(j=>{_(null),console.log("Error in catch in getNotificationsStats =",j)})}k.useEffect(()=>{Ai.getToken()&&(console.log("...Calling registerDeviceForPushNotification() from App useEffect..."),Ai.registerDeviceForPushNotification(),D())},[]),k.useEffect(()=>{console.log("--**********************--"),console.log("Push notification code useEffect runs..."),console.log("--**********************--"),Bb.checkPermissions().then(j=>{j.receive!=="granted"?Bb.requestPermissions().then(M=>{M.receive==="denied"?console.log("Push Notification permission denied"):(console.log("Push Notification permission granted"),P())}):(console.log("if (res.receive !== 'granted') Else Part calling registerNotifications() ",j==null?void 0:j.receive),P())})},[]);async function P(){console.log("--**********************--"),console.log("Initializing HomePage - registerNotifications () called"),console.log("--**********************--"),await Bb.register(),await Bb.addListener("registration",j=>{console.log("PushNotifications.addListener - registration runs Token = ",j),localStorage.setItem("notificationToken",j.value)}),await Bb.addListener("registrationError",j=>{console.log("PushNotifications.addListener - registrationError runs"),console.log("Error on PushNotifications registration: "+JSON.stringify(j))}),Bb.addListener("pushNotificationActionPerformed",j=>{var V;if(console.log("PushNotifications.addListener - pushNotificationActionPerformed"),console.log("Tapped on notification: ",j),Ai.getToken()){let H=v1e((V=j==null?void 0:j.notification)==null?void 0:V.data);window.location.href=H}else window.location.href="/"})}return h.jsx(h.Fragment,{children:h.jsxs("div",{className:"app-wrapper",children:[h.jsx(q6e,{position:"bottom-center",hideProgressBar:!0,transition:$6e,theme:"dark",className:"custom-toast",autoClose:3e3}),h.jsx(QR.Provider,{value:{userProfile:l,notificationStats:g,getNotificationStats:D,backLink:u,setBackLink:p},children:h.jsx(Yst.Provider,{value:{theme:i,setTheme:s},children:h.jsx(P6e,{children:h.jsxs(T6e,{children:[h.jsx(mi,{path:"/",element:h.jsx(qst,{component:zWe})}),h.jsx(mi,{path:"/app-icons",element:h.jsx(bBe,{})}),h.jsx(mi,{path:"/dashboard",element:h.jsx(Bc,{auth:n,component:Mc,page:"dashboard"}),children:h.jsx(mi,{index:!0,element:h.jsx(Zqe,{})})}),h.jsxs(mi,{path:"/profile",element:h.jsx(Bc,{auth:n,component:Mc,page:"profile"}),children:[h.jsx(mi,{path:"change-password",element:h.jsx(Kst,{})}),h.jsx(mi,{index:!0,element:h.jsx(rXe,{})})]}),h.jsx(mi,{path:"/quick-actions",element:h.jsx(Bc,{auth:n,component:Mc,page:"quick-actions"}),children:h.jsx(mi,{index:!0,element:h.jsx(lYe,{})})}),h.jsx(mi,{path:"/quick-actions-content",element:h.jsx(Bc,{auth:n,component:Mc,page:"quick-actions-content"}),children:h.jsx(mi,{index:!0,element:h.jsx(aXe,{})})}),h.jsx(mi,{path:"/notifications",element:h.jsx(Bc,{auth:n,component:Mc,page:"notifications"}),children:h.jsx(mi,{index:!0,element:h.jsx(iYe,{})})}),h.jsxs(mi,{path:"/appreciations",element:h.jsx(Bc,{auth:n,component:Mc,page:"appreciations"}),children:[h.jsx(mi,{path:"send-appreciations2",element:h.jsx(jst,{})}),h.jsx(mi,{path:"send-appreciations",element:h.jsx(kst,{})}),h.jsx(mi,{index:!0,element:h.jsx(SYe,{})})]}),h.jsxs(mi,{path:"/badges",element:h.jsx(Bc,{auth:n,component:Mc,page:"badges"}),children:[h.jsx(mi,{path:"send-badges2",element:h.jsx(zst,{})}),h.jsx(mi,{path:"send-badges",element:h.jsx(Vst,{})}),h.jsx(mi,{index:!0,element:h.jsx(gYe,{})})]}),h.jsx(mi,{path:"/rewards",element:h.jsx(Bc,{auth:n,component:Mc,page:"rewards"}),children:h.jsx(mi,{index:!0,element:h.jsx(yYe,{})})}),h.jsx(mi,{path:"/metric-reports",element:h.jsx(Bc,{auth:n,component:Mc,page:"metric-reports"}),children:h.jsx(mi,{index:!0,element:h.jsx(sXe,{})})}),h.jsxs(mi,{path:"/approve-reject-form-submission",element:h.jsx(Bc,{auth:n,component:Mc,page:"approve-reject-form-submission"}),children:[h.jsx(mi,{path:":entityId",element:h.jsx(npe,{})}),h.jsx(mi,{index:!0,element:h.jsx(npe,{})})]}),h.jsxs(mi,{path:"/magazines",element:h.jsx(Bc,{auth:n,component:Mc,page:"magazines"}),children:[h.jsx(mi,{path:":magazineId",element:h.jsx(jtt,{})}),h.jsx(mi,{index:!0,element:h.jsx(lXe,{})})]}),h.jsxs(mi,{path:"/messages",element:h.jsx(Bc,{auth:n,component:Mc,page:"messages"}),children:[h.jsx(mi,{path:"send-message2",element:h.jsx($st,{})}),h.jsx(mi,{path:"send-message",element:h.jsx(Wst,{})}),h.jsx(mi,{path:":msgId",element:h.jsx(Rit,{})}),h.jsx(mi,{index:!0,element:h.jsx(Iit,{})})]}),h.jsxs(mi,{path:"/contests",element:h.jsx(Bc,{auth:n,component:Mc,page:"contests"}),children:[h.jsx(mi,{path:":contestId",element:h.jsx($it,{})}),h.jsx(mi,{path:":contestId/upload-response",element:h.jsx(Qit,{})}),h.jsx(mi,{path:":contestId/evaluate",element:h.jsx(Zit,{})}),h.jsx(mi,{index:!0,element:h.jsx(Lit,{})})]}),h.jsxs(mi,{path:"/competition-contests",element:h.jsx(Bc,{auth:n,component:Mc,page:"competition-contests"}),children:[h.jsx(mi,{path:"competition-contest-details",element:h.jsx(Bst,{})}),h.jsx(mi,{index:!0,element:h.jsx(Fst,{})})]})]})})})}),h.jsx(Zst,{show:y,handleClose:b,closeAppHandler:N})]})})}const tat=new pqe,nat=O0e.createClient({mode:"rtc",codec:"h264"});bK.createRoot(document.getElementById("root")).render(h.jsx(_qe,{client:tat,children:h.jsx(v0e,{client:nat,children:h.jsx(eat,{})})}));export{Y$ as C,LR as E,N_e as W,Xi as _,hc as a,dY as b,iF as c,gnt as d,Bqe as e,aYe as f,Mv as g,nJe as p,k as r,BU as u}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = [] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/dist/assets/pdf.worker-DcN26wb1.mjs b/dist/assets/pdf.worker-DcN26wb1.mjs new file mode 100644 index 0000000..e57ac16 --- /dev/null +++ b/dist/assets/pdf.worker-DcN26wb1.mjs @@ -0,0 +1,58148 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2024 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +/** + * pdfjsVersion = 5.4.54 + * pdfjsBuild = 295fb3ec4 + */ + +;// ./src/shared/util.js +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +const LINE_FACTOR = 1.35; +const LINE_DESCENT_FACTOR = 0.35; +const BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR; +const RenderingIntentFlag = { + ANY: 0x01, + DISPLAY: 0x02, + PRINT: 0x04, + SAVE: 0x08, + ANNOTATIONS_FORMS: 0x10, + ANNOTATIONS_STORAGE: 0x20, + ANNOTATIONS_DISABLE: 0x40, + IS_EDITING: 0x80, + OPLIST: 0x100 +}; +const AnnotationMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_FORMS: 2, + ENABLE_STORAGE: 3 +}; +const AnnotationEditorPrefix = "pdfjs_internal_editor_"; +const AnnotationEditorType = { + DISABLE: -1, + NONE: 0, + FREETEXT: 3, + HIGHLIGHT: 9, + STAMP: 13, + INK: 15, + SIGNATURE: 101, + COMMENT: 102 +}; +const AnnotationEditorParamsType = { + RESIZE: 1, + CREATE: 2, + FREETEXT_SIZE: 11, + FREETEXT_COLOR: 12, + FREETEXT_OPACITY: 13, + INK_COLOR: 21, + INK_THICKNESS: 22, + INK_OPACITY: 23, + HIGHLIGHT_COLOR: 31, + HIGHLIGHT_THICKNESS: 32, + HIGHLIGHT_FREE: 33, + HIGHLIGHT_SHOW_ALL: 34, + DRAW_STEP: 41 +}; +const PermissionFlag = { + PRINT: 0x04, + MODIFY_CONTENTS: 0x08, + COPY: 0x10, + MODIFY_ANNOTATIONS: 0x20, + FILL_INTERACTIVE_FORMS: 0x100, + COPY_FOR_ACCESSIBILITY: 0x200, + ASSEMBLE: 0x400, + PRINT_HIGH_QUALITY: 0x800 +}; +const TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4 +}; +const ImageKind = { + GRAYSCALE_1BPP: 1, + RGB_24BPP: 2, + RGBA_32BPP: 3 +}; +const AnnotationType = { + TEXT: 1, + LINK: 2, + FREETEXT: 3, + LINE: 4, + SQUARE: 5, + CIRCLE: 6, + POLYGON: 7, + POLYLINE: 8, + HIGHLIGHT: 9, + UNDERLINE: 10, + SQUIGGLY: 11, + STRIKEOUT: 12, + STAMP: 13, + CARET: 14, + INK: 15, + POPUP: 16, + FILEATTACHMENT: 17, + SOUND: 18, + MOVIE: 19, + WIDGET: 20, + SCREEN: 21, + PRINTERMARK: 22, + TRAPNET: 23, + WATERMARK: 24, + THREED: 25, + REDACT: 26 +}; +const AnnotationReplyType = { + GROUP: "Group", + REPLY: "R" +}; +const AnnotationFlag = { + INVISIBLE: 0x01, + HIDDEN: 0x02, + PRINT: 0x04, + NOZOOM: 0x08, + NOROTATE: 0x10, + NOVIEW: 0x20, + READONLY: 0x40, + LOCKED: 0x80, + TOGGLENOVIEW: 0x100, + LOCKEDCONTENTS: 0x200 +}; +const AnnotationFieldFlag = { + READONLY: 0x0000001, + REQUIRED: 0x0000002, + NOEXPORT: 0x0000004, + MULTILINE: 0x0001000, + PASSWORD: 0x0002000, + NOTOGGLETOOFF: 0x0004000, + RADIO: 0x0008000, + PUSHBUTTON: 0x0010000, + COMBO: 0x0020000, + EDIT: 0x0040000, + SORT: 0x0080000, + FILESELECT: 0x0100000, + MULTISELECT: 0x0200000, + DONOTSPELLCHECK: 0x0400000, + DONOTSCROLL: 0x0800000, + COMB: 0x1000000, + RICHTEXT: 0x2000000, + RADIOSINUNISON: 0x2000000, + COMMITONSELCHANGE: 0x4000000 +}; +const AnnotationBorderStyleType = { + SOLID: 1, + DASHED: 2, + BEVELED: 3, + INSET: 4, + UNDERLINE: 5 +}; +const AnnotationActionEventType = { + E: "Mouse Enter", + X: "Mouse Exit", + D: "Mouse Down", + U: "Mouse Up", + Fo: "Focus", + Bl: "Blur", + PO: "PageOpen", + PC: "PageClose", + PV: "PageVisible", + PI: "PageInvisible", + K: "Keystroke", + F: "Format", + V: "Validate", + C: "Calculate" +}; +const DocumentActionEventType = { + WC: "WillClose", + WS: "WillSave", + DS: "DidSave", + WP: "WillPrint", + DP: "DidPrint" +}; +const PageActionEventType = { + O: "PageOpen", + C: "PageClose" +}; +const VerbosityLevel = { + ERRORS: 0, + WARNINGS: 1, + INFOS: 5 +}; +const OPS = { + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotation: 80, + endAnnotation: 81, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91, + setStrokeTransparent: 92, + setFillTransparent: 93, + rawFillPath: 94 +}; +const DrawOPS = { + moveTo: 0, + lineTo: 1, + curveTo: 2, + closePath: 3 +}; +const PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 +}; +let verbosity = VerbosityLevel.WARNINGS; +function setVerbosityLevel(level) { + if (Number.isInteger(level)) { + verbosity = level; + } +} +function getVerbosityLevel() { + return verbosity; +} +function info(msg) { + if (verbosity >= VerbosityLevel.INFOS) { + console.log(`Info: ${msg}`); + } +} +function warn(msg) { + if (verbosity >= VerbosityLevel.WARNINGS) { + console.log(`Warning: ${msg}`); + } +} +function unreachable(msg) { + throw new Error(msg); +} +function assert(cond, msg) { + if (!cond) { + unreachable(msg); + } +} +function _isValidProtocol(url) { + switch (url?.protocol) { + case "http:": + case "https:": + case "ftp:": + case "mailto:": + case "tel:": + return true; + default: + return false; + } +} +function createValidAbsoluteUrl(url, baseUrl = null, options = null) { + if (!url) { + return null; + } + if (options && typeof url === "string") { + if (options.addDefaultProtocol && url.startsWith("www.")) { + const dots = url.match(/\./g); + if (dots?.length >= 2) { + url = `http://${url}`; + } + } + if (options.tryConvertEncoding) { + try { + url = stringToUTF8String(url); + } catch {} + } + } + const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url); + return _isValidProtocol(absoluteUrl) ? absoluteUrl : null; +} +function updateUrlHash(url, hash, allowRel = false) { + const res = URL.parse(url); + if (res) { + res.hash = hash; + return res.href; + } + if (allowRel && createValidAbsoluteUrl(url, "http://example.com")) { + return url.split("#", 1)[0] + `${hash ? `#${hash}` : ""}`; + } + return ""; +} +function shadow(obj, prop, value, nonSerializable = false) { + Object.defineProperty(obj, prop, { + value, + enumerable: !nonSerializable, + configurable: true, + writable: false + }); + return value; +} +const BaseException = function BaseExceptionClosure() { + function BaseException(message, name) { + this.message = message; + this.name = name; + } + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; +}(); +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg, "PasswordException"); + this.code = code; + } +} +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg, "UnknownErrorException"); + this.details = details; + } +} +class InvalidPDFException extends BaseException { + constructor(msg) { + super(msg, "InvalidPDFException"); + } +} +class ResponseException extends BaseException { + constructor(msg, status, missing) { + super(msg, "ResponseException"); + this.status = status; + this.missing = missing; + } +} +class FormatError extends BaseException { + constructor(msg) { + super(msg, "FormatError"); + } +} +class AbortException extends BaseException { + constructor(msg) { + super(msg, "AbortException"); + } +} +function bytesToString(bytes) { + if (typeof bytes !== "object" || bytes?.length === undefined) { + unreachable("Invalid argument for bytesToString"); + } + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + const strBuf = []; + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); + strBuf.push(String.fromCharCode.apply(null, chunk)); + } + return strBuf.join(""); +} +function stringToBytes(str) { + if (typeof str !== "string") { + unreachable("Invalid argument for stringToBytes"); + } + const length = str.length; + const bytes = new Uint8Array(length); + for (let i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xff; + } + return bytes; +} +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} +function objectSize(obj) { + return Object.keys(obj).length; +} +function isLittleEndian() { + const buffer8 = new Uint8Array(4); + buffer8[0] = 1; + const view32 = new Uint32Array(buffer8.buffer, 0, 1); + return view32[0] === 1; +} +function isEvalSupported() { + try { + new Function(""); + return true; + } catch { + return false; + } +} +class FeatureTest { + static get isLittleEndian() { + return shadow(this, "isLittleEndian", isLittleEndian()); + } + static get isEvalSupported() { + return shadow(this, "isEvalSupported", isEvalSupported()); + } + static get isOffscreenCanvasSupported() { + return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); + } + static get isImageDecoderSupported() { + return shadow(this, "isImageDecoderSupported", typeof ImageDecoder !== "undefined"); + } + static get platform() { + const { + platform, + userAgent + } = navigator; + return shadow(this, "platform", { + isAndroid: userAgent.includes("Android"), + isLinux: platform.includes("Linux"), + isMac: platform.includes("Mac"), + isWindows: platform.includes("Win"), + isFirefox: userAgent.includes("Firefox") + }); + } + static get isCSSRoundSupported() { + return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)")); + } +} +const hexNumbers = Array.from(Array(256).keys(), n => n.toString(16).padStart(2, "0")); +class Util { + static makeHexColor(r, g, b) { + return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; + } + static scaleMinMax(transform, minMax) { + let temp; + if (transform[0]) { + if (transform[0] < 0) { + temp = minMax[0]; + minMax[0] = minMax[2]; + minMax[2] = temp; + } + minMax[0] *= transform[0]; + minMax[2] *= transform[0]; + if (transform[3] < 0) { + temp = minMax[1]; + minMax[1] = minMax[3]; + minMax[3] = temp; + } + minMax[1] *= transform[3]; + minMax[3] *= transform[3]; + } else { + temp = minMax[0]; + minMax[0] = minMax[1]; + minMax[1] = temp; + temp = minMax[2]; + minMax[2] = minMax[3]; + minMax[3] = temp; + if (transform[1] < 0) { + temp = minMax[1]; + minMax[1] = minMax[3]; + minMax[3] = temp; + } + minMax[1] *= transform[1]; + minMax[3] *= transform[1]; + if (transform[2] < 0) { + temp = minMax[0]; + minMax[0] = minMax[2]; + minMax[2] = temp; + } + minMax[0] *= transform[2]; + minMax[2] *= transform[2]; + } + minMax[0] += transform[4]; + minMax[1] += transform[5]; + minMax[2] += transform[4]; + minMax[3] += transform[5]; + } + static transform(m1, m2) { + return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; + } + static applyTransform(p, m, pos = 0) { + const p0 = p[pos]; + const p1 = p[pos + 1]; + p[pos] = p0 * m[0] + p1 * m[2] + m[4]; + p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5]; + } + static applyTransformToBezier(p, transform, pos = 0) { + const m0 = transform[0]; + const m1 = transform[1]; + const m2 = transform[2]; + const m3 = transform[3]; + const m4 = transform[4]; + const m5 = transform[5]; + for (let i = 0; i < 6; i += 2) { + const pI = p[pos + i]; + const pI1 = p[pos + i + 1]; + p[pos + i] = pI * m0 + pI1 * m2 + m4; + p[pos + i + 1] = pI * m1 + pI1 * m3 + m5; + } + } + static applyInverseTransform(p, m) { + const p0 = p[0]; + const p1 = p[1]; + const d = m[0] * m[3] - m[1] * m[2]; + p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + } + static axialAlignedBoundingBox(rect, transform, output) { + const m0 = transform[0]; + const m1 = transform[1]; + const m2 = transform[2]; + const m3 = transform[3]; + const m4 = transform[4]; + const m5 = transform[5]; + const r0 = rect[0]; + const r1 = rect[1]; + const r2 = rect[2]; + const r3 = rect[3]; + let a0 = m0 * r0 + m4; + let a2 = a0; + let a1 = m0 * r2 + m4; + let a3 = a1; + let b0 = m3 * r1 + m5; + let b2 = b0; + let b1 = m3 * r3 + m5; + let b3 = b1; + if (m1 !== 0 || m2 !== 0) { + const m1r0 = m1 * r0; + const m1r2 = m1 * r2; + const m2r1 = m2 * r1; + const m2r3 = m2 * r3; + a0 += m2r1; + a3 += m2r1; + a1 += m2r3; + a2 += m2r3; + b0 += m1r0; + b3 += m1r0; + b1 += m1r2; + b2 += m1r2; + } + output[0] = Math.min(output[0], a0, a1, a2, a3); + output[1] = Math.min(output[1], b0, b1, b2, b3); + output[2] = Math.max(output[2], a0, a1, a2, a3); + output[3] = Math.max(output[3], b0, b1, b2, b3); + } + static inverseTransform(m) { + const d = m[0] * m[3] - m[1] * m[2]; + return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; + } + static singularValueDecompose2dScale(matrix, output) { + const m0 = matrix[0]; + const m1 = matrix[1]; + const m2 = matrix[2]; + const m3 = matrix[3]; + const a = m0 ** 2 + m1 ** 2; + const b = m0 * m2 + m1 * m3; + const c = m2 ** 2 + m3 ** 2; + const first = (a + c) / 2; + const second = Math.sqrt(first ** 2 - (a * c - b ** 2)); + output[0] = Math.sqrt(first + second || 1); + output[1] = Math.sqrt(first - second || 1); + } + static normalizeRect(rect) { + const r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + } + static intersect(rect1, rect2) { + const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2])); + const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2])); + if (xLow > xHigh) { + return null; + } + const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3])); + const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3])); + if (yLow > yHigh) { + return null; + } + return [xLow, yLow, xHigh, yHigh]; + } + static pointBoundingBox(x, y, minMax) { + minMax[0] = Math.min(minMax[0], x); + minMax[1] = Math.min(minMax[1], y); + minMax[2] = Math.max(minMax[2], x); + minMax[3] = Math.max(minMax[3], y); + } + static rectBoundingBox(x0, y0, x1, y1, minMax) { + minMax[0] = Math.min(minMax[0], x0, x1); + minMax[1] = Math.min(minMax[1], y0, y1); + minMax[2] = Math.max(minMax[2], x0, x1); + minMax[3] = Math.max(minMax[3], y0, y1); + } + static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) { + if (t <= 0 || t >= 1) { + return; + } + const mt = 1 - t; + const tt = t * t; + const ttt = tt * t; + const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3; + const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3; + minMax[0] = Math.min(minMax[0], x); + minMax[1] = Math.min(minMax[1], y); + minMax[2] = Math.max(minMax[2], x); + minMax[3] = Math.max(minMax[3], y); + } + static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) { + if (Math.abs(a) < 1e-12) { + if (Math.abs(b) >= 1e-12) { + this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax); + } + return; + } + const delta = b ** 2 - 4 * c * a; + if (delta < 0) { + return; + } + const sqrtDelta = Math.sqrt(delta); + const a2 = 2 * a; + this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax); + this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax); + } + static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) { + minMax[0] = Math.min(minMax[0], x0, x3); + minMax[1] = Math.min(minMax[1], y0, y3); + minMax[2] = Math.max(minMax[2], x0, x3); + minMax[3] = Math.max(minMax[3], y0, y3); + this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax); + this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax); + } +} +const PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]; +function stringToPDFString(str, keepEscapeSequence = false) { + if (str[0] >= "\xEF") { + let encoding; + if (str[0] === "\xFE" && str[1] === "\xFF") { + encoding = "utf-16be"; + if (str.length % 2 === 1) { + str = str.slice(0, -1); + } + } else if (str[0] === "\xFF" && str[1] === "\xFE") { + encoding = "utf-16le"; + if (str.length % 2 === 1) { + str = str.slice(0, -1); + } + } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") { + encoding = "utf-8"; + } + if (encoding) { + try { + const decoder = new TextDecoder(encoding, { + fatal: true + }); + const buffer = stringToBytes(str); + const decoded = decoder.decode(buffer); + if (keepEscapeSequence || !decoded.includes("\x1b")) { + return decoded; + } + return decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, ""); + } catch (ex) { + warn(`stringToPDFString: "${ex}".`); + } + } + } + const strBuf = []; + for (let i = 0, ii = str.length; i < ii; i++) { + const charCode = str.charCodeAt(i); + if (!keepEscapeSequence && charCode === 0x1b) { + while (++i < ii && str.charCodeAt(i) !== 0x1b) {} + continue; + } + const code = PDFStringTranslateTable[charCode]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + return strBuf.join(""); +} +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} +function isArrayEqual(arr1, arr2) { + if (arr1.length !== arr2.length) { + return false; + } + for (let i = 0, ii = arr1.length; i < ii; i++) { + if (arr1[i] !== arr2[i]) { + return false; + } + } + return true; +} +function getModificationDate(date = new Date()) { + if (!(date instanceof Date)) { + date = new Date(date); + } + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; + return buffer.join(""); +} +let NormalizeRegex = null; +let NormalizationMap = null; +function normalizeUnicode(str) { + if (!NormalizeRegex) { + NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu; + NormalizationMap = new Map([["ſt", "ſt"]]); + } + return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2)); +} +function getUuid() { + if (typeof crypto.randomUUID === "function") { + return crypto.randomUUID(); + } + const buf = new Uint8Array(32); + crypto.getRandomValues(buf); + return bytesToString(buf); +} +const AnnotationPrefix = "pdfjs_internal_id_"; +function _isValidExplicitDest(validRef, validName, dest) { + if (!Array.isArray(dest) || dest.length < 2) { + return false; + } + const [page, zoom, ...args] = dest; + if (!validRef(page) && !Number.isInteger(page)) { + return false; + } + if (!validName(zoom)) { + return false; + } + const argsLen = args.length; + let allowNull = true; + switch (zoom.name) { + case "XYZ": + if (argsLen < 2 || argsLen > 3) { + return false; + } + break; + case "Fit": + case "FitB": + return argsLen === 0; + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": + if (argsLen > 1) { + return false; + } + break; + case "FitR": + if (argsLen !== 4) { + return false; + } + allowNull = false; + break; + default: + return false; + } + for (const arg of args) { + if (typeof arg === "number" || allowNull && arg === null) { + continue; + } + return false; + } + return true; +} +function MathClamp(v, min, max) { + return Math.min(Math.max(v, min), max); +} +function toHexUtil(arr) { + if (Uint8Array.prototype.toHex) { + return arr.toHex(); + } + return Array.from(arr, num => hexNumbers[num]).join(""); +} +function toBase64Util(arr) { + if (Uint8Array.prototype.toBase64) { + return arr.toBase64(); + } + return btoa(bytesToString(arr)); +} +function fromBase64Util(str) { + if (Uint8Array.fromBase64) { + return Uint8Array.fromBase64(str); + } + return stringToBytes(atob(str)); +} +if (typeof Promise.try !== "function") { + Promise.try = function (fn, ...args) { + return new Promise(resolve => { + resolve(fn(...args)); + }); + }; +} +if (typeof Math.sumPrecise !== "function") { + Math.sumPrecise = function (numbers) { + return numbers.reduce((a, b) => a + b, 0); + }; +} + +;// ./src/core/primitives.js + +const CIRCULAR_REF = Symbol("CIRCULAR_REF"); +const EOF = Symbol("EOF"); +let CmdCache = Object.create(null); +let NameCache = Object.create(null); +let RefCache = Object.create(null); +function clearPrimitiveCaches() { + CmdCache = Object.create(null); + NameCache = Object.create(null); + RefCache = Object.create(null); +} +class Name { + constructor(name) { + this.name = name; + } + static get(name) { + return NameCache[name] ||= new Name(name); + } +} +class Cmd { + constructor(cmd) { + this.cmd = cmd; + } + static get(cmd) { + return CmdCache[cmd] ||= new Cmd(cmd); + } +} +const nonSerializable = function nonSerializableClosure() { + return nonSerializable; +}; +class Dict { + constructor(xref = null) { + this._map = new Map(); + this.xref = xref; + this.objId = null; + this.suppressEncryption = false; + this.__nonSerializable__ = nonSerializable; + } + assignXref(newXref) { + this.xref = newXref; + } + get size() { + return this._map.size; + } + get(key1, key2, key3) { + let value = this._map.get(key1); + if (value === undefined && key2 !== undefined) { + value = this._map.get(key2); + if (value === undefined && key3 !== undefined) { + value = this._map.get(key3); + } + } + if (value instanceof Ref && this.xref) { + return this.xref.fetch(value, this.suppressEncryption); + } + return value; + } + async getAsync(key1, key2, key3) { + let value = this._map.get(key1); + if (value === undefined && key2 !== undefined) { + value = this._map.get(key2); + if (value === undefined && key3 !== undefined) { + value = this._map.get(key3); + } + } + if (value instanceof Ref && this.xref) { + return this.xref.fetchAsync(value, this.suppressEncryption); + } + return value; + } + getArray(key1, key2, key3) { + let value = this._map.get(key1); + if (value === undefined && key2 !== undefined) { + value = this._map.get(key2); + if (value === undefined && key3 !== undefined) { + value = this._map.get(key3); + } + } + if (value instanceof Ref && this.xref) { + value = this.xref.fetch(value, this.suppressEncryption); + } + if (Array.isArray(value)) { + value = value.slice(); + for (let i = 0, ii = value.length; i < ii; i++) { + if (value[i] instanceof Ref && this.xref) { + value[i] = this.xref.fetch(value[i], this.suppressEncryption); + } + } + } + return value; + } + getRaw(key) { + return this._map.get(key); + } + getKeys() { + return [...this._map.keys()]; + } + getRawValues() { + return [...this._map.values()]; + } + set(key, value) { + this._map.set(key, value); + } + setIfNotExists(key, value) { + if (!this.has(key)) { + this.set(key, value); + } + } + setIfNumber(key, value) { + if (typeof value === "number") { + this.set(key, value); + } + } + setIfArray(key, value) { + if (Array.isArray(value) || ArrayBuffer.isView(value)) { + this.set(key, value); + } + } + setIfDefined(key, value) { + if (value !== undefined && value !== null) { + this.set(key, value); + } + } + setIfName(key, value) { + if (typeof value === "string") { + this.set(key, Name.get(value)); + } else if (value instanceof Name) { + this.set(key, value); + } + } + has(key) { + return this._map.has(key); + } + *[Symbol.iterator]() { + for (const [key, value] of this._map) { + yield [key, value instanceof Ref && this.xref ? this.xref.fetch(value, this.suppressEncryption) : value]; + } + } + static get empty() { + const emptyDict = new Dict(null); + emptyDict.set = (key, value) => { + unreachable("Should not call `set` on the empty dictionary."); + }; + return shadow(this, "empty", emptyDict); + } + static merge({ + xref, + dictArray, + mergeSubDicts = false + }) { + const mergedDict = new Dict(xref), + properties = new Map(); + for (const dict of dictArray) { + if (!(dict instanceof Dict)) { + continue; + } + for (const [key, value] of dict._map) { + let property = properties.get(key); + if (property === undefined) { + property = []; + properties.set(key, property); + } else if (!mergeSubDicts || !(value instanceof Dict)) { + continue; + } + property.push(value); + } + } + for (const [name, values] of properties) { + if (values.length === 1 || !(values[0] instanceof Dict)) { + mergedDict._map.set(name, values[0]); + continue; + } + const subDict = new Dict(xref); + for (const dict of values) { + for (const [key, value] of dict._map) { + if (!subDict._map.has(key)) { + subDict._map.set(key, value); + } + } + } + if (subDict.size > 0) { + mergedDict._map.set(name, subDict); + } + } + properties.clear(); + return mergedDict.size > 0 ? mergedDict : Dict.empty; + } + clone() { + const dict = new Dict(this.xref); + for (const key of this.getKeys()) { + dict.set(key, this.getRaw(key)); + } + return dict; + } + delete(key) { + delete this._map[key]; + } +} +class Ref { + constructor(num, gen) { + this.num = num; + this.gen = gen; + } + toString() { + if (this.gen === 0) { + return `${this.num}R`; + } + return `${this.num}R${this.gen}`; + } + static fromString(str) { + const ref = RefCache[str]; + if (ref) { + return ref; + } + const m = /^(\d+)R(\d*)$/.exec(str); + if (!m || m[1] === "0") { + return null; + } + return RefCache[str] = new Ref(parseInt(m[1]), !m[2] ? 0 : parseInt(m[2])); + } + static get(num, gen) { + const key = gen === 0 ? `${num}R` : `${num}R${gen}`; + return RefCache[key] ||= new Ref(num, gen); + } +} +class RefSet { + constructor(parent = null) { + this._set = new Set(parent?._set); + } + has(ref) { + return this._set.has(ref.toString()); + } + put(ref) { + this._set.add(ref.toString()); + } + remove(ref) { + this._set.delete(ref.toString()); + } + [Symbol.iterator]() { + return this._set.values(); + } + clear() { + this._set.clear(); + } +} +class RefSetCache { + constructor() { + this._map = new Map(); + } + get size() { + return this._map.size; + } + get(ref) { + return this._map.get(ref.toString()); + } + has(ref) { + return this._map.has(ref.toString()); + } + put(ref, obj) { + this._map.set(ref.toString(), obj); + } + putAlias(ref, aliasRef) { + this._map.set(ref.toString(), this.get(aliasRef)); + } + [Symbol.iterator]() { + return this._map.values(); + } + clear() { + this._map.clear(); + } + *values() { + yield* this._map.values(); + } + *items() { + for (const [ref, value] of this._map) { + yield [Ref.fromString(ref), value]; + } + } +} +function isName(v, name) { + return v instanceof Name && (name === undefined || v.name === name); +} +function isCmd(v, cmd) { + return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); +} +function isDict(v, type) { + return v instanceof Dict && (type === undefined || isName(v.get("Type"), type)); +} +function isRefsEqual(v1, v2) { + return v1.num === v2.num && v1.gen === v2.gen; +} + +;// ./src/core/base_stream.js + +class BaseStream { + get length() { + unreachable("Abstract getter `length` accessed"); + } + get isEmpty() { + unreachable("Abstract getter `isEmpty` accessed"); + } + get isDataLoaded() { + return shadow(this, "isDataLoaded", true); + } + getByte() { + unreachable("Abstract method `getByte` called"); + } + getBytes(length) { + unreachable("Abstract method `getBytes` called"); + } + async getImageData(length, decoderOptions) { + return this.getBytes(length, decoderOptions); + } + async asyncGetBytes() { + unreachable("Abstract method `asyncGetBytes` called"); + } + get isAsync() { + return false; + } + get isAsyncDecoder() { + return false; + } + get canAsyncDecodeImageFromBuffer() { + return false; + } + async getTransferableImage() { + return null; + } + peekByte() { + const peekedByte = this.getByte(); + if (peekedByte !== -1) { + this.pos--; + } + return peekedByte; + } + peekBytes(length) { + const bytes = this.getBytes(length); + this.pos -= bytes.length; + return bytes; + } + getUint16() { + const b0 = this.getByte(); + const b1 = this.getByte(); + if (b0 === -1 || b1 === -1) { + return -1; + } + return (b0 << 8) + b1; + } + getInt32() { + const b0 = this.getByte(); + const b1 = this.getByte(); + const b2 = this.getByte(); + const b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + } + getByteRange(begin, end) { + unreachable("Abstract method `getByteRange` called"); + } + getString(length) { + return bytesToString(this.getBytes(length)); + } + skip(n) { + this.pos += n || 1; + } + reset() { + unreachable("Abstract method `reset` called"); + } + moveStart() { + unreachable("Abstract method `moveStart` called"); + } + makeSubStream(start, length, dict = null) { + unreachable("Abstract method `makeSubStream` called"); + } + getBaseStreams() { + return null; + } +} + +;// ./src/core/core_utils.js + + + +const PDF_VERSION_REGEXP = /^[1-9]\.\d$/; +const MAX_INT_32 = 2 ** 31 - 1; +const MIN_INT_32 = -(2 ** 31); +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +const RESOURCES_KEYS_OPERATOR_LIST = ["ColorSpace", "ExtGState", "Font", "Pattern", "Properties", "Shading", "XObject"]; +const RESOURCES_KEYS_TEXT_CONTENT = ["ExtGState", "Font", "Properties", "XObject"]; +function getLookupTableFactory(initializer) { + let lookup; + return function () { + if (initializer) { + lookup = Object.create(null); + initializer(lookup); + initializer = null; + } + return lookup; + }; +} +class MissingDataException extends BaseException { + constructor(begin, end) { + super(`Missing data [${begin}, ${end})`, "MissingDataException"); + this.begin = begin; + this.end = end; + } +} +class ParserEOFException extends BaseException { + constructor(msg) { + super(msg, "ParserEOFException"); + } +} +class XRefEntryException extends BaseException { + constructor(msg) { + super(msg, "XRefEntryException"); + } +} +class XRefParseException extends BaseException { + constructor(msg) { + super(msg, "XRefParseException"); + } +} +function arrayBuffersToBytes(arr) { + const length = arr.length; + if (length === 0) { + return new Uint8Array(0); + } + if (length === 1) { + return new Uint8Array(arr[0]); + } + let dataLength = 0; + for (let i = 0; i < length; i++) { + dataLength += arr[i].byteLength; + } + const data = new Uint8Array(dataLength); + let pos = 0; + for (let i = 0; i < length; i++) { + const item = new Uint8Array(arr[i]); + data.set(item, pos); + pos += item.byteLength; + } + return data; +} +async function fetchBinaryData(url) { + const response = await fetch(url); + if (!response.ok) { + throw new Error(`Failed to fetch file "${url}" with "${response.statusText}".`); + } + return new Uint8Array(await response.arrayBuffer()); +} +function getInheritableProperty({ + dict, + key, + getArray = false, + stopWhenFound = true +}) { + let values; + const visited = new RefSet(); + while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) { + if (dict.objId) { + visited.put(dict.objId); + } + const value = getArray ? dict.getArray(key) : dict.get(key); + if (value !== undefined) { + if (stopWhenFound) { + return value; + } + (values ||= []).push(value); + } + dict = dict.get("Parent"); + } + return values; +} +function getParentToUpdate(dict, ref, xref) { + const visited = new RefSet(); + const firstDict = dict; + const result = { + dict: null, + ref: null + }; + while (dict instanceof Dict && !visited.has(ref)) { + visited.put(ref); + if (dict.has("T")) { + break; + } + ref = dict.getRaw("Parent"); + if (!(ref instanceof Ref)) { + return result; + } + dict = xref.fetch(ref); + } + if (dict instanceof Dict && dict !== firstDict) { + result.dict = dict; + result.ref = ref; + } + return result; +} +const ROMAN_NUMBER_MAP = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]; +function toRomanNumerals(number, lowerCase = false) { + assert(Number.isInteger(number) && number > 0, "The number should be a positive integer."); + const roman = "M".repeat(number / 1000 | 0) + ROMAN_NUMBER_MAP[number % 1000 / 100 | 0] + ROMAN_NUMBER_MAP[10 + (number % 100 / 10 | 0)] + ROMAN_NUMBER_MAP[20 + number % 10]; + return lowerCase ? roman.toLowerCase() : roman; +} +function log2(x) { + return x > 0 ? Math.ceil(Math.log2(x)) : 0; +} +function readInt8(data, offset) { + return data[offset] << 24 >> 24; +} +function readInt16(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16) >> 16; +} +function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; +} +function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; +} +function isWhiteSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a; +} +function isBooleanArray(arr, len) { + return Array.isArray(arr) && (len === null || arr.length === len) && arr.every(x => typeof x === "boolean"); +} +function isNumberArray(arr, len) { + if (Array.isArray(arr)) { + return (len === null || arr.length === len) && arr.every(x => typeof x === "number"); + } + return ArrayBuffer.isView(arr) && !(arr instanceof BigInt64Array || arr instanceof BigUint64Array) && (len === null || arr.length === len); +} +function lookupMatrix(arr, fallback) { + return isNumberArray(arr, 6) ? arr : fallback; +} +function lookupRect(arr, fallback) { + return isNumberArray(arr, 4) ? arr : fallback; +} +function lookupNormalRect(arr, fallback) { + return isNumberArray(arr, 4) ? Util.normalizeRect(arr) : fallback; +} +function parseXFAPath(path) { + const positionPattern = /(.+)\[(\d+)\]$/; + return path.split(".").map(component => { + const m = component.match(positionPattern); + if (m) { + return { + name: m[1], + pos: parseInt(m[2], 10) + }; + } + return { + name: component, + pos: 0 + }; + }); +} +function escapePDFName(str) { + const buffer = []; + let start = 0; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) { + if (start < i) { + buffer.push(str.substring(start, i)); + } + buffer.push(`#${char.toString(16)}`); + start = i + 1; + } + } + if (buffer.length === 0) { + return str; + } + if (start < str.length) { + buffer.push(str.substring(start, str.length)); + } + return buffer.join(""); +} +function escapeString(str) { + return str.replaceAll(/([()\\\n\r])/g, match => { + if (match === "\n") { + return "\\n"; + } else if (match === "\r") { + return "\\r"; + } + return `\\${match}`; + }); +} +function _collectJS(entry, xref, list, parents) { + if (!entry) { + return; + } + let parent = null; + if (entry instanceof Ref) { + if (parents.has(entry)) { + return; + } + parent = entry; + parents.put(parent); + entry = xref.fetch(entry); + } + if (Array.isArray(entry)) { + for (const element of entry) { + _collectJS(element, xref, list, parents); + } + } else if (entry instanceof Dict) { + if (isName(entry.get("S"), "JavaScript")) { + const js = entry.get("JS"); + let code; + if (js instanceof BaseStream) { + code = js.getString(); + } else if (typeof js === "string") { + code = js; + } + code &&= stringToPDFString(code, true).replaceAll("\x00", ""); + if (code) { + list.push(code.trim()); + } + } + _collectJS(entry.getRaw("Next"), xref, list, parents); + } + if (parent) { + parents.remove(parent); + } +} +function collectActions(xref, dict, eventType) { + const actions = Object.create(null); + const additionalActionsDicts = getInheritableProperty({ + dict, + key: "AA", + stopWhenFound: false + }); + if (additionalActionsDicts) { + for (let i = additionalActionsDicts.length - 1; i >= 0; i--) { + const additionalActions = additionalActionsDicts[i]; + if (!(additionalActions instanceof Dict)) { + continue; + } + for (const key of additionalActions.getKeys()) { + const action = eventType[key]; + if (!action) { + continue; + } + const actionDict = additionalActions.getRaw(key); + const parents = new RefSet(); + const list = []; + _collectJS(actionDict, xref, list, parents); + if (list.length > 0) { + actions[action] = list; + } + } + } + } + if (dict.has("A")) { + const actionDict = dict.get("A"); + const parents = new RefSet(); + const list = []; + _collectJS(actionDict, xref, list, parents); + if (list.length > 0) { + actions.Action = list; + } + } + return objectSize(actions) > 0 ? actions : null; +} +const XMLEntities = { + 0x3c: "<", + 0x3e: ">", + 0x26: "&", + 0x22: """, + 0x27: "'" +}; +function* codePointIter(str) { + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.codePointAt(i); + if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) { + i++; + } + yield char; + } +} +function encodeToXmlString(str) { + const buffer = []; + let start = 0; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.codePointAt(i); + if (0x20 <= char && char <= 0x7e) { + const entity = XMLEntities[char]; + if (entity) { + if (start < i) { + buffer.push(str.substring(start, i)); + } + buffer.push(entity); + start = i + 1; + } + } else { + if (start < i) { + buffer.push(str.substring(start, i)); + } + buffer.push(`&#x${char.toString(16).toUpperCase()};`); + if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) { + i++; + } + start = i + 1; + } + } + if (buffer.length === 0) { + return str; + } + if (start < str.length) { + buffer.push(str.substring(start, str.length)); + } + return buffer.join(""); +} +function validateFontName(fontFamily, mustWarn = false) { + const m = /^("|').*("|')$/.exec(fontFamily); + if (m && m[1] === m[2]) { + const re = new RegExp(`[^\\\\]${m[1]}`); + if (re.test(fontFamily.slice(1, -1))) { + if (mustWarn) { + warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`); + } + return false; + } + } else { + for (const ident of fontFamily.split(/[ \t]+/)) { + if (/^(\d|(-(\d|-)))/.test(ident) || !/^[\w-\\]+$/.test(ident)) { + if (mustWarn) { + warn(`FontFamily contains invalid : ${fontFamily}.`); + } + return false; + } + } + } + return true; +} +function validateCSSFont(cssFontInfo) { + const DEFAULT_CSS_FONT_OBLIQUE = "14"; + const DEFAULT_CSS_FONT_WEIGHT = "400"; + const CSS_FONT_WEIGHT_VALUES = new Set(["100", "200", "300", "400", "500", "600", "700", "800", "900", "1000", "normal", "bold", "bolder", "lighter"]); + const { + fontFamily, + fontWeight, + italicAngle + } = cssFontInfo; + if (!validateFontName(fontFamily, true)) { + return false; + } + const weight = fontWeight ? fontWeight.toString() : ""; + cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight) ? weight : DEFAULT_CSS_FONT_WEIGHT; + const angle = parseFloat(italicAngle); + cssFontInfo.italicAngle = isNaN(angle) || angle < -90 || angle > 90 ? DEFAULT_CSS_FONT_OBLIQUE : italicAngle.toString(); + return true; +} +function recoverJsURL(str) { + const URL_OPEN_METHODS = ["app.launchURL", "window.open", "xfa.host.gotoURL"]; + const regex = new RegExp("^\\s*(" + URL_OPEN_METHODS.join("|").replaceAll(".", "\\.") + ")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))", "i"); + const jsUrl = regex.exec(str); + if (jsUrl?.[2]) { + return { + url: jsUrl[2], + newWindow: jsUrl[1] === "app.launchURL" && jsUrl[3] === "true" + }; + } + return null; +} +function numberToString(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + const roundedValue = Math.round(value * 100); + if (roundedValue % 100 === 0) { + return (roundedValue / 100).toString(); + } + if (roundedValue % 10 === 0) { + return value.toFixed(1); + } + return value.toFixed(2); +} +function getNewAnnotationsMap(annotationStorage) { + if (!annotationStorage) { + return null; + } + const newAnnotationsByPage = new Map(); + for (const [key, value] of annotationStorage) { + if (!key.startsWith(AnnotationEditorPrefix)) { + continue; + } + let annotations = newAnnotationsByPage.get(value.pageIndex); + if (!annotations) { + annotations = []; + newAnnotationsByPage.set(value.pageIndex, annotations); + } + annotations.push(value); + } + return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null; +} +function stringToAsciiOrUTF16BE(str) { + if (str === null || str === undefined) { + return str; + } + return isAscii(str) ? str : stringToUTF16String(str, true); +} +function isAscii(str) { + if (typeof str !== "string") { + return false; + } + return !str || /^[\x00-\x7F]*$/.test(str); +} +function stringToUTF16HexString(str) { + const buf = []; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(hexNumbers[char >> 8 & 0xff], hexNumbers[char & 0xff]); + } + return buf.join(""); +} +function stringToUTF16String(str, bigEndian = false) { + const buf = []; + if (bigEndian) { + buf.push("\xFE\xFF"); + } + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff)); + } + return buf.join(""); +} +function getRotationMatrix(rotation, width, height) { + switch (rotation) { + case 90: + return [0, 1, -1, 0, width, 0]; + case 180: + return [-1, 0, 0, -1, width, height]; + case 270: + return [0, -1, 1, 0, 0, height]; + default: + throw new Error("Invalid rotation"); + } +} +function getSizeInBytes(x) { + return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8); +} + +;// ./external/qcms/qcms_utils.js +class QCMS { + static #memoryArray = null; + static _memory = null; + static _mustAddAlpha = false; + static _destBuffer = null; + static _destOffset = 0; + static _destLength = 0; + static _cssColor = ""; + static _makeHexColor = null; + static get _memoryArray() { + const array = this.#memoryArray; + if (array?.byteLength) { + return array; + } + return this.#memoryArray = new Uint8Array(this._memory.buffer); + } +} +function copy_result(ptr, len) { + const { + _mustAddAlpha, + _destBuffer, + _destOffset, + _destLength, + _memoryArray + } = QCMS; + if (len === _destLength) { + _destBuffer.set(_memoryArray.subarray(ptr, ptr + len), _destOffset); + return; + } + if (_mustAddAlpha) { + for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) { + _destBuffer[j] = _memoryArray[i]; + _destBuffer[j + 1] = _memoryArray[i + 1]; + _destBuffer[j + 2] = _memoryArray[i + 2]; + _destBuffer[j + 3] = 255; + } + } else { + for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) { + _destBuffer[j] = _memoryArray[i]; + _destBuffer[j + 1] = _memoryArray[i + 1]; + _destBuffer[j + 2] = _memoryArray[i + 2]; + } + } +} +function copy_rgb(ptr) { + const { + _destBuffer, + _destOffset, + _memoryArray + } = QCMS; + _destBuffer[_destOffset] = _memoryArray[ptr]; + _destBuffer[_destOffset + 1] = _memoryArray[ptr + 1]; + _destBuffer[_destOffset + 2] = _memoryArray[ptr + 2]; +} +function make_cssRGB(ptr) { + const { + _memoryArray + } = QCMS; + QCMS._cssColor = QCMS._makeHexColor(_memoryArray[ptr], _memoryArray[ptr + 1], _memoryArray[ptr + 2]); +} + +;// ./external/qcms/qcms.js + +let wasm; +const cachedTextDecoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { + ignoreBOM: true, + fatal: true +}) : { + decode: () => { + throw Error('TextDecoder not available'); + } +}; +if (typeof TextDecoder !== 'undefined') { + cachedTextDecoder.decode(); +} +; +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} +let WASM_VECTOR_LEN = 0; +function passArray8ToWasm0(arg, malloc) { + const ptr = malloc(arg.length * 1, 1) >>> 0; + getUint8ArrayMemory0().set(arg, ptr / 1); + WASM_VECTOR_LEN = arg.length; + return ptr; +} +function qcms_convert_array(transformer, src) { + const ptr0 = passArray8ToWasm0(src, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + wasm.qcms_convert_array(transformer, ptr0, len0); +} +function qcms_convert_one(transformer, src, css) { + wasm.qcms_convert_one(transformer, src, css); +} +function qcms_convert_three(transformer, src1, src2, src3, css) { + wasm.qcms_convert_three(transformer, src1, src2, src3, css); +} +function qcms_convert_four(transformer, src1, src2, src3, src4, css) { + wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css); +} +function qcms_transformer_from_memory(mem, in_type, intent) { + const ptr0 = passArray8ToWasm0(mem, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.qcms_transformer_from_memory(ptr0, len0, in_type, intent); + return ret >>> 0; +} +function qcms_drop_transformer(transformer) { + wasm.qcms_drop_transformer(transformer); +} +const DataType = Object.freeze({ + RGB8: 0, + "0": "RGB8", + RGBA8: 1, + "1": "RGBA8", + BGRA8: 2, + "2": "BGRA8", + Gray8: 3, + "3": "Gray8", + GrayA8: 4, + "4": "GrayA8", + CMYK: 5, + "5": "CMYK" +}); +const Intent = Object.freeze({ + Perceptual: 0, + "0": "Perceptual", + RelativeColorimetric: 1, + "1": "RelativeColorimetric", + Saturation: 2, + "2": "Saturation", + AbsoluteColorimetric: 3, + "3": "AbsoluteColorimetric" +}); +async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + } catch (e) { + if (module.headers.get('Content-Type') != 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + } else { + throw e; + } + } + } + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + } else { + const instance = await WebAssembly.instantiate(module, imports); + if (instance instanceof WebAssembly.Instance) { + return { + instance, + module + }; + } else { + return instance; + } + } +} +function __wbg_get_imports() { + const imports = {}; + imports.wbg = {}; + imports.wbg.__wbg_copyresult_b08ee7d273f295dd = function (arg0, arg1) { + copy_result(arg0 >>> 0, arg1 >>> 0); + }; + imports.wbg.__wbg_copyrgb_d60ce17bb05d9b67 = function (arg0) { + copy_rgb(arg0 >>> 0); + }; + imports.wbg.__wbg_makecssRGB_893bf0cd9fdb302d = function (arg0) { + make_cssRGB(arg0 >>> 0); + }; + imports.wbg.__wbindgen_init_externref_table = function () { + const table = wasm.__wbindgen_export_0; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + }; + imports.wbg.__wbindgen_throw = function (arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + return imports; +} +function __wbg_init_memory(imports, memory) {} +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + __wbg_init.__wbindgen_wasm_module = module; + cachedUint8ArrayMemory0 = null; + wasm.__wbindgen_start(); + return wasm; +} +function initSync(module) { + if (wasm !== undefined) return wasm; + if (typeof module !== 'undefined') { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({ + module + } = module); + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead'); + } + } + const imports = __wbg_get_imports(); + __wbg_init_memory(imports); + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + const instance = new WebAssembly.Instance(module, imports); + return __wbg_finalize_init(instance, module); +} +async function __wbg_init(module_or_path) { + if (wasm !== undefined) return wasm; + if (typeof module_or_path !== 'undefined') { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({ + module_or_path + } = module_or_path); + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead'); + } + } + const imports = __wbg_get_imports(); + if (typeof module_or_path === 'string' || typeof Request === 'function' && module_or_path instanceof Request || typeof URL === 'function' && module_or_path instanceof URL) { + module_or_path = fetch(module_or_path); + } + __wbg_init_memory(imports); + const { + instance, + module + } = await __wbg_load(await module_or_path, imports); + return __wbg_finalize_init(instance, module); +} + +/* harmony default export */ const qcms = ((/* unused pure expression or super */ null && (__wbg_init))); +;// ./src/core/colorspace.js + + +function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) { + const COMPONENTS = 3; + alpha01 = alpha01 !== 1 ? 0 : alpha01; + const xRatio = w1 / w2; + const yRatio = h1 / h2; + let newIndex = 0, + oldIndex; + const xScaled = new Uint16Array(w2); + const w1Scanline = w1 * COMPONENTS; + for (let i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio) * COMPONENTS; + } + for (let i = 0; i < h2; i++) { + const py = Math.floor(i * yRatio) * w1Scanline; + for (let j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + newIndex += alpha01; + } + } +} +function resizeRgbaImage(src, dest, w1, h1, w2, h2, alpha01) { + const xRatio = w1 / w2; + const yRatio = h1 / h2; + let newIndex = 0; + const xScaled = new Uint16Array(w2); + if (alpha01 === 1) { + for (let i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio); + } + const src32 = new Uint32Array(src.buffer); + const dest32 = new Uint32Array(dest.buffer); + const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00; + for (let i = 0; i < h2; i++) { + const buf = src32.subarray(Math.floor(i * yRatio) * w1); + for (let j = 0; j < w2; j++) { + dest32[newIndex++] |= buf[xScaled[j]] & rgbMask; + } + } + } else { + const COMPONENTS = 4; + const w1Scanline = w1 * COMPONENTS; + for (let i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio) * COMPONENTS; + } + for (let i = 0; i < h2; i++) { + const buf = src.subarray(Math.floor(i * yRatio) * w1Scanline); + for (let j = 0; j < w2; j++) { + const oldIndex = xScaled[j]; + dest[newIndex++] = buf[oldIndex]; + dest[newIndex++] = buf[oldIndex + 1]; + dest[newIndex++] = buf[oldIndex + 2]; + } + } + } +} +function copyRgbaImage(src, dest, alpha01) { + if (alpha01 === 1) { + const src32 = new Uint32Array(src.buffer); + const dest32 = new Uint32Array(dest.buffer); + const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00; + for (let i = 0, ii = src32.length; i < ii; i++) { + dest32[i] |= src32[i] & rgbMask; + } + } else { + let j = 0; + for (let i = 0, ii = src.length; i < ii; i += 4) { + dest[j++] = src[i]; + dest[j++] = src[i + 1]; + dest[j++] = src[i + 2]; + } + } +} +class ColorSpace { + static #rgbBuf = new Uint8ClampedArray(3); + constructor(name, numComps) { + this.name = name; + this.numComps = numComps; + } + getRgb(src, srcOffset, output = new Uint8ClampedArray(3)) { + this.getRgbItem(src, srcOffset, output, 0); + return output; + } + getRgbHex(src, srcOffset) { + const buffer = this.getRgb(src, srcOffset, ColorSpace.#rgbBuf); + return Util.makeHexColor(buffer[0], buffer[1], buffer[2]); + } + getRgbItem(src, srcOffset, dest, destOffset) { + unreachable("Should not call ColorSpace.getRgbItem"); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + unreachable("Should not call ColorSpace.getRgbBuffer"); + } + getOutputLength(inputLength, alpha01) { + unreachable("Should not call ColorSpace.getOutputLength"); + } + isPassthrough(bits) { + return false; + } + isDefaultDecode(decodeMap, bpc) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + } + fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) { + const count = originalWidth * originalHeight; + let rgbBuf = null; + const numComponentColors = 1 << bpc; + const needsResizing = originalHeight !== height || originalWidth !== width; + if (this.isPassthrough(bpc)) { + rgbBuf = comps; + } else if (this.numComps === 1 && count > numComponentColors && this.name !== "DeviceGray" && this.name !== "DeviceRGB") { + const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors); + for (let i = 0; i < numComponentColors; i++) { + allColors[i] = i; + } + const colorMap = new Uint8ClampedArray(numComponentColors * 3); + this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0); + if (!needsResizing) { + let destPos = 0; + for (let i = 0; i < count; ++i) { + const key = comps[i] * 3; + dest[destPos++] = colorMap[key]; + dest[destPos++] = colorMap[key + 1]; + dest[destPos++] = colorMap[key + 2]; + destPos += alpha01; + } + } else { + rgbBuf = new Uint8Array(count * 3); + let rgbPos = 0; + for (let i = 0; i < count; ++i) { + const key = comps[i] * 3; + rgbBuf[rgbPos++] = colorMap[key]; + rgbBuf[rgbPos++] = colorMap[key + 1]; + rgbBuf[rgbPos++] = colorMap[key + 2]; + } + } + } else if (!needsResizing) { + this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01); + } else { + rgbBuf = new Uint8ClampedArray(count * 3); + this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0); + } + if (rgbBuf) { + if (needsResizing) { + resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01); + } else { + let destPos = 0, + rgbPos = 0; + for (let i = 0, ii = width * actualHeight; i < ii; i++) { + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + destPos += alpha01; + } + } + } + } + get usesZeroToOneRange() { + return shadow(this, "usesZeroToOneRange", true); + } + static isDefaultDecode(decode, numComps) { + if (!Array.isArray(decode)) { + return true; + } + if (numComps * 2 !== decode.length) { + warn("The decode map is not the correct length"); + return true; + } + for (let i = 0, ii = decode.length; i < ii; i += 2) { + if (decode[i] !== 0 || decode[i + 1] !== 1) { + return false; + } + } + return true; + } +} +class AlternateCS extends ColorSpace { + constructor(numComps, base, tintFn) { + super("Alternate", numComps); + this.base = base; + this.tintFn = tintFn; + this.tmpBuf = new Float32Array(base.numComps); + } + getRgbItem(src, srcOffset, dest, destOffset) { + const tmpBuf = this.tmpBuf; + this.tintFn(src, srcOffset, tmpBuf, 0); + this.base.getRgbItem(tmpBuf, 0, dest, destOffset); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const tintFn = this.tintFn; + const base = this.base; + const scale = 1 / ((1 << bits) - 1); + const baseNumComps = base.numComps; + const usesZeroToOneRange = base.usesZeroToOneRange; + const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0; + let pos = isPassthrough ? destOffset : 0; + const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count); + const numComps = this.numComps; + const scaled = new Float32Array(numComps); + const tinted = new Float32Array(baseNumComps); + let i, j; + for (i = 0; i < count; i++) { + for (j = 0; j < numComps; j++) { + scaled[j] = src[srcOffset++] * scale; + } + tintFn(scaled, 0, tinted, 0); + if (usesZeroToOneRange) { + for (j = 0; j < baseNumComps; j++) { + baseBuf[pos++] = tinted[j] * 255; + } + } else { + base.getRgbItem(tinted, 0, baseBuf, pos); + pos += baseNumComps; + } + } + if (!isPassthrough) { + base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01); + } + } + getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01); + } +} +class PatternCS extends ColorSpace { + constructor(baseCS) { + super("Pattern", null); + this.base = baseCS; + } + isDefaultDecode(decodeMap, bpc) { + unreachable("Should not call PatternCS.isDefaultDecode"); + } +} +class IndexedCS extends ColorSpace { + constructor(base, highVal, lookup) { + super("Indexed", 1); + this.base = base; + this.highVal = highVal; + const length = base.numComps * (highVal + 1); + this.lookup = new Uint8Array(length); + if (lookup instanceof BaseStream) { + const bytes = lookup.getBytes(length); + this.lookup.set(bytes); + } else if (typeof lookup === "string") { + for (let i = 0; i < length; ++i) { + this.lookup[i] = lookup.charCodeAt(i) & 0xff; + } + } else { + throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`); + } + } + getRgbItem(src, srcOffset, dest, destOffset) { + const { + base, + highVal, + lookup + } = this; + const start = MathClamp(Math.round(src[srcOffset]), 0, highVal) * base.numComps; + base.getRgbBuffer(lookup, start, 1, dest, destOffset, 8, 0); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const { + base, + highVal, + lookup + } = this; + const { + numComps + } = base; + const outputDelta = base.getOutputLength(numComps, alpha01); + for (let i = 0; i < count; ++i) { + const lookupPos = MathClamp(Math.round(src[srcOffset++]), 0, highVal) * numComps; + base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01); + destOffset += outputDelta; + } + } + getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps, alpha01); + } + isDefaultDecode(decodeMap, bpc) { + if (!Array.isArray(decodeMap)) { + return true; + } + if (decodeMap.length !== 2) { + warn("Decode map length is not correct"); + return true; + } + if (!Number.isInteger(bpc) || bpc < 1) { + warn("Bits per component is not correct"); + return true; + } + return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1; + } +} +class DeviceGrayCS extends ColorSpace { + constructor() { + super("DeviceGray", 1); + } + getRgbItem(src, srcOffset, dest, destOffset) { + const c = src[srcOffset] * 255; + dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c; + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 255 / ((1 << bits) - 1); + let j = srcOffset, + q = destOffset; + for (let i = 0; i < count; ++i) { + const c = scale * src[j++]; + dest[q++] = c; + dest[q++] = c; + dest[q++] = c; + q += alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } +} +class DeviceRgbCS extends ColorSpace { + constructor() { + super("DeviceRGB", 3); + } + getRgbItem(src, srcOffset, dest, destOffset) { + dest[destOffset] = src[srcOffset] * 255; + dest[destOffset + 1] = src[srcOffset + 1] * 255; + dest[destOffset + 2] = src[srcOffset + 2] * 255; + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + if (bits === 8 && alpha01 === 0) { + dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset); + return; + } + const scale = 255 / ((1 << bits) - 1); + let j = srcOffset, + q = destOffset; + for (let i = 0; i < count; ++i) { + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + q += alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + isPassthrough(bits) { + return bits === 8; + } +} +class DeviceRgbaCS extends ColorSpace { + constructor() { + super("DeviceRGBA", 4); + } + getOutputLength(inputLength, _alpha01) { + return inputLength * 4; + } + isPassthrough(bits) { + return bits === 8; + } + fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) { + if (originalHeight !== height || originalWidth !== width) { + resizeRgbaImage(comps, dest, originalWidth, originalHeight, width, height, alpha01); + } else { + copyRgbaImage(comps, dest, alpha01); + } + } +} +class DeviceCmykCS extends ColorSpace { + constructor() { + super("DeviceCMYK", 4); + } + #toRgb(src, srcOffset, srcScale, dest, destOffset) { + const c = src[srcOffset] * srcScale; + const m = src[srcOffset + 1] * srcScale; + const y = src[srcOffset + 2] * srcScale; + const k = src[srcOffset + 3] * srcScale; + dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747); + dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578); + dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367); + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, 1, dest, destOffset); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); + for (let i = 0; i < count; i++) { + this.#toRgb(src, srcOffset, scale, dest, destOffset); + srcOffset += 4; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength / 4 * (3 + alpha01) | 0; + } +} +class CalGrayCS extends ColorSpace { + constructor(whitePoint, blackPoint, gamma) { + super("CalGray", 1); + if (!whitePoint) { + throw new FormatError("WhitePoint missing - required for color space CalGray"); + } + [this.XW, this.YW, this.ZW] = whitePoint; + [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0]; + this.G = gamma || 1; + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`); + } + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + info(`Invalid BlackPoint for ${this.name}, falling back to default.`); + this.XB = this.YB = this.ZB = 0; + } + if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) { + warn(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`); + } + if (this.G < 1) { + info(`Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`); + this.G = 1; + } + } + #toRgb(src, srcOffset, dest, destOffset, scale) { + const A = src[srcOffset] * scale; + const AG = A ** this.G; + const L = this.YW * AG; + const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0); + dest[destOffset] = val; + dest[destOffset + 1] = val; + dest[destOffset + 2] = val; + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, dest, destOffset, 1); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); + for (let i = 0; i < count; ++i) { + this.#toRgb(src, srcOffset, dest, destOffset, scale); + srcOffset += 1; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } +} +class CalRGBCS extends ColorSpace { + static #BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]); + static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]); + static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]); + static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]); + static #tempNormalizeMatrix = new Float32Array(3); + static #tempConvertMatrix1 = new Float32Array(3); + static #tempConvertMatrix2 = new Float32Array(3); + static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0; + constructor(whitePoint, blackPoint, gamma, matrix) { + super("CalRGB", 3); + if (!whitePoint) { + throw new FormatError("WhitePoint missing - required for color space CalRGB"); + } + const [XW, YW, ZW] = this.whitePoint = whitePoint; + const [XB, YB, ZB] = this.blackPoint = blackPoint || new Float32Array(3); + [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]); + [this.MXA, this.MYA, this.MZA, this.MXB, this.MYB, this.MZB, this.MXC, this.MYC, this.MZC] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); + if (XW < 0 || ZW < 0 || YW !== 1) { + throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`); + } + if (XB < 0 || YB < 0 || ZB < 0) { + info(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + "falling back to default."); + this.blackPoint = new Float32Array(3); + } + if (this.GR < 0 || this.GG < 0 || this.GB < 0) { + info(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`); + this.GR = this.GG = this.GB = 1; + } + } + #matrixProduct(a, b, result) { + result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2]; + result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2]; + } + #toFlat(sourceWhitePoint, LMS, result) { + result[0] = LMS[0] * 1 / sourceWhitePoint[0]; + result[1] = LMS[1] * 1 / sourceWhitePoint[1]; + result[2] = LMS[2] * 1 / sourceWhitePoint[2]; + } + #toD65(sourceWhitePoint, LMS, result) { + const D65X = 0.95047; + const D65Y = 1; + const D65Z = 1.08883; + result[0] = LMS[0] * D65X / sourceWhitePoint[0]; + result[1] = LMS[1] * D65Y / sourceWhitePoint[1]; + result[2] = LMS[2] * D65Z / sourceWhitePoint[2]; + } + #sRGBTransferFunction(color) { + if (color <= 0.0031308) { + return MathClamp(12.92 * color, 0, 1); + } + if (color >= 0.99554525) { + return 1; + } + return MathClamp((1 + 0.055) * color ** (1 / 2.4) - 0.055, 0, 1); + } + #decodeL(L) { + if (L < 0) { + return -this.#decodeL(-L); + } + if (L > 8.0) { + return ((L + 16) / 116) ** 3; + } + return L * CalRGBCS.#DECODE_L_CONSTANT; + } + #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) { + if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) { + result[0] = XYZ_Flat[0]; + result[1] = XYZ_Flat[1]; + result[2] = XYZ_Flat[2]; + return; + } + const zeroDecodeL = this.#decodeL(0); + const X_DST = zeroDecodeL; + const X_SRC = this.#decodeL(sourceBlackPoint[0]); + const Y_DST = zeroDecodeL; + const Y_SRC = this.#decodeL(sourceBlackPoint[1]); + const Z_DST = zeroDecodeL; + const Z_SRC = this.#decodeL(sourceBlackPoint[2]); + const X_Scale = (1 - X_DST) / (1 - X_SRC); + const X_Offset = 1 - X_Scale; + const Y_Scale = (1 - Y_DST) / (1 - Y_SRC); + const Y_Offset = 1 - Y_Scale; + const Z_Scale = (1 - Z_DST) / (1 - Z_SRC); + const Z_Offset = 1 - Z_Scale; + result[0] = XYZ_Flat[0] * X_Scale + X_Offset; + result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset; + result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset; + } + #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) { + if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) { + result[0] = XYZ_In[0]; + result[1] = XYZ_In[1]; + result[2] = XYZ_In[2]; + return; + } + const LMS = result; + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + const LMS_Flat = CalRGBCS.#tempNormalizeMatrix; + this.#toFlat(sourceWhitePoint, LMS, LMS_Flat); + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result); + } + #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) { + const LMS = result; + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + const LMS_D65 = CalRGBCS.#tempNormalizeMatrix; + this.#toD65(sourceWhitePoint, LMS, LMS_D65); + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result); + } + #toRgb(src, srcOffset, dest, destOffset, scale) { + const A = MathClamp(src[srcOffset] * scale, 0, 1); + const B = MathClamp(src[srcOffset + 1] * scale, 0, 1); + const C = MathClamp(src[srcOffset + 2] * scale, 0, 1); + const AGR = A === 1 ? 1 : A ** this.GR; + const BGG = B === 1 ? 1 : B ** this.GG; + const CGB = C === 1 ? 1 : C ** this.GB; + const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB; + const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB; + const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB; + const XYZ = CalRGBCS.#tempConvertMatrix1; + XYZ[0] = X; + XYZ[1] = Y; + XYZ[2] = Z; + const XYZ_Flat = CalRGBCS.#tempConvertMatrix2; + this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat); + const XYZ_Black = CalRGBCS.#tempConvertMatrix1; + this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black); + const XYZ_D65 = CalRGBCS.#tempConvertMatrix2; + this.#normalizeWhitePointToD65(CalRGBCS.#FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65); + const SRGB = CalRGBCS.#tempConvertMatrix1; + this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB); + dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255; + dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255; + dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255; + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, dest, destOffset, 1); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); + for (let i = 0; i < count; ++i) { + this.#toRgb(src, srcOffset, dest, destOffset, scale); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } +} +class LabCS extends ColorSpace { + constructor(whitePoint, blackPoint, range) { + super("Lab", 3); + if (!whitePoint) { + throw new FormatError("WhitePoint missing - required for color space Lab"); + } + [this.XW, this.YW, this.ZW] = whitePoint; + [this.amin, this.amax, this.bmin, this.bmax] = range || [-100, 100, -100, 100]; + [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0]; + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + throw new FormatError("Invalid WhitePoint components, no fallback available"); + } + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + info("Invalid BlackPoint, falling back to default"); + this.XB = this.YB = this.ZB = 0; + } + if (this.amin > this.amax || this.bmin > this.bmax) { + info("Invalid Range, falling back to defaults"); + this.amin = -100; + this.amax = 100; + this.bmin = -100; + this.bmax = 100; + } + } + #fn_g(x) { + return x >= 6 / 29 ? x ** 3 : 108 / 841 * (x - 4 / 29); + } + #decode(value, high1, low2, high2) { + return low2 + value * (high2 - low2) / high1; + } + #toRgb(src, srcOffset, maxVal, dest, destOffset) { + let Ls = src[srcOffset]; + let as = src[srcOffset + 1]; + let bs = src[srcOffset + 2]; + if (maxVal !== false) { + Ls = this.#decode(Ls, maxVal, 0, 100); + as = this.#decode(as, maxVal, this.amin, this.amax); + bs = this.#decode(bs, maxVal, this.bmin, this.bmax); + } + if (as > this.amax) { + as = this.amax; + } else if (as < this.amin) { + as = this.amin; + } + if (bs > this.bmax) { + bs = this.bmax; + } else if (bs < this.bmin) { + bs = this.bmin; + } + const M = (Ls + 16) / 116; + const L = M + as / 500; + const N = M - bs / 200; + const X = this.XW * this.#fn_g(L); + const Y = this.YW * this.#fn_g(M); + const Z = this.ZW * this.#fn_g(N); + let r, g, b; + if (this.ZW < 1) { + r = X * 3.1339 + Y * -1.617 + Z * -0.4906; + g = X * -0.9785 + Y * 1.916 + Z * 0.0333; + b = X * 0.072 + Y * -0.229 + Z * 1.4057; + } else { + r = X * 3.2406 + Y * -1.5372 + Z * -0.4986; + g = X * -0.9689 + Y * 1.8758 + Z * 0.0415; + b = X * 0.0557 + Y * -0.204 + Z * 1.057; + } + dest[destOffset] = Math.sqrt(r) * 255; + dest[destOffset + 1] = Math.sqrt(g) * 255; + dest[destOffset + 2] = Math.sqrt(b) * 255; + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, false, dest, destOffset); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const maxVal = (1 << bits) - 1; + for (let i = 0; i < count; i++) { + this.#toRgb(src, srcOffset, maxVal, dest, destOffset); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + isDefaultDecode(decodeMap, bpc) { + return true; + } + get usesZeroToOneRange() { + return shadow(this, "usesZeroToOneRange", false); + } +} + +;// ./src/core/icc_colorspace.js + + + + +function fetchSync(url) { + const xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return xhr.response; +} +class IccColorSpace extends ColorSpace { + #transformer; + #convertPixel; + static #useWasm = true; + static #wasmUrl = null; + static #finalizer = new FinalizationRegistry(transformer => { + qcms_drop_transformer(transformer); + }); + constructor(iccProfile, name, numComps) { + if (!IccColorSpace.isUsable) { + throw new Error("No ICC color space support"); + } + super(name, numComps); + let inType; + switch (numComps) { + case 1: + inType = DataType.Gray8; + this.#convertPixel = (src, srcOffset, css) => qcms_convert_one(this.#transformer, src[srcOffset] * 255, css); + break; + case 3: + inType = DataType.RGB8; + this.#convertPixel = (src, srcOffset, css) => qcms_convert_three(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, css); + break; + case 4: + inType = DataType.CMYK; + this.#convertPixel = (src, srcOffset, css) => qcms_convert_four(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, src[srcOffset + 3] * 255, css); + break; + default: + throw new Error(`Unsupported number of components: ${numComps}`); + } + this.#transformer = qcms_transformer_from_memory(iccProfile, inType, Intent.Perceptual); + if (!this.#transformer) { + throw new Error("Failed to create ICC color space"); + } + IccColorSpace.#finalizer.register(this, this.#transformer); + } + getRgbHex(src, srcOffset) { + this.#convertPixel(src, srcOffset, true); + return QCMS._cssColor; + } + getRgbItem(src, srcOffset, dest, destOffset) { + QCMS._destBuffer = dest; + QCMS._destOffset = destOffset; + QCMS._destLength = 3; + this.#convertPixel(src, srcOffset, false); + QCMS._destBuffer = null; + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + src = src.subarray(srcOffset, srcOffset + count * this.numComps); + if (bits !== 8) { + const scale = 255 / ((1 << bits) - 1); + for (let i = 0, ii = src.length; i < ii; i++) { + src[i] *= scale; + } + } + QCMS._mustAddAlpha = alpha01 && dest.buffer === src.buffer; + QCMS._destBuffer = dest; + QCMS._destOffset = destOffset; + QCMS._destLength = count * (3 + alpha01); + qcms_convert_array(this.#transformer, src); + QCMS._mustAddAlpha = false; + QCMS._destBuffer = null; + } + getOutputLength(inputLength, alpha01) { + return inputLength / this.numComps * (3 + alpha01) | 0; + } + static setOptions({ + useWasm, + useWorkerFetch, + wasmUrl + }) { + if (!useWorkerFetch) { + this.#useWasm = false; + return; + } + this.#useWasm = useWasm; + this.#wasmUrl = wasmUrl; + } + static get isUsable() { + let isUsable = false; + if (this.#useWasm) { + if (this.#wasmUrl) { + try { + this._module = initSync({ + module: fetchSync(`${this.#wasmUrl}qcms_bg.wasm`) + }); + isUsable = !!this._module; + QCMS._memory = this._module.memory; + QCMS._makeHexColor = Util.makeHexColor; + } catch (e) { + warn(`ICCBased color space: "${e}".`); + } + } else { + warn("No ICC color space support due to missing `wasmUrl` API option"); + } + } + return shadow(this, "isUsable", isUsable); + } +} +class CmykICCBasedCS extends IccColorSpace { + static #iccUrl; + constructor() { + const iccProfile = new Uint8Array(fetchSync(`${CmykICCBasedCS.#iccUrl}CGATS001Compat-v2-micro.icc`)); + super(iccProfile, "DeviceCMYK", 4); + } + static setOptions({ + iccUrl + }) { + this.#iccUrl = iccUrl; + } + static get isUsable() { + let isUsable = false; + if (IccColorSpace.isUsable) { + if (this.#iccUrl) { + isUsable = true; + } else { + warn("No CMYK ICC profile support due to missing `iccUrl` API option"); + } + } + return shadow(this, "isUsable", isUsable); + } +} + +;// ./src/core/stream.js + + +class Stream extends BaseStream { + constructor(arrayBuffer, start, length, dict) { + super(); + this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer); + this.start = start || 0; + this.pos = this.start; + this.end = start + length || this.bytes.length; + this.dict = dict; + } + get length() { + return this.end - this.start; + } + get isEmpty() { + return this.length === 0; + } + getByte() { + if (this.pos >= this.end) { + return -1; + } + return this.bytes[this.pos++]; + } + getBytes(length) { + const bytes = this.bytes; + const pos = this.pos; + const strEnd = this.end; + if (!length) { + return bytes.subarray(pos, strEnd); + } + let end = pos + length; + if (end > strEnd) { + end = strEnd; + } + this.pos = end; + return bytes.subarray(pos, end); + } + getByteRange(begin, end) { + if (begin < 0) { + begin = 0; + } + if (end > this.end) { + end = this.end; + } + return this.bytes.subarray(begin, end); + } + reset() { + this.pos = this.start; + } + moveStart() { + this.start = this.pos; + } + makeSubStream(start, length, dict = null) { + return new Stream(this.bytes.buffer, start, length, dict); + } +} +class StringStream extends Stream { + constructor(str) { + super(stringToBytes(str)); + } +} +class NullStream extends Stream { + constructor() { + super(new Uint8Array(0)); + } +} + +;// ./src/core/chunked_stream.js + + + +class ChunkedStream extends Stream { + constructor(length, chunkSize, manager) { + super(new Uint8Array(length), 0, length, null); + this.chunkSize = chunkSize; + this._loadedChunks = new Set(); + this.numChunks = Math.ceil(length / chunkSize); + this.manager = manager; + this.progressiveDataLength = 0; + this.lastSuccessfulEnsureByteChunk = -1; + } + getMissingChunks() { + const chunks = []; + for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + chunks.push(chunk); + } + } + return chunks; + } + get numChunksLoaded() { + return this._loadedChunks.size; + } + get isDataLoaded() { + return this.numChunksLoaded === this.numChunks; + } + onReceiveData(begin, chunk) { + const chunkSize = this.chunkSize; + if (begin % chunkSize !== 0) { + throw new Error(`Bad begin offset: ${begin}`); + } + const end = begin + chunk.byteLength; + if (end % chunkSize !== 0 && end !== this.bytes.length) { + throw new Error(`Bad end offset: ${end}`); + } + this.bytes.set(new Uint8Array(chunk), begin); + const beginChunk = Math.floor(begin / chunkSize); + const endChunk = Math.floor((end - 1) / chunkSize) + 1; + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + this._loadedChunks.add(curChunk); + } + } + onReceiveProgressiveData(data) { + let position = this.progressiveDataLength; + const beginChunk = Math.floor(position / this.chunkSize); + this.bytes.set(new Uint8Array(data), position); + position += data.byteLength; + this.progressiveDataLength = position; + const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize); + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + this._loadedChunks.add(curChunk); + } + } + ensureByte(pos) { + if (pos < this.progressiveDataLength) { + return; + } + const chunk = Math.floor(pos / this.chunkSize); + if (chunk > this.numChunks) { + return; + } + if (chunk === this.lastSuccessfulEnsureByteChunk) { + return; + } + if (!this._loadedChunks.has(chunk)) { + throw new MissingDataException(pos, pos + 1); + } + this.lastSuccessfulEnsureByteChunk = chunk; + } + ensureRange(begin, end) { + if (begin >= end) { + return; + } + if (end <= this.progressiveDataLength) { + return; + } + const beginChunk = Math.floor(begin / this.chunkSize); + if (beginChunk > this.numChunks) { + return; + } + const endChunk = Math.min(Math.floor((end - 1) / this.chunkSize) + 1, this.numChunks); + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + throw new MissingDataException(begin, end); + } + } + } + nextEmptyChunk(beginChunk) { + const numChunks = this.numChunks; + for (let i = 0; i < numChunks; ++i) { + const chunk = (beginChunk + i) % numChunks; + if (!this._loadedChunks.has(chunk)) { + return chunk; + } + } + return null; + } + hasChunk(chunk) { + return this._loadedChunks.has(chunk); + } + getByte() { + const pos = this.pos; + if (pos >= this.end) { + return -1; + } + if (pos >= this.progressiveDataLength) { + this.ensureByte(pos); + } + return this.bytes[this.pos++]; + } + getBytes(length) { + const bytes = this.bytes; + const pos = this.pos; + const strEnd = this.end; + if (!length) { + if (strEnd > this.progressiveDataLength) { + this.ensureRange(pos, strEnd); + } + return bytes.subarray(pos, strEnd); + } + let end = pos + length; + if (end > strEnd) { + end = strEnd; + } + if (end > this.progressiveDataLength) { + this.ensureRange(pos, end); + } + this.pos = end; + return bytes.subarray(pos, end); + } + getByteRange(begin, end) { + if (begin < 0) { + begin = 0; + } + if (end > this.end) { + end = this.end; + } + if (end > this.progressiveDataLength) { + this.ensureRange(begin, end); + } + return this.bytes.subarray(begin, end); + } + makeSubStream(start, length, dict = null) { + if (length) { + if (start + length > this.progressiveDataLength) { + this.ensureRange(start, start + length); + } + } else if (start >= this.progressiveDataLength) { + this.ensureByte(start); + } + function ChunkedStreamSubstream() {} + ChunkedStreamSubstream.prototype = Object.create(this); + ChunkedStreamSubstream.prototype.getMissingChunks = function () { + const chunkSize = this.chunkSize; + const beginChunk = Math.floor(this.start / chunkSize); + const endChunk = Math.floor((this.end - 1) / chunkSize) + 1; + const missingChunks = []; + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + missingChunks.push(chunk); + } + } + return missingChunks; + }; + Object.defineProperty(ChunkedStreamSubstream.prototype, "isDataLoaded", { + get() { + if (this.numChunksLoaded === this.numChunks) { + return true; + } + return this.getMissingChunks().length === 0; + }, + configurable: true + }); + const subStream = new ChunkedStreamSubstream(); + subStream.pos = subStream.start = start; + subStream.end = start + length || this.end; + subStream.dict = dict; + return subStream; + } + getBaseStreams() { + return [this]; + } +} +class ChunkedStreamManager { + constructor(pdfNetworkStream, args) { + this.length = args.length; + this.chunkSize = args.rangeChunkSize; + this.stream = new ChunkedStream(this.length, this.chunkSize, this); + this.pdfNetworkStream = pdfNetworkStream; + this.disableAutoFetch = args.disableAutoFetch; + this.msgHandler = args.msgHandler; + this.currRequestId = 0; + this._chunksNeededByRequest = new Map(); + this._requestsByChunk = new Map(); + this._promisesByRequest = new Map(); + this.progressiveDataLength = 0; + this.aborted = false; + this._loadedStreamCapability = Promise.withResolvers(); + } + sendRequest(begin, end) { + const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end); + if (!rangeReader.isStreamingSupported) { + rangeReader.onProgress = this.onProgress.bind(this); + } + let chunks = [], + loaded = 0; + return new Promise((resolve, reject) => { + const readChunk = ({ + value, + done + }) => { + try { + if (done) { + const chunkData = arrayBuffersToBytes(chunks); + chunks = null; + resolve(chunkData); + return; + } + loaded += value.byteLength; + if (rangeReader.isStreamingSupported) { + this.onProgress({ + loaded + }); + } + chunks.push(value); + rangeReader.read().then(readChunk, reject); + } catch (e) { + reject(e); + } + }; + rangeReader.read().then(readChunk, reject); + }).then(data => { + if (this.aborted) { + return; + } + this.onReceiveData({ + chunk: data, + begin + }); + }); + } + requestAllChunks(noFetch = false) { + if (!noFetch) { + const missingChunks = this.stream.getMissingChunks(); + this._requestChunks(missingChunks); + } + return this._loadedStreamCapability.promise; + } + _requestChunks(chunks) { + const requestId = this.currRequestId++; + const chunksNeeded = new Set(); + this._chunksNeededByRequest.set(requestId, chunksNeeded); + for (const chunk of chunks) { + if (!this.stream.hasChunk(chunk)) { + chunksNeeded.add(chunk); + } + } + if (chunksNeeded.size === 0) { + return Promise.resolve(); + } + const capability = Promise.withResolvers(); + this._promisesByRequest.set(requestId, capability); + const chunksToRequest = []; + for (const chunk of chunksNeeded) { + let requestIds = this._requestsByChunk.get(chunk); + if (!requestIds) { + requestIds = []; + this._requestsByChunk.set(chunk, requestIds); + chunksToRequest.push(chunk); + } + requestIds.push(requestId); + } + if (chunksToRequest.length > 0) { + const groupedChunksToRequest = this.groupChunks(chunksToRequest); + for (const groupedChunk of groupedChunksToRequest) { + const begin = groupedChunk.beginChunk * this.chunkSize; + const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length); + this.sendRequest(begin, end).catch(capability.reject); + } + } + return capability.promise.catch(reason => { + if (this.aborted) { + return; + } + throw reason; + }); + } + getStream() { + return this.stream; + } + requestRange(begin, end) { + end = Math.min(end, this.length); + const beginChunk = this.getBeginChunk(begin); + const endChunk = this.getEndChunk(end); + const chunks = []; + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + chunks.push(chunk); + } + return this._requestChunks(chunks); + } + requestRanges(ranges = []) { + const chunksToRequest = []; + for (const range of ranges) { + const beginChunk = this.getBeginChunk(range.begin); + const endChunk = this.getEndChunk(range.end); + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!chunksToRequest.includes(chunk)) { + chunksToRequest.push(chunk); + } + } + } + chunksToRequest.sort((a, b) => a - b); + return this._requestChunks(chunksToRequest); + } + groupChunks(chunks) { + const groupedChunks = []; + let beginChunk = -1; + let prevChunk = -1; + for (let i = 0, ii = chunks.length; i < ii; ++i) { + const chunk = chunks[i]; + if (beginChunk < 0) { + beginChunk = chunk; + } + if (prevChunk >= 0 && prevChunk + 1 !== chunk) { + groupedChunks.push({ + beginChunk, + endChunk: prevChunk + 1 + }); + beginChunk = chunk; + } + if (i + 1 === chunks.length) { + groupedChunks.push({ + beginChunk, + endChunk: chunk + 1 + }); + } + prevChunk = chunk; + } + return groupedChunks; + } + onProgress(args) { + this.msgHandler.send("DocProgress", { + loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded, + total: this.length + }); + } + onReceiveData(args) { + const chunk = args.chunk; + const isProgressive = args.begin === undefined; + const begin = isProgressive ? this.progressiveDataLength : args.begin; + const end = begin + chunk.byteLength; + const beginChunk = Math.floor(begin / this.chunkSize); + const endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize); + if (isProgressive) { + this.stream.onReceiveProgressiveData(chunk); + this.progressiveDataLength = end; + } else { + this.stream.onReceiveData(begin, chunk); + } + if (this.stream.isDataLoaded) { + this._loadedStreamCapability.resolve(this.stream); + } + const loadedRequests = []; + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + const requestIds = this._requestsByChunk.get(curChunk); + if (!requestIds) { + continue; + } + this._requestsByChunk.delete(curChunk); + for (const requestId of requestIds) { + const chunksNeeded = this._chunksNeededByRequest.get(requestId); + if (chunksNeeded.has(curChunk)) { + chunksNeeded.delete(curChunk); + } + if (chunksNeeded.size > 0) { + continue; + } + loadedRequests.push(requestId); + } + } + if (!this.disableAutoFetch && this._requestsByChunk.size === 0) { + let nextEmptyChunk; + if (this.stream.numChunksLoaded === 1) { + const lastChunk = this.stream.numChunks - 1; + if (!this.stream.hasChunk(lastChunk)) { + nextEmptyChunk = lastChunk; + } + } else { + nextEmptyChunk = this.stream.nextEmptyChunk(endChunk); + } + if (Number.isInteger(nextEmptyChunk)) { + this._requestChunks([nextEmptyChunk]); + } + } + for (const requestId of loadedRequests) { + const capability = this._promisesByRequest.get(requestId); + this._promisesByRequest.delete(requestId); + capability.resolve(); + } + this.msgHandler.send("DocProgress", { + loaded: this.stream.numChunksLoaded * this.chunkSize, + total: this.length + }); + } + onError(err) { + this._loadedStreamCapability.reject(err); + } + getBeginChunk(begin) { + return Math.floor(begin / this.chunkSize); + } + getEndChunk(end) { + return Math.floor((end - 1) / this.chunkSize) + 1; + } + abort(reason) { + this.aborted = true; + this.pdfNetworkStream?.cancelAllRequests(reason); + for (const capability of this._promisesByRequest.values()) { + capability.reject(reason); + } + } +} + +;// ./src/shared/image_utils.js + +function convertToRGBA(params) { + switch (params.kind) { + case ImageKind.GRAYSCALE_1BPP: + return convertBlackAndWhiteToRGBA(params); + case ImageKind.RGB_24BPP: + return convertRGBToRGBA(params); + } + return null; +} +function convertBlackAndWhiteToRGBA({ + src, + srcPos = 0, + dest, + width, + height, + nonBlackColor = 0xffffffff, + inverseDecode = false +}) { + const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor]; + const widthInSource = width >> 3; + const widthRemainder = width & 7; + const srcLength = src.length; + dest = new Uint32Array(dest.buffer); + let destPos = 0; + for (let i = 0; i < height; i++) { + for (const max = srcPos + widthInSource; srcPos < max; srcPos++) { + const elem = srcPos < srcLength ? src[srcPos] : 255; + dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping; + } + if (widthRemainder === 0) { + continue; + } + const elem = srcPos < srcLength ? src[srcPos++] : 255; + for (let j = 0; j < widthRemainder; j++) { + dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping; + } + } + return { + srcPos, + destPos + }; +} +function convertRGBToRGBA({ + src, + srcPos = 0, + dest, + destPos = 0, + width, + height +}) { + let i = 0; + const len = width * height * 3; + const len32 = len >> 2; + const src32 = new Uint32Array(src.buffer, srcPos, len32); + if (FeatureTest.isLittleEndian) { + for (; i < len32 - 2; i += 3, destPos += 4) { + const s1 = src32[i]; + const s2 = src32[i + 1]; + const s3 = src32[i + 2]; + dest[destPos] = s1 | 0xff000000; + dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000; + dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000; + dest[destPos + 3] = s3 >>> 8 | 0xff000000; + } + for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) { + dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000; + } + } else { + for (; i < len32 - 2; i += 3, destPos += 4) { + const s1 = src32[i]; + const s2 = src32[i + 1]; + const s3 = src32[i + 2]; + dest[destPos] = s1 | 0xff; + dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff; + dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff; + dest[destPos + 3] = s3 << 8 | 0xff; + } + for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) { + dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff; + } + } + return { + srcPos: srcPos + len, + destPos + }; +} +function grayToRGBA(src, dest) { + if (FeatureTest.isLittleEndian) { + for (let i = 0, ii = src.length; i < ii; i++) { + dest[i] = src[i] * 0x10101 | 0xff000000; + } + } else { + for (let i = 0, ii = src.length; i < ii; i++) { + dest[i] = src[i] * 0x1010100 | 0x000000ff; + } + } +} + +;// ./src/core/image_resizer.js + + + +const MIN_IMAGE_DIM = 2048; +const MAX_IMAGE_DIM = 65537; +const MAX_ERROR = 128; +class ImageResizer { + static #goodSquareLength = MIN_IMAGE_DIM; + static #isImageDecoderSupported = FeatureTest.isImageDecoderSupported; + constructor(imgData, isMask) { + this._imgData = imgData; + this._isMask = isMask; + } + static get canUseImageDecoder() { + return shadow(this, "canUseImageDecoder", this.#isImageDecoderSupported ? ImageDecoder.isTypeSupported("image/bmp") : Promise.resolve(false)); + } + static needsToBeResized(width, height) { + if (width <= this.#goodSquareLength && height <= this.#goodSquareLength) { + return false; + } + const { + MAX_DIM + } = this; + if (width > MAX_DIM || height > MAX_DIM) { + return true; + } + const area = width * height; + if (this._hasMaxArea) { + return area > this.MAX_AREA; + } + if (area < this.#goodSquareLength ** 2) { + return false; + } + if (this._areGoodDims(width, height)) { + this.#goodSquareLength = Math.max(this.#goodSquareLength, Math.floor(Math.sqrt(width * height))); + return false; + } + this.#goodSquareLength = this._guessMax(this.#goodSquareLength, MAX_DIM, MAX_ERROR, 0); + const maxArea = this.MAX_AREA = this.#goodSquareLength ** 2; + return area > maxArea; + } + static getReducePowerForJPX(width, height, componentsCount) { + const area = width * height; + const maxJPXArea = 2 ** 30 / (componentsCount * 4); + if (!this.needsToBeResized(width, height)) { + if (area > maxJPXArea) { + return Math.ceil(Math.log2(area / maxJPXArea)); + } + return 0; + } + const { + MAX_DIM, + MAX_AREA + } = this; + const minFactor = Math.max(width / MAX_DIM, height / MAX_DIM, Math.sqrt(area / Math.min(maxJPXArea, MAX_AREA))); + return Math.ceil(Math.log2(minFactor)); + } + static get MAX_DIM() { + return shadow(this, "MAX_DIM", this._guessMax(MIN_IMAGE_DIM, MAX_IMAGE_DIM, 0, 1)); + } + static get MAX_AREA() { + this._hasMaxArea = true; + return shadow(this, "MAX_AREA", this._guessMax(this.#goodSquareLength, this.MAX_DIM, MAX_ERROR, 0) ** 2); + } + static set MAX_AREA(area) { + if (area >= 0) { + this._hasMaxArea = true; + shadow(this, "MAX_AREA", area); + } + } + static setOptions({ + canvasMaxAreaInBytes = -1, + isImageDecoderSupported = false + }) { + if (!this._hasMaxArea) { + this.MAX_AREA = canvasMaxAreaInBytes >> 2; + } + this.#isImageDecoderSupported = isImageDecoderSupported; + } + static _areGoodDims(width, height) { + try { + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d"); + ctx.fillRect(0, 0, 1, 1); + const opacity = ctx.getImageData(0, 0, 1, 1).data[3]; + canvas.width = canvas.height = 1; + return opacity !== 0; + } catch { + return false; + } + } + static _guessMax(start, end, tolerance, defaultHeight) { + while (start + tolerance + 1 < end) { + const middle = Math.floor((start + end) / 2); + const height = defaultHeight || middle; + if (this._areGoodDims(middle, height)) { + start = middle; + } else { + end = middle; + } + } + return start; + } + static async createImage(imgData, isMask = false) { + return new ImageResizer(imgData, isMask)._createImage(); + } + async _createImage() { + const { + _imgData: imgData + } = this; + const { + width, + height + } = imgData; + if (width * height * 4 > MAX_INT_32) { + const result = this.#rescaleImageData(); + if (result) { + return result; + } + } + const data = this._encodeBMP(); + let decoder, imagePromise; + if (await ImageResizer.canUseImageDecoder) { + decoder = new ImageDecoder({ + data, + type: "image/bmp", + preferAnimation: false, + transfer: [data.buffer] + }); + imagePromise = decoder.decode().catch(reason => { + warn(`BMP image decoding failed: ${reason}`); + return createImageBitmap(new Blob([this._encodeBMP().buffer], { + type: "image/bmp" + })); + }).finally(() => { + decoder.close(); + }); + } else { + imagePromise = createImageBitmap(new Blob([data.buffer], { + type: "image/bmp" + })); + } + const { + MAX_AREA, + MAX_DIM + } = ImageResizer; + const minFactor = Math.max(width / MAX_DIM, height / MAX_DIM, Math.sqrt(width * height / MAX_AREA)); + const firstFactor = Math.max(minFactor, 2); + const factor = Math.round(10 * (minFactor + 1.25)) / 10 / firstFactor; + const N = Math.floor(Math.log2(factor)); + const steps = new Array(N + 2).fill(2); + steps[0] = firstFactor; + steps.splice(-1, 1, factor / (1 << N)); + let newWidth = width; + let newHeight = height; + const result = await imagePromise; + let bitmap = result.image || result; + for (const step of steps) { + const prevWidth = newWidth; + const prevHeight = newHeight; + newWidth = Math.floor(newWidth / step) - 1; + newHeight = Math.floor(newHeight / step) - 1; + const canvas = new OffscreenCanvas(newWidth, newHeight); + const ctx = canvas.getContext("2d"); + ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight); + bitmap.close(); + bitmap = canvas.transferToImageBitmap(); + } + imgData.data = null; + imgData.bitmap = bitmap; + imgData.width = newWidth; + imgData.height = newHeight; + return imgData; + } + #rescaleImageData() { + const { + _imgData: imgData + } = this; + const { + data, + width, + height, + kind + } = imgData; + const rgbaSize = width * height * 4; + const K = Math.ceil(Math.log2(rgbaSize / MAX_INT_32)); + const newWidth = width >> K; + const newHeight = height >> K; + let rgbaData; + let maxHeight = height; + try { + rgbaData = new Uint8Array(rgbaSize); + } catch { + let n = Math.floor(Math.log2(rgbaSize + 1)); + while (true) { + try { + rgbaData = new Uint8Array(2 ** n - 1); + break; + } catch { + n -= 1; + } + } + maxHeight = Math.floor((2 ** n - 1) / (width * 4)); + const newSize = width * maxHeight * 4; + if (newSize < rgbaData.length) { + rgbaData = new Uint8Array(newSize); + } + } + const src32 = new Uint32Array(rgbaData.buffer); + const dest32 = new Uint32Array(newWidth * newHeight); + let srcPos = 0; + let newIndex = 0; + const step = Math.ceil(height / maxHeight); + const remainder = height % maxHeight === 0 ? height : height % maxHeight; + for (let k = 0; k < step; k++) { + const h = k < step - 1 ? maxHeight : remainder; + ({ + srcPos + } = convertToRGBA({ + kind, + src: data, + dest: src32, + width, + height: h, + inverseDecode: this._isMask, + srcPos + })); + for (let i = 0, ii = h >> K; i < ii; i++) { + const buf = src32.subarray((i << K) * width); + for (let j = 0; j < newWidth; j++) { + dest32[newIndex++] = buf[j << K]; + } + } + } + if (ImageResizer.needsToBeResized(newWidth, newHeight)) { + imgData.data = dest32; + imgData.width = newWidth; + imgData.height = newHeight; + imgData.kind = ImageKind.RGBA_32BPP; + return null; + } + const canvas = new OffscreenCanvas(newWidth, newHeight); + const ctx = canvas.getContext("2d", { + willReadFrequently: true + }); + ctx.putImageData(new ImageData(new Uint8ClampedArray(dest32.buffer), newWidth, newHeight), 0, 0); + imgData.data = null; + imgData.bitmap = canvas.transferToImageBitmap(); + imgData.width = newWidth; + imgData.height = newHeight; + return imgData; + } + _encodeBMP() { + const { + width, + height, + kind + } = this._imgData; + let data = this._imgData.data; + let bitPerPixel; + let colorTable = new Uint8Array(0); + let maskTable = colorTable; + let compression = 0; + switch (kind) { + case ImageKind.GRAYSCALE_1BPP: + { + bitPerPixel = 1; + colorTable = new Uint8Array(this._isMask ? [255, 255, 255, 255, 0, 0, 0, 0] : [0, 0, 0, 0, 255, 255, 255, 255]); + const rowLen = width + 7 >> 3; + const rowSize = rowLen + 3 & -4; + if (rowLen !== rowSize) { + const newData = new Uint8Array(rowSize * height); + let k = 0; + for (let i = 0, ii = height * rowLen; i < ii; i += rowLen, k += rowSize) { + newData.set(data.subarray(i, i + rowLen), k); + } + data = newData; + } + break; + } + case ImageKind.RGB_24BPP: + { + bitPerPixel = 24; + if (width & 3) { + const rowLen = 3 * width; + const rowSize = rowLen + 3 & -4; + const extraLen = rowSize - rowLen; + const newData = new Uint8Array(rowSize * height); + let k = 0; + for (let i = 0, ii = height * rowLen; i < ii; i += rowLen) { + const row = data.subarray(i, i + rowLen); + for (let j = 0; j < rowLen; j += 3) { + newData[k++] = row[j + 2]; + newData[k++] = row[j + 1]; + newData[k++] = row[j]; + } + k += extraLen; + } + data = newData; + } else { + for (let i = 0, ii = data.length; i < ii; i += 3) { + const tmp = data[i]; + data[i] = data[i + 2]; + data[i + 2] = tmp; + } + } + break; + } + case ImageKind.RGBA_32BPP: + bitPerPixel = 32; + compression = 3; + maskTable = new Uint8Array(4 + 4 + 4 + 4 + 52); + const view = new DataView(maskTable.buffer); + if (FeatureTest.isLittleEndian) { + view.setUint32(0, 0x000000ff, true); + view.setUint32(4, 0x0000ff00, true); + view.setUint32(8, 0x00ff0000, true); + view.setUint32(12, 0xff000000, true); + } else { + view.setUint32(0, 0xff000000, true); + view.setUint32(4, 0x00ff0000, true); + view.setUint32(8, 0x0000ff00, true); + view.setUint32(12, 0x000000ff, true); + } + break; + default: + throw new Error("invalid format"); + } + let i = 0; + const headerLength = 40 + maskTable.length; + const fileLength = 14 + headerLength + colorTable.length + data.length; + const bmpData = new Uint8Array(fileLength); + const view = new DataView(bmpData.buffer); + view.setUint16(i, 0x4d42, true); + i += 2; + view.setUint32(i, fileLength, true); + i += 4; + view.setUint32(i, 0, true); + i += 4; + view.setUint32(i, 14 + headerLength + colorTable.length, true); + i += 4; + view.setUint32(i, headerLength, true); + i += 4; + view.setInt32(i, width, true); + i += 4; + view.setInt32(i, -height, true); + i += 4; + view.setUint16(i, 1, true); + i += 2; + view.setUint16(i, bitPerPixel, true); + i += 2; + view.setUint32(i, compression, true); + i += 4; + view.setUint32(i, 0, true); + i += 4; + view.setInt32(i, 0, true); + i += 4; + view.setInt32(i, 0, true); + i += 4; + view.setUint32(i, colorTable.length / 4, true); + i += 4; + view.setUint32(i, 0, true); + i += 4; + bmpData.set(maskTable, i); + i += maskTable.length; + bmpData.set(colorTable, i); + i += colorTable.length; + bmpData.set(data, i); + return bmpData; + } +} + +;// ./src/core/decode_stream.js + + +const emptyBuffer = new Uint8Array(0); +class DecodeStream extends BaseStream { + constructor(maybeMinBufferLength) { + super(); + this._rawMinBufferLength = maybeMinBufferLength || 0; + this.pos = 0; + this.bufferLength = 0; + this.eof = false; + this.buffer = emptyBuffer; + this.minBufferLength = 512; + if (maybeMinBufferLength) { + while (this.minBufferLength < maybeMinBufferLength) { + this.minBufferLength *= 2; + } + } + } + get isEmpty() { + while (!this.eof && this.bufferLength === 0) { + this.readBlock(); + } + return this.bufferLength === 0; + } + ensureBuffer(requested) { + const buffer = this.buffer; + if (requested <= buffer.byteLength) { + return buffer; + } + let size = this.minBufferLength; + while (size < requested) { + size *= 2; + } + const buffer2 = new Uint8Array(size); + buffer2.set(buffer); + return this.buffer = buffer2; + } + getByte() { + const pos = this.pos; + while (this.bufferLength <= pos) { + if (this.eof) { + return -1; + } + this.readBlock(); + } + return this.buffer[this.pos++]; + } + getBytes(length, decoderOptions = null) { + const pos = this.pos; + let end; + if (length) { + this.ensureBuffer(pos + length); + end = pos + length; + while (!this.eof && this.bufferLength < end) { + this.readBlock(decoderOptions); + } + const bufEnd = this.bufferLength; + if (end > bufEnd) { + end = bufEnd; + } + } else { + while (!this.eof) { + this.readBlock(decoderOptions); + } + end = this.bufferLength; + } + this.pos = end; + return this.buffer.subarray(pos, end); + } + async getImageData(length, decoderOptions) { + if (!this.canAsyncDecodeImageFromBuffer) { + if (this.isAsyncDecoder) { + return this.decodeImage(null, decoderOptions); + } + return this.getBytes(length, decoderOptions); + } + const data = await this.stream.asyncGetBytes(); + return this.decodeImage(data, decoderOptions); + } + reset() { + this.pos = 0; + } + makeSubStream(start, length, dict = null) { + if (length === undefined) { + while (!this.eof) { + this.readBlock(); + } + } else { + const end = start + length; + while (this.bufferLength <= end && !this.eof) { + this.readBlock(); + } + } + return new Stream(this.buffer, start, length, dict); + } + getBaseStreams() { + return this.str ? this.str.getBaseStreams() : null; + } +} +class StreamsSequenceStream extends DecodeStream { + constructor(streams, onError = null) { + streams = streams.filter(s => s instanceof BaseStream); + let maybeLength = 0; + for (const stream of streams) { + maybeLength += stream instanceof DecodeStream ? stream._rawMinBufferLength : stream.length; + } + super(maybeLength); + this.streams = streams; + this._onError = onError; + } + readBlock() { + const streams = this.streams; + if (streams.length === 0) { + this.eof = true; + return; + } + const stream = streams.shift(); + let chunk; + try { + chunk = stream.getBytes(); + } catch (reason) { + if (this._onError) { + this._onError(reason, stream.dict?.objId); + return; + } + throw reason; + } + const bufferLength = this.bufferLength; + const newLength = bufferLength + chunk.length; + const buffer = this.ensureBuffer(newLength); + buffer.set(chunk, bufferLength); + this.bufferLength = newLength; + } + getBaseStreams() { + const baseStreamsBuf = []; + for (const stream of this.streams) { + const baseStreams = stream.getBaseStreams(); + if (baseStreams) { + baseStreamsBuf.push(...baseStreams); + } + } + return baseStreamsBuf.length > 0 ? baseStreamsBuf : null; + } +} + +;// ./src/core/colorspace_utils.js + + + + + +class ColorSpaceUtils { + static parse({ + cs, + xref, + resources = null, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache, + asyncIfNotCached = false + }) { + const options = { + xref, + resources, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }; + let csName, csRef, parsedCS; + if (cs instanceof Ref) { + csRef = cs; + const cachedCS = globalColorSpaceCache.getByRef(csRef) || localColorSpaceCache.getByRef(csRef); + if (cachedCS) { + return cachedCS; + } + cs = xref.fetch(cs); + } + if (cs instanceof Name) { + csName = cs.name; + const cachedCS = localColorSpaceCache.getByName(csName); + if (cachedCS) { + return cachedCS; + } + } + try { + parsedCS = this.#parse(cs, options); + } catch (ex) { + if (asyncIfNotCached && !(ex instanceof MissingDataException)) { + return Promise.reject(ex); + } + throw ex; + } + if (csName || csRef) { + localColorSpaceCache.set(csName, csRef, parsedCS); + if (csRef) { + globalColorSpaceCache.set(null, csRef, parsedCS); + } + } + return asyncIfNotCached ? Promise.resolve(parsedCS) : parsedCS; + } + static #subParse(cs, options) { + const { + globalColorSpaceCache + } = options; + let csRef; + if (cs instanceof Ref) { + csRef = cs; + const cachedCS = globalColorSpaceCache.getByRef(csRef); + if (cachedCS) { + return cachedCS; + } + } + const parsedCS = this.#parse(cs, options); + if (csRef) { + globalColorSpaceCache.set(null, csRef, parsedCS); + } + return parsedCS; + } + static #parse(cs, options) { + const { + xref, + resources, + pdfFunctionFactory, + globalColorSpaceCache + } = options; + cs = xref.fetchIfRef(cs); + if (cs instanceof Name) { + switch (cs.name) { + case "G": + case "DeviceGray": + return this.gray; + case "RGB": + case "DeviceRGB": + return this.rgb; + case "DeviceRGBA": + return this.rgba; + case "CMYK": + case "DeviceCMYK": + return this.cmyk; + case "Pattern": + return new PatternCS(null); + default: + if (resources instanceof Dict) { + const colorSpaces = resources.get("ColorSpace"); + if (colorSpaces instanceof Dict) { + const resourcesCS = colorSpaces.get(cs.name); + if (resourcesCS) { + if (resourcesCS instanceof Name) { + return this.#parse(resourcesCS, options); + } + cs = resourcesCS; + break; + } + } + } + warn(`Unrecognized ColorSpace: ${cs.name}`); + return this.gray; + } + } + if (Array.isArray(cs)) { + const mode = xref.fetchIfRef(cs[0]).name; + let params, numComps, baseCS, whitePoint, blackPoint, gamma; + switch (mode) { + case "G": + case "DeviceGray": + return this.gray; + case "RGB": + case "DeviceRGB": + return this.rgb; + case "CMYK": + case "DeviceCMYK": + return this.cmyk; + case "CalGray": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + gamma = params.get("Gamma"); + return new CalGrayCS(whitePoint, blackPoint, gamma); + case "CalRGB": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + gamma = params.getArray("Gamma"); + const matrix = params.getArray("Matrix"); + return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); + case "ICCBased": + const isRef = cs[1] instanceof Ref; + if (isRef) { + const cachedCS = globalColorSpaceCache.getByRef(cs[1]); + if (cachedCS) { + return cachedCS; + } + } + const stream = xref.fetchIfRef(cs[1]); + const dict = stream.dict; + numComps = dict.get("N"); + if (IccColorSpace.isUsable) { + try { + const iccCS = new IccColorSpace(stream.getBytes(), "ICCBased", numComps); + if (isRef) { + globalColorSpaceCache.set(null, cs[1], iccCS); + } + return iccCS; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`ICCBased color space (${cs[1]}): "${ex}".`); + } + } + const altRaw = dict.getRaw("Alternate"); + if (altRaw) { + const altCS = this.#subParse(altRaw, options); + if (altCS.numComps === numComps) { + return altCS; + } + warn("ICCBased color space: Ignoring incorrect /Alternate entry."); + } + if (numComps === 1) { + return this.gray; + } else if (numComps === 3) { + return this.rgb; + } else if (numComps === 4) { + return this.cmyk; + } + break; + case "Pattern": + baseCS = cs[1] || null; + if (baseCS) { + baseCS = this.#subParse(baseCS, options); + } + return new PatternCS(baseCS); + case "I": + case "Indexed": + baseCS = this.#subParse(cs[1], options); + const hiVal = MathClamp(xref.fetchIfRef(cs[2]), 0, 255); + const lookup = xref.fetchIfRef(cs[3]); + return new IndexedCS(baseCS, hiVal, lookup); + case "Separation": + case "DeviceN": + const name = xref.fetchIfRef(cs[1]); + numComps = Array.isArray(name) ? name.length : 1; + baseCS = this.#subParse(cs[2], options); + const tintFn = pdfFunctionFactory.create(cs[3]); + return new AlternateCS(numComps, baseCS, tintFn); + case "Lab": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + const range = params.getArray("Range"); + return new LabCS(whitePoint, blackPoint, range); + default: + warn(`Unimplemented ColorSpace object: ${mode}`); + return this.gray; + } + } + warn(`Unrecognized ColorSpace object: ${cs}`); + return this.gray; + } + static get gray() { + return shadow(this, "gray", new DeviceGrayCS()); + } + static get rgb() { + return shadow(this, "rgb", new DeviceRgbCS()); + } + static get rgba() { + return shadow(this, "rgba", new DeviceRgbaCS()); + } + static get cmyk() { + if (CmykICCBasedCS.isUsable) { + try { + return shadow(this, "cmyk", new CmykICCBasedCS()); + } catch { + warn("CMYK fallback: DeviceCMYK"); + } + } + return shadow(this, "cmyk", new DeviceCmykCS()); + } +} + +;// ./src/core/jpg.js + + + + + +class JpegError extends BaseException { + constructor(msg) { + super(msg, "JpegError"); + } +} +class DNLMarkerError extends BaseException { + constructor(message, scanLines) { + super(message, "DNLMarkerError"); + this.scanLines = scanLines; + } +} +class EOIMarkerError extends BaseException { + constructor(msg) { + super(msg, "EOIMarkerError"); + } +} +const dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]); +const dctCos1 = 4017; +const dctSin1 = 799; +const dctCos3 = 3406; +const dctSin3 = 2276; +const dctCos6 = 1567; +const dctSin6 = 3784; +const dctSqrt2 = 5793; +const dctSqrt1d2 = 2896; +function buildHuffmanTable(codeLengths, values) { + let k = 0, + i, + j, + length = 16; + while (length > 0 && !codeLengths[length - 1]) { + length--; + } + const code = [{ + children: [], + index: 0 + }]; + let p = code[0], + q; + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); + } + p.index++; + code.push(p); + while (code.length <= i) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i + 1 < length) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + } + return code[0].children; +} +function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); +} +function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) { + const mcusPerLine = frame.mcusPerLine; + const progressive = frame.progressive; + const startOffset = offset; + let bitsData = 0, + bitsCount = 0; + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return bitsData >> bitsCount & 1; + } + bitsData = data[offset++]; + if (bitsData === 0xff) { + const nextByte = data[offset++]; + if (nextByte) { + if (nextByte === 0xdc && parseDNLMarker) { + offset += 2; + const scanLines = readUint16(data, offset); + offset += 2; + if (scanLines > 0 && scanLines !== frame.scanLines) { + throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data", scanLines); + } + } else if (nextByte === 0xd9) { + if (parseDNLMarker) { + const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0); + if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 5) { + throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, " + "possibly caused by incorrect `scanLines` parameter", maybeScanLines); + } + } + throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data"); + } + throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`); + } + } + bitsCount = 7; + return bitsData >>> 7; + } + function decodeHuffman(tree) { + let node = tree; + while (true) { + node = node[readBit()]; + switch (typeof node) { + case "number": + return node; + case "object": + continue; + } + throw new JpegError("invalid huffman sequence"); + } + } + function receive(length) { + let n = 0; + while (length > 0) { + n = n << 1 | readBit(); + length--; + } + return n; + } + function receiveAndExtend(length) { + if (length === 1) { + return readBit() === 1 ? 1 : -1; + } + const n = receive(length); + if (n >= 1 << length - 1) { + return n; + } + return n + (-1 << length) + 1; + } + function decodeBaseline(component, blockOffset) { + const t = decodeHuffman(component.huffmanTableDC); + const diff = t === 0 ? 0 : receiveAndExtend(t); + component.blockData[blockOffset] = component.pred += diff; + let k = 1; + while (k < 64) { + const rs = decodeHuffman(component.huffmanTableAC); + const s = rs & 15, + r = rs >> 4; + if (s === 0) { + if (r < 15) { + break; + } + k += 16; + continue; + } + k += r; + const z = dctZigZag[k]; + component.blockData[blockOffset + z] = receiveAndExtend(s); + k++; + } + } + function decodeDCFirst(component, blockOffset) { + const t = decodeHuffman(component.huffmanTableDC); + const diff = t === 0 ? 0 : receiveAndExtend(t) << successive; + component.blockData[blockOffset] = component.pred += diff; + } + function decodeDCSuccessive(component, blockOffset) { + component.blockData[blockOffset] |= readBit() << successive; + } + let eobrun = 0; + function decodeACFirst(component, blockOffset) { + if (eobrun > 0) { + eobrun--; + return; + } + let k = spectralStart; + const e = spectralEnd; + while (k <= e) { + const rs = decodeHuffman(component.huffmanTableAC); + const s = rs & 15, + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k += 16; + continue; + } + k += r; + const z = dctZigZag[k]; + component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive); + k++; + } + } + let successiveACState = 0, + successiveACNextValue; + function decodeACSuccessive(component, blockOffset) { + let k = spectralStart; + const e = spectralEnd; + let r = 0; + let s; + let rs; + while (k <= e) { + const offsetZ = blockOffset + dctZigZag[k]; + const sign = component.blockData[offsetZ] < 0 ? -1 : 1; + switch (successiveACState) { + case 0: + rs = decodeHuffman(component.huffmanTableAC); + s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) { + throw new JpegError("invalid ACn encoding"); + } + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: + case 2: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + r--; + if (r === 0) { + successiveACState = successiveACState === 2 ? 3 : 0; + } + } + break; + case 3: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + component.blockData[offsetZ] = successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } + break; + } + k++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) { + successiveACState = 0; + } + } + } + let blockRow = 0; + function decodeMcu(component, decode, mcu, row, col) { + const mcuRow = mcu / mcusPerLine | 0; + const mcuCol = mcu % mcusPerLine; + blockRow = mcuRow * component.v + row; + const blockCol = mcuCol * component.h + col; + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); + } + function decodeBlock(component, decode, mcu) { + blockRow = mcu / component.blocksPerLine | 0; + const blockCol = mcu % component.blocksPerLine; + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); + } + const componentsLength = components.length; + let component, i, j, k, n; + let decodeFn; + if (progressive) { + if (spectralStart === 0) { + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + } else { + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } + } else { + decodeFn = decodeBaseline; + } + let mcu = 0, + fileMarker; + const mcuExpected = componentsLength === 1 ? components[0].blocksPerLine * components[0].blocksPerColumn : mcusPerLine * frame.mcusPerColumn; + let h, v; + while (mcu <= mcuExpected) { + const mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected; + if (mcuToRead > 0) { + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; + } + eobrun = 0; + if (componentsLength === 1) { + component = components[0]; + for (n = 0; n < mcuToRead; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < mcuToRead; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + } + bitsCount = 0; + fileMarker = findNextFileMarker(data, offset); + if (!fileMarker) { + break; + } + if (fileMarker.invalid) { + const partialMsg = mcuToRead > 0 ? "unexpected" : "excessive"; + warn(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`); + offset = fileMarker.offset; + } + if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) { + offset += 2; + } else { + break; + } + } + return offset - startOffset; +} +function quantizeAndInverse(component, blockBufferOffset, p) { + const qt = component.quantizationTable, + blockData = component.blockData; + let v0, v1, v2, v3, v4, v5, v6, v7; + let p0, p1, p2, p3, p4, p5, p6, p7; + let t; + if (!qt) { + throw new JpegError("missing required Quantization Table."); + } + for (let row = 0; row < 64; row += 8) { + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + p0 *= qt[row]; + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 512 >> 10; + p[row] = t; + p[row + 1] = t; + p[row + 2] = t; + p[row + 3] = t; + p[row + 4] = t; + p[row + 5] = t; + p[row + 6] = t; + p[row + 7] = t; + continue; + } + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + v0 = dctSqrt2 * p0 + 128 >> 8; + v1 = dctSqrt2 * p4 + 128 >> 8; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8; + v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + v0 = v0 + v1 + 1 >> 1; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8; + v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[row] = v0 + v7; + p[row + 7] = v0 - v7; + p[row + 1] = v1 + v6; + p[row + 6] = v1 - v6; + p[row + 2] = v2 + v5; + p[row + 5] = v2 - v5; + p[row + 3] = v3 + v4; + p[row + 4] = v3 - v4; + } + for (let col = 0; col < 8; ++col) { + p0 = p[col]; + p1 = p[col + 8]; + p2 = p[col + 16]; + p3 = p[col + 24]; + p4 = p[col + 32]; + p5 = p[col + 40]; + p6 = p[col + 48]; + p7 = p[col + 56]; + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 8192 >> 14; + if (t < -2040) { + t = 0; + } else if (t >= 2024) { + t = 255; + } else { + t = t + 2056 >> 4; + } + blockData[blockBufferOffset + col] = t; + blockData[blockBufferOffset + col + 8] = t; + blockData[blockBufferOffset + col + 16] = t; + blockData[blockBufferOffset + col + 24] = t; + blockData[blockBufferOffset + col + 32] = t; + blockData[blockBufferOffset + col + 40] = t; + blockData[blockBufferOffset + col + 48] = t; + blockData[blockBufferOffset + col + 56] = t; + continue; + } + v0 = dctSqrt2 * p0 + 2048 >> 12; + v1 = dctSqrt2 * p4 + 2048 >> 12; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12; + v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12; + v5 = p3; + v6 = p5; + v0 = (v0 + v1 + 1 >> 1) + 4112; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12; + v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + if (p0 < 16) { + p0 = 0; + } else if (p0 >= 4080) { + p0 = 255; + } else { + p0 >>= 4; + } + if (p1 < 16) { + p1 = 0; + } else if (p1 >= 4080) { + p1 = 255; + } else { + p1 >>= 4; + } + if (p2 < 16) { + p2 = 0; + } else if (p2 >= 4080) { + p2 = 255; + } else { + p2 >>= 4; + } + if (p3 < 16) { + p3 = 0; + } else if (p3 >= 4080) { + p3 = 255; + } else { + p3 >>= 4; + } + if (p4 < 16) { + p4 = 0; + } else if (p4 >= 4080) { + p4 = 255; + } else { + p4 >>= 4; + } + if (p5 < 16) { + p5 = 0; + } else if (p5 >= 4080) { + p5 = 255; + } else { + p5 >>= 4; + } + if (p6 < 16) { + p6 = 0; + } else if (p6 >= 4080) { + p6 = 255; + } else { + p6 >>= 4; + } + if (p7 < 16) { + p7 = 0; + } else if (p7 >= 4080) { + p7 = 255; + } else { + p7 >>= 4; + } + blockData[blockBufferOffset + col] = p0; + blockData[blockBufferOffset + col + 8] = p1; + blockData[blockBufferOffset + col + 16] = p2; + blockData[blockBufferOffset + col + 24] = p3; + blockData[blockBufferOffset + col + 32] = p4; + blockData[blockBufferOffset + col + 40] = p5; + blockData[blockBufferOffset + col + 48] = p6; + blockData[blockBufferOffset + col + 56] = p7; + } +} +function buildComponentData(frame, component) { + const blocksPerLine = component.blocksPerLine; + const blocksPerColumn = component.blocksPerColumn; + const computationBuffer = new Int16Array(64); + for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) { + const offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + return component.blockData; +} +function findNextFileMarker(data, currentPos, startPos = currentPos) { + const maxPos = data.length - 1; + let newPos = startPos < currentPos ? startPos : currentPos; + if (currentPos >= maxPos) { + return null; + } + const currentMarker = readUint16(data, currentPos); + if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) { + return { + invalid: null, + marker: currentMarker, + offset: currentPos + }; + } + let newMarker = readUint16(data, newPos); + while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) { + if (++newPos >= maxPos) { + return null; + } + newMarker = readUint16(data, newPos); + } + return { + invalid: currentMarker.toString(16), + marker: newMarker, + offset: newPos + }; +} +function prepareComponents(frame) { + const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); + const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); + for (const component of frame.components) { + const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH); + const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV); + const blocksPerLineForMcu = mcusPerLine * component.h; + const blocksPerColumnForMcu = mcusPerColumn * component.v; + const blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; +} +function readDataBlock(data, offset) { + const length = readUint16(data, offset); + offset += 2; + let endOffset = offset + length - 2; + const fileMarker = findNextFileMarker(data, endOffset, offset); + if (fileMarker?.invalid) { + warn("readDataBlock - incorrect length, current marker is: " + fileMarker.invalid); + endOffset = fileMarker.offset; + } + const array = data.subarray(offset, endOffset); + return { + appData: array, + oldOffset: offset, + newOffset: offset + array.length + }; +} +function skipData(data, offset) { + const length = readUint16(data, offset); + offset += 2; + const endOffset = offset + length - 2; + const fileMarker = findNextFileMarker(data, endOffset, offset); + if (fileMarker?.invalid) { + return fileMarker.offset; + } + return endOffset; +} +class JpegImage { + constructor({ + decodeTransform = null, + colorTransform = -1 + } = {}) { + this._decodeTransform = decodeTransform; + this._colorTransform = colorTransform; + } + static canUseImageDecoder(data, colorTransform = -1) { + let exifOffsets = null; + let offset = 0; + let numComponents = null; + let fileMarker = readUint16(data, offset); + offset += 2; + if (fileMarker !== 0xffd8) { + throw new JpegError("SOI not found"); + } + fileMarker = readUint16(data, offset); + offset += 2; + markerLoop: while (fileMarker !== 0xffd9) { + switch (fileMarker) { + case 0xffe1: + const { + appData, + oldOffset, + newOffset + } = readDataBlock(data, offset); + offset = newOffset; + if (appData[0] === 0x45 && appData[1] === 0x78 && appData[2] === 0x69 && appData[3] === 0x66 && appData[4] === 0 && appData[5] === 0) { + if (exifOffsets) { + throw new JpegError("Duplicate EXIF-blocks found."); + } + exifOffsets = { + exifStart: oldOffset + 6, + exifEnd: newOffset + }; + } + fileMarker = readUint16(data, offset); + offset += 2; + continue; + case 0xffc0: + case 0xffc1: + case 0xffc2: + numComponents = data[offset + (2 + 1 + 2 + 2)]; + break markerLoop; + case 0xffff: + if (data[offset] !== 0xff) { + offset--; + } + break; + } + offset = skipData(data, offset); + fileMarker = readUint16(data, offset); + offset += 2; + } + if (numComponents === 4) { + return null; + } + if (numComponents === 3 && colorTransform === 0) { + return null; + } + return exifOffsets || {}; + } + parse(data, { + dnlScanLines = null + } = {}) { + let offset = 0; + let jfif = null; + let adobe = null; + let frame, resetInterval; + let numSOSMarkers = 0; + const quantizationTables = []; + const huffmanTablesAC = [], + huffmanTablesDC = []; + let fileMarker = readUint16(data, offset); + offset += 2; + if (fileMarker !== 0xffd8) { + throw new JpegError("SOI not found"); + } + fileMarker = readUint16(data, offset); + offset += 2; + markerLoop: while (fileMarker !== 0xffd9) { + let i, j, l; + switch (fileMarker) { + case 0xffe0: + case 0xffe1: + case 0xffe2: + case 0xffe3: + case 0xffe4: + case 0xffe5: + case 0xffe6: + case 0xffe7: + case 0xffe8: + case 0xffe9: + case 0xffea: + case 0xffeb: + case 0xffec: + case 0xffed: + case 0xffee: + case 0xffef: + case 0xfffe: + const { + appData, + newOffset + } = readDataBlock(data, offset); + offset = newOffset; + if (fileMarker === 0xffe0) { + if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) { + jfif = { + version: { + major: appData[5], + minor: appData[6] + }, + densityUnits: appData[7], + xDensity: appData[8] << 8 | appData[9], + yDensity: appData[10] << 8 | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) + }; + } + } + if (fileMarker === 0xffee) { + if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) { + adobe = { + version: appData[5] << 8 | appData[6], + flags0: appData[7] << 8 | appData[8], + flags1: appData[9] << 8 | appData[10], + transformCode: appData[11] + }; + } + } + break; + case 0xffdb: + const quantizationTablesLength = readUint16(data, offset); + offset += 2; + const quantizationTablesEnd = quantizationTablesLength + offset - 2; + let z; + while (offset < quantizationTablesEnd) { + const quantizationTableSpec = data[offset++]; + const tableData = new Uint16Array(64); + if (quantizationTableSpec >> 4 === 0) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if (quantizationTableSpec >> 4 === 1) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = readUint16(data, offset); + offset += 2; + } + } else { + throw new JpegError("DQT - invalid table spec"); + } + quantizationTables[quantizationTableSpec & 15] = tableData; + } + break; + case 0xffc0: + case 0xffc1: + case 0xffc2: + if (frame) { + throw new JpegError("Only single frame JPEGs supported"); + } + offset += 2; + frame = {}; + frame.extended = fileMarker === 0xffc1; + frame.progressive = fileMarker === 0xffc2; + frame.precision = data[offset++]; + const sofScanLines = readUint16(data, offset); + offset += 2; + frame.scanLines = dnlScanLines || sofScanLines; + frame.samplesPerLine = readUint16(data, offset); + offset += 2; + frame.components = []; + frame.componentIds = {}; + const componentsCount = data[offset++]; + let maxH = 0, + maxV = 0; + for (i = 0; i < componentsCount; i++) { + const componentId = data[offset]; + const h = data[offset + 1] >> 4; + const v = data[offset + 1] & 15; + if (maxH < h) { + maxH = h; + } + if (maxV < v) { + maxV = v; + } + const qId = data[offset + 2]; + l = frame.components.push({ + h, + v, + quantizationId: qId, + quantizationTable: null + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + case 0xffc4: + const huffmanLength = readUint16(data, offset); + offset += 2; + for (i = 2; i < huffmanLength;) { + const huffmanTableSpec = data[offset++]; + const codeLengths = new Uint8Array(16); + let codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) { + codeLengthSum += codeLengths[j] = data[offset]; + } + const huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) { + huffmanValues[j] = data[offset]; + } + i += 17 + codeLengthSum; + (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues); + } + break; + case 0xffdd: + offset += 2; + resetInterval = readUint16(data, offset); + offset += 2; + break; + case 0xffda: + const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines; + offset += 2; + const selectorsCount = data[offset++], + components = []; + for (i = 0; i < selectorsCount; i++) { + const index = data[offset++]; + const componentIndex = frame.componentIds[index]; + const component = frame.components[componentIndex]; + component.index = index; + const tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + const spectralStart = data[offset++], + spectralEnd = data[offset++], + successiveApproximation = data[offset++]; + try { + const processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker); + offset += processed; + } catch (ex) { + if (ex instanceof DNLMarkerError) { + warn(`${ex.message} -- attempting to re-parse the JPEG image.`); + return this.parse(data, { + dnlScanLines: ex.scanLines + }); + } else if (ex instanceof EOIMarkerError) { + warn(`${ex.message} -- ignoring the rest of the image data.`); + break markerLoop; + } + throw ex; + } + break; + case 0xffdc: + offset += 4; + break; + case 0xffff: + if (data[offset] !== 0xff) { + offset--; + } + break; + default: + const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3); + if (nextFileMarker?.invalid) { + warn("JpegImage.parse - unexpected data, current marker is: " + nextFileMarker.invalid); + offset = nextFileMarker.offset; + break; + } + if (!nextFileMarker || offset >= data.length - 1) { + warn("JpegImage.parse - reached the end of the image data " + "without finding an EOI marker (0xFFD9)."); + break markerLoop; + } + throw new JpegError("JpegImage.parse - unknown marker: " + fileMarker.toString(16)); + } + fileMarker = readUint16(data, offset); + offset += 2; + } + if (!frame) { + throw new JpegError("JpegImage.parse - no frame data found."); + } + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + for (const component of frame.components) { + const quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + this.components.push({ + index: component.index, + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn + }); + } + this.numComponents = this.components.length; + return undefined; + } + _getLinearizedBlockData(width, height, isSourcePDF = false) { + const scaleX = this.width / width, + scaleY = this.height / height; + let component, componentScaleX, componentScaleY, blocksPerScanline; + let x, y, i, j, k; + let index; + let offset = 0; + let output; + const numComponents = this.components.length; + const dataLength = width * height * numComponents; + const data = new Uint8ClampedArray(dataLength); + const xScaleBlockOffset = new Uint32Array(width); + const mask3LSB = 0xfffffff8; + let lastComponentScaleX; + for (i = 0; i < numComponents; i++) { + component = this.components[i]; + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i; + output = component.output; + blocksPerScanline = component.blocksPerLine + 1 << 3; + if (componentScaleX !== lastComponentScaleX) { + for (x = 0; x < width; x++) { + j = 0 | x * componentScaleX; + xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7; + } + lastComponentScaleX = componentScaleX; + } + for (y = 0; y < height; y++) { + j = 0 | y * componentScaleY; + index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3; + for (x = 0; x < width; x++) { + data[offset] = output[index + xScaleBlockOffset[x]]; + offset += numComponents; + } + } + } + let transform = this._decodeTransform; + if (!isSourcePDF && numComponents === 4 && !transform) { + transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]); + } + if (transform) { + for (i = 0; i < dataLength;) { + for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { + data[i] = (data[i] * transform[k] >> 8) + transform[k + 1]; + } + } + } + return data; + } + get _isColorConversionNeeded() { + if (this.adobe) { + return !!this.adobe.transformCode; + } + if (this.numComponents === 3) { + if (this._colorTransform === 0) { + return false; + } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) { + return false; + } + return true; + } + if (this._colorTransform === 1) { + return true; + } + return false; + } + _convertYccToRgb(data) { + let Y, Cb, Cr; + for (let i = 0, length = data.length; i < length; i += 3) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = Y - 179.456 + 1.402 * Cr; + data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr; + data[i + 2] = Y - 226.816 + 1.772 * Cb; + } + return data; + } + _convertYccToRgba(data, out) { + for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) { + const Y = data[i]; + const Cb = data[i + 1]; + const Cr = data[i + 2]; + out[j] = Y - 179.456 + 1.402 * Cr; + out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr; + out[j + 2] = Y - 226.816 + 1.772 * Cb; + out[j + 3] = 255; + } + return out; + } + _convertYcckToRgb(data) { + this._convertYcckToCmyk(data); + return this._convertCmykToRgb(data); + } + _convertYcckToRgba(data) { + this._convertYcckToCmyk(data); + return this._convertCmykToRgba(data); + } + _convertYcckToCmyk(data) { + let Y, Cb, Cr; + for (let i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = 434.456 - Y - 1.402 * Cr; + data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr; + data[i + 2] = 481.816 - Y - 1.772 * Cb; + } + return data; + } + _convertCmykToRgb(data) { + const count = data.length / 4; + ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, count, data, 0, 8, 0); + return data.subarray(0, count * 3); + } + _convertCmykToRgba(data) { + ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, data.length / 4, data, 0, 8, 1); + if (ColorSpaceUtils.cmyk instanceof DeviceCmykCS) { + for (let i = 3, ii = data.length; i < ii; i += 4) { + data[i] = 255; + } + } + return data; + } + getData({ + width, + height, + forceRGBA = false, + forceRGB = false, + isSourcePDF = false + }) { + if (this.numComponents > 4) { + throw new JpegError("Unsupported color mode"); + } + const data = this._getLinearizedBlockData(width, height, isSourcePDF); + if (this.numComponents === 1 && (forceRGBA || forceRGB)) { + const len = data.length * (forceRGBA ? 4 : 3); + const rgbaData = new Uint8ClampedArray(len); + let offset = 0; + if (forceRGBA) { + grayToRGBA(data, new Uint32Array(rgbaData.buffer)); + } else { + for (const grayColor of data) { + rgbaData[offset++] = grayColor; + rgbaData[offset++] = grayColor; + rgbaData[offset++] = grayColor; + } + } + return rgbaData; + } else if (this.numComponents === 3 && this._isColorConversionNeeded) { + if (forceRGBA) { + const rgbaData = new Uint8ClampedArray(data.length / 3 * 4); + return this._convertYccToRgba(data, rgbaData); + } + return this._convertYccToRgb(data); + } else if (this.numComponents === 4) { + if (this._isColorConversionNeeded) { + if (forceRGBA) { + return this._convertYcckToRgba(data); + } + if (forceRGB) { + return this._convertYcckToRgb(data); + } + return this._convertYcckToCmyk(data); + } else if (forceRGBA) { + return this._convertCmykToRgba(data); + } else if (forceRGB) { + return this._convertCmykToRgb(data); + } + } + return data; + } +} + +;// ./src/core/jpeg_stream.js + + + + +class JpegStream extends DecodeStream { + static #isImageDecoderSupported = FeatureTest.isImageDecoderSupported; + constructor(stream, maybeLength, params) { + super(maybeLength); + this.stream = stream; + this.dict = stream.dict; + this.maybeLength = maybeLength; + this.params = params; + } + static get canUseImageDecoder() { + return shadow(this, "canUseImageDecoder", this.#isImageDecoderSupported ? ImageDecoder.isTypeSupported("image/jpeg") : Promise.resolve(false)); + } + static setOptions({ + isImageDecoderSupported = false + }) { + this.#isImageDecoderSupported = isImageDecoderSupported; + } + get bytes() { + return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(requested) {} + readBlock() { + this.decodeImage(); + } + get jpegOptions() { + const jpegOptions = { + decodeTransform: undefined, + colorTransform: undefined + }; + const decodeArr = this.dict.getArray("D", "Decode"); + if ((this.forceRGBA || this.forceRGB) && Array.isArray(decodeArr)) { + const bitsPerComponent = this.dict.get("BPC", "BitsPerComponent") || 8; + const decodeArrLength = decodeArr.length; + const transform = new Int32Array(decodeArrLength); + let transformNeeded = false; + const maxValue = (1 << bitsPerComponent) - 1; + for (let i = 0; i < decodeArrLength; i += 2) { + transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0; + transform[i + 1] = decodeArr[i] * maxValue | 0; + if (transform[i] !== 256 || transform[i + 1] !== 0) { + transformNeeded = true; + } + } + if (transformNeeded) { + jpegOptions.decodeTransform = transform; + } + } + if (this.params instanceof Dict) { + const colorTransform = this.params.get("ColorTransform"); + if (Number.isInteger(colorTransform)) { + jpegOptions.colorTransform = colorTransform; + } + } + return shadow(this, "jpegOptions", jpegOptions); + } + #skipUselessBytes(data) { + for (let i = 0, ii = data.length - 1; i < ii; i++) { + if (data[i] === 0xff && data[i + 1] === 0xd8) { + if (i > 0) { + data = data.subarray(i); + } + break; + } + } + return data; + } + decodeImage(bytes) { + if (this.eof) { + return this.buffer; + } + bytes = this.#skipUselessBytes(bytes || this.bytes); + const jpegImage = new JpegImage(this.jpegOptions); + jpegImage.parse(bytes); + const data = jpegImage.getData({ + width: this.drawWidth, + height: this.drawHeight, + forceRGBA: this.forceRGBA, + forceRGB: this.forceRGB, + isSourcePDF: true + }); + this.buffer = data; + this.bufferLength = data.length; + this.eof = true; + return this.buffer; + } + get canAsyncDecodeImageFromBuffer() { + return this.stream.isAsync; + } + async getTransferableImage() { + if (!(await JpegStream.canUseImageDecoder)) { + return null; + } + const jpegOptions = this.jpegOptions; + if (jpegOptions.decodeTransform) { + return null; + } + let decoder; + try { + const bytes = this.canAsyncDecodeImageFromBuffer && (await this.stream.asyncGetBytes()) || this.bytes; + if (!bytes) { + return null; + } + let data = this.#skipUselessBytes(bytes); + const useImageDecoder = JpegImage.canUseImageDecoder(data, jpegOptions.colorTransform); + if (!useImageDecoder) { + return null; + } + if (useImageDecoder.exifStart) { + data = data.slice(); + data.fill(0x00, useImageDecoder.exifStart, useImageDecoder.exifEnd); + } + decoder = new ImageDecoder({ + data, + type: "image/jpeg", + preferAnimation: false + }); + return (await decoder.decode()).image; + } catch (reason) { + warn(`getTransferableImage - failed: "${reason}".`); + return null; + } finally { + decoder?.close(); + } + } +} + +;// ./external/openjpeg/openjpeg.js +var OpenJPEG = (() => { + return async function (moduleArg = {}) { + var moduleRtn; + var Module = moduleArg; + var readyPromiseResolve, readyPromiseReject; + var readyPromise = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var ENVIRONMENT_IS_WEB = true; + var ENVIRONMENT_IS_WORKER = false; + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; + }; + var _scriptName = import.meta.url; + var scriptDirectory = ""; + var readAsync, readBinary; + if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + try { + scriptDirectory = new URL(".", _scriptName).href; + } catch {} + readAsync = async url => { + var response = await fetch(url, { + credentials: "same-origin" + }); + if (response.ok) { + return response.arrayBuffer(); + } + throw new Error(response.status + " : " + response.url); + }; + } else {} + var out = console.log.bind(console); + var err = console.error.bind(console); + var wasmBinary; + var wasmMemory; + var ABORT = false; + var EXITSTATUS; + var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64; + var runtimeInitialized = false; + function updateMemoryViews() { + var b = wasmMemory.buffer; + HEAP8 = new Int8Array(b); + HEAP16 = new Int16Array(b); + HEAPU8 = new Uint8Array(b); + HEAPU16 = new Uint16Array(b); + HEAP32 = new Int32Array(b); + HEAPU32 = new Uint32Array(b); + HEAPF32 = new Float32Array(b); + HEAPF64 = new Float64Array(b); + HEAP64 = new BigInt64Array(b); + HEAPU64 = new BigUint64Array(b); + } + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(onPreRuns); + } + function initRuntime() { + runtimeInitialized = true; + wasmExports["t"](); + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(onPostRuns); + } + var runDependencies = 0; + var dependenciesFulfilled = null; + function addRunDependency(id) { + runDependencies++; + Module["monitorRunDependencies"]?.(runDependencies); + } + function removeRunDependency(id) { + runDependencies--; + Module["monitorRunDependencies"]?.(runDependencies); + if (runDependencies == 0) { + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + function abort(what) { + Module["onAbort"]?.(what); + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + what += ". Build with -sASSERTIONS for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var wasmBinaryFile; + function getWasmImports() { + return { + a: wasmImports + }; + } + async function createWasm() { + function receiveInstance(instance, module) { + wasmExports = instance.exports; + wasmMemory = wasmExports["s"]; + updateMemoryViews(); + removeRunDependency("wasm-instantiate"); + return wasmExports; + } + addRunDependency("wasm-instantiate"); + var info = getWasmImports(); + return new Promise((resolve, reject) => { + Module["instantiateWasm"](info, (mod, inst) => { + resolve(receiveInstance(mod, inst)); + }); + }); + } + class ExitStatus { + name = "ExitStatus"; + constructor(status) { + this.message = `Program terminated with exit(${status})`; + this.status = status; + } + } + var callRuntimeCallbacks = callbacks => { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } + }; + var onPostRuns = []; + var addOnPostRun = cb => onPostRuns.push(cb); + var onPreRuns = []; + var addOnPreRun = cb => onPreRuns.push(cb); + var noExitRuntime = true; + var __abort_js = () => abort(""); + var runtimeKeepaliveCounter = 0; + var __emscripten_runtime_keepalive_clear = () => { + noExitRuntime = false; + runtimeKeepaliveCounter = 0; + }; + var timers = {}; + var handleException = e => { + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); + }; + var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; + var _proc_exit = code => { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + Module["onExit"]?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + }; + var exitJS = (status, implicit) => { + EXITSTATUS = status; + _proc_exit(status); + }; + var _exit = exitJS; + var maybeExit = () => { + if (!keepRuntimeAlive()) { + try { + _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } + }; + var callUserCallback = func => { + if (ABORT) { + return; + } + try { + func(); + maybeExit(); + } catch (e) { + handleException(e); + } + }; + var _emscripten_get_now = () => performance.now(); + var __setitimer_js = (which, timeout_ms) => { + if (timers[which]) { + clearTimeout(timers[which].id); + delete timers[which]; + } + if (!timeout_ms) return 0; + var id = setTimeout(() => { + delete timers[which]; + callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now())); + }, timeout_ms); + timers[which] = { + id, + timeout_ms + }; + return 0; + }; + function _copy_pixels_1(compG_ptr, nb_pixels) { + compG_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels); + const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + imageData.set(compG); + } + function _copy_pixels_3(compR_ptr, compG_ptr, compB_ptr, nb_pixels) { + compR_ptr >>= 2; + compG_ptr >>= 2; + compB_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 3); + const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels); + const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[3 * i] = compR[i]; + imageData[3 * i + 1] = compG[i]; + imageData[3 * i + 2] = compB[i]; + } + } + function _copy_pixels_4(compR_ptr, compG_ptr, compB_ptr, compA_ptr, nb_pixels) { + compR_ptr >>= 2; + compG_ptr >>= 2; + compB_ptr >>= 2; + compA_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels); + const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels); + const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = compR[i]; + imageData[4 * i + 1] = compG[i]; + imageData[4 * i + 2] = compB[i]; + imageData[4 * i + 3] = compA[i]; + } + } + var getHeapMax = () => 2147483648; + var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment; + var growMemory = size => { + var b = wasmMemory.buffer; + var pages = (size - b.byteLength + 65535) / 65536 | 0; + try { + wasmMemory.grow(pages); + updateMemoryViews(); + return 1; + } catch (e) {} + }; + var _emscripten_resize_heap = requestedSize => { + var oldSize = HEAPU8.length; + requestedSize >>>= 0; + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + .2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + return false; + }; + var ENV = {}; + var getExecutableName = () => thisProgram || "./this.program"; + var getEnvStrings = () => { + if (!getEnvStrings.strings) { + var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; + var env = { + USER: "web_user", + LOGNAME: "web_user", + PATH: "/", + PWD: "/", + HOME: "/home/web_user", + LANG: lang, + _: getExecutableName() + }; + for (var x in ENV) { + if (ENV[x] === undefined) delete env[x];else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + }; + var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } + } + heap[outIdx] = 0; + return outIdx - startIdx; + }; + var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + var _environ_get = (__environ, environ_buf) => { + var bufSize = 0; + var envp = 0; + for (var string of getEnvStrings()) { + var ptr = environ_buf + bufSize; + HEAPU32[__environ + envp >> 2] = ptr; + bufSize += stringToUTF8(string, ptr, Infinity) + 1; + envp += 4; + } + return 0; + }; + var lengthBytesUTF8 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + }; + var _environ_sizes_get = (penviron_count, penviron_buf_size) => { + var strings = getEnvStrings(); + HEAPU32[penviron_count >> 2] = strings.length; + var bufSize = 0; + for (var string of strings) { + bufSize += lengthBytesUTF8(string) + 1; + } + HEAPU32[penviron_buf_size >> 2] = bufSize; + return 0; + }; + var _fd_close = fd => 52; + var INT53_MAX = 9007199254740992; + var INT53_MIN = -9007199254740992; + var bigintToI53Checked = num => num < INT53_MIN || num > INT53_MAX ? NaN : Number(num); + function _fd_seek(fd, offset, whence, newOffset) { + offset = bigintToI53Checked(offset); + return 70; + } + var printCharBuffers = [null, [], []]; + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : undefined; + var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + }; + var printChar = (stream, curr) => { + var buffer = printCharBuffers[stream]; + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer)); + buffer.length = 0; + } else { + buffer.push(curr); + } + }; + var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + var _fd_write = (fd, iov, iovcnt, pnum) => { + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[iov + 4 >> 2]; + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr + j]); + } + num += len; + } + HEAPU32[pnum >> 2] = num; + return 0; + }; + function _gray_to_rgba(compG_ptr, nb_pixels) { + compG_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i]; + imageData[4 * i + 3] = 255; + } + } + function _graya_to_rgba(compG_ptr, compA_ptr, nb_pixels) { + compG_ptr >>= 2; + compA_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i]; + imageData[4 * i + 3] = compA[i]; + } + } + function _jsPrintWarning(message_ptr) { + const message = UTF8ToString(message_ptr); + (Module.warn || console.warn)(`OpenJPEG: ${message}`); + } + function _rgb_to_rgba(compR_ptr, compG_ptr, compB_ptr, nb_pixels) { + compR_ptr >>= 2; + compG_ptr >>= 2; + compB_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels); + const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = compR[i]; + imageData[4 * i + 1] = compG[i]; + imageData[4 * i + 2] = compB[i]; + imageData[4 * i + 3] = 255; + } + } + function _storeErrorMessage(message_ptr) { + const message = UTF8ToString(message_ptr); + if (!Module.errorMessages) { + Module.errorMessages = message; + } else { + Module.errorMessages += "\n" + message; + } + } + var writeArrayToMemory = (array, buffer) => { + HEAP8.set(array, buffer); + }; + if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"]; + if (Module["print"]) out = Module["print"]; + if (Module["printErr"]) err = Module["printErr"]; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + if (Module["arguments"]) arguments_ = Module["arguments"]; + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + Module["writeArrayToMemory"] = writeArrayToMemory; + var wasmImports = { + l: __abort_js, + k: __emscripten_runtime_keepalive_clear, + m: __setitimer_js, + g: _copy_pixels_1, + f: _copy_pixels_3, + e: _copy_pixels_4, + n: _emscripten_resize_heap, + p: _environ_get, + q: _environ_sizes_get, + b: _fd_close, + o: _fd_seek, + c: _fd_write, + r: _gray_to_rgba, + i: _graya_to_rgba, + d: _jsPrintWarning, + j: _proc_exit, + h: _rgb_to_rgba, + a: _storeErrorMessage + }; + var wasmExports = await createWasm(); + var ___wasm_call_ctors = wasmExports["t"]; + var _malloc = Module["_malloc"] = wasmExports["u"]; + var _free = Module["_free"] = wasmExports["v"]; + var _jp2_decode = Module["_jp2_decode"] = wasmExports["w"]; + var __emscripten_timeout = wasmExports["x"]; + function run() { + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + preRun(); + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + function doRun() { + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve(Module); + Module["onRuntimeInitialized"]?.(); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(() => { + setTimeout(() => Module["setStatus"](""), 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + function preInit() { + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].shift()(); + } + } + } + preInit(); + run(); + moduleRtn = readyPromise; + return moduleRtn; + }; +})(); +/* harmony default export */ const openjpeg = (OpenJPEG); +;// ./src/core/jpx.js + + + + +class JpxError extends BaseException { + constructor(msg) { + super(msg, "JpxError"); + } +} +class JpxImage { + static #buffer = null; + static #handler = null; + static #modulePromise = null; + static #useWasm = true; + static #useWorkerFetch = true; + static #wasmUrl = null; + static setOptions({ + handler, + useWasm, + useWorkerFetch, + wasmUrl + }) { + this.#useWasm = useWasm; + this.#useWorkerFetch = useWorkerFetch; + this.#wasmUrl = wasmUrl; + if (!useWorkerFetch) { + this.#handler = handler; + } + } + static async #getJsModule(fallbackCallback) { + const path = `${this.#wasmUrl}openjpeg_nowasm_fallback.js`; + let instance = null; + try { + const mod = await import( + /*webpackIgnore: true*/ + /*@vite-ignore*/ + path); + instance = mod.default(); + } catch (e) { + warn(`JpxImage#getJsModule: ${e}`); + } + fallbackCallback(instance); + } + static async #instantiateWasm(fallbackCallback, imports, successCallback) { + const filename = "openjpeg.wasm"; + try { + if (!this.#buffer) { + if (this.#useWorkerFetch) { + this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`); + } else { + this.#buffer = await this.#handler.sendWithPromise("FetchBinaryData", { + type: "wasmFactory", + filename + }); + } + } + const results = await WebAssembly.instantiate(this.#buffer, imports); + return successCallback(results.instance); + } catch (reason) { + warn(`JpxImage#instantiateWasm: ${reason}`); + this.#getJsModule(fallbackCallback); + return null; + } finally { + this.#handler = null; + } + } + static async decode(bytes, { + numComponents = 4, + isIndexedColormap = false, + smaskInData = false, + reducePower = 0 + } = {}) { + if (!this.#modulePromise) { + const { + promise, + resolve + } = Promise.withResolvers(); + const promises = [promise]; + if (!this.#useWasm) { + this.#getJsModule(resolve); + } else { + promises.push(openjpeg({ + warn: warn, + instantiateWasm: this.#instantiateWasm.bind(this, resolve) + })); + } + this.#modulePromise = Promise.race(promises); + } + const module = await this.#modulePromise; + if (!module) { + throw new JpxError("OpenJPEG failed to initialize"); + } + let ptr; + try { + const size = bytes.length; + ptr = module._malloc(size); + module.writeArrayToMemory(bytes, ptr); + const ret = module._jp2_decode(ptr, size, numComponents > 0 ? numComponents : 0, !!isIndexedColormap, !!smaskInData, reducePower); + if (ret) { + const { + errorMessages + } = module; + if (errorMessages) { + delete module.errorMessages; + throw new JpxError(errorMessages); + } + throw new JpxError("Unknown error"); + } + const { + imageData + } = module; + module.imageData = null; + return imageData; + } finally { + if (ptr) { + module._free(ptr); + } + } + } + static cleanup() { + this.#modulePromise = null; + } + static parseImageProperties(stream) { + let newByte = stream.getByte(); + while (newByte >= 0) { + const oldByte = newByte; + newByte = stream.getByte(); + const code = oldByte << 8 | newByte; + if (code === 0xff51) { + stream.skip(4); + const Xsiz = stream.getInt32() >>> 0; + const Ysiz = stream.getInt32() >>> 0; + const XOsiz = stream.getInt32() >>> 0; + const YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + const Csiz = stream.getUint16(); + return { + width: Xsiz - XOsiz, + height: Ysiz - YOsiz, + bitsPerComponent: 8, + componentsCount: Csiz + }; + } + } + throw new JpxError("No size marker found in JPX stream"); + } +} + +;// ./src/core/operator_list.js + +function addState(parentState, pattern, checkFn, iterateFn, processFn) { + let state = parentState; + for (let i = 0, ii = pattern.length - 1; i < ii; i++) { + const item = pattern[i]; + state = state[item] ||= []; + } + state[pattern.at(-1)] = { + checkFn, + iterateFn, + processFn + }; +} +const InitialState = []; +addState(InitialState, [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore], null, function iterateInlineImageGroup(context, i) { + const fnArray = context.fnArray; + const iFirstSave = context.iCurr - 3; + const pos = (i - iFirstSave) % 4; + switch (pos) { + case 0: + return fnArray[i] === OPS.save; + case 1: + return fnArray[i] === OPS.transform; + case 2: + return fnArray[i] === OPS.paintInlineImageXObject; + case 3: + return fnArray[i] === OPS.restore; + } + throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`); +}, function foundInlineImageGroup(context, i) { + const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10; + const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200; + const MAX_WIDTH = 1000; + const IMAGE_PADDING = 1; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstSave = curr - 3; + const iFirstTransform = curr - 2; + const iFirstPIIXO = curr - 1; + const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK); + if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) { + return i - (i - iFirstSave) % 4; + } + let maxX = 0; + const map = []; + let maxLineHeight = 0; + let currentX = IMAGE_PADDING, + currentY = IMAGE_PADDING; + for (let q = 0; q < count; q++) { + const transform = argsArray[iFirstTransform + (q << 2)]; + const img = argsArray[iFirstPIIXO + (q << 2)][0]; + if (currentX + img.width > MAX_WIDTH) { + maxX = Math.max(maxX, currentX); + currentY += maxLineHeight + 2 * IMAGE_PADDING; + currentX = 0; + maxLineHeight = 0; + } + map.push({ + transform, + x: currentX, + y: currentY, + w: img.width, + h: img.height + }); + currentX += img.width + 2 * IMAGE_PADDING; + maxLineHeight = Math.max(maxLineHeight, img.height); + } + const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING; + const imgHeight = currentY + maxLineHeight + IMAGE_PADDING; + const imgData = new Uint8Array(imgWidth * imgHeight * 4); + const imgRowSize = imgWidth << 2; + for (let q = 0; q < count; q++) { + const data = argsArray[iFirstPIIXO + (q << 2)][0].data; + const rowSize = map[q].w << 2; + let dataOffset = 0; + let offset = map[q].x + map[q].y * imgWidth << 2; + imgData.set(data.subarray(0, rowSize), offset - imgRowSize); + for (let k = 0, kk = map[q].h; k < kk; k++) { + imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset); + dataOffset += rowSize; + offset += imgRowSize; + } + imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset); + while (offset >= 0) { + data[offset - 4] = data[offset]; + data[offset - 3] = data[offset + 1]; + data[offset - 2] = data[offset + 2]; + data[offset - 1] = data[offset + 3]; + data[offset + rowSize] = data[offset + rowSize - 4]; + data[offset + rowSize + 1] = data[offset + rowSize - 3]; + data[offset + rowSize + 2] = data[offset + rowSize - 2]; + data[offset + rowSize + 3] = data[offset + rowSize - 1]; + offset -= imgRowSize; + } + } + const img = { + width: imgWidth, + height: imgHeight + }; + if (context.isOffscreenCanvasSupported) { + const canvas = new OffscreenCanvas(imgWidth, imgHeight); + const ctx = canvas.getContext("2d"); + ctx.putImageData(new ImageData(new Uint8ClampedArray(imgData.buffer), imgWidth, imgHeight), 0, 0); + img.bitmap = canvas.transferToImageBitmap(); + img.data = null; + } else { + img.kind = ImageKind.RGBA_32BPP; + img.data = imgData; + } + fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [img, map]); + return iFirstSave + 1; +}); +addState(InitialState, [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore], null, function iterateImageMaskGroup(context, i) { + const fnArray = context.fnArray; + const iFirstSave = context.iCurr - 3; + const pos = (i - iFirstSave) % 4; + switch (pos) { + case 0: + return fnArray[i] === OPS.save; + case 1: + return fnArray[i] === OPS.transform; + case 2: + return fnArray[i] === OPS.paintImageMaskXObject; + case 3: + return fnArray[i] === OPS.restore; + } + throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`); +}, function foundImageMaskGroup(context, i) { + const MIN_IMAGES_IN_MASKS_BLOCK = 10; + const MAX_IMAGES_IN_MASKS_BLOCK = 100; + const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstSave = curr - 3; + const iFirstTransform = curr - 2; + const iFirstPIMXO = curr - 1; + let count = Math.floor((i - iFirstSave) / 4); + if (count < MIN_IMAGES_IN_MASKS_BLOCK) { + return i - (i - iFirstSave) % 4; + } + let isSameImage = false; + let iTransform, transformArgs; + const firstPIMXOArg0 = argsArray[iFirstPIMXO][0]; + const firstTransformArg0 = argsArray[iFirstTransform][0], + firstTransformArg1 = argsArray[iFirstTransform][1], + firstTransformArg2 = argsArray[iFirstTransform][2], + firstTransformArg3 = argsArray[iFirstTransform][3]; + if (firstTransformArg1 === firstTransformArg2) { + isSameImage = true; + iTransform = iFirstTransform + 4; + let iPIMXO = iFirstPIMXO + 4; + for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) { + transformArgs = argsArray[iTransform]; + if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) { + if (q < MIN_IMAGES_IN_MASKS_BLOCK) { + isSameImage = false; + } else { + count = q; + } + break; + } + } + } + if (isSameImage) { + count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK); + const positions = new Float32Array(count * 2); + iTransform = iFirstTransform; + for (let q = 0; q < count; q++, iTransform += 4) { + transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]); + } else { + count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK); + const images = []; + for (let q = 0; q < count; q++) { + transformArgs = argsArray[iFirstTransform + (q << 2)]; + const maskParams = argsArray[iFirstPIMXO + (q << 2)][0]; + images.push({ + data: maskParams.data, + width: maskParams.width, + height: maskParams.height, + interpolate: maskParams.interpolate, + count: maskParams.count, + transform: transformArgs + }); + } + fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [images]); + } + return iFirstSave + 1; +}); +addState(InitialState, [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore], function (context) { + const argsArray = context.argsArray; + const iFirstTransform = context.iCurr - 2; + return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0; +}, function iterateImageGroup(context, i) { + const fnArray = context.fnArray, + argsArray = context.argsArray; + const iFirstSave = context.iCurr - 3; + const pos = (i - iFirstSave) % 4; + switch (pos) { + case 0: + return fnArray[i] === OPS.save; + case 1: + if (fnArray[i] !== OPS.transform) { + return false; + } + const iFirstTransform = context.iCurr - 2; + const firstTransformArg0 = argsArray[iFirstTransform][0]; + const firstTransformArg3 = argsArray[iFirstTransform][3]; + if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) { + return false; + } + return true; + case 2: + if (fnArray[i] !== OPS.paintImageXObject) { + return false; + } + const iFirstPIXO = context.iCurr - 1; + const firstPIXOArg0 = argsArray[iFirstPIXO][0]; + if (argsArray[i][0] !== firstPIXOArg0) { + return false; + } + return true; + case 3: + return fnArray[i] === OPS.restore; + } + throw new Error(`iterateImageGroup - invalid pos: ${pos}`); +}, function (context, i) { + const MIN_IMAGES_IN_BLOCK = 3; + const MAX_IMAGES_IN_BLOCK = 1000; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstSave = curr - 3; + const iFirstTransform = curr - 2; + const iFirstPIXO = curr - 1; + const firstPIXOArg0 = argsArray[iFirstPIXO][0]; + const firstTransformArg0 = argsArray[iFirstTransform][0]; + const firstTransformArg3 = argsArray[iFirstTransform][3]; + const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK); + if (count < MIN_IMAGES_IN_BLOCK) { + return i - (i - iFirstSave) % 4; + } + const positions = new Float32Array(count * 2); + let iTransform = iFirstTransform; + for (let q = 0; q < count; q++, iTransform += 4) { + const transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + const args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions]; + fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, args); + return iFirstSave + 1; +}); +addState(InitialState, [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText], null, function iterateShowTextGroup(context, i) { + const fnArray = context.fnArray, + argsArray = context.argsArray; + const iFirstSave = context.iCurr - 4; + const pos = (i - iFirstSave) % 5; + switch (pos) { + case 0: + return fnArray[i] === OPS.beginText; + case 1: + return fnArray[i] === OPS.setFont; + case 2: + return fnArray[i] === OPS.setTextMatrix; + case 3: + if (fnArray[i] !== OPS.showText) { + return false; + } + const iFirstSetFont = context.iCurr - 3; + const firstSetFontArg0 = argsArray[iFirstSetFont][0]; + const firstSetFontArg1 = argsArray[iFirstSetFont][1]; + if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) { + return false; + } + return true; + case 4: + return fnArray[i] === OPS.endText; + } + throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`); +}, function (context, i) { + const MIN_CHARS_IN_BLOCK = 3; + const MAX_CHARS_IN_BLOCK = 1000; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstBeginText = curr - 4; + const iFirstSetFont = curr - 3; + const iFirstSetTextMatrix = curr - 2; + const iFirstShowText = curr - 1; + const iFirstEndText = curr; + const firstSetFontArg0 = argsArray[iFirstSetFont][0]; + const firstSetFontArg1 = argsArray[iFirstSetFont][1]; + let count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK); + if (count < MIN_CHARS_IN_BLOCK) { + return i - (i - iFirstBeginText) % 5; + } + let iFirst = iFirstBeginText; + if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) { + count++; + iFirst -= 5; + } + let iEndText = iFirst + 4; + for (let q = 1; q < count; q++) { + fnArray.splice(iEndText, 3); + argsArray.splice(iEndText, 3); + iEndText += 2; + } + return iEndText + 1; +}); +addState(InitialState, [OPS.save, OPS.transform, OPS.constructPath, OPS.restore], context => { + const argsArray = context.argsArray; + const iFirstConstructPath = context.iCurr - 1; + const op = argsArray[iFirstConstructPath][0]; + if (op !== OPS.stroke && op !== OPS.closeStroke && op !== OPS.fillStroke && op !== OPS.eoFillStroke && op !== OPS.closeFillStroke && op !== OPS.closeEOFillStroke) { + return true; + } + const iFirstTransform = context.iCurr - 2; + const transform = argsArray[iFirstTransform]; + return transform[0] === 1 && transform[1] === 0 && transform[2] === 0 && transform[3] === 1; +}, () => false, (context, i) => { + const { + fnArray, + argsArray + } = context; + const curr = context.iCurr; + const iFirstSave = curr - 3; + const iFirstTransform = curr - 2; + const iFirstConstructPath = curr - 1; + const args = argsArray[iFirstConstructPath]; + const transform = argsArray[iFirstTransform]; + const [, [buffer], minMax] = args; + if (minMax) { + Util.scaleMinMax(transform, minMax); + for (let k = 0, kk = buffer.length; k < kk;) { + switch (buffer[k++]) { + case DrawOPS.moveTo: + case DrawOPS.lineTo: + Util.applyTransform(buffer, transform, k); + k += 2; + break; + case DrawOPS.curveTo: + Util.applyTransformToBezier(buffer, transform, k); + k += 6; + break; + } + } + } + fnArray.splice(iFirstSave, 4, OPS.constructPath); + argsArray.splice(iFirstSave, 4, args); + return iFirstSave + 1; +}); +class NullOptimizer { + constructor(queue) { + this.queue = queue; + } + _optimize() {} + push(fn, args) { + this.queue.fnArray.push(fn); + this.queue.argsArray.push(args); + this._optimize(); + } + flush() {} + reset() {} +} +class QueueOptimizer extends NullOptimizer { + constructor(queue) { + super(queue); + this.state = null; + this.context = { + iCurr: 0, + fnArray: queue.fnArray, + argsArray: queue.argsArray, + isOffscreenCanvasSupported: OperatorList.isOffscreenCanvasSupported + }; + this.match = null; + this.lastProcessed = 0; + } + _optimize() { + const fnArray = this.queue.fnArray; + let i = this.lastProcessed, + ii = fnArray.length; + let state = this.state; + let match = this.match; + if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) { + this.lastProcessed = ii; + return; + } + const context = this.context; + while (i < ii) { + if (match) { + const iterate = (0, match.iterateFn)(context, i); + if (iterate) { + i++; + continue; + } + i = (0, match.processFn)(context, i + 1); + ii = fnArray.length; + match = null; + state = null; + if (i >= ii) { + break; + } + } + state = (state || InitialState)[fnArray[i]]; + if (!state || Array.isArray(state)) { + i++; + continue; + } + context.iCurr = i; + i++; + if (state.checkFn && !(0, state.checkFn)(context)) { + state = null; + continue; + } + match = state; + state = null; + } + this.state = state; + this.match = match; + this.lastProcessed = i; + } + flush() { + while (this.match) { + const length = this.queue.fnArray.length; + this.lastProcessed = (0, this.match.processFn)(this.context, length); + this.match = null; + this.state = null; + this._optimize(); + } + } + reset() { + this.state = null; + this.match = null; + this.lastProcessed = 0; + } +} +class OperatorList { + static CHUNK_SIZE = 1000; + static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5; + static isOffscreenCanvasSupported = false; + constructor(intent = 0, streamSink) { + this._streamSink = streamSink; + this.fnArray = []; + this.argsArray = []; + this.optimizer = streamSink && !(intent & RenderingIntentFlag.OPLIST) ? new QueueOptimizer(this) : new NullOptimizer(this); + this.dependencies = new Set(); + this._totalLength = 0; + this.weight = 0; + this._resolved = streamSink ? null : Promise.resolve(); + } + static setOptions({ + isOffscreenCanvasSupported + }) { + this.isOffscreenCanvasSupported = isOffscreenCanvasSupported; + } + get length() { + return this.argsArray.length; + } + get ready() { + return this._resolved || this._streamSink.ready; + } + get totalLength() { + return this._totalLength + this.length; + } + addOp(fn, args) { + this.optimizer.push(fn, args); + this.weight++; + if (this._streamSink) { + if (this.weight >= OperatorList.CHUNK_SIZE) { + this.flush(); + } else if (this.weight >= OperatorList.CHUNK_SIZE_ABOUT && (fn === OPS.restore || fn === OPS.endText)) { + this.flush(); + } + } + } + addImageOps(fn, args, optionalContent, hasMask = false) { + if (hasMask) { + this.addOp(OPS.save); + this.addOp(OPS.setGState, [[["SMask", false]]]); + } + if (optionalContent !== undefined) { + this.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + this.addOp(fn, args); + if (optionalContent !== undefined) { + this.addOp(OPS.endMarkedContent, []); + } + if (hasMask) { + this.addOp(OPS.restore); + } + } + addDependency(dependency) { + if (this.dependencies.has(dependency)) { + return; + } + this.dependencies.add(dependency); + this.addOp(OPS.dependency, [dependency]); + } + addDependencies(dependencies) { + for (const dependency of dependencies) { + this.addDependency(dependency); + } + } + addOpList(opList) { + if (!(opList instanceof OperatorList)) { + warn('addOpList - ignoring invalid "opList" parameter.'); + return; + } + for (const dependency of opList.dependencies) { + this.dependencies.add(dependency); + } + for (let i = 0, ii = opList.length; i < ii; i++) { + this.addOp(opList.fnArray[i], opList.argsArray[i]); + } + } + getIR() { + return { + fnArray: this.fnArray, + argsArray: this.argsArray, + length: this.length + }; + } + get _transfers() { + const transfers = []; + const { + fnArray, + argsArray, + length + } = this; + for (let i = 0; i < length; i++) { + switch (fnArray[i]) { + case OPS.paintInlineImageXObject: + case OPS.paintInlineImageXObjectGroup: + case OPS.paintImageMaskXObject: + { + const { + bitmap, + data + } = argsArray[i][0]; + if (bitmap || data?.buffer) { + transfers.push(bitmap || data.buffer); + } + break; + } + case OPS.constructPath: + { + const [, [data], minMax] = argsArray[i]; + if (data) { + transfers.push(data.buffer, minMax.buffer); + } + break; + } + case OPS.paintFormXObjectBegin: + const [matrix, bbox] = argsArray[i]; + if (matrix) { + transfers.push(matrix.buffer); + } + if (bbox) { + transfers.push(bbox.buffer); + } + break; + case OPS.setTextMatrix: + transfers.push(argsArray[i][0].buffer); + break; + } + } + return transfers; + } + flush(lastChunk = false, separateAnnots = null) { + this.optimizer.flush(); + const length = this.length; + this._totalLength += length; + this._streamSink.enqueue({ + fnArray: this.fnArray, + argsArray: this.argsArray, + lastChunk, + separateAnnots, + length + }, 1, this._transfers); + this.dependencies.clear(); + this.fnArray.length = 0; + this.argsArray.length = 0; + this.weight = 0; + this.optimizer.reset(); + } +} + +;// ./src/core/binary_cmap.js + +function hexToInt(a, size) { + let n = 0; + for (let i = 0; i <= size; i++) { + n = n << 8 | a[i]; + } + return n >>> 0; +} +function hexToStr(a, size) { + if (size === 1) { + return String.fromCharCode(a[0], a[1]); + } + if (size === 3) { + return String.fromCharCode(a[0], a[1], a[2], a[3]); + } + return String.fromCharCode(...a.subarray(0, size + 1)); +} +function addHex(a, b, size) { + let c = 0; + for (let i = size; i >= 0; i--) { + c += a[i] + b[i]; + a[i] = c & 255; + c >>= 8; + } +} +function incHex(a, size) { + let c = 1; + for (let i = size; i >= 0 && c > 0; i--) { + c += a[i]; + a[i] = c & 255; + c >>= 8; + } +} +const MAX_NUM_SIZE = 16; +const MAX_ENCODED_NUM_SIZE = 19; +class BinaryCMapStream { + constructor(data) { + this.buffer = data; + this.pos = 0; + this.end = data.length; + this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE); + } + readByte() { + if (this.pos >= this.end) { + return -1; + } + return this.buffer[this.pos++]; + } + readNumber() { + let n = 0; + let last; + do { + const b = this.readByte(); + if (b < 0) { + throw new FormatError("unexpected EOF in bcmap"); + } + last = !(b & 0x80); + n = n << 7 | b & 0x7f; + } while (!last); + return n; + } + readSigned() { + const n = this.readNumber(); + return n & 1 ? ~(n >>> 1) : n >>> 1; + } + readHex(num, size) { + num.set(this.buffer.subarray(this.pos, this.pos + size + 1)); + this.pos += size + 1; + } + readHexNumber(num, size) { + let last; + const stack = this.tmpBuf; + let sp = 0; + do { + const b = this.readByte(); + if (b < 0) { + throw new FormatError("unexpected EOF in bcmap"); + } + last = !(b & 0x80); + stack[sp++] = b & 0x7f; + } while (!last); + let i = size, + buffer = 0, + bufferSize = 0; + while (i >= 0) { + while (bufferSize < 8 && stack.length > 0) { + buffer |= stack[--sp] << bufferSize; + bufferSize += 7; + } + num[i] = buffer & 255; + i--; + buffer >>= 8; + bufferSize -= 8; + } + } + readHexSigned(num, size) { + this.readHexNumber(num, size); + const sign = num[size] & 1 ? 255 : 0; + let c = 0; + for (let i = 0; i <= size; i++) { + c = (c & 1) << 8 | num[i]; + num[i] = c >> 1 ^ sign; + } + } + readString() { + const len = this.readNumber(), + buf = new Array(len); + for (let i = 0; i < len; i++) { + buf[i] = this.readNumber(); + } + return String.fromCharCode(...buf); + } +} +class BinaryCMapReader { + async process(data, cMap, extend) { + const stream = new BinaryCMapStream(data); + const header = stream.readByte(); + cMap.vertical = !!(header & 1); + let useCMap = null; + const start = new Uint8Array(MAX_NUM_SIZE); + const end = new Uint8Array(MAX_NUM_SIZE); + const char = new Uint8Array(MAX_NUM_SIZE); + const charCode = new Uint8Array(MAX_NUM_SIZE); + const tmp = new Uint8Array(MAX_NUM_SIZE); + let code; + let b; + while ((b = stream.readByte()) >= 0) { + const type = b >> 5; + if (type === 7) { + switch (b & 0x1f) { + case 0: + stream.readString(); + break; + case 1: + useCMap = stream.readString(); + break; + } + continue; + } + const sequence = !!(b & 0x10); + const dataSize = b & 15; + if (dataSize + 1 > MAX_NUM_SIZE) { + throw new Error("BinaryCMapReader.process: Invalid dataSize."); + } + const ucs2DataSize = 1; + const subitemsCount = stream.readNumber(); + switch (type) { + case 0: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + } + break; + case 1: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + stream.readNumber(); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + stream.readNumber(); + } + break; + case 2: + stream.readHex(char, dataSize); + code = stream.readNumber(); + cMap.mapOne(hexToInt(char, dataSize), code); + for (let i = 1; i < subitemsCount; i++) { + incHex(char, dataSize); + if (!sequence) { + stream.readHexNumber(tmp, dataSize); + addHex(char, tmp, dataSize); + } + code = stream.readSigned() + (code + 1); + cMap.mapOne(hexToInt(char, dataSize), code); + } + break; + case 3: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + if (!sequence) { + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + } else { + start.set(end); + } + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + } + break; + case 4: + stream.readHex(char, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + for (let i = 1; i < subitemsCount; i++) { + incHex(char, ucs2DataSize); + if (!sequence) { + stream.readHexNumber(tmp, ucs2DataSize); + addHex(char, tmp, ucs2DataSize); + } + incHex(charCode, dataSize); + stream.readHexSigned(tmp, dataSize); + addHex(charCode, tmp, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + } + break; + case 5: + stream.readHex(start, ucs2DataSize); + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, ucs2DataSize); + if (!sequence) { + stream.readHexNumber(start, ucs2DataSize); + addHex(start, end, ucs2DataSize); + } else { + start.set(end); + } + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + } + break; + default: + throw new Error(`BinaryCMapReader.process - unknown type: ${type}`); + } + } + if (useCMap) { + return extend(useCMap); + } + return cMap; + } +} + +;// ./src/core/ascii_85_stream.js + + +class Ascii85Stream extends DecodeStream { + constructor(str, maybeLength) { + if (maybeLength) { + maybeLength *= 0.8; + } + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.input = new Uint8Array(5); + } + readBlock() { + const TILDA_CHAR = 0x7e; + const Z_LOWER_CHAR = 0x7a; + const EOF = -1; + const str = this.str; + let c = str.getByte(); + while (isWhiteSpace(c)) { + c = str.getByte(); + } + if (c === EOF || c === TILDA_CHAR) { + this.eof = true; + return; + } + const bufferLength = this.bufferLength; + let buffer, i; + if (c === Z_LOWER_CHAR) { + buffer = this.ensureBuffer(bufferLength + 4); + for (i = 0; i < 4; ++i) { + buffer[bufferLength + i] = 0; + } + this.bufferLength += 4; + } else { + const input = this.input; + input[0] = c; + for (i = 1; i < 5; ++i) { + c = str.getByte(); + while (isWhiteSpace(c)) { + c = str.getByte(); + } + input[i] = c; + if (c === EOF || c === TILDA_CHAR) { + break; + } + } + buffer = this.ensureBuffer(bufferLength + i - 1); + this.bufferLength += i - 1; + if (i < 5) { + for (; i < 5; ++i) { + input[i] = 0x21 + 84; + } + this.eof = true; + } + let t = 0; + for (i = 0; i < 5; ++i) { + t = t * 85 + (input[i] - 0x21); + } + for (i = 3; i >= 0; --i) { + buffer[bufferLength + i] = t & 0xff; + t >>= 8; + } + } + } +} + +;// ./src/core/ascii_hex_stream.js + +class AsciiHexStream extends DecodeStream { + constructor(str, maybeLength) { + if (maybeLength) { + maybeLength *= 0.5; + } + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.firstDigit = -1; + } + readBlock() { + const UPSTREAM_BLOCK_SIZE = 8000; + const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE); + if (!bytes.length) { + this.eof = true; + return; + } + const maxDecodeLength = bytes.length + 1 >> 1; + const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength); + let bufferLength = this.bufferLength; + let firstDigit = this.firstDigit; + for (const ch of bytes) { + let digit; + if (ch >= 0x30 && ch <= 0x39) { + digit = ch & 0x0f; + } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + digit = (ch & 0x0f) + 9; + } else if (ch === 0x3e) { + this.eof = true; + break; + } else { + continue; + } + if (firstDigit < 0) { + firstDigit = digit; + } else { + buffer[bufferLength++] = firstDigit << 4 | digit; + firstDigit = -1; + } + } + if (firstDigit >= 0 && this.eof) { + buffer[bufferLength++] = firstDigit << 4; + firstDigit = -1; + } + this.firstDigit = firstDigit; + this.bufferLength = bufferLength; + } +} + +;// ./src/core/ccitt.js + +const ccittEOL = -2; +const ccittEOF = -1; +const twoDimPass = 0; +const twoDimHoriz = 1; +const twoDimVert0 = 2; +const twoDimVertR1 = 3; +const twoDimVertL1 = 4; +const twoDimVertR2 = 5; +const twoDimVertL2 = 6; +const twoDimVertR3 = 7; +const twoDimVertL3 = 8; +const twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]]; +const whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]]; +const whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]]; +const blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]]; +const blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]]; +const blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]]; +class CCITTFaxDecoder { + constructor(source, options = {}) { + if (typeof source?.next !== "function") { + throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); + } + this.source = source; + this.eof = false; + this.encoding = options.K || 0; + this.eoline = options.EndOfLine || false; + this.byteAlign = options.EncodedByteAlign || false; + this.columns = options.Columns || 1728; + this.rows = options.Rows || 0; + this.eoblock = options.EndOfBlock ?? true; + this.black = options.BlackIs1 || false; + this.codingLine = new Uint32Array(this.columns + 1); + this.refLine = new Uint32Array(this.columns + 2); + this.codingLine[0] = this.columns; + this.codingPos = 0; + this.row = 0; + this.nextLine2D = this.encoding < 0; + this.inputBits = 0; + this.inputBuf = 0; + this.outputBits = 0; + this.rowsDone = false; + let code1; + while ((code1 = this._lookBits(12)) === 0) { + this._eatBits(1); + } + if (code1 === 1) { + this._eatBits(12); + } + if (this.encoding > 0) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + } + readNextChar() { + if (this.eof) { + return -1; + } + const refLine = this.refLine; + const codingLine = this.codingLine; + const columns = this.columns; + let refPos, blackPixels, bits, i; + if (this.outputBits === 0) { + if (this.rowsDone) { + this.eof = true; + } + if (this.eof) { + return -1; + } + this.err = false; + let code1, code2, code3; + if (this.nextLine2D) { + for (i = 0; codingLine[i] < columns; ++i) { + refLine[i] = codingLine[i]; + } + refLine[i++] = columns; + refLine[i] = columns; + codingLine[0] = 0; + this.codingPos = 0; + refPos = 0; + blackPixels = 0; + while (codingLine[this.codingPos] < columns) { + code1 = this._getTwoDimCode(); + switch (code1) { + case twoDimPass: + this._addPixels(refLine[refPos + 1], blackPixels); + if (refLine[refPos + 1] < columns) { + refPos += 2; + } + break; + case twoDimHoriz: + code1 = code2 = 0; + if (blackPixels) { + do { + code1 += code3 = this._getBlackCode(); + } while (code3 >= 64); + do { + code2 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + do { + code2 += code3 = this._getBlackCode(); + } while (code3 >= 64); + } + this._addPixels(codingLine[this.codingPos] + code1, blackPixels); + if (codingLine[this.codingPos] < columns) { + this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1); + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + break; + case twoDimVertR3: + this._addPixels(refLine[refPos] + 3, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertR2: + this._addPixels(refLine[refPos] + 2, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertR1: + this._addPixels(refLine[refPos] + 1, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVert0: + this._addPixels(refLine[refPos], blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL3: + this._addPixelsNeg(refLine[refPos] - 3, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL2: + this._addPixelsNeg(refLine[refPos] - 2, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL1: + this._addPixelsNeg(refLine[refPos] - 1, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case ccittEOF: + this._addPixels(columns, 0); + this.eof = true; + break; + default: + info("bad 2d code"); + this._addPixels(columns, 0); + this.err = true; + } + } + } else { + codingLine[0] = 0; + this.codingPos = 0; + blackPixels = 0; + while (codingLine[this.codingPos] < columns) { + code1 = 0; + if (blackPixels) { + do { + code1 += code3 = this._getBlackCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + } + this._addPixels(codingLine[this.codingPos] + code1, blackPixels); + blackPixels ^= 1; + } + } + let gotEOL = false; + if (this.byteAlign) { + this.inputBits &= ~7; + } + if (!this.eoblock && this.row === this.rows - 1) { + this.rowsDone = true; + } else { + code1 = this._lookBits(12); + if (this.eoline) { + while (code1 !== ccittEOF && code1 !== 1) { + this._eatBits(1); + code1 = this._lookBits(12); + } + } else { + while (code1 === 0) { + this._eatBits(1); + code1 = this._lookBits(12); + } + } + if (code1 === 1) { + this._eatBits(12); + gotEOL = true; + } else if (code1 === ccittEOF) { + this.eof = true; + } + } + if (!this.eof && this.encoding > 0 && !this.rowsDone) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + if (this.eoblock && gotEOL && this.byteAlign) { + code1 = this._lookBits(12); + if (code1 === 1) { + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + if (this.encoding >= 0) { + for (i = 0; i < 4; ++i) { + code1 = this._lookBits(12); + if (code1 !== 1) { + info("bad rtc code: " + code1); + } + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + } + } + this.eof = true; + } + } else if (this.err && this.eoline) { + while (true) { + code1 = this._lookBits(13); + if (code1 === ccittEOF) { + this.eof = true; + return -1; + } + if (code1 >> 1 === 1) { + break; + } + this._eatBits(1); + } + this._eatBits(12); + if (this.encoding > 0) { + this._eatBits(1); + this.nextLine2D = !(code1 & 1); + } + } + this.outputBits = codingLine[0] > 0 ? codingLine[this.codingPos = 0] : codingLine[this.codingPos = 1]; + this.row++; + } + let c; + if (this.outputBits >= 8) { + c = this.codingPos & 1 ? 0 : 0xff; + this.outputBits -= 8; + if (this.outputBits === 0 && codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } + } else { + bits = 8; + c = 0; + do { + if (typeof this.outputBits !== "number") { + throw new FormatError('Invalid /CCITTFaxDecode data, "outputBits" must be a number.'); + } + if (this.outputBits > bits) { + c <<= bits; + if (!(this.codingPos & 1)) { + c |= 0xff >> 8 - bits; + } + this.outputBits -= bits; + bits = 0; + } else { + c <<= this.outputBits; + if (!(this.codingPos & 1)) { + c |= 0xff >> 8 - this.outputBits; + } + bits -= this.outputBits; + this.outputBits = 0; + if (codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } else if (bits > 0) { + c <<= bits; + bits = 0; + } + } + } while (bits); + } + if (this.black) { + c ^= 0xff; + } + return c; + } + _addPixels(a1, blackPixels) { + const codingLine = this.codingLine; + let codingPos = this.codingPos; + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + info("row is wrong length"); + this.err = true; + a1 = this.columns; + } + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + codingLine[codingPos] = a1; + } + this.codingPos = codingPos; + } + _addPixelsNeg(a1, blackPixels) { + const codingLine = this.codingLine; + let codingPos = this.codingPos; + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + info("row is wrong length"); + this.err = true; + a1 = this.columns; + } + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + codingLine[codingPos] = a1; + } else if (a1 < codingLine[codingPos]) { + if (a1 < 0) { + info("invalid code"); + this.err = true; + a1 = 0; + } + while (codingPos > 0 && a1 < codingLine[codingPos - 1]) { + --codingPos; + } + codingLine[codingPos] = a1; + } + this.codingPos = codingPos; + } + _findTableCode(start, end, table, limit) { + const limitValue = limit || 0; + for (let i = start; i <= end; ++i) { + let code = this._lookBits(i); + if (code === ccittEOF) { + return [true, 1, false]; + } + if (i < end) { + code <<= end - i; + } + if (!limitValue || code >= limitValue) { + const p = table[code - limitValue]; + if (p[0] === i) { + this._eatBits(i); + return [true, p[1], true]; + } + } + } + return [false, 0, false]; + } + _getTwoDimCode() { + let code = 0; + let p; + if (this.eoblock) { + code = this._lookBits(7); + p = twoDimTable[code]; + if (p?.[0] > 0) { + this._eatBits(p[0]); + return p[1]; + } + } else { + const result = this._findTableCode(1, 7, twoDimTable); + if (result[0] && result[2]) { + return result[1]; + } + } + info("Bad two dim code"); + return ccittEOF; + } + _getWhiteCode() { + let code = 0; + let p; + if (this.eoblock) { + code = this._lookBits(12); + if (code === ccittEOF) { + return 1; + } + p = code >> 5 === 0 ? whiteTable1[code] : whiteTable2[code >> 3]; + if (p[0] > 0) { + this._eatBits(p[0]); + return p[1]; + } + } else { + let result = this._findTableCode(1, 9, whiteTable2); + if (result[0]) { + return result[1]; + } + result = this._findTableCode(11, 12, whiteTable1); + if (result[0]) { + return result[1]; + } + } + info("bad white code"); + this._eatBits(1); + return 1; + } + _getBlackCode() { + let code, p; + if (this.eoblock) { + code = this._lookBits(13); + if (code === ccittEOF) { + return 1; + } + if (code >> 7 === 0) { + p = blackTable1[code]; + } else if (code >> 9 === 0 && code >> 7 !== 0) { + p = blackTable2[(code >> 1) - 64]; + } else { + p = blackTable3[code >> 7]; + } + if (p[0] > 0) { + this._eatBits(p[0]); + return p[1]; + } + } else { + let result = this._findTableCode(2, 6, blackTable3); + if (result[0]) { + return result[1]; + } + result = this._findTableCode(7, 12, blackTable2, 64); + if (result[0]) { + return result[1]; + } + result = this._findTableCode(10, 13, blackTable1); + if (result[0]) { + return result[1]; + } + } + info("bad black code"); + this._eatBits(1); + return 1; + } + _lookBits(n) { + let c; + while (this.inputBits < n) { + if ((c = this.source.next()) === -1) { + if (this.inputBits === 0) { + return ccittEOF; + } + return this.inputBuf << n - this.inputBits & 0xffff >> 16 - n; + } + this.inputBuf = this.inputBuf << 8 | c; + this.inputBits += 8; + } + return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n; + } + _eatBits(n) { + if ((this.inputBits -= n) < 0) { + this.inputBits = 0; + } + } +} + +;// ./src/core/ccitt_stream.js + + + +class CCITTFaxStream extends DecodeStream { + constructor(str, maybeLength, params) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + if (!(params instanceof Dict)) { + params = Dict.empty; + } + const source = { + next() { + return str.getByte(); + } + }; + this.ccittFaxDecoder = new CCITTFaxDecoder(source, { + K: params.get("K"), + EndOfLine: params.get("EndOfLine"), + EncodedByteAlign: params.get("EncodedByteAlign"), + Columns: params.get("Columns"), + Rows: params.get("Rows"), + EndOfBlock: params.get("EndOfBlock"), + BlackIs1: params.get("BlackIs1") + }); + } + readBlock() { + while (!this.eof) { + const c = this.ccittFaxDecoder.readNextChar(); + if (c === -1) { + this.eof = true; + return; + } + this.ensureBuffer(this.bufferLength + 1); + this.buffer[this.bufferLength++] = c; + } + } +} + +;// ./src/core/flate_stream.js + + + +const codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); +const lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]); +const distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]); +const fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9]; +const fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5]; +class FlateStream extends DecodeStream { + constructor(str, maybeLength) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + const cmf = str.getByte(); + const flg = str.getByte(); + if (cmf === -1 || flg === -1) { + throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`); + } + if ((cmf & 0x0f) !== 0x08) { + throw new FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`); + } + if (((cmf << 8) + flg) % 31 !== 0) { + throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`); + } + if (flg & 0x20) { + throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`); + } + this.codeSize = 0; + this.codeBuf = 0; + } + async getImageData(length, _decoderOptions) { + const data = await this.asyncGetBytes(); + if (!data) { + return this.getBytes(length); + } + if (data.length <= length) { + return data; + } + return data.subarray(0, length); + } + async asyncGetBytes() { + this.str.reset(); + const bytes = this.str.getBytes(); + try { + const { + readable, + writable + } = new DecompressionStream("deflate"); + const writer = writable.getWriter(); + await writer.ready; + writer.write(bytes).then(async () => { + await writer.ready; + await writer.close(); + }).catch(() => {}); + const chunks = []; + let totalLength = 0; + for await (const chunk of readable) { + chunks.push(chunk); + totalLength += chunk.byteLength; + } + const data = new Uint8Array(totalLength); + let offset = 0; + for (const chunk of chunks) { + data.set(chunk, offset); + offset += chunk.byteLength; + } + return data; + } catch { + this.str = new Stream(bytes, 2, bytes.length, this.str.dict); + this.reset(); + return null; + } + } + get isAsync() { + return true; + } + getBits(bits) { + const str = this.str; + let codeSize = this.codeSize; + let codeBuf = this.codeBuf; + let b; + while (codeSize < bits) { + if ((b = str.getByte()) === -1) { + throw new FormatError("Bad encoding in flate stream"); + } + codeBuf |= b << codeSize; + codeSize += 8; + } + b = codeBuf & (1 << bits) - 1; + this.codeBuf = codeBuf >> bits; + this.codeSize = codeSize -= bits; + return b; + } + getCode(table) { + const str = this.str; + const codes = table[0]; + const maxLen = table[1]; + let codeSize = this.codeSize; + let codeBuf = this.codeBuf; + let b; + while (codeSize < maxLen) { + if ((b = str.getByte()) === -1) { + break; + } + codeBuf |= b << codeSize; + codeSize += 8; + } + const code = codes[codeBuf & (1 << maxLen) - 1]; + const codeLen = code >> 16; + const codeVal = code & 0xffff; + if (codeLen < 1 || codeSize < codeLen) { + throw new FormatError("Bad encoding in flate stream"); + } + this.codeBuf = codeBuf >> codeLen; + this.codeSize = codeSize - codeLen; + return codeVal; + } + generateHuffmanTable(lengths) { + const n = lengths.length; + let maxLen = 0; + let i; + for (i = 0; i < n; ++i) { + if (lengths[i] > maxLen) { + maxLen = lengths[i]; + } + } + const size = 1 << maxLen; + const codes = new Int32Array(size); + for (let len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) { + for (let val = 0; val < n; ++val) { + if (lengths[val] === len) { + let code2 = 0; + let t = code; + for (i = 0; i < len; ++i) { + code2 = code2 << 1 | t & 1; + t >>= 1; + } + for (i = code2; i < size; i += skip) { + codes[i] = len << 16 | val; + } + ++code; + } + } + } + return [codes, maxLen]; + } + #endsStreamOnError(err) { + info(err); + this.eof = true; + } + readBlock() { + let buffer, hdr, len; + const str = this.str; + try { + hdr = this.getBits(3); + } catch (ex) { + this.#endsStreamOnError(ex.message); + return; + } + if (hdr & 1) { + this.eof = true; + } + hdr >>= 1; + if (hdr === 0) { + let b; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + let blockLen = b; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + blockLen |= b << 8; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + let check = b; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + check |= b << 8; + if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) { + throw new FormatError("Bad uncompressed block length in flate stream"); + } + this.codeBuf = 0; + this.codeSize = 0; + const bufferLength = this.bufferLength, + end = bufferLength + blockLen; + buffer = this.ensureBuffer(end); + this.bufferLength = end; + if (blockLen === 0) { + if (str.peekByte() === -1) { + this.eof = true; + } + } else { + const block = str.getBytes(blockLen); + buffer.set(block, bufferLength); + if (block.length < blockLen) { + this.eof = true; + } + } + return; + } + let litCodeTable; + let distCodeTable; + if (hdr === 1) { + litCodeTable = fixedLitCodeTab; + distCodeTable = fixedDistCodeTab; + } else if (hdr === 2) { + const numLitCodes = this.getBits(5) + 257; + const numDistCodes = this.getBits(5) + 1; + const numCodeLenCodes = this.getBits(4) + 4; + const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length); + let i; + for (i = 0; i < numCodeLenCodes; ++i) { + codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3); + } + const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths); + len = 0; + i = 0; + const codes = numLitCodes + numDistCodes; + const codeLengths = new Uint8Array(codes); + let bitsLength, bitsOffset, what; + while (i < codes) { + const code = this.getCode(codeLenCodeTab); + if (code === 16) { + bitsLength = 2; + bitsOffset = 3; + what = len; + } else if (code === 17) { + bitsLength = 3; + bitsOffset = 3; + what = len = 0; + } else if (code === 18) { + bitsLength = 7; + bitsOffset = 11; + what = len = 0; + } else { + codeLengths[i++] = len = code; + continue; + } + let repeatLength = this.getBits(bitsLength) + bitsOffset; + while (repeatLength-- > 0) { + codeLengths[i++] = what; + } + } + litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes)); + distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes)); + } else { + throw new FormatError("Unknown block type in flate stream"); + } + buffer = this.buffer; + let limit = buffer ? buffer.length : 0; + let pos = this.bufferLength; + while (true) { + let code1 = this.getCode(litCodeTable); + if (code1 < 256) { + if (pos + 1 >= limit) { + buffer = this.ensureBuffer(pos + 1); + limit = buffer.length; + } + buffer[pos++] = code1; + continue; + } + if (code1 === 256) { + this.bufferLength = pos; + return; + } + code1 -= 257; + code1 = lengthDecode[code1]; + let code2 = code1 >> 16; + if (code2 > 0) { + code2 = this.getBits(code2); + } + len = (code1 & 0xffff) + code2; + code1 = this.getCode(distCodeTable); + code1 = distDecode[code1]; + code2 = code1 >> 16; + if (code2 > 0) { + code2 = this.getBits(code2); + } + const dist = (code1 & 0xffff) + code2; + if (pos + len >= limit) { + buffer = this.ensureBuffer(pos + len); + limit = buffer.length; + } + for (let k = 0; k < len; ++k, ++pos) { + buffer[pos] = buffer[pos - dist]; + } + } + } +} + +;// ./src/core/arithmetic_decoder.js +const QeTable = [{ + qe: 0x5601, + nmps: 1, + nlps: 1, + switchFlag: 1 +}, { + qe: 0x3401, + nmps: 2, + nlps: 6, + switchFlag: 0 +}, { + qe: 0x1801, + nmps: 3, + nlps: 9, + switchFlag: 0 +}, { + qe: 0x0ac1, + nmps: 4, + nlps: 12, + switchFlag: 0 +}, { + qe: 0x0521, + nmps: 5, + nlps: 29, + switchFlag: 0 +}, { + qe: 0x0221, + nmps: 38, + nlps: 33, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 7, + nlps: 6, + switchFlag: 1 +}, { + qe: 0x5401, + nmps: 8, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x4801, + nmps: 9, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x3801, + nmps: 10, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x3001, + nmps: 11, + nlps: 17, + switchFlag: 0 +}, { + qe: 0x2401, + nmps: 12, + nlps: 18, + switchFlag: 0 +}, { + qe: 0x1c01, + nmps: 13, + nlps: 20, + switchFlag: 0 +}, { + qe: 0x1601, + nmps: 29, + nlps: 21, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 15, + nlps: 14, + switchFlag: 1 +}, { + qe: 0x5401, + nmps: 16, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x5101, + nmps: 17, + nlps: 15, + switchFlag: 0 +}, { + qe: 0x4801, + nmps: 18, + nlps: 16, + switchFlag: 0 +}, { + qe: 0x3801, + nmps: 19, + nlps: 17, + switchFlag: 0 +}, { + qe: 0x3401, + nmps: 20, + nlps: 18, + switchFlag: 0 +}, { + qe: 0x3001, + nmps: 21, + nlps: 19, + switchFlag: 0 +}, { + qe: 0x2801, + nmps: 22, + nlps: 19, + switchFlag: 0 +}, { + qe: 0x2401, + nmps: 23, + nlps: 20, + switchFlag: 0 +}, { + qe: 0x2201, + nmps: 24, + nlps: 21, + switchFlag: 0 +}, { + qe: 0x1c01, + nmps: 25, + nlps: 22, + switchFlag: 0 +}, { + qe: 0x1801, + nmps: 26, + nlps: 23, + switchFlag: 0 +}, { + qe: 0x1601, + nmps: 27, + nlps: 24, + switchFlag: 0 +}, { + qe: 0x1401, + nmps: 28, + nlps: 25, + switchFlag: 0 +}, { + qe: 0x1201, + nmps: 29, + nlps: 26, + switchFlag: 0 +}, { + qe: 0x1101, + nmps: 30, + nlps: 27, + switchFlag: 0 +}, { + qe: 0x0ac1, + nmps: 31, + nlps: 28, + switchFlag: 0 +}, { + qe: 0x09c1, + nmps: 32, + nlps: 29, + switchFlag: 0 +}, { + qe: 0x08a1, + nmps: 33, + nlps: 30, + switchFlag: 0 +}, { + qe: 0x0521, + nmps: 34, + nlps: 31, + switchFlag: 0 +}, { + qe: 0x0441, + nmps: 35, + nlps: 32, + switchFlag: 0 +}, { + qe: 0x02a1, + nmps: 36, + nlps: 33, + switchFlag: 0 +}, { + qe: 0x0221, + nmps: 37, + nlps: 34, + switchFlag: 0 +}, { + qe: 0x0141, + nmps: 38, + nlps: 35, + switchFlag: 0 +}, { + qe: 0x0111, + nmps: 39, + nlps: 36, + switchFlag: 0 +}, { + qe: 0x0085, + nmps: 40, + nlps: 37, + switchFlag: 0 +}, { + qe: 0x0049, + nmps: 41, + nlps: 38, + switchFlag: 0 +}, { + qe: 0x0025, + nmps: 42, + nlps: 39, + switchFlag: 0 +}, { + qe: 0x0015, + nmps: 43, + nlps: 40, + switchFlag: 0 +}, { + qe: 0x0009, + nmps: 44, + nlps: 41, + switchFlag: 0 +}, { + qe: 0x0005, + nmps: 45, + nlps: 42, + switchFlag: 0 +}, { + qe: 0x0001, + nmps: 45, + nlps: 43, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 46, + nlps: 46, + switchFlag: 0 +}]; +class ArithmeticDecoder { + constructor(data, start, end) { + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f; + this.clow = this.clow << 7 & 0xffff; + this.ct -= 7; + this.a = 0x8000; + } + byteIn() { + const data = this.data; + let bp = this.bp; + if (data[bp] === 0xff) { + if (data[bp + 1] > 0x8f) { + this.clow += 0xff00; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00; + this.ct = 8; + this.bp = bp; + } + if (this.clow > 0xffff) { + this.chigh += this.clow >> 16; + this.clow &= 0xffff; + } + } + readBit(contexts, pos) { + let cx_index = contexts[pos] >> 1, + cx_mps = contexts[pos] & 1; + const qeTableIcx = QeTable[cx_index]; + const qeIcx = qeTableIcx.qe; + let d; + let a = this.a - qeIcx; + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + if ((a & 0x8000) !== 0) { + this.a = a; + return cx_mps; + } + if (a < qeIcx) { + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + do { + if (this.ct === 0) { + this.byteIn(); + } + a <<= 1; + this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 0xffff; + this.ct--; + } while ((a & 0x8000) === 0); + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; + } +} + +;// ./src/core/jbig2.js + + + + +class Jbig2Error extends BaseException { + constructor(msg) { + super(msg, "Jbig2Error"); + } +} +class ContextCache { + getContexts(id) { + if (id in this) { + return this[id]; + } + return this[id] = new Int8Array(1 << 16); + } +} +class DecodingContext { + constructor(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + } + get decoder() { + const decoder = new ArithmeticDecoder(this.data, this.start, this.end); + return shadow(this, "decoder", decoder); + } + get contextCache() { + const cache = new ContextCache(); + return shadow(this, "contextCache", cache); + } +} +function decodeInteger(contextCache, procedure, decoder) { + const contexts = contextCache.getContexts(procedure); + let prev = 1; + function readBits(length) { + let v = 0; + for (let i = 0; i < length; i++) { + const bit = decoder.readBit(contexts, prev); + prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256; + v = v << 1 | bit; + } + return v >>> 0; + } + const sign = readBits(1); + const value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2); + let signedValue; + if (sign === 0) { + signedValue = value; + } else if (value > 0) { + signedValue = -value; + } + if (signedValue >= MIN_INT_32 && signedValue <= MAX_INT_32) { + return signedValue; + } + return null; +} +function decodeIAID(contextCache, decoder, codeLength) { + const contexts = contextCache.getContexts("IAID"); + let prev = 1; + for (let i = 0; i < codeLength; i++) { + const bit = decoder.readBit(contexts, prev); + prev = prev << 1 | bit; + } + if (codeLength < 31) { + return prev & (1 << codeLength) - 1; + } + return prev & 0x7fffffff; +} +const SegmentTypes = ["SymbolDictionary", null, null, null, "IntermediateTextRegion", null, "ImmediateTextRegion", "ImmediateLosslessTextRegion", null, null, null, null, null, null, null, null, "PatternDictionary", null, null, null, "IntermediateHalftoneRegion", null, "ImmediateHalftoneRegion", "ImmediateLosslessHalftoneRegion", null, null, null, null, null, null, null, null, null, null, null, null, "IntermediateGenericRegion", null, "ImmediateGenericRegion", "ImmediateLosslessGenericRegion", "IntermediateGenericRefinementRegion", null, "ImmediateGenericRefinementRegion", "ImmediateLosslessGenericRefinementRegion", null, null, null, null, "PageInformation", "EndOfPage", "EndOfStripe", "EndOfFile", "Profiles", "Tables", null, null, null, null, null, null, null, null, "Extension"]; +const CodingTemplates = [[{ + x: -1, + y: -2 +}, { + x: 0, + y: -2 +}, { + x: 1, + y: -2 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: 2, + y: -1 +}, { + x: -4, + y: 0 +}, { + x: -3, + y: 0 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}], [{ + x: -1, + y: -2 +}, { + x: 0, + y: -2 +}, { + x: 1, + y: -2 +}, { + x: 2, + y: -2 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: 2, + y: -1 +}, { + x: -3, + y: 0 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}], [{ + x: -1, + y: -2 +}, { + x: 0, + y: -2 +}, { + x: 1, + y: -2 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}], [{ + x: -3, + y: -1 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: -4, + y: 0 +}, { + x: -3, + y: 0 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}]]; +const RefinementTemplates = [{ + coding: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: -1, + y: 1 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] +}, { + coding: [{ + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] +}]; +const ReusedContexts = [0x9b25, 0x0795, 0x00e5, 0x0195]; +const RefinementReusedContexts = [0x0020, 0x0008]; +function decodeBitmapTemplate0(width, height, decodingContext) { + const decoder = decodingContext.decoder; + const contexts = decodingContext.contextCache.getContexts("GB"); + const bitmap = []; + let contextLabel, i, j, pixel, row, row1, row2; + const OLD_PIXEL_MASK = 0x7bf7; + for (i = 0; i < height; i++) { + row = bitmap[i] = new Uint8Array(width); + row1 = i < 1 ? row : bitmap[i - 1]; + row2 = i < 2 ? row : bitmap[i - 2]; + contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4; + for (j = 0; j < width; j++) { + row[j] = pixel = decoder.readBit(contexts, contextLabel); + contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel; + } + } + return bitmap; +} +function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) { + if (mmr) { + const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); + return decodeMMRBitmap(input, width, height, false); + } + if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) { + return decodeBitmapTemplate0(width, height, decodingContext); + } + const useskip = !!skip; + const template = CodingTemplates[templateIndex].concat(at); + template.sort((a, b) => a.y - b.y || a.x - b.x); + const templateLength = template.length; + const templateX = new Int8Array(templateLength); + const templateY = new Int8Array(templateLength); + const changingTemplateEntries = []; + let reuseMask = 0, + minX = 0, + maxX = 0, + minY = 0; + let c, k; + for (k = 0; k < templateLength; k++) { + templateX[k] = template[k].x; + templateY[k] = template[k].y; + minX = Math.min(minX, template[k].x); + maxX = Math.max(maxX, template[k].x); + minY = Math.min(minY, template[k].y); + if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) { + reuseMask |= 1 << templateLength - 1 - k; + } else { + changingTemplateEntries.push(k); + } + } + const changingEntriesLength = changingTemplateEntries.length; + const changingTemplateX = new Int8Array(changingEntriesLength); + const changingTemplateY = new Int8Array(changingEntriesLength); + const changingTemplateBit = new Uint16Array(changingEntriesLength); + for (c = 0; c < changingEntriesLength; c++) { + k = changingTemplateEntries[c]; + changingTemplateX[c] = template[k].x; + changingTemplateY[c] = template[k].y; + changingTemplateBit[c] = 1 << templateLength - 1 - k; + } + const sbb_left = -minX; + const sbb_top = -minY; + const sbb_right = width - maxX; + const pseudoPixelContext = ReusedContexts[templateIndex]; + let row = new Uint8Array(width); + const bitmap = []; + const decoder = decodingContext.decoder; + const contexts = decodingContext.contextCache.getContexts("GB"); + let ltp = 0, + j, + i0, + j0, + contextLabel = 0, + bit, + shift; + for (let i = 0; i < height; i++) { + if (prediction) { + const sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + bitmap.push(row); + continue; + } + } + row = new Uint8Array(row); + bitmap.push(row); + for (j = 0; j < width; j++) { + if (useskip && skip[i][j]) { + row[j] = 0; + continue; + } + if (j >= sbb_left && j < sbb_right && i >= sbb_top) { + contextLabel = contextLabel << 1 & reuseMask; + for (k = 0; k < changingEntriesLength; k++) { + i0 = i + changingTemplateY[k]; + j0 = j + changingTemplateX[k]; + bit = bitmap[i0][j0]; + if (bit) { + bit = changingTemplateBit[k]; + contextLabel |= bit; + } + } + } else { + contextLabel = 0; + shift = templateLength - 1; + for (k = 0; k < templateLength; k++, shift--) { + j0 = j + templateX[k]; + if (j0 >= 0 && j0 < width) { + i0 = i + templateY[k]; + if (i0 >= 0) { + bit = bitmap[i0][j0]; + if (bit) { + contextLabel |= bit << shift; + } + } + } + } + } + const pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; +} +function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) { + let codingTemplate = RefinementTemplates[templateIndex].coding; + if (templateIndex === 0) { + codingTemplate = codingTemplate.concat([at[0]]); + } + const codingTemplateLength = codingTemplate.length; + const codingTemplateX = new Int32Array(codingTemplateLength); + const codingTemplateY = new Int32Array(codingTemplateLength); + let k; + for (k = 0; k < codingTemplateLength; k++) { + codingTemplateX[k] = codingTemplate[k].x; + codingTemplateY[k] = codingTemplate[k].y; + } + let referenceTemplate = RefinementTemplates[templateIndex].reference; + if (templateIndex === 0) { + referenceTemplate = referenceTemplate.concat([at[1]]); + } + const referenceTemplateLength = referenceTemplate.length; + const referenceTemplateX = new Int32Array(referenceTemplateLength); + const referenceTemplateY = new Int32Array(referenceTemplateLength); + for (k = 0; k < referenceTemplateLength; k++) { + referenceTemplateX[k] = referenceTemplate[k].x; + referenceTemplateY[k] = referenceTemplate[k].y; + } + const referenceWidth = referenceBitmap[0].length; + const referenceHeight = referenceBitmap.length; + const pseudoPixelContext = RefinementReusedContexts[templateIndex]; + const bitmap = []; + const decoder = decodingContext.decoder; + const contexts = decodingContext.contextCache.getContexts("GR"); + let ltp = 0; + for (let i = 0; i < height; i++) { + if (prediction) { + const sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + throw new Jbig2Error("prediction is not supported"); + } + } + const row = new Uint8Array(width); + bitmap.push(row); + for (let j = 0; j < width; j++) { + let i0, j0; + let contextLabel = 0; + for (k = 0; k < codingTemplateLength; k++) { + i0 = i + codingTemplateY[k]; + j0 = j + codingTemplateX[k]; + if (i0 < 0 || j0 < 0 || j0 >= width) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | bitmap[i0][j0]; + } + } + for (k = 0; k < referenceTemplateLength; k++) { + i0 = i + referenceTemplateY[k] - offsetY; + j0 = j + referenceTemplateX[k] - offsetX; + if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | referenceBitmap[i0][j0]; + } + } + const pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; +} +function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) { + if (huffman && refinement) { + throw new Jbig2Error("symbol refinement with Huffman is not supported"); + } + const newSymbols = []; + let currentHeight = 0; + let symbolCodeLength = log2(symbols.length + numberOfNewSymbols); + const decoder = decodingContext.decoder; + const contextCache = decodingContext.contextCache; + let tableB1, symbolWidths; + if (huffman) { + tableB1 = getStandardTable(1); + symbolWidths = []; + symbolCodeLength = Math.max(symbolCodeLength, 1); + } + while (newSymbols.length < numberOfNewSymbols) { + const deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, "IADH", decoder); + currentHeight += deltaHeight; + let currentWidth = 0, + totalWidth = 0; + const firstSymbol = huffman ? symbolWidths.length : 0; + while (true) { + const deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, "IADW", decoder); + if (deltaWidth === null) { + break; + } + currentWidth += deltaWidth; + totalWidth += currentWidth; + let bitmap; + if (refinement) { + const numberOfInstances = decodeInteger(contextCache, "IAAI", decoder); + if (numberOfInstances > 1) { + bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput); + } else { + const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + const rdx = decodeInteger(contextCache, "IARDX", decoder); + const rdy = decodeInteger(contextCache, "IARDY", decoder); + const symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length]; + bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext); + } + newSymbols.push(bitmap); + } else if (huffman) { + symbolWidths.push(currentWidth); + } else { + bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext); + newSymbols.push(bitmap); + } + } + if (huffman && !refinement) { + const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput); + huffmanInput.byteAlign(); + let collectiveBitmap; + if (bitmapSize === 0) { + collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight); + } else { + const originalEnd = huffmanInput.end; + const bitmapEnd = huffmanInput.position + bitmapSize; + huffmanInput.end = bitmapEnd; + collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false); + huffmanInput.end = originalEnd; + huffmanInput.position = bitmapEnd; + } + const numberOfSymbolsDecoded = symbolWidths.length; + if (firstSymbol === numberOfSymbolsDecoded - 1) { + newSymbols.push(collectiveBitmap); + } else { + let i, + y, + xMin = 0, + xMax, + bitmapWidth, + symbolBitmap; + for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) { + bitmapWidth = symbolWidths[i]; + xMax = xMin + bitmapWidth; + symbolBitmap = []; + for (y = 0; y < currentHeight; y++) { + symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); + } + newSymbols.push(symbolBitmap); + xMin = xMax; + } + } + } + } + const exportedSymbols = [], + flags = []; + let currentFlag = false, + i, + ii; + const totalSymbolsLength = symbols.length + numberOfNewSymbols; + while (flags.length < totalSymbolsLength) { + let runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, "IAEX", decoder); + while (runLength--) { + flags.push(currentFlag); + } + currentFlag = !currentFlag; + } + for (i = 0, ii = symbols.length; i < ii; i++) { + if (flags[i]) { + exportedSymbols.push(symbols[i]); + } + } + for (let j = 0; j < numberOfNewSymbols; i++, j++) { + if (flags[i]) { + exportedSymbols.push(newSymbols[j]); + } + } + return exportedSymbols; +} +function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) { + if (huffman && refinement) { + throw new Jbig2Error("refinement with Huffman is not supported"); + } + const bitmap = []; + let i, row; + for (i = 0; i < height; i++) { + row = new Uint8Array(width); + if (defaultPixelValue) { + row.fill(defaultPixelValue); + } + bitmap.push(row); + } + const decoder = decodingContext.decoder; + const contextCache = decodingContext.contextCache; + let stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, "IADT", decoder); + let firstS = 0; + i = 0; + while (i < numberOfSymbolInstances) { + const deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, "IADT", decoder); + stripT += deltaT; + const deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, "IAFS", decoder); + firstS += deltaFirstS; + let currentS = firstS; + do { + let currentT = 0; + if (stripSize > 1) { + currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, "IAIT", decoder); + } + const t = stripSize * stripT + currentT; + const symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength); + const applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, "IARI", decoder)); + let symbolBitmap = inputSymbols[symbolId]; + let symbolWidth = symbolBitmap[0].length; + let symbolHeight = symbolBitmap.length; + if (applyRefinement) { + const rdw = decodeInteger(contextCache, "IARDW", decoder); + const rdh = decodeInteger(contextCache, "IARDH", decoder); + const rdx = decodeInteger(contextCache, "IARDX", decoder); + const rdy = decodeInteger(contextCache, "IARDY", decoder); + symbolWidth += rdw; + symbolHeight += rdh; + symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext); + } + let increment = 0; + if (!transposed) { + if (referenceCorner > 1) { + currentS += symbolWidth - 1; + } else { + increment = symbolWidth - 1; + } + } else if (!(referenceCorner & 1)) { + currentS += symbolHeight - 1; + } else { + increment = symbolHeight - 1; + } + const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1); + const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0); + let s2, t2, symbolRow; + if (transposed) { + for (s2 = 0; s2 < symbolHeight; s2++) { + row = bitmap[offsetS + s2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[s2]; + const maxWidth = Math.min(width - offsetT, symbolWidth); + switch (combinationOperator) { + case 0: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] |= symbolRow[t2]; + } + break; + case 2: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] ^= symbolRow[t2]; + } + break; + default: + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); + } + } + } else { + for (t2 = 0; t2 < symbolHeight; t2++) { + row = bitmap[offsetT + t2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[t2]; + switch (combinationOperator) { + case 0: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] |= symbolRow[s2]; + } + break; + case 2: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] ^= symbolRow[s2]; + } + break; + default: + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); + } + } + } + i++; + const deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, "IADS", decoder); + if (deltaS === null) { + break; + } + currentS += increment + deltaS + dsOffset; + } while (true); + } + return bitmap; +} +function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) { + const at = []; + if (!mmr) { + at.push({ + x: -patternWidth, + y: 0 + }); + if (template === 0) { + at.push({ + x: -3, + y: -1 + }, { + x: 2, + y: -2 + }, { + x: -2, + y: -2 + }); + } + } + const collectiveWidth = (maxPatternIndex + 1) * patternWidth; + const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext); + const patterns = []; + for (let i = 0; i <= maxPatternIndex; i++) { + const patternBitmap = []; + const xMin = patternWidth * i; + const xMax = xMin + patternWidth; + for (let y = 0; y < patternHeight; y++) { + patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); + } + patterns.push(patternBitmap); + } + return patterns; +} +function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) { + const skip = null; + if (enableSkip) { + throw new Jbig2Error("skip is not supported"); + } + if (combinationOperator !== 0) { + throw new Jbig2Error(`operator "${combinationOperator}" is not supported in halftone region`); + } + const regionBitmap = []; + let i, j, row; + for (i = 0; i < regionHeight; i++) { + row = new Uint8Array(regionWidth); + if (defaultPixelValue) { + row.fill(defaultPixelValue); + } + regionBitmap.push(row); + } + const numberOfPatterns = patterns.length; + const pattern0 = patterns[0]; + const patternWidth = pattern0[0].length, + patternHeight = pattern0.length; + const bitsPerValue = log2(numberOfPatterns); + const at = []; + if (!mmr) { + at.push({ + x: template <= 1 ? 3 : 2, + y: -1 + }); + if (template === 0) { + at.push({ + x: -3, + y: -1 + }, { + x: 2, + y: -2 + }, { + x: -2, + y: -2 + }); + } + } + const grayScaleBitPlanes = []; + let mmrInput, bitmap; + if (mmr) { + mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); + } + for (i = bitsPerValue - 1; i >= 0; i--) { + if (mmr) { + bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true); + } else { + bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext); + } + grayScaleBitPlanes[i] = bitmap; + } + let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow; + for (mg = 0; mg < gridHeight; mg++) { + for (ng = 0; ng < gridWidth; ng++) { + bit = 0; + patternIndex = 0; + for (j = bitsPerValue - 1; j >= 0; j--) { + bit ^= grayScaleBitPlanes[j][mg][ng]; + patternIndex |= bit << j; + } + patternBitmap = patterns[patternIndex]; + x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8; + y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8; + if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) { + for (i = 0; i < patternHeight; i++) { + regionRow = regionBitmap[y + i]; + patternRow = patternBitmap[i]; + for (j = 0; j < patternWidth; j++) { + regionRow[x + j] |= patternRow[j]; + } + } + } else { + let regionX, regionY; + for (i = 0; i < patternHeight; i++) { + regionY = y + i; + if (regionY < 0 || regionY >= regionHeight) { + continue; + } + regionRow = regionBitmap[regionY]; + patternRow = patternBitmap[i]; + for (j = 0; j < patternWidth; j++) { + regionX = x + j; + if (regionX >= 0 && regionX < regionWidth) { + regionRow[regionX] |= patternRow[j]; + } + } + } + } + } + } + return regionBitmap; +} +function readSegmentHeader(data, start) { + const segmentHeader = {}; + segmentHeader.number = readUint32(data, start); + const flags = data[start + 4]; + const segmentType = flags & 0x3f; + if (!SegmentTypes[segmentType]) { + throw new Jbig2Error("invalid segment type: " + segmentType); + } + segmentHeader.type = segmentType; + segmentHeader.typeName = SegmentTypes[segmentType]; + segmentHeader.deferredNonRetain = !!(flags & 0x80); + const pageAssociationFieldSize = !!(flags & 0x40); + const referredFlags = data[start + 5]; + let referredToCount = referredFlags >> 5 & 7; + const retainBits = [referredFlags & 31]; + let position = start + 6; + if (referredFlags === 7) { + referredToCount = readUint32(data, position - 1) & 0x1fffffff; + position += 3; + let bytes = referredToCount + 7 >> 3; + retainBits[0] = data[position++]; + while (--bytes > 0) { + retainBits.push(data[position++]); + } + } else if (referredFlags === 5 || referredFlags === 6) { + throw new Jbig2Error("invalid referred-to flags"); + } + segmentHeader.retainBits = retainBits; + let referredToSegmentNumberSize = 4; + if (segmentHeader.number <= 256) { + referredToSegmentNumberSize = 1; + } else if (segmentHeader.number <= 65536) { + referredToSegmentNumberSize = 2; + } + const referredTo = []; + let i, ii; + for (i = 0; i < referredToCount; i++) { + let number; + if (referredToSegmentNumberSize === 1) { + number = data[position]; + } else if (referredToSegmentNumberSize === 2) { + number = readUint16(data, position); + } else { + number = readUint32(data, position); + } + referredTo.push(number); + position += referredToSegmentNumberSize; + } + segmentHeader.referredTo = referredTo; + if (!pageAssociationFieldSize) { + segmentHeader.pageAssociation = data[position++]; + } else { + segmentHeader.pageAssociation = readUint32(data, position); + position += 4; + } + segmentHeader.length = readUint32(data, position); + position += 4; + if (segmentHeader.length === 0xffffffff) { + if (segmentType === 38) { + const genericRegionInfo = readRegionSegmentInformation(data, position); + const genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength]; + const genericRegionMmr = !!(genericRegionSegmentFlags & 1); + const searchPatternLength = 6; + const searchPattern = new Uint8Array(searchPatternLength); + if (!genericRegionMmr) { + searchPattern[0] = 0xff; + searchPattern[1] = 0xac; + } + searchPattern[2] = genericRegionInfo.height >>> 24 & 0xff; + searchPattern[3] = genericRegionInfo.height >> 16 & 0xff; + searchPattern[4] = genericRegionInfo.height >> 8 & 0xff; + searchPattern[5] = genericRegionInfo.height & 0xff; + for (i = position, ii = data.length; i < ii; i++) { + let j = 0; + while (j < searchPatternLength && searchPattern[j] === data[i + j]) { + j++; + } + if (j === searchPatternLength) { + segmentHeader.length = i + searchPatternLength; + break; + } + } + if (segmentHeader.length === 0xffffffff) { + throw new Jbig2Error("segment end was not found"); + } + } else { + throw new Jbig2Error("invalid unknown segment length"); + } + } + segmentHeader.headerEnd = position; + return segmentHeader; +} +function readSegments(header, data, start, end) { + const segments = []; + let position = start; + while (position < end) { + const segmentHeader = readSegmentHeader(data, position); + position = segmentHeader.headerEnd; + const segment = { + header: segmentHeader, + data + }; + if (!header.randomAccess) { + segment.start = position; + position += segmentHeader.length; + segment.end = position; + } + segments.push(segment); + if (segmentHeader.type === 51) { + break; + } + } + if (header.randomAccess) { + for (let i = 0, ii = segments.length; i < ii; i++) { + segments[i].start = position; + position += segments[i].header.length; + segments[i].end = position; + } + } + return segments; +} +function readRegionSegmentInformation(data, start) { + return { + width: readUint32(data, start), + height: readUint32(data, start + 4), + x: readUint32(data, start + 8), + y: readUint32(data, start + 12), + combinationOperator: data[start + 16] & 7 + }; +} +const RegionSegmentInformationFieldLength = 17; +function processSegment(segment, visitor) { + const header = segment.header; + const data = segment.data, + end = segment.end; + let position = segment.start; + let args, at, i, atLength; + switch (header.type) { + case 0: + const dictionary = {}; + const dictionaryFlags = readUint16(data, position); + dictionary.huffman = !!(dictionaryFlags & 1); + dictionary.refinement = !!(dictionaryFlags & 2); + dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3; + dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3; + dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1; + dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1; + dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256); + dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512); + dictionary.template = dictionaryFlags >> 10 & 3; + dictionary.refinementTemplate = dictionaryFlags >> 12 & 1; + position += 2; + if (!dictionary.huffman) { + atLength = dictionary.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.at = at; + } + if (dictionary.refinement && !dictionary.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.refinementAt = at; + } + dictionary.numberOfExportedSymbols = readUint32(data, position); + position += 4; + dictionary.numberOfNewSymbols = readUint32(data, position); + position += 4; + args = [dictionary, header.number, header.referredTo, data, position, end]; + break; + case 6: + case 7: + const textRegion = {}; + textRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + const textRegionSegmentFlags = readUint16(data, position); + position += 2; + textRegion.huffman = !!(textRegionSegmentFlags & 1); + textRegion.refinement = !!(textRegionSegmentFlags & 2); + textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3; + textRegion.stripSize = 1 << textRegion.logStripSize; + textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3; + textRegion.transposed = !!(textRegionSegmentFlags & 64); + textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3; + textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1; + textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27; + textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1; + if (textRegion.huffman) { + const textRegionHuffmanFlags = readUint16(data, position); + position += 2; + textRegion.huffmanFS = textRegionHuffmanFlags & 3; + textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3; + textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3; + textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3; + textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3; + textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3; + textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3; + textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000); + } + if (textRegion.refinement && !textRegion.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + textRegion.refinementAt = at; + } + textRegion.numberOfSymbolInstances = readUint32(data, position); + position += 4; + args = [textRegion, header.referredTo, data, position, end]; + break; + case 16: + const patternDictionary = {}; + const patternDictionaryFlags = data[position++]; + patternDictionary.mmr = !!(patternDictionaryFlags & 1); + patternDictionary.template = patternDictionaryFlags >> 1 & 3; + patternDictionary.patternWidth = data[position++]; + patternDictionary.patternHeight = data[position++]; + patternDictionary.maxPatternIndex = readUint32(data, position); + position += 4; + args = [patternDictionary, header.number, data, position, end]; + break; + case 22: + case 23: + const halftoneRegion = {}; + halftoneRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + const halftoneRegionFlags = data[position++]; + halftoneRegion.mmr = !!(halftoneRegionFlags & 1); + halftoneRegion.template = halftoneRegionFlags >> 1 & 3; + halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8); + halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7; + halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1; + halftoneRegion.gridWidth = readUint32(data, position); + position += 4; + halftoneRegion.gridHeight = readUint32(data, position); + position += 4; + halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff; + position += 4; + halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff; + position += 4; + halftoneRegion.gridVectorX = readUint16(data, position); + position += 2; + halftoneRegion.gridVectorY = readUint16(data, position); + position += 2; + args = [halftoneRegion, header.referredTo, data, position, end]; + break; + case 38: + case 39: + const genericRegion = {}; + genericRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + const genericRegionSegmentFlags = data[position++]; + genericRegion.mmr = !!(genericRegionSegmentFlags & 1); + genericRegion.template = genericRegionSegmentFlags >> 1 & 3; + genericRegion.prediction = !!(genericRegionSegmentFlags & 8); + if (!genericRegion.mmr) { + atLength = genericRegion.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + genericRegion.at = at; + } + args = [genericRegion, data, position, end]; + break; + case 48: + const pageInfo = { + width: readUint32(data, position), + height: readUint32(data, position + 4), + resolutionX: readUint32(data, position + 8), + resolutionY: readUint32(data, position + 12) + }; + if (pageInfo.height === 0xffffffff) { + delete pageInfo.height; + } + const pageSegmentFlags = data[position + 16]; + readUint16(data, position + 17); + pageInfo.lossless = !!(pageSegmentFlags & 1); + pageInfo.refinement = !!(pageSegmentFlags & 2); + pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1; + pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3; + pageInfo.requiresBuffer = !!(pageSegmentFlags & 32); + pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64); + args = [pageInfo]; + break; + case 49: + break; + case 50: + break; + case 51: + break; + case 53: + args = [header.number, data, position, end]; + break; + case 62: + break; + default: + throw new Jbig2Error(`segment type ${header.typeName}(${header.type}) is not implemented`); + } + const callbackName = "on" + header.typeName; + if (callbackName in visitor) { + visitor[callbackName].apply(visitor, args); + } +} +function processSegments(segments, visitor) { + for (let i = 0, ii = segments.length; i < ii; i++) { + processSegment(segments[i], visitor); + } +} +function parseJbig2Chunks(chunks) { + const visitor = new SimpleSegmentVisitor(); + for (let i = 0, ii = chunks.length; i < ii; i++) { + const chunk = chunks[i]; + const segments = readSegments({}, chunk.data, chunk.start, chunk.end); + processSegments(segments, visitor); + } + return visitor.buffer; +} +class SimpleSegmentVisitor { + onPageInformation(info) { + this.currentPageInfo = info; + const rowSize = info.width + 7 >> 3; + const buffer = new Uint8ClampedArray(rowSize * info.height); + if (info.defaultPixelValue) { + buffer.fill(0xff); + } + this.buffer = buffer; + } + drawBitmap(regionInfo, bitmap) { + const pageInfo = this.currentPageInfo; + const width = regionInfo.width, + height = regionInfo.height; + const rowSize = pageInfo.width + 7 >> 3; + const combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator; + const buffer = this.buffer; + const mask0 = 128 >> (regionInfo.x & 7); + let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3); + let i, j, mask, offset; + switch (combinationOperator) { + case 0: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] |= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + case 2: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] ^= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + default: + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); + } + } + onImmediateGenericRegion(region, data, start, end) { + const regionInfo = region.info; + const decodingContext = new DecodingContext(data, start, end); + const bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext); + this.drawBitmap(regionInfo, bitmap); + } + onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion(...arguments); + } + onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) { + let huffmanTables, huffmanInput; + if (dictionary.huffman) { + huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables); + huffmanInput = new Reader(data, start, end); + } + let symbols = this.symbols; + if (!symbols) { + this.symbols = symbols = {}; + } + const inputSymbols = []; + for (const referredSegment of referredSegments) { + const referredSymbols = symbols[referredSegment]; + if (referredSymbols) { + inputSymbols.push(...referredSymbols); + } + } + const decodingContext = new DecodingContext(data, start, end); + symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput); + } + onImmediateTextRegion(region, referredSegments, data, start, end) { + const regionInfo = region.info; + let huffmanTables, huffmanInput; + const symbols = this.symbols; + const inputSymbols = []; + for (const referredSegment of referredSegments) { + const referredSymbols = symbols[referredSegment]; + if (referredSymbols) { + inputSymbols.push(...referredSymbols); + } + } + const symbolCodeLength = log2(inputSymbols.length); + if (region.huffman) { + huffmanInput = new Reader(data, start, end); + huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput); + } + const decodingContext = new DecodingContext(data, start, end); + const bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput); + this.drawBitmap(regionInfo, bitmap); + } + onImmediateLosslessTextRegion() { + this.onImmediateTextRegion(...arguments); + } + onPatternDictionary(dictionary, currentSegment, data, start, end) { + let patterns = this.patterns; + if (!patterns) { + this.patterns = patterns = {}; + } + const decodingContext = new DecodingContext(data, start, end); + patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext); + } + onImmediateHalftoneRegion(region, referredSegments, data, start, end) { + const patterns = this.patterns[referredSegments[0]]; + const regionInfo = region.info; + const decodingContext = new DecodingContext(data, start, end); + const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext); + this.drawBitmap(regionInfo, bitmap); + } + onImmediateLosslessHalftoneRegion() { + this.onImmediateHalftoneRegion(...arguments); + } + onTables(currentSegment, data, start, end) { + let customTables = this.customTables; + if (!customTables) { + this.customTables = customTables = {}; + } + customTables[currentSegment] = decodeTablesSegment(data, start, end); + } +} +class HuffmanLine { + constructor(lineData) { + if (lineData.length === 2) { + this.isOOB = true; + this.rangeLow = 0; + this.prefixLength = lineData[0]; + this.rangeLength = 0; + this.prefixCode = lineData[1]; + this.isLowerRange = false; + } else { + this.isOOB = false; + this.rangeLow = lineData[0]; + this.prefixLength = lineData[1]; + this.rangeLength = lineData[2]; + this.prefixCode = lineData[3]; + this.isLowerRange = lineData[4] === "lower"; + } + } +} +class HuffmanTreeNode { + constructor(line) { + this.children = []; + if (line) { + this.isLeaf = true; + this.rangeLength = line.rangeLength; + this.rangeLow = line.rangeLow; + this.isLowerRange = line.isLowerRange; + this.isOOB = line.isOOB; + } else { + this.isLeaf = false; + } + } + buildTree(line, shift) { + const bit = line.prefixCode >> shift & 1; + if (shift <= 0) { + this.children[bit] = new HuffmanTreeNode(line); + } else { + let node = this.children[bit]; + if (!node) { + this.children[bit] = node = new HuffmanTreeNode(null); + } + node.buildTree(line, shift - 1); + } + } + decodeNode(reader) { + if (this.isLeaf) { + if (this.isOOB) { + return null; + } + const htOffset = reader.readBits(this.rangeLength); + return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset); + } + const node = this.children[reader.readBit()]; + if (!node) { + throw new Jbig2Error("invalid Huffman data"); + } + return node.decodeNode(reader); + } +} +class HuffmanTable { + constructor(lines, prefixCodesDone) { + if (!prefixCodesDone) { + this.assignPrefixCodes(lines); + } + this.rootNode = new HuffmanTreeNode(null); + for (let i = 0, ii = lines.length; i < ii; i++) { + const line = lines[i]; + if (line.prefixLength > 0) { + this.rootNode.buildTree(line, line.prefixLength - 1); + } + } + } + decode(reader) { + return this.rootNode.decodeNode(reader); + } + assignPrefixCodes(lines) { + const linesLength = lines.length; + let prefixLengthMax = 0; + for (let i = 0; i < linesLength; i++) { + prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength); + } + const histogram = new Uint32Array(prefixLengthMax + 1); + for (let i = 0; i < linesLength; i++) { + histogram[lines[i].prefixLength]++; + } + let currentLength = 1, + firstCode = 0, + currentCode, + currentTemp, + line; + histogram[0] = 0; + while (currentLength <= prefixLengthMax) { + firstCode = firstCode + histogram[currentLength - 1] << 1; + currentCode = firstCode; + currentTemp = 0; + while (currentTemp < linesLength) { + line = lines[currentTemp]; + if (line.prefixLength === currentLength) { + line.prefixCode = currentCode; + currentCode++; + } + currentTemp++; + } + currentLength++; + } + } +} +function decodeTablesSegment(data, start, end) { + const flags = data[start]; + const lowestValue = readUint32(data, start + 1) & 0xffffffff; + const highestValue = readUint32(data, start + 5) & 0xffffffff; + const reader = new Reader(data, start + 9, end); + const prefixSizeBits = (flags >> 1 & 7) + 1; + const rangeSizeBits = (flags >> 4 & 7) + 1; + const lines = []; + let prefixLength, + rangeLength, + currentRangeLow = lowestValue; + do { + prefixLength = reader.readBits(prefixSizeBits); + rangeLength = reader.readBits(rangeSizeBits); + lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])); + currentRangeLow += 1 << rangeLength; + } while (currentRangeLow < highestValue); + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, "lower"])); + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0])); + if (flags & 1) { + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([prefixLength, 0])); + } + return new HuffmanTable(lines, false); +} +const standardTablesCache = {}; +function getStandardTable(number) { + let table = standardTablesCache[number]; + if (table) { + return table; + } + let lines; + switch (number) { + case 1: + lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]]; + break; + case 2: + lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]]; + break; + case 3: + lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, "lower"], [75, 7, 32, 0x7e], [6, 0x3e]]; + break; + case 4: + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]]; + break; + case 5: + lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, "lower"], [76, 6, 32, 0x3e]]; + break; + case 6: + lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, "lower"], [2048, 6, 32, 0x3f]]; + break; + case 7: + lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, "lower"], [2048, 5, 32, 0x1f]]; + break; + case 8: + lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, "lower"], [1670, 9, 32, 0x1ff], [2, 0x1]]; + break; + case 9: + lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, "lower"], [3339, 9, 32, 0x1ff], [2, 0x0]]; + break; + case 10: + lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, "lower"], [4166, 8, 32, 0xff], [2, 0x2]]; + break; + case 11: + lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]]; + break; + case 12: + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]]; + break; + case 13: + lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]]; + break; + case 14: + lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]]; + break; + case 15: + lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, "lower"], [25, 7, 32, 0x7f]]; + break; + default: + throw new Jbig2Error(`standard table B.${number} does not exist`); + } + for (let i = 0, ii = lines.length; i < ii; i++) { + lines[i] = new HuffmanLine(lines[i]); + } + table = new HuffmanTable(lines, true); + standardTablesCache[number] = table; + return table; +} +class Reader { + constructor(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + this.position = start; + this.shift = -1; + this.currentByte = 0; + } + readBit() { + if (this.shift < 0) { + if (this.position >= this.end) { + throw new Jbig2Error("end of data while reading bit"); + } + this.currentByte = this.data[this.position++]; + this.shift = 7; + } + const bit = this.currentByte >> this.shift & 1; + this.shift--; + return bit; + } + readBits(numBits) { + let result = 0, + i; + for (i = numBits - 1; i >= 0; i--) { + result |= this.readBit() << i; + } + return result; + } + byteAlign() { + this.shift = -1; + } + next() { + if (this.position >= this.end) { + return -1; + } + return this.data[this.position++]; + } +} +function getCustomHuffmanTable(index, referredTo, customTables) { + let currentIndex = 0; + for (let i = 0, ii = referredTo.length; i < ii; i++) { + const table = customTables[referredTo[i]]; + if (table) { + if (index === currentIndex) { + return table; + } + currentIndex++; + } + } + throw new Jbig2Error("can't find custom Huffman table"); +} +function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) { + const codes = []; + for (let i = 0; i <= 34; i++) { + const codeLength = reader.readBits(4); + codes.push(new HuffmanLine([i, codeLength, 0, 0])); + } + const runCodesTable = new HuffmanTable(codes, false); + codes.length = 0; + for (let i = 0; i < numberOfSymbols;) { + const codeLength = runCodesTable.decode(reader); + if (codeLength >= 32) { + let repeatedLength, numberOfRepeats, j; + switch (codeLength) { + case 32: + if (i === 0) { + throw new Jbig2Error("no previous value in symbol ID table"); + } + numberOfRepeats = reader.readBits(2) + 3; + repeatedLength = codes[i - 1].prefixLength; + break; + case 33: + numberOfRepeats = reader.readBits(3) + 3; + repeatedLength = 0; + break; + case 34: + numberOfRepeats = reader.readBits(7) + 11; + repeatedLength = 0; + break; + default: + throw new Jbig2Error("invalid code length in symbol ID table"); + } + for (j = 0; j < numberOfRepeats; j++) { + codes.push(new HuffmanLine([i, repeatedLength, 0, 0])); + i++; + } + } else { + codes.push(new HuffmanLine([i, codeLength, 0, 0])); + i++; + } + } + reader.byteAlign(); + const symbolIDTable = new HuffmanTable(codes, false); + let customIndex = 0, + tableFirstS, + tableDeltaS, + tableDeltaT; + switch (textRegion.huffmanFS) { + case 0: + case 1: + tableFirstS = getStandardTable(textRegion.huffmanFS + 6); + break; + case 3: + tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman FS selector"); + } + switch (textRegion.huffmanDS) { + case 0: + case 1: + case 2: + tableDeltaS = getStandardTable(textRegion.huffmanDS + 8); + break; + case 3: + tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DS selector"); + } + switch (textRegion.huffmanDT) { + case 0: + case 1: + case 2: + tableDeltaT = getStandardTable(textRegion.huffmanDT + 11); + break; + case 3: + tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DT selector"); + } + if (textRegion.refinement) { + throw new Jbig2Error("refinement with Huffman is not supported"); + } + return { + symbolIDTable, + tableFirstS, + tableDeltaS, + tableDeltaT + }; +} +function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) { + let customIndex = 0, + tableDeltaHeight, + tableDeltaWidth; + switch (dictionary.huffmanDHSelector) { + case 0: + case 1: + tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4); + break; + case 3: + tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DH selector"); + } + switch (dictionary.huffmanDWSelector) { + case 0: + case 1: + tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2); + break; + case 3: + tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DW selector"); + } + let tableBitmapSize, tableAggregateInstances; + if (dictionary.bitmapSizeSelector) { + tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + } else { + tableBitmapSize = getStandardTable(1); + } + if (dictionary.aggregationInstancesSelector) { + tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables); + } else { + tableAggregateInstances = getStandardTable(1); + } + return { + tableDeltaHeight, + tableDeltaWidth, + tableBitmapSize, + tableAggregateInstances + }; +} +function readUncompressedBitmap(reader, width, height) { + const bitmap = []; + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); + bitmap.push(row); + for (let x = 0; x < width; x++) { + row[x] = reader.readBit(); + } + reader.byteAlign(); + } + return bitmap; +} +function decodeMMRBitmap(input, width, height, endOfBlock) { + const params = { + K: -1, + Columns: width, + Rows: height, + BlackIs1: true, + EndOfBlock: endOfBlock + }; + const decoder = new CCITTFaxDecoder(input, params); + const bitmap = []; + let currentByte, + eof = false; + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); + bitmap.push(row); + let shift = -1; + for (let x = 0; x < width; x++) { + if (shift < 0) { + currentByte = decoder.readNextChar(); + if (currentByte === -1) { + currentByte = 0; + eof = true; + } + shift = 7; + } + row[x] = currentByte >> shift & 1; + shift--; + } + } + if (endOfBlock && !eof) { + const lookForEOFLimit = 5; + for (let i = 0; i < lookForEOFLimit; i++) { + if (decoder.readNextChar() === -1) { + break; + } + } + } + return bitmap; +} +class Jbig2Image { + parseChunks(chunks) { + return parseJbig2Chunks(chunks); + } + parse(data) { + throw new Error("Not implemented: Jbig2Image.parse"); + } +} + +;// ./src/core/jbig2_stream.js + + + + + +class Jbig2Stream extends DecodeStream { + constructor(stream, maybeLength, params) { + super(maybeLength); + this.stream = stream; + this.dict = stream.dict; + this.maybeLength = maybeLength; + this.params = params; + } + get bytes() { + return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(requested) {} + readBlock() { + this.decodeImage(); + } + decodeImage(bytes) { + if (this.eof) { + return this.buffer; + } + bytes ||= this.bytes; + const jbig2Image = new Jbig2Image(); + const chunks = []; + if (this.params instanceof Dict) { + const globalsStream = this.params.get("JBIG2Globals"); + if (globalsStream instanceof BaseStream) { + const globals = globalsStream.getBytes(); + chunks.push({ + data: globals, + start: 0, + end: globals.length + }); + } + } + chunks.push({ + data: bytes, + start: 0, + end: bytes.length + }); + const data = jbig2Image.parseChunks(chunks); + const dataLength = data.length; + for (let i = 0; i < dataLength; i++) { + data[i] ^= 0xff; + } + this.buffer = data; + this.bufferLength = dataLength; + this.eof = true; + return this.buffer; + } + get canAsyncDecodeImageFromBuffer() { + return this.stream.isAsync; + } +} + +;// ./src/core/jpx_stream.js + + + +class JpxStream extends DecodeStream { + constructor(stream, maybeLength, params) { + super(maybeLength); + this.stream = stream; + this.dict = stream.dict; + this.maybeLength = maybeLength; + this.params = params; + } + get bytes() { + return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(requested) {} + readBlock(decoderOptions) { + unreachable("JpxStream.readBlock"); + } + get isAsyncDecoder() { + return true; + } + async decodeImage(bytes, decoderOptions) { + if (this.eof) { + return this.buffer; + } + bytes ||= this.bytes; + this.buffer = await JpxImage.decode(bytes, decoderOptions); + this.bufferLength = this.buffer.length; + this.eof = true; + return this.buffer; + } + get canAsyncDecodeImageFromBuffer() { + return this.stream.isAsync; + } +} + +;// ./src/core/lzw_stream.js + +class LZWStream extends DecodeStream { + constructor(str, maybeLength, earlyChange) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.cachedData = 0; + this.bitsCached = 0; + const maxLzwDictionarySize = 4096; + const lzwState = { + earlyChange, + codeLength: 9, + nextCode: 258, + dictionaryValues: new Uint8Array(maxLzwDictionarySize), + dictionaryLengths: new Uint16Array(maxLzwDictionarySize), + dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize), + currentSequence: new Uint8Array(maxLzwDictionarySize), + currentSequenceLength: 0 + }; + for (let i = 0; i < 256; ++i) { + lzwState.dictionaryValues[i] = i; + lzwState.dictionaryLengths[i] = 1; + } + this.lzwState = lzwState; + } + readBits(n) { + let bitsCached = this.bitsCached; + let cachedData = this.cachedData; + while (bitsCached < n) { + const c = this.str.getByte(); + if (c === -1) { + this.eof = true; + return null; + } + cachedData = cachedData << 8 | c; + bitsCached += 8; + } + this.bitsCached = bitsCached -= n; + this.cachedData = cachedData; + this.lastCode = null; + return cachedData >>> bitsCached & (1 << n) - 1; + } + readBlock() { + const blockSize = 512, + decodedSizeDelta = blockSize; + let estimatedDecodedSize = blockSize * 2; + let i, j, q; + const lzwState = this.lzwState; + if (!lzwState) { + return; + } + const earlyChange = lzwState.earlyChange; + let nextCode = lzwState.nextCode; + const dictionaryValues = lzwState.dictionaryValues; + const dictionaryLengths = lzwState.dictionaryLengths; + const dictionaryPrevCodes = lzwState.dictionaryPrevCodes; + let codeLength = lzwState.codeLength; + let prevCode = lzwState.prevCode; + const currentSequence = lzwState.currentSequence; + let currentSequenceLength = lzwState.currentSequenceLength; + let decodedLength = 0; + let currentBufferLength = this.bufferLength; + let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + for (i = 0; i < blockSize; i++) { + const code = this.readBits(codeLength); + const hasPrev = currentSequenceLength > 0; + if (code < 256) { + currentSequence[0] = code; + currentSequenceLength = 1; + } else if (code >= 258) { + if (code < nextCode) { + currentSequenceLength = dictionaryLengths[code]; + for (j = currentSequenceLength - 1, q = code; j >= 0; j--) { + currentSequence[j] = dictionaryValues[q]; + q = dictionaryPrevCodes[q]; + } + } else { + currentSequence[currentSequenceLength++] = currentSequence[0]; + } + } else if (code === 256) { + codeLength = 9; + nextCode = 258; + currentSequenceLength = 0; + continue; + } else { + this.eof = true; + delete this.lzwState; + break; + } + if (hasPrev) { + dictionaryPrevCodes[nextCode] = prevCode; + dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1; + dictionaryValues[nextCode] = currentSequence[0]; + nextCode++; + codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0; + } + prevCode = code; + decodedLength += currentSequenceLength; + if (estimatedDecodedSize < decodedLength) { + do { + estimatedDecodedSize += decodedSizeDelta; + } while (estimatedDecodedSize < decodedLength); + buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + } + for (j = 0; j < currentSequenceLength; j++) { + buffer[currentBufferLength++] = currentSequence[j]; + } + } + lzwState.nextCode = nextCode; + lzwState.codeLength = codeLength; + lzwState.prevCode = prevCode; + lzwState.currentSequenceLength = currentSequenceLength; + this.bufferLength = currentBufferLength; + } +} + +;// ./src/core/predictor_stream.js + + + +class PredictorStream extends DecodeStream { + constructor(str, maybeLength, params) { + super(maybeLength); + if (!(params instanceof Dict)) { + return str; + } + const predictor = this.predictor = params.get("Predictor") || 1; + if (predictor <= 1) { + return str; + } + if (predictor !== 2 && (predictor < 10 || predictor > 15)) { + throw new FormatError(`Unsupported predictor: ${predictor}`); + } + this.readBlock = predictor === 2 ? this.readBlockTiff : this.readBlockPng; + this.str = str; + this.dict = str.dict; + const colors = this.colors = params.get("Colors") || 1; + const bits = this.bits = params.get("BPC", "BitsPerComponent") || 8; + const columns = this.columns = params.get("Columns") || 1; + this.pixBytes = colors * bits + 7 >> 3; + this.rowBytes = columns * colors * bits + 7 >> 3; + return this; + } + readBlockTiff() { + const rowBytes = this.rowBytes; + const bufferLength = this.bufferLength; + const buffer = this.ensureBuffer(bufferLength + rowBytes); + const bits = this.bits; + const colors = this.colors; + const rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + if (this.eof) { + return; + } + let inbuf = 0, + outbuf = 0; + let inbits = 0, + outbits = 0; + let pos = bufferLength; + let i; + if (bits === 1 && colors === 1) { + for (i = 0; i < rowBytes; ++i) { + let c = rawBytes[i] ^ inbuf; + c ^= c >> 1; + c ^= c >> 2; + c ^= c >> 4; + inbuf = (c & 1) << 7; + buffer[pos++] = c; + } + } else if (bits === 8) { + for (i = 0; i < colors; ++i) { + buffer[pos++] = rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[pos] = buffer[pos - colors] + rawBytes[i]; + pos++; + } + } else if (bits === 16) { + const bytesPerPixel = colors * 2; + for (i = 0; i < bytesPerPixel; ++i) { + buffer[pos++] = rawBytes[i]; + } + for (; i < rowBytes; i += 2) { + const sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff); + buffer[pos++] = sum >> 8 & 0xff; + buffer[pos++] = sum & 0xff; + } + } else { + const compArray = new Uint8Array(colors + 1); + const bitMask = (1 << bits) - 1; + let j = 0, + k = bufferLength; + const columns = this.columns; + for (i = 0; i < columns; ++i) { + for (let kk = 0; kk < colors; ++kk) { + if (inbits < bits) { + inbuf = inbuf << 8 | rawBytes[j++] & 0xff; + inbits += 8; + } + compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask; + inbits -= bits; + outbuf = outbuf << bits | compArray[kk]; + outbits += bits; + if (outbits >= 8) { + buffer[k++] = outbuf >> outbits - 8 & 0xff; + outbits -= 8; + } + } + } + if (outbits > 0) { + buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1); + } + } + this.bufferLength += rowBytes; + } + readBlockPng() { + const rowBytes = this.rowBytes; + const pixBytes = this.pixBytes; + const predictor = this.str.getByte(); + const rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + if (this.eof) { + return; + } + const bufferLength = this.bufferLength; + const buffer = this.ensureBuffer(bufferLength + rowBytes); + let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength); + if (prevRow.length === 0) { + prevRow = new Uint8Array(rowBytes); + } + let i, + j = bufferLength, + up, + c; + switch (predictor) { + case 0: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + break; + case 1: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff; + j++; + } + break; + case 2: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = prevRow[i] + rawBytes[i] & 0xff; + } + break; + case 3: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = (prevRow[i] >> 1) + rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff; + j++; + } + break; + case 4: + for (i = 0; i < pixBytes; ++i) { + up = prevRow[i]; + c = rawBytes[i]; + buffer[j++] = up + c; + } + for (; i < rowBytes; ++i) { + up = prevRow[i]; + const upLeft = prevRow[i - pixBytes]; + const left = buffer[j - pixBytes]; + const p = left + up - upLeft; + let pa = p - left; + if (pa < 0) { + pa = -pa; + } + let pb = p - up; + if (pb < 0) { + pb = -pb; + } + let pc = p - upLeft; + if (pc < 0) { + pc = -pc; + } + c = rawBytes[i]; + if (pa <= pb && pa <= pc) { + buffer[j++] = left + c; + } else if (pb <= pc) { + buffer[j++] = up + c; + } else { + buffer[j++] = upLeft + c; + } + } + break; + default: + throw new FormatError(`Unsupported predictor: ${predictor}`); + } + this.bufferLength += rowBytes; + } +} + +;// ./src/core/run_length_stream.js + +class RunLengthStream extends DecodeStream { + constructor(str, maybeLength) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + } + readBlock() { + const repeatHeader = this.str.getBytes(2); + if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) { + this.eof = true; + return; + } + let buffer; + let bufferLength = this.bufferLength; + let n = repeatHeader[0]; + if (n < 128) { + buffer = this.ensureBuffer(bufferLength + n + 1); + buffer[bufferLength++] = repeatHeader[1]; + if (n > 0) { + const source = this.str.getBytes(n); + buffer.set(source, bufferLength); + bufferLength += n; + } + } else { + n = 257 - n; + buffer = this.ensureBuffer(bufferLength + n + 1); + buffer.fill(repeatHeader[1], bufferLength, bufferLength + n); + bufferLength += n; + } + this.bufferLength = bufferLength; + } +} + +;// ./src/core/parser.js + + + + + + + + + + + + + + +const MAX_LENGTH_TO_CACHE = 1000; +function getInlineImageCacheKey(bytes) { + const strBuf = [], + ii = bytes.length; + let i = 0; + while (i < ii - 1) { + strBuf.push(bytes[i++] << 8 | bytes[i++]); + } + if (i < ii) { + strBuf.push(bytes[i]); + } + return ii + "_" + String.fromCharCode.apply(null, strBuf); +} +class Parser { + constructor({ + lexer, + xref, + allowStreams = false, + recoveryMode = false + }) { + this.lexer = lexer; + this.xref = xref; + this.allowStreams = allowStreams; + this.recoveryMode = recoveryMode; + this.imageCache = Object.create(null); + this._imageId = 0; + this.refill(); + } + refill() { + this.buf1 = this.lexer.getObj(); + this.buf2 = this.lexer.getObj(); + } + shift() { + if (this.buf2 instanceof Cmd && this.buf2.cmd === "ID") { + this.buf1 = this.buf2; + this.buf2 = null; + } else { + this.buf1 = this.buf2; + this.buf2 = this.lexer.getObj(); + } + } + tryShift() { + try { + this.shift(); + return true; + } catch (e) { + if (e instanceof MissingDataException) { + throw e; + } + return false; + } + } + getObj(cipherTransform = null) { + const buf1 = this.buf1; + this.shift(); + if (buf1 instanceof Cmd) { + switch (buf1.cmd) { + case "BI": + return this.makeInlineImage(cipherTransform); + case "[": + const array = []; + while (!isCmd(this.buf1, "]") && this.buf1 !== EOF) { + array.push(this.getObj(cipherTransform)); + } + if (this.buf1 === EOF) { + if (this.recoveryMode) { + return array; + } + throw new ParserEOFException("End of file inside array."); + } + this.shift(); + return array; + case "<<": + const dict = new Dict(this.xref); + while (!isCmd(this.buf1, ">>") && this.buf1 !== EOF) { + if (!(this.buf1 instanceof Name)) { + info("Malformed dictionary: key must be a name object"); + this.shift(); + continue; + } + const key = this.buf1.name; + this.shift(); + if (this.buf1 === EOF) { + break; + } + dict.set(key, this.getObj(cipherTransform)); + } + if (this.buf1 === EOF) { + if (this.recoveryMode) { + return dict; + } + throw new ParserEOFException("End of file inside dictionary."); + } + if (isCmd(this.buf2, "stream")) { + return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict; + } + this.shift(); + return dict; + default: + return buf1; + } + } + if (Number.isInteger(buf1)) { + if (Number.isInteger(this.buf1) && isCmd(this.buf2, "R")) { + const ref = Ref.get(buf1, this.buf1); + this.shift(); + this.shift(); + return ref; + } + return buf1; + } + if (typeof buf1 === "string") { + if (cipherTransform) { + return cipherTransform.decryptString(buf1); + } + return buf1; + } + return buf1; + } + findDefaultInlineStreamEnd(stream) { + const E = 0x45, + I = 0x49, + SPACE = 0x20, + LF = 0xa, + CR = 0xd, + NUL = 0x0; + const { + knownCommands + } = this.lexer, + startPos = stream.pos, + n = 15; + let state = 0, + ch, + maybeEIPos; + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else { + if (ch === SPACE || ch === LF || ch === CR) { + maybeEIPos = stream.pos; + const followingBytes = stream.peekBytes(n); + const ii = followingBytes.length; + if (ii === 0) { + break; + } + for (let i = 0; i < ii; i++) { + ch = followingBytes[i]; + if (ch === NUL && followingBytes[i + 1] !== NUL) { + continue; + } + if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) { + state = 0; + break; + } + } + if (state !== 2) { + continue; + } + if (!knownCommands) { + warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined."); + continue; + } + const tmpLexer = new Lexer(new Stream(stream.peekBytes(5 * n)), knownCommands); + tmpLexer._hexStringWarn = () => {}; + let numArgs = 0; + while (true) { + const nextObj = tmpLexer.getObj(); + if (nextObj === EOF) { + state = 0; + break; + } + if (nextObj instanceof Cmd) { + const knownCommand = knownCommands[nextObj.cmd]; + if (!knownCommand) { + state = 0; + break; + } else if (knownCommand.variableArgs ? numArgs <= knownCommand.numArgs : numArgs === knownCommand.numArgs) { + break; + } + numArgs = 0; + continue; + } + numArgs++; + } + if (state === 2) { + break; + } + } else { + state = 0; + } + } + } + if (ch === -1) { + warn("findDefaultInlineStreamEnd: " + "Reached the end of the stream without finding a valid EI marker"); + if (maybeEIPos) { + warn('... trying to recover by using the last "EI" occurrence.'); + stream.skip(-(stream.pos - maybeEIPos)); + } + } + let endOffset = 4; + stream.skip(-endOffset); + ch = stream.peekByte(); + stream.skip(endOffset); + if (!isWhiteSpace(ch)) { + endOffset--; + } + return stream.pos - endOffset - startPos; + } + findDCTDecodeInlineStreamEnd(stream) { + const startPos = stream.pos; + let foundEOI = false, + b, + markerLength; + while ((b = stream.getByte()) !== -1) { + if (b !== 0xff) { + continue; + } + switch (stream.getByte()) { + case 0x00: + break; + case 0xff: + stream.skip(-1); + break; + case 0xd9: + foundEOI = true; + break; + case 0xc0: + case 0xc1: + case 0xc2: + case 0xc3: + case 0xc5: + case 0xc6: + case 0xc7: + case 0xc9: + case 0xca: + case 0xcb: + case 0xcd: + case 0xce: + case 0xcf: + case 0xc4: + case 0xcc: + case 0xda: + case 0xdb: + case 0xdc: + case 0xdd: + case 0xde: + case 0xdf: + case 0xe0: + case 0xe1: + case 0xe2: + case 0xe3: + case 0xe4: + case 0xe5: + case 0xe6: + case 0xe7: + case 0xe8: + case 0xe9: + case 0xea: + case 0xeb: + case 0xec: + case 0xed: + case 0xee: + case 0xef: + case 0xfe: + markerLength = stream.getUint16(); + if (markerLength > 2) { + stream.skip(markerLength - 2); + } else { + stream.skip(-2); + } + break; + } + if (foundEOI) { + break; + } + } + const length = stream.pos - startPos; + if (b === -1) { + warn("Inline DCTDecode image stream: " + "EOI marker not found, searching for /EI/ instead."); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + } + findASCII85DecodeInlineStreamEnd(stream) { + const TILDE = 0x7e, + GT = 0x3e; + const startPos = stream.pos; + let ch; + while ((ch = stream.getByte()) !== -1) { + if (ch === TILDE) { + const tildePos = stream.pos; + ch = stream.peekByte(); + while (isWhiteSpace(ch)) { + stream.skip(); + ch = stream.peekByte(); + } + if (ch === GT) { + stream.skip(); + break; + } + if (stream.pos > tildePos) { + const maybeEI = stream.peekBytes(2); + if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) { + break; + } + } + } + } + const length = stream.pos - startPos; + if (ch === -1) { + warn("Inline ASCII85Decode image stream: " + "EOD marker not found, searching for /EI/ instead."); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + } + findASCIIHexDecodeInlineStreamEnd(stream) { + const GT = 0x3e; + const startPos = stream.pos; + let ch; + while ((ch = stream.getByte()) !== -1) { + if (ch === GT) { + break; + } + } + const length = stream.pos - startPos; + if (ch === -1) { + warn("Inline ASCIIHexDecode image stream: " + "EOD marker not found, searching for /EI/ instead."); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + } + inlineStreamSkipEI(stream) { + const E = 0x45, + I = 0x49; + let state = 0, + ch; + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else if (state === 2) { + break; + } + } + } + makeInlineImage(cipherTransform) { + const lexer = this.lexer; + const stream = lexer.stream; + const dictMap = Object.create(null); + let dictLength; + while (!isCmd(this.buf1, "ID") && this.buf1 !== EOF) { + if (!(this.buf1 instanceof Name)) { + throw new FormatError("Dictionary key must be a name object"); + } + const key = this.buf1.name; + this.shift(); + if (this.buf1 === EOF) { + break; + } + dictMap[key] = this.getObj(cipherTransform); + } + if (lexer.beginInlineImagePos !== -1) { + dictLength = stream.pos - lexer.beginInlineImagePos; + } + const filter = this.xref.fetchIfRef(dictMap.F || dictMap.Filter); + let filterName; + if (filter instanceof Name) { + filterName = filter.name; + } else if (Array.isArray(filter)) { + const filterZero = this.xref.fetchIfRef(filter[0]); + if (filterZero instanceof Name) { + filterName = filterZero.name; + } + } + const startPos = stream.pos; + let length; + switch (filterName) { + case "DCT": + case "DCTDecode": + length = this.findDCTDecodeInlineStreamEnd(stream); + break; + case "A85": + case "ASCII85Decode": + length = this.findASCII85DecodeInlineStreamEnd(stream); + break; + case "AHx": + case "ASCIIHexDecode": + length = this.findASCIIHexDecodeInlineStreamEnd(stream); + break; + default: + length = this.findDefaultInlineStreamEnd(stream); + } + let cacheKey; + if (length < MAX_LENGTH_TO_CACHE && dictLength > 0) { + const initialStreamPos = stream.pos; + stream.pos = lexer.beginInlineImagePos; + cacheKey = getInlineImageCacheKey(stream.getBytes(dictLength + length)); + stream.pos = initialStreamPos; + const cacheEntry = this.imageCache[cacheKey]; + if (cacheEntry !== undefined) { + this.buf2 = Cmd.get("EI"); + this.shift(); + cacheEntry.reset(); + return cacheEntry; + } + } + const dict = new Dict(this.xref); + for (const key in dictMap) { + dict.set(key, dictMap[key]); + } + let imageStream = stream.makeSubStream(startPos, length, dict); + if (cipherTransform) { + imageStream = cipherTransform.createStream(imageStream, length); + } + imageStream = this.filter(imageStream, dict, length); + imageStream.dict = dict; + if (cacheKey !== undefined) { + imageStream.cacheKey = `inline_img_${++this._imageId}`; + this.imageCache[cacheKey] = imageStream; + } + this.buf2 = Cmd.get("EI"); + this.shift(); + return imageStream; + } + #findStreamLength(startPos) { + const { + stream + } = this.lexer; + stream.pos = startPos; + const SCAN_BLOCK_LENGTH = 2048; + const signatureLength = "endstream".length; + const END_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64]); + const endLength = END_SIGNATURE.length; + const PARTIAL_SIGNATURE = [new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61, 0x6d]), new Uint8Array([0x73, 0x74, 0x65, 0x61, 0x6d]), new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61])]; + const normalLength = signatureLength - endLength; + while (stream.pos < stream.end) { + const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + const scanLength = scanBytes.length - signatureLength; + if (scanLength <= 0) { + break; + } + let pos = 0; + while (pos < scanLength) { + let j = 0; + while (j < endLength && scanBytes[pos + j] === END_SIGNATURE[j]) { + j++; + } + if (j >= endLength) { + let found = false; + for (const part of PARTIAL_SIGNATURE) { + const partLen = part.length; + let k = 0; + while (k < partLen && scanBytes[pos + j + k] === part[k]) { + k++; + } + if (k >= normalLength) { + found = true; + break; + } + if (k >= partLen) { + const lastByte = scanBytes[pos + j + k]; + if (isWhiteSpace(lastByte)) { + info(`Found "${bytesToString([...END_SIGNATURE, ...part])}" when ` + "searching for endstream command."); + found = true; + } + break; + } + } + if (found) { + stream.pos += pos; + return stream.pos - startPos; + } + } + pos++; + } + stream.pos += scanLength; + } + return -1; + } + makeStream(dict, cipherTransform) { + const lexer = this.lexer; + let stream = lexer.stream; + lexer.skipToNextLine(); + const startPos = stream.pos - 1; + let length = dict.get("Length"); + if (!Number.isInteger(length)) { + info(`Bad length "${length && length.toString()}" in stream.`); + length = 0; + } + stream.pos = startPos + length; + lexer.nextChar(); + if (this.tryShift() && isCmd(this.buf2, "endstream")) { + this.shift(); + } else { + length = this.#findStreamLength(startPos); + if (length < 0) { + throw new FormatError("Missing endstream command."); + } + lexer.nextChar(); + this.shift(); + this.shift(); + } + this.shift(); + stream = stream.makeSubStream(startPos, length, dict); + if (cipherTransform) { + stream = cipherTransform.createStream(stream, length); + } + stream = this.filter(stream, dict, length); + stream.dict = dict; + return stream; + } + filter(stream, dict, length) { + let filter = dict.get("F", "Filter"); + let params = dict.get("DP", "DecodeParms"); + if (filter instanceof Name) { + if (Array.isArray(params)) { + warn("/DecodeParms should not be an Array, when /Filter is a Name."); + } + return this.makeFilter(stream, filter.name, length, params); + } + let maybeLength = length; + if (Array.isArray(filter)) { + const filterArray = filter; + const paramsArray = params; + for (let i = 0, ii = filterArray.length; i < ii; ++i) { + filter = this.xref.fetchIfRef(filterArray[i]); + if (!(filter instanceof Name)) { + throw new FormatError(`Bad filter name "${filter}"`); + } + params = null; + if (Array.isArray(paramsArray) && i in paramsArray) { + params = this.xref.fetchIfRef(paramsArray[i]); + } + stream = this.makeFilter(stream, filter.name, maybeLength, params); + maybeLength = null; + } + } + return stream; + } + makeFilter(stream, name, maybeLength, params) { + if (maybeLength === 0) { + warn(`Empty "${name}" stream.`); + return new NullStream(); + } + try { + switch (name) { + case "Fl": + case "FlateDecode": + if (params) { + return new PredictorStream(new FlateStream(stream, maybeLength), maybeLength, params); + } + return new FlateStream(stream, maybeLength); + case "LZW": + case "LZWDecode": + let earlyChange = 1; + if (params) { + if (params.has("EarlyChange")) { + earlyChange = params.get("EarlyChange"); + } + return new PredictorStream(new LZWStream(stream, maybeLength, earlyChange), maybeLength, params); + } + return new LZWStream(stream, maybeLength, earlyChange); + case "DCT": + case "DCTDecode": + return new JpegStream(stream, maybeLength, params); + case "JPX": + case "JPXDecode": + return new JpxStream(stream, maybeLength, params); + case "A85": + case "ASCII85Decode": + return new Ascii85Stream(stream, maybeLength); + case "AHx": + case "ASCIIHexDecode": + return new AsciiHexStream(stream, maybeLength); + case "CCF": + case "CCITTFaxDecode": + return new CCITTFaxStream(stream, maybeLength, params); + case "RL": + case "RunLengthDecode": + return new RunLengthStream(stream, maybeLength); + case "JBIG2Decode": + return new Jbig2Stream(stream, maybeLength, params); + } + warn(`Filter "${name}" is not supported.`); + return stream; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`Invalid stream: "${ex}"`); + return new NullStream(); + } + } +} +const specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; +function toHexDigit(ch) { + if (ch >= 0x30 && ch <= 0x39) { + return ch & 0x0f; + } + if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + return (ch & 0x0f) + 9; + } + return -1; +} +class Lexer { + constructor(stream, knownCommands = null) { + this.stream = stream; + this.nextChar(); + this.strBuf = []; + this.knownCommands = knownCommands; + this._hexStringNumWarn = 0; + this.beginInlineImagePos = -1; + } + nextChar() { + return this.currentChar = this.stream.getByte(); + } + peekChar() { + return this.stream.peekByte(); + } + getNumber() { + let ch = this.currentChar; + let eNotation = false; + let divideBy = 0; + let sign = 1; + if (ch === 0x2d) { + sign = -1; + ch = this.nextChar(); + if (ch === 0x2d) { + ch = this.nextChar(); + } + } else if (ch === 0x2b) { + ch = this.nextChar(); + } + if (ch === 0x0a || ch === 0x0d) { + do { + ch = this.nextChar(); + } while (ch === 0x0a || ch === 0x0d); + } + if (ch === 0x2e) { + divideBy = 10; + ch = this.nextChar(); + } + if (ch < 0x30 || ch > 0x39) { + const msg = `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`; + if (isWhiteSpace(ch) || ch === 0x28 || ch === 0x3c || ch === -1) { + info(`Lexer.getNumber - "${msg}".`); + return 0; + } + throw new FormatError(msg); + } + let baseValue = ch - 0x30; + let powerValue = 0; + let powerValueSign = 1; + while ((ch = this.nextChar()) >= 0) { + if (ch >= 0x30 && ch <= 0x39) { + const currentDigit = ch - 0x30; + if (eNotation) { + powerValue = powerValue * 10 + currentDigit; + } else { + if (divideBy !== 0) { + divideBy *= 10; + } + baseValue = baseValue * 10 + currentDigit; + } + } else if (ch === 0x2e) { + if (divideBy === 0) { + divideBy = 1; + } else { + break; + } + } else if (ch === 0x2d) { + warn("Badly formatted number: minus sign in the middle"); + } else if (ch === 0x45 || ch === 0x65) { + ch = this.peekChar(); + if (ch === 0x2b || ch === 0x2d) { + powerValueSign = ch === 0x2d ? -1 : 1; + this.nextChar(); + } else if (ch < 0x30 || ch > 0x39) { + break; + } + eNotation = true; + } else { + break; + } + } + if (divideBy !== 0) { + baseValue /= divideBy; + } + if (eNotation) { + baseValue *= 10 ** (powerValueSign * powerValue); + } + return sign * baseValue; + } + getString() { + let numParen = 1; + let done = false; + const strBuf = this.strBuf; + strBuf.length = 0; + let ch = this.nextChar(); + while (true) { + let charBuffered = false; + switch (ch | 0) { + case -1: + warn("Unterminated string"); + done = true; + break; + case 0x28: + ++numParen; + strBuf.push("("); + break; + case 0x29: + if (--numParen === 0) { + this.nextChar(); + done = true; + } else { + strBuf.push(")"); + } + break; + case 0x5c: + ch = this.nextChar(); + switch (ch) { + case -1: + warn("Unterminated string"); + done = true; + break; + case 0x6e: + strBuf.push("\n"); + break; + case 0x72: + strBuf.push("\r"); + break; + case 0x74: + strBuf.push("\t"); + break; + case 0x62: + strBuf.push("\b"); + break; + case 0x66: + strBuf.push("\f"); + break; + case 0x5c: + case 0x28: + case 0x29: + strBuf.push(String.fromCharCode(ch)); + break; + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + let x = ch & 0x0f; + ch = this.nextChar(); + charBuffered = true; + if (ch >= 0x30 && ch <= 0x37) { + x = (x << 3) + (ch & 0x0f); + ch = this.nextChar(); + if (ch >= 0x30 && ch <= 0x37) { + charBuffered = false; + x = (x << 3) + (ch & 0x0f); + } + } + strBuf.push(String.fromCharCode(x)); + break; + case 0x0d: + if (this.peekChar() === 0x0a) { + this.nextChar(); + } + break; + case 0x0a: + break; + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + break; + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + if (done) { + break; + } + if (!charBuffered) { + ch = this.nextChar(); + } + } + return strBuf.join(""); + } + getName() { + let ch, previousCh; + const strBuf = this.strBuf; + strBuf.length = 0; + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + if (ch === 0x23) { + ch = this.nextChar(); + if (specialChars[ch]) { + warn("Lexer_getName: " + "NUMBER SIGN (#) should be followed by a hexadecimal number."); + strBuf.push("#"); + break; + } + const x = toHexDigit(ch); + if (x !== -1) { + previousCh = ch; + ch = this.nextChar(); + const x2 = toHexDigit(ch); + if (x2 === -1) { + warn(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + "in hexadecimal number."); + strBuf.push("#", String.fromCharCode(previousCh)); + if (specialChars[ch]) { + break; + } + strBuf.push(String.fromCharCode(ch)); + continue; + } + strBuf.push(String.fromCharCode(x << 4 | x2)); + } else { + strBuf.push("#", String.fromCharCode(ch)); + } + } else { + strBuf.push(String.fromCharCode(ch)); + } + } + if (strBuf.length > 127) { + warn(`Name token is longer than allowed by the spec: ${strBuf.length}`); + } + return Name.get(strBuf.join("")); + } + _hexStringWarn(ch) { + const MAX_HEX_STRING_NUM_WARN = 5; + if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) { + warn("getHexString - ignoring additional invalid characters."); + return; + } + if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) { + return; + } + warn(`getHexString - ignoring invalid character: ${ch}`); + } + getHexString() { + const strBuf = this.strBuf; + strBuf.length = 0; + let ch = this.currentChar; + let firstDigit = -1, + digit = -1; + this._hexStringNumWarn = 0; + while (true) { + if (ch < 0) { + warn("Unterminated hex string"); + break; + } else if (ch === 0x3e) { + this.nextChar(); + break; + } else if (specialChars[ch] === 1) { + ch = this.nextChar(); + continue; + } else { + digit = toHexDigit(ch); + if (digit === -1) { + this._hexStringWarn(ch); + } else if (firstDigit === -1) { + firstDigit = digit; + } else { + strBuf.push(String.fromCharCode(firstDigit << 4 | digit)); + firstDigit = -1; + } + ch = this.nextChar(); + } + } + if (firstDigit !== -1) { + strBuf.push(String.fromCharCode(firstDigit << 4)); + } + return strBuf.join(""); + } + getObj() { + let comment = false; + let ch = this.currentChar; + while (true) { + if (ch < 0) { + return EOF; + } + if (comment) { + if (ch === 0x0a || ch === 0x0d) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (specialChars[ch] !== 1) { + break; + } + ch = this.nextChar(); + } + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2b: + case 0x2d: + case 0x2e: + return this.getNumber(); + case 0x28: + return this.getString(); + case 0x2f: + return this.getName(); + case 0x5b: + this.nextChar(); + return Cmd.get("["); + case 0x5d: + this.nextChar(); + return Cmd.get("]"); + case 0x3c: + ch = this.nextChar(); + if (ch === 0x3c) { + this.nextChar(); + return Cmd.get("<<"); + } + return this.getHexString(); + case 0x3e: + ch = this.nextChar(); + if (ch === 0x3e) { + this.nextChar(); + return Cmd.get(">>"); + } + return Cmd.get(">"); + case 0x7b: + this.nextChar(); + return Cmd.get("{"); + case 0x7d: + this.nextChar(); + return Cmd.get("}"); + case 0x29: + this.nextChar(); + throw new FormatError(`Illegal character: ${ch}`); + } + let str = String.fromCharCode(ch); + if (ch < 0x20 || ch > 0x7f) { + const nextCh = this.peekChar(); + if (nextCh >= 0x20 && nextCh <= 0x7f) { + this.nextChar(); + return Cmd.get(str); + } + } + const knownCommands = this.knownCommands; + let knownCommandFound = knownCommands?.[str] !== undefined; + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + const possibleCommand = str + String.fromCharCode(ch); + if (knownCommandFound && knownCommands[possibleCommand] === undefined) { + break; + } + if (str.length === 128) { + throw new FormatError(`Command token too long: ${str.length}`); + } + str = possibleCommand; + knownCommandFound = knownCommands?.[str] !== undefined; + } + if (str === "true") { + return true; + } + if (str === "false") { + return false; + } + if (str === "null") { + return null; + } + if (str === "BI") { + this.beginInlineImagePos = this.stream.pos; + } + return Cmd.get(str); + } + skipToNextLine() { + let ch = this.currentChar; + while (ch >= 0) { + if (ch === 0x0d) { + ch = this.nextChar(); + if (ch === 0x0a) { + this.nextChar(); + } + break; + } else if (ch === 0x0a) { + this.nextChar(); + break; + } + ch = this.nextChar(); + } + } +} +class Linearization { + static create(stream) { + function getInt(linDict, name, allowZeroValue = false) { + const obj = linDict.get(name); + if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) { + return obj; + } + throw new Error(`The "${name}" parameter in the linearization ` + "dictionary is invalid."); + } + function getHints(linDict) { + const hints = linDict.get("H"); + let hintsLength; + if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) { + for (let index = 0; index < hintsLength; index++) { + const hint = hints[index]; + if (!(Number.isInteger(hint) && hint > 0)) { + throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`); + } + } + return hints; + } + throw new Error("Hint array in the linearization dictionary is invalid."); + } + const parser = new Parser({ + lexer: new Lexer(stream), + xref: null + }); + const obj1 = parser.getObj(); + const obj2 = parser.getObj(); + const obj3 = parser.getObj(); + const linDict = parser.getObj(); + let obj, length; + if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && isCmd(obj3, "obj") && linDict instanceof Dict && typeof (obj = linDict.get("Linearized")) === "number" && obj > 0)) { + return null; + } else if ((length = getInt(linDict, "L")) !== stream.length) { + throw new Error('The "L" parameter in the linearization dictionary ' + "does not equal the stream length."); + } + return { + length, + hints: getHints(linDict), + objectNumberFirst: getInt(linDict, "O"), + endFirst: getInt(linDict, "E"), + numPages: getInt(linDict, "N"), + mainXRefEntriesOffset: getInt(linDict, "T"), + pageFirst: linDict.has("P") ? getInt(linDict, "P", true) : 0 + }; + } +} + +;// ./src/core/cmap.js + + + + + + + +const BUILT_IN_CMAPS = ["Adobe-GB1-UCS2", "Adobe-CNS1-UCS2", "Adobe-Japan1-UCS2", "Adobe-Korea1-UCS2", "78-EUC-H", "78-EUC-V", "78-H", "78-RKSJ-H", "78-RKSJ-V", "78-V", "78ms-RKSJ-H", "78ms-RKSJ-V", "83pv-RKSJ-H", "90ms-RKSJ-H", "90ms-RKSJ-V", "90msp-RKSJ-H", "90msp-RKSJ-V", "90pv-RKSJ-H", "90pv-RKSJ-V", "Add-H", "Add-RKSJ-H", "Add-RKSJ-V", "Add-V", "Adobe-CNS1-0", "Adobe-CNS1-1", "Adobe-CNS1-2", "Adobe-CNS1-3", "Adobe-CNS1-4", "Adobe-CNS1-5", "Adobe-CNS1-6", "Adobe-GB1-0", "Adobe-GB1-1", "Adobe-GB1-2", "Adobe-GB1-3", "Adobe-GB1-4", "Adobe-GB1-5", "Adobe-Japan1-0", "Adobe-Japan1-1", "Adobe-Japan1-2", "Adobe-Japan1-3", "Adobe-Japan1-4", "Adobe-Japan1-5", "Adobe-Japan1-6", "Adobe-Korea1-0", "Adobe-Korea1-1", "Adobe-Korea1-2", "B5-H", "B5-V", "B5pc-H", "B5pc-V", "CNS-EUC-H", "CNS-EUC-V", "CNS1-H", "CNS1-V", "CNS2-H", "CNS2-V", "ETHK-B5-H", "ETHK-B5-V", "ETen-B5-H", "ETen-B5-V", "ETenms-B5-H", "ETenms-B5-V", "EUC-H", "EUC-V", "Ext-H", "Ext-RKSJ-H", "Ext-RKSJ-V", "Ext-V", "GB-EUC-H", "GB-EUC-V", "GB-H", "GB-V", "GBK-EUC-H", "GBK-EUC-V", "GBK2K-H", "GBK2K-V", "GBKp-EUC-H", "GBKp-EUC-V", "GBT-EUC-H", "GBT-EUC-V", "GBT-H", "GBT-V", "GBTpc-EUC-H", "GBTpc-EUC-V", "GBpc-EUC-H", "GBpc-EUC-V", "H", "HKdla-B5-H", "HKdla-B5-V", "HKdlb-B5-H", "HKdlb-B5-V", "HKgccs-B5-H", "HKgccs-B5-V", "HKm314-B5-H", "HKm314-B5-V", "HKm471-B5-H", "HKm471-B5-V", "HKscs-B5-H", "HKscs-B5-V", "Hankaku", "Hiragana", "KSC-EUC-H", "KSC-EUC-V", "KSC-H", "KSC-Johab-H", "KSC-Johab-V", "KSC-V", "KSCms-UHC-H", "KSCms-UHC-HW-H", "KSCms-UHC-HW-V", "KSCms-UHC-V", "KSCpc-EUC-H", "KSCpc-EUC-V", "Katakana", "NWP-H", "NWP-V", "RKSJ-H", "RKSJ-V", "Roman", "UniCNS-UCS2-H", "UniCNS-UCS2-V", "UniCNS-UTF16-H", "UniCNS-UTF16-V", "UniCNS-UTF32-H", "UniCNS-UTF32-V", "UniCNS-UTF8-H", "UniCNS-UTF8-V", "UniGB-UCS2-H", "UniGB-UCS2-V", "UniGB-UTF16-H", "UniGB-UTF16-V", "UniGB-UTF32-H", "UniGB-UTF32-V", "UniGB-UTF8-H", "UniGB-UTF8-V", "UniJIS-UCS2-H", "UniJIS-UCS2-HW-H", "UniJIS-UCS2-HW-V", "UniJIS-UCS2-V", "UniJIS-UTF16-H", "UniJIS-UTF16-V", "UniJIS-UTF32-H", "UniJIS-UTF32-V", "UniJIS-UTF8-H", "UniJIS-UTF8-V", "UniJIS2004-UTF16-H", "UniJIS2004-UTF16-V", "UniJIS2004-UTF32-H", "UniJIS2004-UTF32-V", "UniJIS2004-UTF8-H", "UniJIS2004-UTF8-V", "UniJISPro-UCS2-HW-V", "UniJISPro-UCS2-V", "UniJISPro-UTF8-V", "UniJISX0213-UTF32-H", "UniJISX0213-UTF32-V", "UniJISX02132004-UTF32-H", "UniJISX02132004-UTF32-V", "UniKS-UCS2-H", "UniKS-UCS2-V", "UniKS-UTF16-H", "UniKS-UTF16-V", "UniKS-UTF32-H", "UniKS-UTF32-V", "UniKS-UTF8-H", "UniKS-UTF8-V", "V", "WP-Symbol"]; +const MAX_MAP_RANGE = 2 ** 24 - 1; +class CMap { + constructor(builtInCMap = false) { + this.codespaceRanges = [[], [], [], []]; + this.numCodespaceRanges = 0; + this._map = []; + this.name = ""; + this.vertical = false; + this.useCMap = null; + this.builtInCMap = builtInCMap; + } + addCodespaceRange(n, low, high) { + this.codespaceRanges[n - 1].push(low, high); + this.numCodespaceRanges++; + } + mapCidRange(low, high, dstLow) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE."); + } + while (low <= high) { + this._map[low++] = dstLow++; + } + } + mapBfRange(low, high, dstLow) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE."); + } + const lastByte = dstLow.length - 1; + while (low <= high) { + this._map[low++] = dstLow; + const nextCharCode = dstLow.charCodeAt(lastByte) + 1; + if (nextCharCode > 0xff) { + dstLow = dstLow.substring(0, lastByte - 1) + String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) + "\x00"; + continue; + } + dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode); + } + } + mapBfRangeToArray(low, high, array) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE."); + } + const ii = array.length; + let i = 0; + while (low <= high && i < ii) { + this._map[low] = array[i++]; + ++low; + } + } + mapOne(src, dst) { + this._map[src] = dst; + } + lookup(code) { + return this._map[code]; + } + contains(code) { + return this._map[code] !== undefined; + } + forEach(callback) { + const map = this._map; + const length = map.length; + if (length <= 0x10000) { + for (let i = 0; i < length; i++) { + if (map[i] !== undefined) { + callback(i, map[i]); + } + } + } else { + for (const i in map) { + callback(i, map[i]); + } + } + } + charCodeOf(value) { + const map = this._map; + if (map.length <= 0x10000) { + return map.indexOf(value); + } + for (const charCode in map) { + if (map[charCode] === value) { + return charCode | 0; + } + } + return -1; + } + getMap() { + return this._map; + } + readCharCode(str, offset, out) { + let c = 0; + const codespaceRanges = this.codespaceRanges; + for (let n = 0, nn = codespaceRanges.length; n < nn; n++) { + c = (c << 8 | str.charCodeAt(offset + n)) >>> 0; + const codespaceRange = codespaceRanges[n]; + for (let k = 0, kk = codespaceRange.length; k < kk;) { + const low = codespaceRange[k++]; + const high = codespaceRange[k++]; + if (c >= low && c <= high) { + out.charcode = c; + out.length = n + 1; + return; + } + } + } + out.charcode = 0; + out.length = 1; + } + getCharCodeLength(charCode) { + const codespaceRanges = this.codespaceRanges; + for (let n = 0, nn = codespaceRanges.length; n < nn; n++) { + const codespaceRange = codespaceRanges[n]; + for (let k = 0, kk = codespaceRange.length; k < kk;) { + const low = codespaceRange[k++]; + const high = codespaceRange[k++]; + if (charCode >= low && charCode <= high) { + return n + 1; + } + } + } + return 1; + } + get length() { + return this._map.length; + } + get isIdentityCMap() { + if (!(this.name === "Identity-H" || this.name === "Identity-V")) { + return false; + } + if (this._map.length !== 0x10000) { + return false; + } + for (let i = 0; i < 0x10000; i++) { + if (this._map[i] !== i) { + return false; + } + } + return true; + } +} +class IdentityCMap extends CMap { + constructor(vertical, n) { + super(); + this.vertical = vertical; + this.addCodespaceRange(n, 0, 0xffff); + } + mapCidRange(low, high, dstLow) { + unreachable("should not call mapCidRange"); + } + mapBfRange(low, high, dstLow) { + unreachable("should not call mapBfRange"); + } + mapBfRangeToArray(low, high, array) { + unreachable("should not call mapBfRangeToArray"); + } + mapOne(src, dst) { + unreachable("should not call mapCidOne"); + } + lookup(code) { + return Number.isInteger(code) && code <= 0xffff ? code : undefined; + } + contains(code) { + return Number.isInteger(code) && code <= 0xffff; + } + forEach(callback) { + for (let i = 0; i <= 0xffff; i++) { + callback(i, i); + } + } + charCodeOf(value) { + return Number.isInteger(value) && value <= 0xffff ? value : -1; + } + getMap() { + const map = new Array(0x10000); + for (let i = 0; i <= 0xffff; i++) { + map[i] = i; + } + return map; + } + get length() { + return 0x10000; + } + get isIdentityCMap() { + unreachable("should not access .isIdentityCMap"); + } +} +function strToInt(str) { + let a = 0; + for (let i = 0; i < str.length; i++) { + a = a << 8 | str.charCodeAt(i); + } + return a >>> 0; +} +function expectString(obj) { + if (typeof obj !== "string") { + throw new FormatError("Malformed CMap: expected string."); + } +} +function expectInt(obj) { + if (!Number.isInteger(obj)) { + throw new FormatError("Malformed CMap: expected int."); + } +} +function parseBfChar(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endbfchar")) { + return; + } + expectString(obj); + const src = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + const dst = obj; + cMap.mapOne(src, dst); + } +} +function parseBfRange(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endbfrange")) { + return; + } + expectString(obj); + const low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + const high = strToInt(obj); + obj = lexer.getObj(); + if (Number.isInteger(obj) || typeof obj === "string") { + const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj; + cMap.mapBfRange(low, high, dstLow); + } else if (isCmd(obj, "[")) { + obj = lexer.getObj(); + const array = []; + while (!isCmd(obj, "]") && obj !== EOF) { + array.push(obj); + obj = lexer.getObj(); + } + cMap.mapBfRangeToArray(low, high, array); + } else { + break; + } + } + throw new FormatError("Invalid bf range."); +} +function parseCidChar(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endcidchar")) { + return; + } + expectString(obj); + const src = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + const dst = obj; + cMap.mapOne(src, dst); + } +} +function parseCidRange(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endcidrange")) { + return; + } + expectString(obj); + const low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + const high = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + const dstLow = obj; + cMap.mapCidRange(low, high, dstLow); + } +} +function parseCodespaceRange(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endcodespacerange")) { + return; + } + if (typeof obj !== "string") { + break; + } + const low = strToInt(obj); + obj = lexer.getObj(); + if (typeof obj !== "string") { + break; + } + const high = strToInt(obj); + cMap.addCodespaceRange(obj.length, low, high); + } + throw new FormatError("Invalid codespace range."); +} +function parseWMode(cMap, lexer) { + const obj = lexer.getObj(); + if (Number.isInteger(obj)) { + cMap.vertical = !!obj; + } +} +function parseCMapName(cMap, lexer) { + const obj = lexer.getObj(); + if (obj instanceof Name) { + cMap.name = obj.name; + } +} +async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) { + let previous, embeddedUseCMap; + objLoop: while (true) { + try { + const obj = lexer.getObj(); + if (obj === EOF) { + break; + } else if (obj instanceof Name) { + if (obj.name === "WMode") { + parseWMode(cMap, lexer); + } else if (obj.name === "CMapName") { + parseCMapName(cMap, lexer); + } + previous = obj; + } else if (obj instanceof Cmd) { + switch (obj.cmd) { + case "endcmap": + break objLoop; + case "usecmap": + if (previous instanceof Name) { + embeddedUseCMap = previous.name; + } + break; + case "begincodespacerange": + parseCodespaceRange(cMap, lexer); + break; + case "beginbfchar": + parseBfChar(cMap, lexer); + break; + case "begincidchar": + parseCidChar(cMap, lexer); + break; + case "beginbfrange": + parseBfRange(cMap, lexer); + break; + case "begincidrange": + parseCidRange(cMap, lexer); + break; + } + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Invalid cMap data: " + ex); + continue; + } + } + if (!useCMap && embeddedUseCMap) { + useCMap = embeddedUseCMap; + } + if (useCMap) { + return extendCMap(cMap, fetchBuiltInCMap, useCMap); + } + return cMap; +} +async function extendCMap(cMap, fetchBuiltInCMap, useCMap) { + cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap); + if (cMap.numCodespaceRanges === 0) { + const useCodespaceRanges = cMap.useCMap.codespaceRanges; + for (let i = 0; i < useCodespaceRanges.length; i++) { + cMap.codespaceRanges[i] = useCodespaceRanges[i].slice(); + } + cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges; + } + cMap.useCMap.forEach(function (key, value) { + if (!cMap.contains(key)) { + cMap.mapOne(key, value); + } + }); + return cMap; +} +async function createBuiltInCMap(name, fetchBuiltInCMap) { + if (name === "Identity-H") { + return new IdentityCMap(false, 2); + } else if (name === "Identity-V") { + return new IdentityCMap(true, 2); + } + if (!BUILT_IN_CMAPS.includes(name)) { + throw new Error("Unknown CMap name: " + name); + } + if (!fetchBuiltInCMap) { + throw new Error("Built-in CMap parameters are not provided."); + } + const { + cMapData, + isCompressed + } = await fetchBuiltInCMap(name); + const cMap = new CMap(true); + if (isCompressed) { + return new BinaryCMapReader().process(cMapData, cMap, useCMap => extendCMap(cMap, fetchBuiltInCMap, useCMap)); + } + const lexer = new Lexer(new Stream(cMapData)); + return parseCMap(cMap, lexer, fetchBuiltInCMap, null); +} +class CMapFactory { + static async create({ + encoding, + fetchBuiltInCMap, + useCMap + }) { + if (encoding instanceof Name) { + return createBuiltInCMap(encoding.name, fetchBuiltInCMap); + } else if (encoding instanceof BaseStream) { + const parsedCMap = await parseCMap(new CMap(), new Lexer(encoding), fetchBuiltInCMap, useCMap); + if (parsedCMap.isIdentityCMap) { + return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap); + } + return parsedCMap; + } + throw new Error("Encoding required."); + } +} + +;// ./src/core/encodings.js +const ExpertEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclamsmall", "Hungarumlautsmall", "", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "", "", "", "isuperior", "", "", "lsuperior", "msuperior", "nsuperior", "osuperior", "", "", "rsuperior", "ssuperior", "tsuperior", "", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "exclamdownsmall", "centoldstyle", "Lslashsmall", "", "", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "", "Dotaccentsmall", "", "", "Macronsmall", "", "", "figuredash", "hypheninferior", "", "", "Ogoneksmall", "Ringsmall", "Cedillasmall", "", "", "", "onequarter", "onehalf", "threequarters", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "", "", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall"]; +const MacExpertEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclamsmall", "Hungarumlautsmall", "centoldstyle", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "", "threequartersemdash", "", "questionsmall", "", "", "", "", "Ethsmall", "", "", "onequarter", "onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "", "", "", "", "", "", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "", "parenrightinferior", "Circumflexsmall", "hypheninferior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "", "", "asuperior", "centsuperior", "", "", "", "", "Aacutesmall", "Agravesmall", "Acircumflexsmall", "Adieresissmall", "Atildesmall", "Aringsmall", "Ccedillasmall", "Eacutesmall", "Egravesmall", "Ecircumflexsmall", "Edieresissmall", "Iacutesmall", "Igravesmall", "Icircumflexsmall", "Idieresissmall", "Ntildesmall", "Oacutesmall", "Ogravesmall", "Ocircumflexsmall", "Odieresissmall", "Otildesmall", "Uacutesmall", "Ugravesmall", "Ucircumflexsmall", "Udieresissmall", "", "eightsuperior", "fourinferior", "threeinferior", "sixinferior", "eightinferior", "seveninferior", "Scaronsmall", "", "centinferior", "twoinferior", "", "Dieresissmall", "", "Caronsmall", "osuperior", "fiveinferior", "", "commainferior", "periodinferior", "Yacutesmall", "", "dollarinferior", "", "", "Thornsmall", "", "nineinferior", "zeroinferior", "Zcaronsmall", "AEsmall", "Oslashsmall", "questiondownsmall", "oneinferior", "Lslashsmall", "", "", "", "", "", "", "Cedillasmall", "", "", "", "", "", "OEsmall", "figuredash", "hyphensuperior", "", "", "", "", "exclamdownsmall", "", "Ydieresissmall", "", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "ninesuperior", "zerosuperior", "", "esuperior", "rsuperior", "tsuperior", "", "", "isuperior", "ssuperior", "dsuperior", "", "", "", "", "", "lsuperior", "Ogoneksmall", "Brevesmall", "Macronsmall", "bsuperior", "nsuperior", "msuperior", "commasuperior", "periodsuperior", "Dotaccentsmall", "Ringsmall", "", "", "", ""]; +const MacRomanEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quotesingle", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "grave", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "", "Adieresis", "Aring", "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute", "agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla", "eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave", "icircumflex", "idieresis", "ntilde", "oacute", "ograve", "ocircumflex", "odieresis", "otilde", "uacute", "ugrave", "ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling", "section", "bullet", "paragraph", "germandbls", "registered", "copyright", "trademark", "acute", "dieresis", "notequal", "AE", "Oslash", "infinity", "plusminus", "lessequal", "greaterequal", "yen", "mu", "partialdiff", "summation", "product", "pi", "integral", "ordfeminine", "ordmasculine", "Omega", "ae", "oslash", "questiondown", "exclamdown", "logicalnot", "radical", "florin", "approxequal", "Delta", "guillemotleft", "guillemotright", "ellipsis", "space", "Agrave", "Atilde", "Otilde", "OE", "oe", "endash", "emdash", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide", "lozenge", "ydieresis", "Ydieresis", "fraction", "currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl", "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex", "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave", "dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek", "caron"]; +const StandardEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "", "endash", "dagger", "daggerdbl", "periodcentered", "", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "", "questiondown", "", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "", "ring", "cedilla", "", "hungarumlaut", "ogonek", "caron", "emdash", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "AE", "", "ordfeminine", "", "", "", "", "Lslash", "Oslash", "OE", "ordmasculine", "", "", "", "", "", "ae", "", "", "", "dotlessi", "", "", "lslash", "oslash", "oe", "germandbls", "", "", "", ""]; +const WinAnsiEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quotesingle", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "grave", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "bullet", "Euro", "bullet", "quotesinglbase", "florin", "quotedblbase", "ellipsis", "dagger", "daggerdbl", "circumflex", "perthousand", "Scaron", "guilsinglleft", "OE", "bullet", "Zcaron", "bullet", "bullet", "quoteleft", "quoteright", "quotedblleft", "quotedblright", "bullet", "endash", "emdash", "tilde", "trademark", "scaron", "guilsinglright", "oe", "bullet", "zcaron", "Ydieresis", "space", "exclamdown", "cent", "sterling", "currency", "yen", "brokenbar", "section", "dieresis", "copyright", "ordfeminine", "guillemotleft", "logicalnot", "hyphen", "registered", "macron", "degree", "plusminus", "twosuperior", "threesuperior", "acute", "mu", "paragraph", "periodcentered", "cedilla", "onesuperior", "ordmasculine", "guillemotright", "onequarter", "onehalf", "threequarters", "questiondown", "Agrave", "Aacute", "Acircumflex", "Atilde", "Adieresis", "Aring", "AE", "Ccedilla", "Egrave", "Eacute", "Ecircumflex", "Edieresis", "Igrave", "Iacute", "Icircumflex", "Idieresis", "Eth", "Ntilde", "Ograve", "Oacute", "Ocircumflex", "Otilde", "Odieresis", "multiply", "Oslash", "Ugrave", "Uacute", "Ucircumflex", "Udieresis", "Yacute", "Thorn", "germandbls", "agrave", "aacute", "acircumflex", "atilde", "adieresis", "aring", "ae", "ccedilla", "egrave", "eacute", "ecircumflex", "edieresis", "igrave", "iacute", "icircumflex", "idieresis", "eth", "ntilde", "ograve", "oacute", "ocircumflex", "otilde", "odieresis", "divide", "oslash", "ugrave", "uacute", "ucircumflex", "udieresis", "yacute", "thorn", "ydieresis"]; +const SymbolSetEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "universal", "numbersign", "existential", "percent", "ampersand", "suchthat", "parenleft", "parenright", "asteriskmath", "plus", "comma", "minus", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "congruent", "Alpha", "Beta", "Chi", "Delta", "Epsilon", "Phi", "Gamma", "Eta", "Iota", "theta1", "Kappa", "Lambda", "Mu", "Nu", "Omicron", "Pi", "Theta", "Rho", "Sigma", "Tau", "Upsilon", "sigma1", "Omega", "Xi", "Psi", "Zeta", "bracketleft", "therefore", "bracketright", "perpendicular", "underscore", "radicalex", "alpha", "beta", "chi", "delta", "epsilon", "phi", "gamma", "eta", "iota", "phi1", "kappa", "lambda", "mu", "nu", "omicron", "pi", "theta", "rho", "sigma", "tau", "upsilon", "omega1", "omega", "xi", "psi", "zeta", "braceleft", "bar", "braceright", "similar", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Euro", "Upsilon1", "minute", "lessequal", "fraction", "infinity", "florin", "club", "diamond", "heart", "spade", "arrowboth", "arrowleft", "arrowup", "arrowright", "arrowdown", "degree", "plusminus", "second", "greaterequal", "multiply", "proportional", "partialdiff", "bullet", "divide", "notequal", "equivalence", "approxequal", "ellipsis", "arrowvertex", "arrowhorizex", "carriagereturn", "aleph", "Ifraktur", "Rfraktur", "weierstrass", "circlemultiply", "circleplus", "emptyset", "intersection", "union", "propersuperset", "reflexsuperset", "notsubset", "propersubset", "reflexsubset", "element", "notelement", "angle", "gradient", "registerserif", "copyrightserif", "trademarkserif", "product", "radical", "dotmath", "logicalnot", "logicaland", "logicalor", "arrowdblboth", "arrowdblleft", "arrowdblup", "arrowdblright", "arrowdbldown", "lozenge", "angleleft", "registersans", "copyrightsans", "trademarksans", "summation", "parenlefttp", "parenleftex", "parenleftbt", "bracketlefttp", "bracketleftex", "bracketleftbt", "bracelefttp", "braceleftmid", "braceleftbt", "braceex", "", "angleright", "integral", "integraltp", "integralex", "integralbt", "parenrighttp", "parenrightex", "parenrightbt", "bracketrighttp", "bracketrightex", "bracketrightbt", "bracerighttp", "bracerightmid", "bracerightbt", ""]; +const ZapfDingbatsEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "a1", "a2", "a202", "a3", "a4", "a5", "a119", "a118", "a117", "a11", "a12", "a13", "a14", "a15", "a16", "a105", "a17", "a18", "a19", "a20", "a21", "a22", "a23", "a24", "a25", "a26", "a27", "a28", "a6", "a7", "a8", "a9", "a10", "a29", "a30", "a31", "a32", "a33", "a34", "a35", "a36", "a37", "a38", "a39", "a40", "a41", "a42", "a43", "a44", "a45", "a46", "a47", "a48", "a49", "a50", "a51", "a52", "a53", "a54", "a55", "a56", "a57", "a58", "a59", "a60", "a61", "a62", "a63", "a64", "a65", "a66", "a67", "a68", "a69", "a70", "a71", "a72", "a73", "a74", "a203", "a75", "a204", "a76", "a77", "a78", "a79", "a81", "a82", "a83", "a84", "a97", "a98", "a99", "a100", "", "a89", "a90", "a93", "a94", "a91", "a92", "a205", "a85", "a206", "a86", "a87", "a88", "a95", "a96", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "a101", "a102", "a103", "a104", "a106", "a107", "a108", "a112", "a111", "a110", "a109", "a120", "a121", "a122", "a123", "a124", "a125", "a126", "a127", "a128", "a129", "a130", "a131", "a132", "a133", "a134", "a135", "a136", "a137", "a138", "a139", "a140", "a141", "a142", "a143", "a144", "a145", "a146", "a147", "a148", "a149", "a150", "a151", "a152", "a153", "a154", "a155", "a156", "a157", "a158", "a159", "a160", "a161", "a163", "a164", "a196", "a165", "a192", "a166", "a167", "a168", "a169", "a170", "a171", "a172", "a173", "a162", "a174", "a175", "a176", "a177", "a178", "a179", "a193", "a180", "a199", "a181", "a200", "a182", "", "a201", "a183", "a184", "a197", "a185", "a194", "a198", "a186", "a195", "a187", "a188", "a189", "a190", "a191", ""]; +function getEncoding(encodingName) { + switch (encodingName) { + case "WinAnsiEncoding": + return WinAnsiEncoding; + case "StandardEncoding": + return StandardEncoding; + case "MacRomanEncoding": + return MacRomanEncoding; + case "SymbolSetEncoding": + return SymbolSetEncoding; + case "ZapfDingbatsEncoding": + return ZapfDingbatsEncoding; + case "ExpertEncoding": + return ExpertEncoding; + case "MacExpertEncoding": + return MacExpertEncoding; + default: + return null; + } +} + +;// ./src/core/glyphlist.js + +const getGlyphsUnicode = getLookupTableFactory(function (t) { + t.A = 0x0041; + t.AE = 0x00c6; + t.AEacute = 0x01fc; + t.AEmacron = 0x01e2; + t.AEsmall = 0xf7e6; + t.Aacute = 0x00c1; + t.Aacutesmall = 0xf7e1; + t.Abreve = 0x0102; + t.Abreveacute = 0x1eae; + t.Abrevecyrillic = 0x04d0; + t.Abrevedotbelow = 0x1eb6; + t.Abrevegrave = 0x1eb0; + t.Abrevehookabove = 0x1eb2; + t.Abrevetilde = 0x1eb4; + t.Acaron = 0x01cd; + t.Acircle = 0x24b6; + t.Acircumflex = 0x00c2; + t.Acircumflexacute = 0x1ea4; + t.Acircumflexdotbelow = 0x1eac; + t.Acircumflexgrave = 0x1ea6; + t.Acircumflexhookabove = 0x1ea8; + t.Acircumflexsmall = 0xf7e2; + t.Acircumflextilde = 0x1eaa; + t.Acute = 0xf6c9; + t.Acutesmall = 0xf7b4; + t.Acyrillic = 0x0410; + t.Adblgrave = 0x0200; + t.Adieresis = 0x00c4; + t.Adieresiscyrillic = 0x04d2; + t.Adieresismacron = 0x01de; + t.Adieresissmall = 0xf7e4; + t.Adotbelow = 0x1ea0; + t.Adotmacron = 0x01e0; + t.Agrave = 0x00c0; + t.Agravesmall = 0xf7e0; + t.Ahookabove = 0x1ea2; + t.Aiecyrillic = 0x04d4; + t.Ainvertedbreve = 0x0202; + t.Alpha = 0x0391; + t.Alphatonos = 0x0386; + t.Amacron = 0x0100; + t.Amonospace = 0xff21; + t.Aogonek = 0x0104; + t.Aring = 0x00c5; + t.Aringacute = 0x01fa; + t.Aringbelow = 0x1e00; + t.Aringsmall = 0xf7e5; + t.Asmall = 0xf761; + t.Atilde = 0x00c3; + t.Atildesmall = 0xf7e3; + t.Aybarmenian = 0x0531; + t.B = 0x0042; + t.Bcircle = 0x24b7; + t.Bdotaccent = 0x1e02; + t.Bdotbelow = 0x1e04; + t.Becyrillic = 0x0411; + t.Benarmenian = 0x0532; + t.Beta = 0x0392; + t.Bhook = 0x0181; + t.Blinebelow = 0x1e06; + t.Bmonospace = 0xff22; + t.Brevesmall = 0xf6f4; + t.Bsmall = 0xf762; + t.Btopbar = 0x0182; + t.C = 0x0043; + t.Caarmenian = 0x053e; + t.Cacute = 0x0106; + t.Caron = 0xf6ca; + t.Caronsmall = 0xf6f5; + t.Ccaron = 0x010c; + t.Ccedilla = 0x00c7; + t.Ccedillaacute = 0x1e08; + t.Ccedillasmall = 0xf7e7; + t.Ccircle = 0x24b8; + t.Ccircumflex = 0x0108; + t.Cdot = 0x010a; + t.Cdotaccent = 0x010a; + t.Cedillasmall = 0xf7b8; + t.Chaarmenian = 0x0549; + t.Cheabkhasiancyrillic = 0x04bc; + t.Checyrillic = 0x0427; + t.Chedescenderabkhasiancyrillic = 0x04be; + t.Chedescendercyrillic = 0x04b6; + t.Chedieresiscyrillic = 0x04f4; + t.Cheharmenian = 0x0543; + t.Chekhakassiancyrillic = 0x04cb; + t.Cheverticalstrokecyrillic = 0x04b8; + t.Chi = 0x03a7; + t.Chook = 0x0187; + t.Circumflexsmall = 0xf6f6; + t.Cmonospace = 0xff23; + t.Coarmenian = 0x0551; + t.Csmall = 0xf763; + t.D = 0x0044; + t.DZ = 0x01f1; + t.DZcaron = 0x01c4; + t.Daarmenian = 0x0534; + t.Dafrican = 0x0189; + t.Dcaron = 0x010e; + t.Dcedilla = 0x1e10; + t.Dcircle = 0x24b9; + t.Dcircumflexbelow = 0x1e12; + t.Dcroat = 0x0110; + t.Ddotaccent = 0x1e0a; + t.Ddotbelow = 0x1e0c; + t.Decyrillic = 0x0414; + t.Deicoptic = 0x03ee; + t.Delta = 0x2206; + t.Deltagreek = 0x0394; + t.Dhook = 0x018a; + t.Dieresis = 0xf6cb; + t.DieresisAcute = 0xf6cc; + t.DieresisGrave = 0xf6cd; + t.Dieresissmall = 0xf7a8; + t.Digammagreek = 0x03dc; + t.Djecyrillic = 0x0402; + t.Dlinebelow = 0x1e0e; + t.Dmonospace = 0xff24; + t.Dotaccentsmall = 0xf6f7; + t.Dslash = 0x0110; + t.Dsmall = 0xf764; + t.Dtopbar = 0x018b; + t.Dz = 0x01f2; + t.Dzcaron = 0x01c5; + t.Dzeabkhasiancyrillic = 0x04e0; + t.Dzecyrillic = 0x0405; + t.Dzhecyrillic = 0x040f; + t.E = 0x0045; + t.Eacute = 0x00c9; + t.Eacutesmall = 0xf7e9; + t.Ebreve = 0x0114; + t.Ecaron = 0x011a; + t.Ecedillabreve = 0x1e1c; + t.Echarmenian = 0x0535; + t.Ecircle = 0x24ba; + t.Ecircumflex = 0x00ca; + t.Ecircumflexacute = 0x1ebe; + t.Ecircumflexbelow = 0x1e18; + t.Ecircumflexdotbelow = 0x1ec6; + t.Ecircumflexgrave = 0x1ec0; + t.Ecircumflexhookabove = 0x1ec2; + t.Ecircumflexsmall = 0xf7ea; + t.Ecircumflextilde = 0x1ec4; + t.Ecyrillic = 0x0404; + t.Edblgrave = 0x0204; + t.Edieresis = 0x00cb; + t.Edieresissmall = 0xf7eb; + t.Edot = 0x0116; + t.Edotaccent = 0x0116; + t.Edotbelow = 0x1eb8; + t.Efcyrillic = 0x0424; + t.Egrave = 0x00c8; + t.Egravesmall = 0xf7e8; + t.Eharmenian = 0x0537; + t.Ehookabove = 0x1eba; + t.Eightroman = 0x2167; + t.Einvertedbreve = 0x0206; + t.Eiotifiedcyrillic = 0x0464; + t.Elcyrillic = 0x041b; + t.Elevenroman = 0x216a; + t.Emacron = 0x0112; + t.Emacronacute = 0x1e16; + t.Emacrongrave = 0x1e14; + t.Emcyrillic = 0x041c; + t.Emonospace = 0xff25; + t.Encyrillic = 0x041d; + t.Endescendercyrillic = 0x04a2; + t.Eng = 0x014a; + t.Enghecyrillic = 0x04a4; + t.Enhookcyrillic = 0x04c7; + t.Eogonek = 0x0118; + t.Eopen = 0x0190; + t.Epsilon = 0x0395; + t.Epsilontonos = 0x0388; + t.Ercyrillic = 0x0420; + t.Ereversed = 0x018e; + t.Ereversedcyrillic = 0x042d; + t.Escyrillic = 0x0421; + t.Esdescendercyrillic = 0x04aa; + t.Esh = 0x01a9; + t.Esmall = 0xf765; + t.Eta = 0x0397; + t.Etarmenian = 0x0538; + t.Etatonos = 0x0389; + t.Eth = 0x00d0; + t.Ethsmall = 0xf7f0; + t.Etilde = 0x1ebc; + t.Etildebelow = 0x1e1a; + t.Euro = 0x20ac; + t.Ezh = 0x01b7; + t.Ezhcaron = 0x01ee; + t.Ezhreversed = 0x01b8; + t.F = 0x0046; + t.Fcircle = 0x24bb; + t.Fdotaccent = 0x1e1e; + t.Feharmenian = 0x0556; + t.Feicoptic = 0x03e4; + t.Fhook = 0x0191; + t.Fitacyrillic = 0x0472; + t.Fiveroman = 0x2164; + t.Fmonospace = 0xff26; + t.Fourroman = 0x2163; + t.Fsmall = 0xf766; + t.G = 0x0047; + t.GBsquare = 0x3387; + t.Gacute = 0x01f4; + t.Gamma = 0x0393; + t.Gammaafrican = 0x0194; + t.Gangiacoptic = 0x03ea; + t.Gbreve = 0x011e; + t.Gcaron = 0x01e6; + t.Gcedilla = 0x0122; + t.Gcircle = 0x24bc; + t.Gcircumflex = 0x011c; + t.Gcommaaccent = 0x0122; + t.Gdot = 0x0120; + t.Gdotaccent = 0x0120; + t.Gecyrillic = 0x0413; + t.Ghadarmenian = 0x0542; + t.Ghemiddlehookcyrillic = 0x0494; + t.Ghestrokecyrillic = 0x0492; + t.Gheupturncyrillic = 0x0490; + t.Ghook = 0x0193; + t.Gimarmenian = 0x0533; + t.Gjecyrillic = 0x0403; + t.Gmacron = 0x1e20; + t.Gmonospace = 0xff27; + t.Grave = 0xf6ce; + t.Gravesmall = 0xf760; + t.Gsmall = 0xf767; + t.Gsmallhook = 0x029b; + t.Gstroke = 0x01e4; + t.H = 0x0048; + t.H18533 = 0x25cf; + t.H18543 = 0x25aa; + t.H18551 = 0x25ab; + t.H22073 = 0x25a1; + t.HPsquare = 0x33cb; + t.Haabkhasiancyrillic = 0x04a8; + t.Hadescendercyrillic = 0x04b2; + t.Hardsigncyrillic = 0x042a; + t.Hbar = 0x0126; + t.Hbrevebelow = 0x1e2a; + t.Hcedilla = 0x1e28; + t.Hcircle = 0x24bd; + t.Hcircumflex = 0x0124; + t.Hdieresis = 0x1e26; + t.Hdotaccent = 0x1e22; + t.Hdotbelow = 0x1e24; + t.Hmonospace = 0xff28; + t.Hoarmenian = 0x0540; + t.Horicoptic = 0x03e8; + t.Hsmall = 0xf768; + t.Hungarumlaut = 0xf6cf; + t.Hungarumlautsmall = 0xf6f8; + t.Hzsquare = 0x3390; + t.I = 0x0049; + t.IAcyrillic = 0x042f; + t.IJ = 0x0132; + t.IUcyrillic = 0x042e; + t.Iacute = 0x00cd; + t.Iacutesmall = 0xf7ed; + t.Ibreve = 0x012c; + t.Icaron = 0x01cf; + t.Icircle = 0x24be; + t.Icircumflex = 0x00ce; + t.Icircumflexsmall = 0xf7ee; + t.Icyrillic = 0x0406; + t.Idblgrave = 0x0208; + t.Idieresis = 0x00cf; + t.Idieresisacute = 0x1e2e; + t.Idieresiscyrillic = 0x04e4; + t.Idieresissmall = 0xf7ef; + t.Idot = 0x0130; + t.Idotaccent = 0x0130; + t.Idotbelow = 0x1eca; + t.Iebrevecyrillic = 0x04d6; + t.Iecyrillic = 0x0415; + t.Ifraktur = 0x2111; + t.Igrave = 0x00cc; + t.Igravesmall = 0xf7ec; + t.Ihookabove = 0x1ec8; + t.Iicyrillic = 0x0418; + t.Iinvertedbreve = 0x020a; + t.Iishortcyrillic = 0x0419; + t.Imacron = 0x012a; + t.Imacroncyrillic = 0x04e2; + t.Imonospace = 0xff29; + t.Iniarmenian = 0x053b; + t.Iocyrillic = 0x0401; + t.Iogonek = 0x012e; + t.Iota = 0x0399; + t.Iotaafrican = 0x0196; + t.Iotadieresis = 0x03aa; + t.Iotatonos = 0x038a; + t.Ismall = 0xf769; + t.Istroke = 0x0197; + t.Itilde = 0x0128; + t.Itildebelow = 0x1e2c; + t.Izhitsacyrillic = 0x0474; + t.Izhitsadblgravecyrillic = 0x0476; + t.J = 0x004a; + t.Jaarmenian = 0x0541; + t.Jcircle = 0x24bf; + t.Jcircumflex = 0x0134; + t.Jecyrillic = 0x0408; + t.Jheharmenian = 0x054b; + t.Jmonospace = 0xff2a; + t.Jsmall = 0xf76a; + t.K = 0x004b; + t.KBsquare = 0x3385; + t.KKsquare = 0x33cd; + t.Kabashkircyrillic = 0x04a0; + t.Kacute = 0x1e30; + t.Kacyrillic = 0x041a; + t.Kadescendercyrillic = 0x049a; + t.Kahookcyrillic = 0x04c3; + t.Kappa = 0x039a; + t.Kastrokecyrillic = 0x049e; + t.Kaverticalstrokecyrillic = 0x049c; + t.Kcaron = 0x01e8; + t.Kcedilla = 0x0136; + t.Kcircle = 0x24c0; + t.Kcommaaccent = 0x0136; + t.Kdotbelow = 0x1e32; + t.Keharmenian = 0x0554; + t.Kenarmenian = 0x053f; + t.Khacyrillic = 0x0425; + t.Kheicoptic = 0x03e6; + t.Khook = 0x0198; + t.Kjecyrillic = 0x040c; + t.Klinebelow = 0x1e34; + t.Kmonospace = 0xff2b; + t.Koppacyrillic = 0x0480; + t.Koppagreek = 0x03de; + t.Ksicyrillic = 0x046e; + t.Ksmall = 0xf76b; + t.L = 0x004c; + t.LJ = 0x01c7; + t.LL = 0xf6bf; + t.Lacute = 0x0139; + t.Lambda = 0x039b; + t.Lcaron = 0x013d; + t.Lcedilla = 0x013b; + t.Lcircle = 0x24c1; + t.Lcircumflexbelow = 0x1e3c; + t.Lcommaaccent = 0x013b; + t.Ldot = 0x013f; + t.Ldotaccent = 0x013f; + t.Ldotbelow = 0x1e36; + t.Ldotbelowmacron = 0x1e38; + t.Liwnarmenian = 0x053c; + t.Lj = 0x01c8; + t.Ljecyrillic = 0x0409; + t.Llinebelow = 0x1e3a; + t.Lmonospace = 0xff2c; + t.Lslash = 0x0141; + t.Lslashsmall = 0xf6f9; + t.Lsmall = 0xf76c; + t.M = 0x004d; + t.MBsquare = 0x3386; + t.Macron = 0xf6d0; + t.Macronsmall = 0xf7af; + t.Macute = 0x1e3e; + t.Mcircle = 0x24c2; + t.Mdotaccent = 0x1e40; + t.Mdotbelow = 0x1e42; + t.Menarmenian = 0x0544; + t.Mmonospace = 0xff2d; + t.Msmall = 0xf76d; + t.Mturned = 0x019c; + t.Mu = 0x039c; + t.N = 0x004e; + t.NJ = 0x01ca; + t.Nacute = 0x0143; + t.Ncaron = 0x0147; + t.Ncedilla = 0x0145; + t.Ncircle = 0x24c3; + t.Ncircumflexbelow = 0x1e4a; + t.Ncommaaccent = 0x0145; + t.Ndotaccent = 0x1e44; + t.Ndotbelow = 0x1e46; + t.Nhookleft = 0x019d; + t.Nineroman = 0x2168; + t.Nj = 0x01cb; + t.Njecyrillic = 0x040a; + t.Nlinebelow = 0x1e48; + t.Nmonospace = 0xff2e; + t.Nowarmenian = 0x0546; + t.Nsmall = 0xf76e; + t.Ntilde = 0x00d1; + t.Ntildesmall = 0xf7f1; + t.Nu = 0x039d; + t.O = 0x004f; + t.OE = 0x0152; + t.OEsmall = 0xf6fa; + t.Oacute = 0x00d3; + t.Oacutesmall = 0xf7f3; + t.Obarredcyrillic = 0x04e8; + t.Obarreddieresiscyrillic = 0x04ea; + t.Obreve = 0x014e; + t.Ocaron = 0x01d1; + t.Ocenteredtilde = 0x019f; + t.Ocircle = 0x24c4; + t.Ocircumflex = 0x00d4; + t.Ocircumflexacute = 0x1ed0; + t.Ocircumflexdotbelow = 0x1ed8; + t.Ocircumflexgrave = 0x1ed2; + t.Ocircumflexhookabove = 0x1ed4; + t.Ocircumflexsmall = 0xf7f4; + t.Ocircumflextilde = 0x1ed6; + t.Ocyrillic = 0x041e; + t.Odblacute = 0x0150; + t.Odblgrave = 0x020c; + t.Odieresis = 0x00d6; + t.Odieresiscyrillic = 0x04e6; + t.Odieresissmall = 0xf7f6; + t.Odotbelow = 0x1ecc; + t.Ogoneksmall = 0xf6fb; + t.Ograve = 0x00d2; + t.Ogravesmall = 0xf7f2; + t.Oharmenian = 0x0555; + t.Ohm = 0x2126; + t.Ohookabove = 0x1ece; + t.Ohorn = 0x01a0; + t.Ohornacute = 0x1eda; + t.Ohorndotbelow = 0x1ee2; + t.Ohorngrave = 0x1edc; + t.Ohornhookabove = 0x1ede; + t.Ohorntilde = 0x1ee0; + t.Ohungarumlaut = 0x0150; + t.Oi = 0x01a2; + t.Oinvertedbreve = 0x020e; + t.Omacron = 0x014c; + t.Omacronacute = 0x1e52; + t.Omacrongrave = 0x1e50; + t.Omega = 0x2126; + t.Omegacyrillic = 0x0460; + t.Omegagreek = 0x03a9; + t.Omegaroundcyrillic = 0x047a; + t.Omegatitlocyrillic = 0x047c; + t.Omegatonos = 0x038f; + t.Omicron = 0x039f; + t.Omicrontonos = 0x038c; + t.Omonospace = 0xff2f; + t.Oneroman = 0x2160; + t.Oogonek = 0x01ea; + t.Oogonekmacron = 0x01ec; + t.Oopen = 0x0186; + t.Oslash = 0x00d8; + t.Oslashacute = 0x01fe; + t.Oslashsmall = 0xf7f8; + t.Osmall = 0xf76f; + t.Ostrokeacute = 0x01fe; + t.Otcyrillic = 0x047e; + t.Otilde = 0x00d5; + t.Otildeacute = 0x1e4c; + t.Otildedieresis = 0x1e4e; + t.Otildesmall = 0xf7f5; + t.P = 0x0050; + t.Pacute = 0x1e54; + t.Pcircle = 0x24c5; + t.Pdotaccent = 0x1e56; + t.Pecyrillic = 0x041f; + t.Peharmenian = 0x054a; + t.Pemiddlehookcyrillic = 0x04a6; + t.Phi = 0x03a6; + t.Phook = 0x01a4; + t.Pi = 0x03a0; + t.Piwrarmenian = 0x0553; + t.Pmonospace = 0xff30; + t.Psi = 0x03a8; + t.Psicyrillic = 0x0470; + t.Psmall = 0xf770; + t.Q = 0x0051; + t.Qcircle = 0x24c6; + t.Qmonospace = 0xff31; + t.Qsmall = 0xf771; + t.R = 0x0052; + t.Raarmenian = 0x054c; + t.Racute = 0x0154; + t.Rcaron = 0x0158; + t.Rcedilla = 0x0156; + t.Rcircle = 0x24c7; + t.Rcommaaccent = 0x0156; + t.Rdblgrave = 0x0210; + t.Rdotaccent = 0x1e58; + t.Rdotbelow = 0x1e5a; + t.Rdotbelowmacron = 0x1e5c; + t.Reharmenian = 0x0550; + t.Rfraktur = 0x211c; + t.Rho = 0x03a1; + t.Ringsmall = 0xf6fc; + t.Rinvertedbreve = 0x0212; + t.Rlinebelow = 0x1e5e; + t.Rmonospace = 0xff32; + t.Rsmall = 0xf772; + t.Rsmallinverted = 0x0281; + t.Rsmallinvertedsuperior = 0x02b6; + t.S = 0x0053; + t.SF010000 = 0x250c; + t.SF020000 = 0x2514; + t.SF030000 = 0x2510; + t.SF040000 = 0x2518; + t.SF050000 = 0x253c; + t.SF060000 = 0x252c; + t.SF070000 = 0x2534; + t.SF080000 = 0x251c; + t.SF090000 = 0x2524; + t.SF100000 = 0x2500; + t.SF110000 = 0x2502; + t.SF190000 = 0x2561; + t.SF200000 = 0x2562; + t.SF210000 = 0x2556; + t.SF220000 = 0x2555; + t.SF230000 = 0x2563; + t.SF240000 = 0x2551; + t.SF250000 = 0x2557; + t.SF260000 = 0x255d; + t.SF270000 = 0x255c; + t.SF280000 = 0x255b; + t.SF360000 = 0x255e; + t.SF370000 = 0x255f; + t.SF380000 = 0x255a; + t.SF390000 = 0x2554; + t.SF400000 = 0x2569; + t.SF410000 = 0x2566; + t.SF420000 = 0x2560; + t.SF430000 = 0x2550; + t.SF440000 = 0x256c; + t.SF450000 = 0x2567; + t.SF460000 = 0x2568; + t.SF470000 = 0x2564; + t.SF480000 = 0x2565; + t.SF490000 = 0x2559; + t.SF500000 = 0x2558; + t.SF510000 = 0x2552; + t.SF520000 = 0x2553; + t.SF530000 = 0x256b; + t.SF540000 = 0x256a; + t.Sacute = 0x015a; + t.Sacutedotaccent = 0x1e64; + t.Sampigreek = 0x03e0; + t.Scaron = 0x0160; + t.Scarondotaccent = 0x1e66; + t.Scaronsmall = 0xf6fd; + t.Scedilla = 0x015e; + t.Schwa = 0x018f; + t.Schwacyrillic = 0x04d8; + t.Schwadieresiscyrillic = 0x04da; + t.Scircle = 0x24c8; + t.Scircumflex = 0x015c; + t.Scommaaccent = 0x0218; + t.Sdotaccent = 0x1e60; + t.Sdotbelow = 0x1e62; + t.Sdotbelowdotaccent = 0x1e68; + t.Seharmenian = 0x054d; + t.Sevenroman = 0x2166; + t.Shaarmenian = 0x0547; + t.Shacyrillic = 0x0428; + t.Shchacyrillic = 0x0429; + t.Sheicoptic = 0x03e2; + t.Shhacyrillic = 0x04ba; + t.Shimacoptic = 0x03ec; + t.Sigma = 0x03a3; + t.Sixroman = 0x2165; + t.Smonospace = 0xff33; + t.Softsigncyrillic = 0x042c; + t.Ssmall = 0xf773; + t.Stigmagreek = 0x03da; + t.T = 0x0054; + t.Tau = 0x03a4; + t.Tbar = 0x0166; + t.Tcaron = 0x0164; + t.Tcedilla = 0x0162; + t.Tcircle = 0x24c9; + t.Tcircumflexbelow = 0x1e70; + t.Tcommaaccent = 0x0162; + t.Tdotaccent = 0x1e6a; + t.Tdotbelow = 0x1e6c; + t.Tecyrillic = 0x0422; + t.Tedescendercyrillic = 0x04ac; + t.Tenroman = 0x2169; + t.Tetsecyrillic = 0x04b4; + t.Theta = 0x0398; + t.Thook = 0x01ac; + t.Thorn = 0x00de; + t.Thornsmall = 0xf7fe; + t.Threeroman = 0x2162; + t.Tildesmall = 0xf6fe; + t.Tiwnarmenian = 0x054f; + t.Tlinebelow = 0x1e6e; + t.Tmonospace = 0xff34; + t.Toarmenian = 0x0539; + t.Tonefive = 0x01bc; + t.Tonesix = 0x0184; + t.Tonetwo = 0x01a7; + t.Tretroflexhook = 0x01ae; + t.Tsecyrillic = 0x0426; + t.Tshecyrillic = 0x040b; + t.Tsmall = 0xf774; + t.Twelveroman = 0x216b; + t.Tworoman = 0x2161; + t.U = 0x0055; + t.Uacute = 0x00da; + t.Uacutesmall = 0xf7fa; + t.Ubreve = 0x016c; + t.Ucaron = 0x01d3; + t.Ucircle = 0x24ca; + t.Ucircumflex = 0x00db; + t.Ucircumflexbelow = 0x1e76; + t.Ucircumflexsmall = 0xf7fb; + t.Ucyrillic = 0x0423; + t.Udblacute = 0x0170; + t.Udblgrave = 0x0214; + t.Udieresis = 0x00dc; + t.Udieresisacute = 0x01d7; + t.Udieresisbelow = 0x1e72; + t.Udieresiscaron = 0x01d9; + t.Udieresiscyrillic = 0x04f0; + t.Udieresisgrave = 0x01db; + t.Udieresismacron = 0x01d5; + t.Udieresissmall = 0xf7fc; + t.Udotbelow = 0x1ee4; + t.Ugrave = 0x00d9; + t.Ugravesmall = 0xf7f9; + t.Uhookabove = 0x1ee6; + t.Uhorn = 0x01af; + t.Uhornacute = 0x1ee8; + t.Uhorndotbelow = 0x1ef0; + t.Uhorngrave = 0x1eea; + t.Uhornhookabove = 0x1eec; + t.Uhorntilde = 0x1eee; + t.Uhungarumlaut = 0x0170; + t.Uhungarumlautcyrillic = 0x04f2; + t.Uinvertedbreve = 0x0216; + t.Ukcyrillic = 0x0478; + t.Umacron = 0x016a; + t.Umacroncyrillic = 0x04ee; + t.Umacrondieresis = 0x1e7a; + t.Umonospace = 0xff35; + t.Uogonek = 0x0172; + t.Upsilon = 0x03a5; + t.Upsilon1 = 0x03d2; + t.Upsilonacutehooksymbolgreek = 0x03d3; + t.Upsilonafrican = 0x01b1; + t.Upsilondieresis = 0x03ab; + t.Upsilondieresishooksymbolgreek = 0x03d4; + t.Upsilonhooksymbol = 0x03d2; + t.Upsilontonos = 0x038e; + t.Uring = 0x016e; + t.Ushortcyrillic = 0x040e; + t.Usmall = 0xf775; + t.Ustraightcyrillic = 0x04ae; + t.Ustraightstrokecyrillic = 0x04b0; + t.Utilde = 0x0168; + t.Utildeacute = 0x1e78; + t.Utildebelow = 0x1e74; + t.V = 0x0056; + t.Vcircle = 0x24cb; + t.Vdotbelow = 0x1e7e; + t.Vecyrillic = 0x0412; + t.Vewarmenian = 0x054e; + t.Vhook = 0x01b2; + t.Vmonospace = 0xff36; + t.Voarmenian = 0x0548; + t.Vsmall = 0xf776; + t.Vtilde = 0x1e7c; + t.W = 0x0057; + t.Wacute = 0x1e82; + t.Wcircle = 0x24cc; + t.Wcircumflex = 0x0174; + t.Wdieresis = 0x1e84; + t.Wdotaccent = 0x1e86; + t.Wdotbelow = 0x1e88; + t.Wgrave = 0x1e80; + t.Wmonospace = 0xff37; + t.Wsmall = 0xf777; + t.X = 0x0058; + t.Xcircle = 0x24cd; + t.Xdieresis = 0x1e8c; + t.Xdotaccent = 0x1e8a; + t.Xeharmenian = 0x053d; + t.Xi = 0x039e; + t.Xmonospace = 0xff38; + t.Xsmall = 0xf778; + t.Y = 0x0059; + t.Yacute = 0x00dd; + t.Yacutesmall = 0xf7fd; + t.Yatcyrillic = 0x0462; + t.Ycircle = 0x24ce; + t.Ycircumflex = 0x0176; + t.Ydieresis = 0x0178; + t.Ydieresissmall = 0xf7ff; + t.Ydotaccent = 0x1e8e; + t.Ydotbelow = 0x1ef4; + t.Yericyrillic = 0x042b; + t.Yerudieresiscyrillic = 0x04f8; + t.Ygrave = 0x1ef2; + t.Yhook = 0x01b3; + t.Yhookabove = 0x1ef6; + t.Yiarmenian = 0x0545; + t.Yicyrillic = 0x0407; + t.Yiwnarmenian = 0x0552; + t.Ymonospace = 0xff39; + t.Ysmall = 0xf779; + t.Ytilde = 0x1ef8; + t.Yusbigcyrillic = 0x046a; + t.Yusbigiotifiedcyrillic = 0x046c; + t.Yuslittlecyrillic = 0x0466; + t.Yuslittleiotifiedcyrillic = 0x0468; + t.Z = 0x005a; + t.Zaarmenian = 0x0536; + t.Zacute = 0x0179; + t.Zcaron = 0x017d; + t.Zcaronsmall = 0xf6ff; + t.Zcircle = 0x24cf; + t.Zcircumflex = 0x1e90; + t.Zdot = 0x017b; + t.Zdotaccent = 0x017b; + t.Zdotbelow = 0x1e92; + t.Zecyrillic = 0x0417; + t.Zedescendercyrillic = 0x0498; + t.Zedieresiscyrillic = 0x04de; + t.Zeta = 0x0396; + t.Zhearmenian = 0x053a; + t.Zhebrevecyrillic = 0x04c1; + t.Zhecyrillic = 0x0416; + t.Zhedescendercyrillic = 0x0496; + t.Zhedieresiscyrillic = 0x04dc; + t.Zlinebelow = 0x1e94; + t.Zmonospace = 0xff3a; + t.Zsmall = 0xf77a; + t.Zstroke = 0x01b5; + t.a = 0x0061; + t.aabengali = 0x0986; + t.aacute = 0x00e1; + t.aadeva = 0x0906; + t.aagujarati = 0x0a86; + t.aagurmukhi = 0x0a06; + t.aamatragurmukhi = 0x0a3e; + t.aarusquare = 0x3303; + t.aavowelsignbengali = 0x09be; + t.aavowelsigndeva = 0x093e; + t.aavowelsigngujarati = 0x0abe; + t.abbreviationmarkarmenian = 0x055f; + t.abbreviationsigndeva = 0x0970; + t.abengali = 0x0985; + t.abopomofo = 0x311a; + t.abreve = 0x0103; + t.abreveacute = 0x1eaf; + t.abrevecyrillic = 0x04d1; + t.abrevedotbelow = 0x1eb7; + t.abrevegrave = 0x1eb1; + t.abrevehookabove = 0x1eb3; + t.abrevetilde = 0x1eb5; + t.acaron = 0x01ce; + t.acircle = 0x24d0; + t.acircumflex = 0x00e2; + t.acircumflexacute = 0x1ea5; + t.acircumflexdotbelow = 0x1ead; + t.acircumflexgrave = 0x1ea7; + t.acircumflexhookabove = 0x1ea9; + t.acircumflextilde = 0x1eab; + t.acute = 0x00b4; + t.acutebelowcmb = 0x0317; + t.acutecmb = 0x0301; + t.acutecomb = 0x0301; + t.acutedeva = 0x0954; + t.acutelowmod = 0x02cf; + t.acutetonecmb = 0x0341; + t.acyrillic = 0x0430; + t.adblgrave = 0x0201; + t.addakgurmukhi = 0x0a71; + t.adeva = 0x0905; + t.adieresis = 0x00e4; + t.adieresiscyrillic = 0x04d3; + t.adieresismacron = 0x01df; + t.adotbelow = 0x1ea1; + t.adotmacron = 0x01e1; + t.ae = 0x00e6; + t.aeacute = 0x01fd; + t.aekorean = 0x3150; + t.aemacron = 0x01e3; + t.afii00208 = 0x2015; + t.afii08941 = 0x20a4; + t.afii10017 = 0x0410; + t.afii10018 = 0x0411; + t.afii10019 = 0x0412; + t.afii10020 = 0x0413; + t.afii10021 = 0x0414; + t.afii10022 = 0x0415; + t.afii10023 = 0x0401; + t.afii10024 = 0x0416; + t.afii10025 = 0x0417; + t.afii10026 = 0x0418; + t.afii10027 = 0x0419; + t.afii10028 = 0x041a; + t.afii10029 = 0x041b; + t.afii10030 = 0x041c; + t.afii10031 = 0x041d; + t.afii10032 = 0x041e; + t.afii10033 = 0x041f; + t.afii10034 = 0x0420; + t.afii10035 = 0x0421; + t.afii10036 = 0x0422; + t.afii10037 = 0x0423; + t.afii10038 = 0x0424; + t.afii10039 = 0x0425; + t.afii10040 = 0x0426; + t.afii10041 = 0x0427; + t.afii10042 = 0x0428; + t.afii10043 = 0x0429; + t.afii10044 = 0x042a; + t.afii10045 = 0x042b; + t.afii10046 = 0x042c; + t.afii10047 = 0x042d; + t.afii10048 = 0x042e; + t.afii10049 = 0x042f; + t.afii10050 = 0x0490; + t.afii10051 = 0x0402; + t.afii10052 = 0x0403; + t.afii10053 = 0x0404; + t.afii10054 = 0x0405; + t.afii10055 = 0x0406; + t.afii10056 = 0x0407; + t.afii10057 = 0x0408; + t.afii10058 = 0x0409; + t.afii10059 = 0x040a; + t.afii10060 = 0x040b; + t.afii10061 = 0x040c; + t.afii10062 = 0x040e; + t.afii10063 = 0xf6c4; + t.afii10064 = 0xf6c5; + t.afii10065 = 0x0430; + t.afii10066 = 0x0431; + t.afii10067 = 0x0432; + t.afii10068 = 0x0433; + t.afii10069 = 0x0434; + t.afii10070 = 0x0435; + t.afii10071 = 0x0451; + t.afii10072 = 0x0436; + t.afii10073 = 0x0437; + t.afii10074 = 0x0438; + t.afii10075 = 0x0439; + t.afii10076 = 0x043a; + t.afii10077 = 0x043b; + t.afii10078 = 0x043c; + t.afii10079 = 0x043d; + t.afii10080 = 0x043e; + t.afii10081 = 0x043f; + t.afii10082 = 0x0440; + t.afii10083 = 0x0441; + t.afii10084 = 0x0442; + t.afii10085 = 0x0443; + t.afii10086 = 0x0444; + t.afii10087 = 0x0445; + t.afii10088 = 0x0446; + t.afii10089 = 0x0447; + t.afii10090 = 0x0448; + t.afii10091 = 0x0449; + t.afii10092 = 0x044a; + t.afii10093 = 0x044b; + t.afii10094 = 0x044c; + t.afii10095 = 0x044d; + t.afii10096 = 0x044e; + t.afii10097 = 0x044f; + t.afii10098 = 0x0491; + t.afii10099 = 0x0452; + t.afii10100 = 0x0453; + t.afii10101 = 0x0454; + t.afii10102 = 0x0455; + t.afii10103 = 0x0456; + t.afii10104 = 0x0457; + t.afii10105 = 0x0458; + t.afii10106 = 0x0459; + t.afii10107 = 0x045a; + t.afii10108 = 0x045b; + t.afii10109 = 0x045c; + t.afii10110 = 0x045e; + t.afii10145 = 0x040f; + t.afii10146 = 0x0462; + t.afii10147 = 0x0472; + t.afii10148 = 0x0474; + t.afii10192 = 0xf6c6; + t.afii10193 = 0x045f; + t.afii10194 = 0x0463; + t.afii10195 = 0x0473; + t.afii10196 = 0x0475; + t.afii10831 = 0xf6c7; + t.afii10832 = 0xf6c8; + t.afii10846 = 0x04d9; + t.afii299 = 0x200e; + t.afii300 = 0x200f; + t.afii301 = 0x200d; + t.afii57381 = 0x066a; + t.afii57388 = 0x060c; + t.afii57392 = 0x0660; + t.afii57393 = 0x0661; + t.afii57394 = 0x0662; + t.afii57395 = 0x0663; + t.afii57396 = 0x0664; + t.afii57397 = 0x0665; + t.afii57398 = 0x0666; + t.afii57399 = 0x0667; + t.afii57400 = 0x0668; + t.afii57401 = 0x0669; + t.afii57403 = 0x061b; + t.afii57407 = 0x061f; + t.afii57409 = 0x0621; + t.afii57410 = 0x0622; + t.afii57411 = 0x0623; + t.afii57412 = 0x0624; + t.afii57413 = 0x0625; + t.afii57414 = 0x0626; + t.afii57415 = 0x0627; + t.afii57416 = 0x0628; + t.afii57417 = 0x0629; + t.afii57418 = 0x062a; + t.afii57419 = 0x062b; + t.afii57420 = 0x062c; + t.afii57421 = 0x062d; + t.afii57422 = 0x062e; + t.afii57423 = 0x062f; + t.afii57424 = 0x0630; + t.afii57425 = 0x0631; + t.afii57426 = 0x0632; + t.afii57427 = 0x0633; + t.afii57428 = 0x0634; + t.afii57429 = 0x0635; + t.afii57430 = 0x0636; + t.afii57431 = 0x0637; + t.afii57432 = 0x0638; + t.afii57433 = 0x0639; + t.afii57434 = 0x063a; + t.afii57440 = 0x0640; + t.afii57441 = 0x0641; + t.afii57442 = 0x0642; + t.afii57443 = 0x0643; + t.afii57444 = 0x0644; + t.afii57445 = 0x0645; + t.afii57446 = 0x0646; + t.afii57448 = 0x0648; + t.afii57449 = 0x0649; + t.afii57450 = 0x064a; + t.afii57451 = 0x064b; + t.afii57452 = 0x064c; + t.afii57453 = 0x064d; + t.afii57454 = 0x064e; + t.afii57455 = 0x064f; + t.afii57456 = 0x0650; + t.afii57457 = 0x0651; + t.afii57458 = 0x0652; + t.afii57470 = 0x0647; + t.afii57505 = 0x06a4; + t.afii57506 = 0x067e; + t.afii57507 = 0x0686; + t.afii57508 = 0x0698; + t.afii57509 = 0x06af; + t.afii57511 = 0x0679; + t.afii57512 = 0x0688; + t.afii57513 = 0x0691; + t.afii57514 = 0x06ba; + t.afii57519 = 0x06d2; + t.afii57534 = 0x06d5; + t.afii57636 = 0x20aa; + t.afii57645 = 0x05be; + t.afii57658 = 0x05c3; + t.afii57664 = 0x05d0; + t.afii57665 = 0x05d1; + t.afii57666 = 0x05d2; + t.afii57667 = 0x05d3; + t.afii57668 = 0x05d4; + t.afii57669 = 0x05d5; + t.afii57670 = 0x05d6; + t.afii57671 = 0x05d7; + t.afii57672 = 0x05d8; + t.afii57673 = 0x05d9; + t.afii57674 = 0x05da; + t.afii57675 = 0x05db; + t.afii57676 = 0x05dc; + t.afii57677 = 0x05dd; + t.afii57678 = 0x05de; + t.afii57679 = 0x05df; + t.afii57680 = 0x05e0; + t.afii57681 = 0x05e1; + t.afii57682 = 0x05e2; + t.afii57683 = 0x05e3; + t.afii57684 = 0x05e4; + t.afii57685 = 0x05e5; + t.afii57686 = 0x05e6; + t.afii57687 = 0x05e7; + t.afii57688 = 0x05e8; + t.afii57689 = 0x05e9; + t.afii57690 = 0x05ea; + t.afii57694 = 0xfb2a; + t.afii57695 = 0xfb2b; + t.afii57700 = 0xfb4b; + t.afii57705 = 0xfb1f; + t.afii57716 = 0x05f0; + t.afii57717 = 0x05f1; + t.afii57718 = 0x05f2; + t.afii57723 = 0xfb35; + t.afii57793 = 0x05b4; + t.afii57794 = 0x05b5; + t.afii57795 = 0x05b6; + t.afii57796 = 0x05bb; + t.afii57797 = 0x05b8; + t.afii57798 = 0x05b7; + t.afii57799 = 0x05b0; + t.afii57800 = 0x05b2; + t.afii57801 = 0x05b1; + t.afii57802 = 0x05b3; + t.afii57803 = 0x05c2; + t.afii57804 = 0x05c1; + t.afii57806 = 0x05b9; + t.afii57807 = 0x05bc; + t.afii57839 = 0x05bd; + t.afii57841 = 0x05bf; + t.afii57842 = 0x05c0; + t.afii57929 = 0x02bc; + t.afii61248 = 0x2105; + t.afii61289 = 0x2113; + t.afii61352 = 0x2116; + t.afii61573 = 0x202c; + t.afii61574 = 0x202d; + t.afii61575 = 0x202e; + t.afii61664 = 0x200c; + t.afii63167 = 0x066d; + t.afii64937 = 0x02bd; + t.agrave = 0x00e0; + t.agujarati = 0x0a85; + t.agurmukhi = 0x0a05; + t.ahiragana = 0x3042; + t.ahookabove = 0x1ea3; + t.aibengali = 0x0990; + t.aibopomofo = 0x311e; + t.aideva = 0x0910; + t.aiecyrillic = 0x04d5; + t.aigujarati = 0x0a90; + t.aigurmukhi = 0x0a10; + t.aimatragurmukhi = 0x0a48; + t.ainarabic = 0x0639; + t.ainfinalarabic = 0xfeca; + t.aininitialarabic = 0xfecb; + t.ainmedialarabic = 0xfecc; + t.ainvertedbreve = 0x0203; + t.aivowelsignbengali = 0x09c8; + t.aivowelsigndeva = 0x0948; + t.aivowelsigngujarati = 0x0ac8; + t.akatakana = 0x30a2; + t.akatakanahalfwidth = 0xff71; + t.akorean = 0x314f; + t.alef = 0x05d0; + t.alefarabic = 0x0627; + t.alefdageshhebrew = 0xfb30; + t.aleffinalarabic = 0xfe8e; + t.alefhamzaabovearabic = 0x0623; + t.alefhamzaabovefinalarabic = 0xfe84; + t.alefhamzabelowarabic = 0x0625; + t.alefhamzabelowfinalarabic = 0xfe88; + t.alefhebrew = 0x05d0; + t.aleflamedhebrew = 0xfb4f; + t.alefmaddaabovearabic = 0x0622; + t.alefmaddaabovefinalarabic = 0xfe82; + t.alefmaksuraarabic = 0x0649; + t.alefmaksurafinalarabic = 0xfef0; + t.alefmaksurainitialarabic = 0xfef3; + t.alefmaksuramedialarabic = 0xfef4; + t.alefpatahhebrew = 0xfb2e; + t.alefqamatshebrew = 0xfb2f; + t.aleph = 0x2135; + t.allequal = 0x224c; + t.alpha = 0x03b1; + t.alphatonos = 0x03ac; + t.amacron = 0x0101; + t.amonospace = 0xff41; + t.ampersand = 0x0026; + t.ampersandmonospace = 0xff06; + t.ampersandsmall = 0xf726; + t.amsquare = 0x33c2; + t.anbopomofo = 0x3122; + t.angbopomofo = 0x3124; + t.angbracketleft = 0x3008; + t.angbracketright = 0x3009; + t.angkhankhuthai = 0x0e5a; + t.angle = 0x2220; + t.anglebracketleft = 0x3008; + t.anglebracketleftvertical = 0xfe3f; + t.anglebracketright = 0x3009; + t.anglebracketrightvertical = 0xfe40; + t.angleleft = 0x2329; + t.angleright = 0x232a; + t.angstrom = 0x212b; + t.anoteleia = 0x0387; + t.anudattadeva = 0x0952; + t.anusvarabengali = 0x0982; + t.anusvaradeva = 0x0902; + t.anusvaragujarati = 0x0a82; + t.aogonek = 0x0105; + t.apaatosquare = 0x3300; + t.aparen = 0x249c; + t.apostrophearmenian = 0x055a; + t.apostrophemod = 0x02bc; + t.apple = 0xf8ff; + t.approaches = 0x2250; + t.approxequal = 0x2248; + t.approxequalorimage = 0x2252; + t.approximatelyequal = 0x2245; + t.araeaekorean = 0x318e; + t.araeakorean = 0x318d; + t.arc = 0x2312; + t.arighthalfring = 0x1e9a; + t.aring = 0x00e5; + t.aringacute = 0x01fb; + t.aringbelow = 0x1e01; + t.arrowboth = 0x2194; + t.arrowdashdown = 0x21e3; + t.arrowdashleft = 0x21e0; + t.arrowdashright = 0x21e2; + t.arrowdashup = 0x21e1; + t.arrowdblboth = 0x21d4; + t.arrowdbldown = 0x21d3; + t.arrowdblleft = 0x21d0; + t.arrowdblright = 0x21d2; + t.arrowdblup = 0x21d1; + t.arrowdown = 0x2193; + t.arrowdownleft = 0x2199; + t.arrowdownright = 0x2198; + t.arrowdownwhite = 0x21e9; + t.arrowheaddownmod = 0x02c5; + t.arrowheadleftmod = 0x02c2; + t.arrowheadrightmod = 0x02c3; + t.arrowheadupmod = 0x02c4; + t.arrowhorizex = 0xf8e7; + t.arrowleft = 0x2190; + t.arrowleftdbl = 0x21d0; + t.arrowleftdblstroke = 0x21cd; + t.arrowleftoverright = 0x21c6; + t.arrowleftwhite = 0x21e6; + t.arrowright = 0x2192; + t.arrowrightdblstroke = 0x21cf; + t.arrowrightheavy = 0x279e; + t.arrowrightoverleft = 0x21c4; + t.arrowrightwhite = 0x21e8; + t.arrowtableft = 0x21e4; + t.arrowtabright = 0x21e5; + t.arrowup = 0x2191; + t.arrowupdn = 0x2195; + t.arrowupdnbse = 0x21a8; + t.arrowupdownbase = 0x21a8; + t.arrowupleft = 0x2196; + t.arrowupleftofdown = 0x21c5; + t.arrowupright = 0x2197; + t.arrowupwhite = 0x21e7; + t.arrowvertex = 0xf8e6; + t.asciicircum = 0x005e; + t.asciicircummonospace = 0xff3e; + t.asciitilde = 0x007e; + t.asciitildemonospace = 0xff5e; + t.ascript = 0x0251; + t.ascriptturned = 0x0252; + t.asmallhiragana = 0x3041; + t.asmallkatakana = 0x30a1; + t.asmallkatakanahalfwidth = 0xff67; + t.asterisk = 0x002a; + t.asteriskaltonearabic = 0x066d; + t.asteriskarabic = 0x066d; + t.asteriskmath = 0x2217; + t.asteriskmonospace = 0xff0a; + t.asterisksmall = 0xfe61; + t.asterism = 0x2042; + t.asuperior = 0xf6e9; + t.asymptoticallyequal = 0x2243; + t.at = 0x0040; + t.atilde = 0x00e3; + t.atmonospace = 0xff20; + t.atsmall = 0xfe6b; + t.aturned = 0x0250; + t.aubengali = 0x0994; + t.aubopomofo = 0x3120; + t.audeva = 0x0914; + t.augujarati = 0x0a94; + t.augurmukhi = 0x0a14; + t.aulengthmarkbengali = 0x09d7; + t.aumatragurmukhi = 0x0a4c; + t.auvowelsignbengali = 0x09cc; + t.auvowelsigndeva = 0x094c; + t.auvowelsigngujarati = 0x0acc; + t.avagrahadeva = 0x093d; + t.aybarmenian = 0x0561; + t.ayin = 0x05e2; + t.ayinaltonehebrew = 0xfb20; + t.ayinhebrew = 0x05e2; + t.b = 0x0062; + t.babengali = 0x09ac; + t.backslash = 0x005c; + t.backslashmonospace = 0xff3c; + t.badeva = 0x092c; + t.bagujarati = 0x0aac; + t.bagurmukhi = 0x0a2c; + t.bahiragana = 0x3070; + t.bahtthai = 0x0e3f; + t.bakatakana = 0x30d0; + t.bar = 0x007c; + t.barmonospace = 0xff5c; + t.bbopomofo = 0x3105; + t.bcircle = 0x24d1; + t.bdotaccent = 0x1e03; + t.bdotbelow = 0x1e05; + t.beamedsixteenthnotes = 0x266c; + t.because = 0x2235; + t.becyrillic = 0x0431; + t.beharabic = 0x0628; + t.behfinalarabic = 0xfe90; + t.behinitialarabic = 0xfe91; + t.behiragana = 0x3079; + t.behmedialarabic = 0xfe92; + t.behmeeminitialarabic = 0xfc9f; + t.behmeemisolatedarabic = 0xfc08; + t.behnoonfinalarabic = 0xfc6d; + t.bekatakana = 0x30d9; + t.benarmenian = 0x0562; + t.bet = 0x05d1; + t.beta = 0x03b2; + t.betasymbolgreek = 0x03d0; + t.betdagesh = 0xfb31; + t.betdageshhebrew = 0xfb31; + t.bethebrew = 0x05d1; + t.betrafehebrew = 0xfb4c; + t.bhabengali = 0x09ad; + t.bhadeva = 0x092d; + t.bhagujarati = 0x0aad; + t.bhagurmukhi = 0x0a2d; + t.bhook = 0x0253; + t.bihiragana = 0x3073; + t.bikatakana = 0x30d3; + t.bilabialclick = 0x0298; + t.bindigurmukhi = 0x0a02; + t.birusquare = 0x3331; + t.blackcircle = 0x25cf; + t.blackdiamond = 0x25c6; + t.blackdownpointingtriangle = 0x25bc; + t.blackleftpointingpointer = 0x25c4; + t.blackleftpointingtriangle = 0x25c0; + t.blacklenticularbracketleft = 0x3010; + t.blacklenticularbracketleftvertical = 0xfe3b; + t.blacklenticularbracketright = 0x3011; + t.blacklenticularbracketrightvertical = 0xfe3c; + t.blacklowerlefttriangle = 0x25e3; + t.blacklowerrighttriangle = 0x25e2; + t.blackrectangle = 0x25ac; + t.blackrightpointingpointer = 0x25ba; + t.blackrightpointingtriangle = 0x25b6; + t.blacksmallsquare = 0x25aa; + t.blacksmilingface = 0x263b; + t.blacksquare = 0x25a0; + t.blackstar = 0x2605; + t.blackupperlefttriangle = 0x25e4; + t.blackupperrighttriangle = 0x25e5; + t.blackuppointingsmalltriangle = 0x25b4; + t.blackuppointingtriangle = 0x25b2; + t.blank = 0x2423; + t.blinebelow = 0x1e07; + t.block = 0x2588; + t.bmonospace = 0xff42; + t.bobaimaithai = 0x0e1a; + t.bohiragana = 0x307c; + t.bokatakana = 0x30dc; + t.bparen = 0x249d; + t.bqsquare = 0x33c3; + t.braceex = 0xf8f4; + t.braceleft = 0x007b; + t.braceleftbt = 0xf8f3; + t.braceleftmid = 0xf8f2; + t.braceleftmonospace = 0xff5b; + t.braceleftsmall = 0xfe5b; + t.bracelefttp = 0xf8f1; + t.braceleftvertical = 0xfe37; + t.braceright = 0x007d; + t.bracerightbt = 0xf8fe; + t.bracerightmid = 0xf8fd; + t.bracerightmonospace = 0xff5d; + t.bracerightsmall = 0xfe5c; + t.bracerighttp = 0xf8fc; + t.bracerightvertical = 0xfe38; + t.bracketleft = 0x005b; + t.bracketleftbt = 0xf8f0; + t.bracketleftex = 0xf8ef; + t.bracketleftmonospace = 0xff3b; + t.bracketlefttp = 0xf8ee; + t.bracketright = 0x005d; + t.bracketrightbt = 0xf8fb; + t.bracketrightex = 0xf8fa; + t.bracketrightmonospace = 0xff3d; + t.bracketrighttp = 0xf8f9; + t.breve = 0x02d8; + t.brevebelowcmb = 0x032e; + t.brevecmb = 0x0306; + t.breveinvertedbelowcmb = 0x032f; + t.breveinvertedcmb = 0x0311; + t.breveinverteddoublecmb = 0x0361; + t.bridgebelowcmb = 0x032a; + t.bridgeinvertedbelowcmb = 0x033a; + t.brokenbar = 0x00a6; + t.bstroke = 0x0180; + t.bsuperior = 0xf6ea; + t.btopbar = 0x0183; + t.buhiragana = 0x3076; + t.bukatakana = 0x30d6; + t.bullet = 0x2022; + t.bulletinverse = 0x25d8; + t.bulletoperator = 0x2219; + t.bullseye = 0x25ce; + t.c = 0x0063; + t.caarmenian = 0x056e; + t.cabengali = 0x099a; + t.cacute = 0x0107; + t.cadeva = 0x091a; + t.cagujarati = 0x0a9a; + t.cagurmukhi = 0x0a1a; + t.calsquare = 0x3388; + t.candrabindubengali = 0x0981; + t.candrabinducmb = 0x0310; + t.candrabindudeva = 0x0901; + t.candrabindugujarati = 0x0a81; + t.capslock = 0x21ea; + t.careof = 0x2105; + t.caron = 0x02c7; + t.caronbelowcmb = 0x032c; + t.caroncmb = 0x030c; + t.carriagereturn = 0x21b5; + t.cbopomofo = 0x3118; + t.ccaron = 0x010d; + t.ccedilla = 0x00e7; + t.ccedillaacute = 0x1e09; + t.ccircle = 0x24d2; + t.ccircumflex = 0x0109; + t.ccurl = 0x0255; + t.cdot = 0x010b; + t.cdotaccent = 0x010b; + t.cdsquare = 0x33c5; + t.cedilla = 0x00b8; + t.cedillacmb = 0x0327; + t.cent = 0x00a2; + t.centigrade = 0x2103; + t.centinferior = 0xf6df; + t.centmonospace = 0xffe0; + t.centoldstyle = 0xf7a2; + t.centsuperior = 0xf6e0; + t.chaarmenian = 0x0579; + t.chabengali = 0x099b; + t.chadeva = 0x091b; + t.chagujarati = 0x0a9b; + t.chagurmukhi = 0x0a1b; + t.chbopomofo = 0x3114; + t.cheabkhasiancyrillic = 0x04bd; + t.checkmark = 0x2713; + t.checyrillic = 0x0447; + t.chedescenderabkhasiancyrillic = 0x04bf; + t.chedescendercyrillic = 0x04b7; + t.chedieresiscyrillic = 0x04f5; + t.cheharmenian = 0x0573; + t.chekhakassiancyrillic = 0x04cc; + t.cheverticalstrokecyrillic = 0x04b9; + t.chi = 0x03c7; + t.chieuchacirclekorean = 0x3277; + t.chieuchaparenkorean = 0x3217; + t.chieuchcirclekorean = 0x3269; + t.chieuchkorean = 0x314a; + t.chieuchparenkorean = 0x3209; + t.chochangthai = 0x0e0a; + t.chochanthai = 0x0e08; + t.chochingthai = 0x0e09; + t.chochoethai = 0x0e0c; + t.chook = 0x0188; + t.cieucacirclekorean = 0x3276; + t.cieucaparenkorean = 0x3216; + t.cieuccirclekorean = 0x3268; + t.cieuckorean = 0x3148; + t.cieucparenkorean = 0x3208; + t.cieucuparenkorean = 0x321c; + t.circle = 0x25cb; + t.circlecopyrt = 0x00a9; + t.circlemultiply = 0x2297; + t.circleot = 0x2299; + t.circleplus = 0x2295; + t.circlepostalmark = 0x3036; + t.circlewithlefthalfblack = 0x25d0; + t.circlewithrighthalfblack = 0x25d1; + t.circumflex = 0x02c6; + t.circumflexbelowcmb = 0x032d; + t.circumflexcmb = 0x0302; + t.clear = 0x2327; + t.clickalveolar = 0x01c2; + t.clickdental = 0x01c0; + t.clicklateral = 0x01c1; + t.clickretroflex = 0x01c3; + t.club = 0x2663; + t.clubsuitblack = 0x2663; + t.clubsuitwhite = 0x2667; + t.cmcubedsquare = 0x33a4; + t.cmonospace = 0xff43; + t.cmsquaredsquare = 0x33a0; + t.coarmenian = 0x0581; + t.colon = 0x003a; + t.colonmonetary = 0x20a1; + t.colonmonospace = 0xff1a; + t.colonsign = 0x20a1; + t.colonsmall = 0xfe55; + t.colontriangularhalfmod = 0x02d1; + t.colontriangularmod = 0x02d0; + t.comma = 0x002c; + t.commaabovecmb = 0x0313; + t.commaaboverightcmb = 0x0315; + t.commaaccent = 0xf6c3; + t.commaarabic = 0x060c; + t.commaarmenian = 0x055d; + t.commainferior = 0xf6e1; + t.commamonospace = 0xff0c; + t.commareversedabovecmb = 0x0314; + t.commareversedmod = 0x02bd; + t.commasmall = 0xfe50; + t.commasuperior = 0xf6e2; + t.commaturnedabovecmb = 0x0312; + t.commaturnedmod = 0x02bb; + t.compass = 0x263c; + t.congruent = 0x2245; + t.contourintegral = 0x222e; + t.control = 0x2303; + t.controlACK = 0x0006; + t.controlBEL = 0x0007; + t.controlBS = 0x0008; + t.controlCAN = 0x0018; + t.controlCR = 0x000d; + t.controlDC1 = 0x0011; + t.controlDC2 = 0x0012; + t.controlDC3 = 0x0013; + t.controlDC4 = 0x0014; + t.controlDEL = 0x007f; + t.controlDLE = 0x0010; + t.controlEM = 0x0019; + t.controlENQ = 0x0005; + t.controlEOT = 0x0004; + t.controlESC = 0x001b; + t.controlETB = 0x0017; + t.controlETX = 0x0003; + t.controlFF = 0x000c; + t.controlFS = 0x001c; + t.controlGS = 0x001d; + t.controlHT = 0x0009; + t.controlLF = 0x000a; + t.controlNAK = 0x0015; + t.controlNULL = 0x0000; + t.controlRS = 0x001e; + t.controlSI = 0x000f; + t.controlSO = 0x000e; + t.controlSOT = 0x0002; + t.controlSTX = 0x0001; + t.controlSUB = 0x001a; + t.controlSYN = 0x0016; + t.controlUS = 0x001f; + t.controlVT = 0x000b; + t.copyright = 0x00a9; + t.copyrightsans = 0xf8e9; + t.copyrightserif = 0xf6d9; + t.cornerbracketleft = 0x300c; + t.cornerbracketlefthalfwidth = 0xff62; + t.cornerbracketleftvertical = 0xfe41; + t.cornerbracketright = 0x300d; + t.cornerbracketrighthalfwidth = 0xff63; + t.cornerbracketrightvertical = 0xfe42; + t.corporationsquare = 0x337f; + t.cosquare = 0x33c7; + t.coverkgsquare = 0x33c6; + t.cparen = 0x249e; + t.cruzeiro = 0x20a2; + t.cstretched = 0x0297; + t.curlyand = 0x22cf; + t.curlyor = 0x22ce; + t.currency = 0x00a4; + t.cyrBreve = 0xf6d1; + t.cyrFlex = 0xf6d2; + t.cyrbreve = 0xf6d4; + t.cyrflex = 0xf6d5; + t.d = 0x0064; + t.daarmenian = 0x0564; + t.dabengali = 0x09a6; + t.dadarabic = 0x0636; + t.dadeva = 0x0926; + t.dadfinalarabic = 0xfebe; + t.dadinitialarabic = 0xfebf; + t.dadmedialarabic = 0xfec0; + t.dagesh = 0x05bc; + t.dageshhebrew = 0x05bc; + t.dagger = 0x2020; + t.daggerdbl = 0x2021; + t.dagujarati = 0x0aa6; + t.dagurmukhi = 0x0a26; + t.dahiragana = 0x3060; + t.dakatakana = 0x30c0; + t.dalarabic = 0x062f; + t.dalet = 0x05d3; + t.daletdagesh = 0xfb33; + t.daletdageshhebrew = 0xfb33; + t.dalethebrew = 0x05d3; + t.dalfinalarabic = 0xfeaa; + t.dammaarabic = 0x064f; + t.dammalowarabic = 0x064f; + t.dammatanaltonearabic = 0x064c; + t.dammatanarabic = 0x064c; + t.danda = 0x0964; + t.dargahebrew = 0x05a7; + t.dargalefthebrew = 0x05a7; + t.dasiapneumatacyrilliccmb = 0x0485; + t.dblGrave = 0xf6d3; + t.dblanglebracketleft = 0x300a; + t.dblanglebracketleftvertical = 0xfe3d; + t.dblanglebracketright = 0x300b; + t.dblanglebracketrightvertical = 0xfe3e; + t.dblarchinvertedbelowcmb = 0x032b; + t.dblarrowleft = 0x21d4; + t.dblarrowright = 0x21d2; + t.dbldanda = 0x0965; + t.dblgrave = 0xf6d6; + t.dblgravecmb = 0x030f; + t.dblintegral = 0x222c; + t.dbllowline = 0x2017; + t.dbllowlinecmb = 0x0333; + t.dbloverlinecmb = 0x033f; + t.dblprimemod = 0x02ba; + t.dblverticalbar = 0x2016; + t.dblverticallineabovecmb = 0x030e; + t.dbopomofo = 0x3109; + t.dbsquare = 0x33c8; + t.dcaron = 0x010f; + t.dcedilla = 0x1e11; + t.dcircle = 0x24d3; + t.dcircumflexbelow = 0x1e13; + t.dcroat = 0x0111; + t.ddabengali = 0x09a1; + t.ddadeva = 0x0921; + t.ddagujarati = 0x0aa1; + t.ddagurmukhi = 0x0a21; + t.ddalarabic = 0x0688; + t.ddalfinalarabic = 0xfb89; + t.dddhadeva = 0x095c; + t.ddhabengali = 0x09a2; + t.ddhadeva = 0x0922; + t.ddhagujarati = 0x0aa2; + t.ddhagurmukhi = 0x0a22; + t.ddotaccent = 0x1e0b; + t.ddotbelow = 0x1e0d; + t.decimalseparatorarabic = 0x066b; + t.decimalseparatorpersian = 0x066b; + t.decyrillic = 0x0434; + t.degree = 0x00b0; + t.dehihebrew = 0x05ad; + t.dehiragana = 0x3067; + t.deicoptic = 0x03ef; + t.dekatakana = 0x30c7; + t.deleteleft = 0x232b; + t.deleteright = 0x2326; + t.delta = 0x03b4; + t.deltaturned = 0x018d; + t.denominatorminusonenumeratorbengali = 0x09f8; + t.dezh = 0x02a4; + t.dhabengali = 0x09a7; + t.dhadeva = 0x0927; + t.dhagujarati = 0x0aa7; + t.dhagurmukhi = 0x0a27; + t.dhook = 0x0257; + t.dialytikatonos = 0x0385; + t.dialytikatonoscmb = 0x0344; + t.diamond = 0x2666; + t.diamondsuitwhite = 0x2662; + t.dieresis = 0x00a8; + t.dieresisacute = 0xf6d7; + t.dieresisbelowcmb = 0x0324; + t.dieresiscmb = 0x0308; + t.dieresisgrave = 0xf6d8; + t.dieresistonos = 0x0385; + t.dihiragana = 0x3062; + t.dikatakana = 0x30c2; + t.dittomark = 0x3003; + t.divide = 0x00f7; + t.divides = 0x2223; + t.divisionslash = 0x2215; + t.djecyrillic = 0x0452; + t.dkshade = 0x2593; + t.dlinebelow = 0x1e0f; + t.dlsquare = 0x3397; + t.dmacron = 0x0111; + t.dmonospace = 0xff44; + t.dnblock = 0x2584; + t.dochadathai = 0x0e0e; + t.dodekthai = 0x0e14; + t.dohiragana = 0x3069; + t.dokatakana = 0x30c9; + t.dollar = 0x0024; + t.dollarinferior = 0xf6e3; + t.dollarmonospace = 0xff04; + t.dollaroldstyle = 0xf724; + t.dollarsmall = 0xfe69; + t.dollarsuperior = 0xf6e4; + t.dong = 0x20ab; + t.dorusquare = 0x3326; + t.dotaccent = 0x02d9; + t.dotaccentcmb = 0x0307; + t.dotbelowcmb = 0x0323; + t.dotbelowcomb = 0x0323; + t.dotkatakana = 0x30fb; + t.dotlessi = 0x0131; + t.dotlessj = 0xf6be; + t.dotlessjstrokehook = 0x0284; + t.dotmath = 0x22c5; + t.dottedcircle = 0x25cc; + t.doubleyodpatah = 0xfb1f; + t.doubleyodpatahhebrew = 0xfb1f; + t.downtackbelowcmb = 0x031e; + t.downtackmod = 0x02d5; + t.dparen = 0x249f; + t.dsuperior = 0xf6eb; + t.dtail = 0x0256; + t.dtopbar = 0x018c; + t.duhiragana = 0x3065; + t.dukatakana = 0x30c5; + t.dz = 0x01f3; + t.dzaltone = 0x02a3; + t.dzcaron = 0x01c6; + t.dzcurl = 0x02a5; + t.dzeabkhasiancyrillic = 0x04e1; + t.dzecyrillic = 0x0455; + t.dzhecyrillic = 0x045f; + t.e = 0x0065; + t.eacute = 0x00e9; + t.earth = 0x2641; + t.ebengali = 0x098f; + t.ebopomofo = 0x311c; + t.ebreve = 0x0115; + t.ecandradeva = 0x090d; + t.ecandragujarati = 0x0a8d; + t.ecandravowelsigndeva = 0x0945; + t.ecandravowelsigngujarati = 0x0ac5; + t.ecaron = 0x011b; + t.ecedillabreve = 0x1e1d; + t.echarmenian = 0x0565; + t.echyiwnarmenian = 0x0587; + t.ecircle = 0x24d4; + t.ecircumflex = 0x00ea; + t.ecircumflexacute = 0x1ebf; + t.ecircumflexbelow = 0x1e19; + t.ecircumflexdotbelow = 0x1ec7; + t.ecircumflexgrave = 0x1ec1; + t.ecircumflexhookabove = 0x1ec3; + t.ecircumflextilde = 0x1ec5; + t.ecyrillic = 0x0454; + t.edblgrave = 0x0205; + t.edeva = 0x090f; + t.edieresis = 0x00eb; + t.edot = 0x0117; + t.edotaccent = 0x0117; + t.edotbelow = 0x1eb9; + t.eegurmukhi = 0x0a0f; + t.eematragurmukhi = 0x0a47; + t.efcyrillic = 0x0444; + t.egrave = 0x00e8; + t.egujarati = 0x0a8f; + t.eharmenian = 0x0567; + t.ehbopomofo = 0x311d; + t.ehiragana = 0x3048; + t.ehookabove = 0x1ebb; + t.eibopomofo = 0x311f; + t.eight = 0x0038; + t.eightarabic = 0x0668; + t.eightbengali = 0x09ee; + t.eightcircle = 0x2467; + t.eightcircleinversesansserif = 0x2791; + t.eightdeva = 0x096e; + t.eighteencircle = 0x2471; + t.eighteenparen = 0x2485; + t.eighteenperiod = 0x2499; + t.eightgujarati = 0x0aee; + t.eightgurmukhi = 0x0a6e; + t.eighthackarabic = 0x0668; + t.eighthangzhou = 0x3028; + t.eighthnotebeamed = 0x266b; + t.eightideographicparen = 0x3227; + t.eightinferior = 0x2088; + t.eightmonospace = 0xff18; + t.eightoldstyle = 0xf738; + t.eightparen = 0x247b; + t.eightperiod = 0x248f; + t.eightpersian = 0x06f8; + t.eightroman = 0x2177; + t.eightsuperior = 0x2078; + t.eightthai = 0x0e58; + t.einvertedbreve = 0x0207; + t.eiotifiedcyrillic = 0x0465; + t.ekatakana = 0x30a8; + t.ekatakanahalfwidth = 0xff74; + t.ekonkargurmukhi = 0x0a74; + t.ekorean = 0x3154; + t.elcyrillic = 0x043b; + t.element = 0x2208; + t.elevencircle = 0x246a; + t.elevenparen = 0x247e; + t.elevenperiod = 0x2492; + t.elevenroman = 0x217a; + t.ellipsis = 0x2026; + t.ellipsisvertical = 0x22ee; + t.emacron = 0x0113; + t.emacronacute = 0x1e17; + t.emacrongrave = 0x1e15; + t.emcyrillic = 0x043c; + t.emdash = 0x2014; + t.emdashvertical = 0xfe31; + t.emonospace = 0xff45; + t.emphasismarkarmenian = 0x055b; + t.emptyset = 0x2205; + t.enbopomofo = 0x3123; + t.encyrillic = 0x043d; + t.endash = 0x2013; + t.endashvertical = 0xfe32; + t.endescendercyrillic = 0x04a3; + t.eng = 0x014b; + t.engbopomofo = 0x3125; + t.enghecyrillic = 0x04a5; + t.enhookcyrillic = 0x04c8; + t.enspace = 0x2002; + t.eogonek = 0x0119; + t.eokorean = 0x3153; + t.eopen = 0x025b; + t.eopenclosed = 0x029a; + t.eopenreversed = 0x025c; + t.eopenreversedclosed = 0x025e; + t.eopenreversedhook = 0x025d; + t.eparen = 0x24a0; + t.epsilon = 0x03b5; + t.epsilontonos = 0x03ad; + t.equal = 0x003d; + t.equalmonospace = 0xff1d; + t.equalsmall = 0xfe66; + t.equalsuperior = 0x207c; + t.equivalence = 0x2261; + t.erbopomofo = 0x3126; + t.ercyrillic = 0x0440; + t.ereversed = 0x0258; + t.ereversedcyrillic = 0x044d; + t.escyrillic = 0x0441; + t.esdescendercyrillic = 0x04ab; + t.esh = 0x0283; + t.eshcurl = 0x0286; + t.eshortdeva = 0x090e; + t.eshortvowelsigndeva = 0x0946; + t.eshreversedloop = 0x01aa; + t.eshsquatreversed = 0x0285; + t.esmallhiragana = 0x3047; + t.esmallkatakana = 0x30a7; + t.esmallkatakanahalfwidth = 0xff6a; + t.estimated = 0x212e; + t.esuperior = 0xf6ec; + t.eta = 0x03b7; + t.etarmenian = 0x0568; + t.etatonos = 0x03ae; + t.eth = 0x00f0; + t.etilde = 0x1ebd; + t.etildebelow = 0x1e1b; + t.etnahtafoukhhebrew = 0x0591; + t.etnahtafoukhlefthebrew = 0x0591; + t.etnahtahebrew = 0x0591; + t.etnahtalefthebrew = 0x0591; + t.eturned = 0x01dd; + t.eukorean = 0x3161; + t.euro = 0x20ac; + t.evowelsignbengali = 0x09c7; + t.evowelsigndeva = 0x0947; + t.evowelsigngujarati = 0x0ac7; + t.exclam = 0x0021; + t.exclamarmenian = 0x055c; + t.exclamdbl = 0x203c; + t.exclamdown = 0x00a1; + t.exclamdownsmall = 0xf7a1; + t.exclammonospace = 0xff01; + t.exclamsmall = 0xf721; + t.existential = 0x2203; + t.ezh = 0x0292; + t.ezhcaron = 0x01ef; + t.ezhcurl = 0x0293; + t.ezhreversed = 0x01b9; + t.ezhtail = 0x01ba; + t.f = 0x0066; + t.fadeva = 0x095e; + t.fagurmukhi = 0x0a5e; + t.fahrenheit = 0x2109; + t.fathaarabic = 0x064e; + t.fathalowarabic = 0x064e; + t.fathatanarabic = 0x064b; + t.fbopomofo = 0x3108; + t.fcircle = 0x24d5; + t.fdotaccent = 0x1e1f; + t.feharabic = 0x0641; + t.feharmenian = 0x0586; + t.fehfinalarabic = 0xfed2; + t.fehinitialarabic = 0xfed3; + t.fehmedialarabic = 0xfed4; + t.feicoptic = 0x03e5; + t.female = 0x2640; + t.ff = 0xfb00; + t.f_f = 0xfb00; + t.ffi = 0xfb03; + t.f_f_i = 0xfb03; + t.ffl = 0xfb04; + t.f_f_l = 0xfb04; + t.fi = 0xfb01; + t.f_i = 0xfb01; + t.fifteencircle = 0x246e; + t.fifteenparen = 0x2482; + t.fifteenperiod = 0x2496; + t.figuredash = 0x2012; + t.filledbox = 0x25a0; + t.filledrect = 0x25ac; + t.finalkaf = 0x05da; + t.finalkafdagesh = 0xfb3a; + t.finalkafdageshhebrew = 0xfb3a; + t.finalkafhebrew = 0x05da; + t.finalmem = 0x05dd; + t.finalmemhebrew = 0x05dd; + t.finalnun = 0x05df; + t.finalnunhebrew = 0x05df; + t.finalpe = 0x05e3; + t.finalpehebrew = 0x05e3; + t.finaltsadi = 0x05e5; + t.finaltsadihebrew = 0x05e5; + t.firsttonechinese = 0x02c9; + t.fisheye = 0x25c9; + t.fitacyrillic = 0x0473; + t.five = 0x0035; + t.fivearabic = 0x0665; + t.fivebengali = 0x09eb; + t.fivecircle = 0x2464; + t.fivecircleinversesansserif = 0x278e; + t.fivedeva = 0x096b; + t.fiveeighths = 0x215d; + t.fivegujarati = 0x0aeb; + t.fivegurmukhi = 0x0a6b; + t.fivehackarabic = 0x0665; + t.fivehangzhou = 0x3025; + t.fiveideographicparen = 0x3224; + t.fiveinferior = 0x2085; + t.fivemonospace = 0xff15; + t.fiveoldstyle = 0xf735; + t.fiveparen = 0x2478; + t.fiveperiod = 0x248c; + t.fivepersian = 0x06f5; + t.fiveroman = 0x2174; + t.fivesuperior = 0x2075; + t.fivethai = 0x0e55; + t.fl = 0xfb02; + t.f_l = 0xfb02; + t.florin = 0x0192; + t.fmonospace = 0xff46; + t.fmsquare = 0x3399; + t.fofanthai = 0x0e1f; + t.fofathai = 0x0e1d; + t.fongmanthai = 0x0e4f; + t.forall = 0x2200; + t.four = 0x0034; + t.fourarabic = 0x0664; + t.fourbengali = 0x09ea; + t.fourcircle = 0x2463; + t.fourcircleinversesansserif = 0x278d; + t.fourdeva = 0x096a; + t.fourgujarati = 0x0aea; + t.fourgurmukhi = 0x0a6a; + t.fourhackarabic = 0x0664; + t.fourhangzhou = 0x3024; + t.fourideographicparen = 0x3223; + t.fourinferior = 0x2084; + t.fourmonospace = 0xff14; + t.fournumeratorbengali = 0x09f7; + t.fouroldstyle = 0xf734; + t.fourparen = 0x2477; + t.fourperiod = 0x248b; + t.fourpersian = 0x06f4; + t.fourroman = 0x2173; + t.foursuperior = 0x2074; + t.fourteencircle = 0x246d; + t.fourteenparen = 0x2481; + t.fourteenperiod = 0x2495; + t.fourthai = 0x0e54; + t.fourthtonechinese = 0x02cb; + t.fparen = 0x24a1; + t.fraction = 0x2044; + t.franc = 0x20a3; + t.g = 0x0067; + t.gabengali = 0x0997; + t.gacute = 0x01f5; + t.gadeva = 0x0917; + t.gafarabic = 0x06af; + t.gaffinalarabic = 0xfb93; + t.gafinitialarabic = 0xfb94; + t.gafmedialarabic = 0xfb95; + t.gagujarati = 0x0a97; + t.gagurmukhi = 0x0a17; + t.gahiragana = 0x304c; + t.gakatakana = 0x30ac; + t.gamma = 0x03b3; + t.gammalatinsmall = 0x0263; + t.gammasuperior = 0x02e0; + t.gangiacoptic = 0x03eb; + t.gbopomofo = 0x310d; + t.gbreve = 0x011f; + t.gcaron = 0x01e7; + t.gcedilla = 0x0123; + t.gcircle = 0x24d6; + t.gcircumflex = 0x011d; + t.gcommaaccent = 0x0123; + t.gdot = 0x0121; + t.gdotaccent = 0x0121; + t.gecyrillic = 0x0433; + t.gehiragana = 0x3052; + t.gekatakana = 0x30b2; + t.geometricallyequal = 0x2251; + t.gereshaccenthebrew = 0x059c; + t.gereshhebrew = 0x05f3; + t.gereshmuqdamhebrew = 0x059d; + t.germandbls = 0x00df; + t.gershayimaccenthebrew = 0x059e; + t.gershayimhebrew = 0x05f4; + t.getamark = 0x3013; + t.ghabengali = 0x0998; + t.ghadarmenian = 0x0572; + t.ghadeva = 0x0918; + t.ghagujarati = 0x0a98; + t.ghagurmukhi = 0x0a18; + t.ghainarabic = 0x063a; + t.ghainfinalarabic = 0xfece; + t.ghaininitialarabic = 0xfecf; + t.ghainmedialarabic = 0xfed0; + t.ghemiddlehookcyrillic = 0x0495; + t.ghestrokecyrillic = 0x0493; + t.gheupturncyrillic = 0x0491; + t.ghhadeva = 0x095a; + t.ghhagurmukhi = 0x0a5a; + t.ghook = 0x0260; + t.ghzsquare = 0x3393; + t.gihiragana = 0x304e; + t.gikatakana = 0x30ae; + t.gimarmenian = 0x0563; + t.gimel = 0x05d2; + t.gimeldagesh = 0xfb32; + t.gimeldageshhebrew = 0xfb32; + t.gimelhebrew = 0x05d2; + t.gjecyrillic = 0x0453; + t.glottalinvertedstroke = 0x01be; + t.glottalstop = 0x0294; + t.glottalstopinverted = 0x0296; + t.glottalstopmod = 0x02c0; + t.glottalstopreversed = 0x0295; + t.glottalstopreversedmod = 0x02c1; + t.glottalstopreversedsuperior = 0x02e4; + t.glottalstopstroke = 0x02a1; + t.glottalstopstrokereversed = 0x02a2; + t.gmacron = 0x1e21; + t.gmonospace = 0xff47; + t.gohiragana = 0x3054; + t.gokatakana = 0x30b4; + t.gparen = 0x24a2; + t.gpasquare = 0x33ac; + t.gradient = 0x2207; + t.grave = 0x0060; + t.gravebelowcmb = 0x0316; + t.gravecmb = 0x0300; + t.gravecomb = 0x0300; + t.gravedeva = 0x0953; + t.gravelowmod = 0x02ce; + t.gravemonospace = 0xff40; + t.gravetonecmb = 0x0340; + t.greater = 0x003e; + t.greaterequal = 0x2265; + t.greaterequalorless = 0x22db; + t.greatermonospace = 0xff1e; + t.greaterorequivalent = 0x2273; + t.greaterorless = 0x2277; + t.greateroverequal = 0x2267; + t.greatersmall = 0xfe65; + t.gscript = 0x0261; + t.gstroke = 0x01e5; + t.guhiragana = 0x3050; + t.guillemotleft = 0x00ab; + t.guillemotright = 0x00bb; + t.guilsinglleft = 0x2039; + t.guilsinglright = 0x203a; + t.gukatakana = 0x30b0; + t.guramusquare = 0x3318; + t.gysquare = 0x33c9; + t.h = 0x0068; + t.haabkhasiancyrillic = 0x04a9; + t.haaltonearabic = 0x06c1; + t.habengali = 0x09b9; + t.hadescendercyrillic = 0x04b3; + t.hadeva = 0x0939; + t.hagujarati = 0x0ab9; + t.hagurmukhi = 0x0a39; + t.haharabic = 0x062d; + t.hahfinalarabic = 0xfea2; + t.hahinitialarabic = 0xfea3; + t.hahiragana = 0x306f; + t.hahmedialarabic = 0xfea4; + t.haitusquare = 0x332a; + t.hakatakana = 0x30cf; + t.hakatakanahalfwidth = 0xff8a; + t.halantgurmukhi = 0x0a4d; + t.hamzaarabic = 0x0621; + t.hamzalowarabic = 0x0621; + t.hangulfiller = 0x3164; + t.hardsigncyrillic = 0x044a; + t.harpoonleftbarbup = 0x21bc; + t.harpoonrightbarbup = 0x21c0; + t.hasquare = 0x33ca; + t.hatafpatah = 0x05b2; + t.hatafpatah16 = 0x05b2; + t.hatafpatah23 = 0x05b2; + t.hatafpatah2f = 0x05b2; + t.hatafpatahhebrew = 0x05b2; + t.hatafpatahnarrowhebrew = 0x05b2; + t.hatafpatahquarterhebrew = 0x05b2; + t.hatafpatahwidehebrew = 0x05b2; + t.hatafqamats = 0x05b3; + t.hatafqamats1b = 0x05b3; + t.hatafqamats28 = 0x05b3; + t.hatafqamats34 = 0x05b3; + t.hatafqamatshebrew = 0x05b3; + t.hatafqamatsnarrowhebrew = 0x05b3; + t.hatafqamatsquarterhebrew = 0x05b3; + t.hatafqamatswidehebrew = 0x05b3; + t.hatafsegol = 0x05b1; + t.hatafsegol17 = 0x05b1; + t.hatafsegol24 = 0x05b1; + t.hatafsegol30 = 0x05b1; + t.hatafsegolhebrew = 0x05b1; + t.hatafsegolnarrowhebrew = 0x05b1; + t.hatafsegolquarterhebrew = 0x05b1; + t.hatafsegolwidehebrew = 0x05b1; + t.hbar = 0x0127; + t.hbopomofo = 0x310f; + t.hbrevebelow = 0x1e2b; + t.hcedilla = 0x1e29; + t.hcircle = 0x24d7; + t.hcircumflex = 0x0125; + t.hdieresis = 0x1e27; + t.hdotaccent = 0x1e23; + t.hdotbelow = 0x1e25; + t.he = 0x05d4; + t.heart = 0x2665; + t.heartsuitblack = 0x2665; + t.heartsuitwhite = 0x2661; + t.hedagesh = 0xfb34; + t.hedageshhebrew = 0xfb34; + t.hehaltonearabic = 0x06c1; + t.heharabic = 0x0647; + t.hehebrew = 0x05d4; + t.hehfinalaltonearabic = 0xfba7; + t.hehfinalalttwoarabic = 0xfeea; + t.hehfinalarabic = 0xfeea; + t.hehhamzaabovefinalarabic = 0xfba5; + t.hehhamzaaboveisolatedarabic = 0xfba4; + t.hehinitialaltonearabic = 0xfba8; + t.hehinitialarabic = 0xfeeb; + t.hehiragana = 0x3078; + t.hehmedialaltonearabic = 0xfba9; + t.hehmedialarabic = 0xfeec; + t.heiseierasquare = 0x337b; + t.hekatakana = 0x30d8; + t.hekatakanahalfwidth = 0xff8d; + t.hekutaarusquare = 0x3336; + t.henghook = 0x0267; + t.herutusquare = 0x3339; + t.het = 0x05d7; + t.hethebrew = 0x05d7; + t.hhook = 0x0266; + t.hhooksuperior = 0x02b1; + t.hieuhacirclekorean = 0x327b; + t.hieuhaparenkorean = 0x321b; + t.hieuhcirclekorean = 0x326d; + t.hieuhkorean = 0x314e; + t.hieuhparenkorean = 0x320d; + t.hihiragana = 0x3072; + t.hikatakana = 0x30d2; + t.hikatakanahalfwidth = 0xff8b; + t.hiriq = 0x05b4; + t.hiriq14 = 0x05b4; + t.hiriq21 = 0x05b4; + t.hiriq2d = 0x05b4; + t.hiriqhebrew = 0x05b4; + t.hiriqnarrowhebrew = 0x05b4; + t.hiriqquarterhebrew = 0x05b4; + t.hiriqwidehebrew = 0x05b4; + t.hlinebelow = 0x1e96; + t.hmonospace = 0xff48; + t.hoarmenian = 0x0570; + t.hohipthai = 0x0e2b; + t.hohiragana = 0x307b; + t.hokatakana = 0x30db; + t.hokatakanahalfwidth = 0xff8e; + t.holam = 0x05b9; + t.holam19 = 0x05b9; + t.holam26 = 0x05b9; + t.holam32 = 0x05b9; + t.holamhebrew = 0x05b9; + t.holamnarrowhebrew = 0x05b9; + t.holamquarterhebrew = 0x05b9; + t.holamwidehebrew = 0x05b9; + t.honokhukthai = 0x0e2e; + t.hookabovecomb = 0x0309; + t.hookcmb = 0x0309; + t.hookpalatalizedbelowcmb = 0x0321; + t.hookretroflexbelowcmb = 0x0322; + t.hoonsquare = 0x3342; + t.horicoptic = 0x03e9; + t.horizontalbar = 0x2015; + t.horncmb = 0x031b; + t.hotsprings = 0x2668; + t.house = 0x2302; + t.hparen = 0x24a3; + t.hsuperior = 0x02b0; + t.hturned = 0x0265; + t.huhiragana = 0x3075; + t.huiitosquare = 0x3333; + t.hukatakana = 0x30d5; + t.hukatakanahalfwidth = 0xff8c; + t.hungarumlaut = 0x02dd; + t.hungarumlautcmb = 0x030b; + t.hv = 0x0195; + t.hyphen = 0x002d; + t.hypheninferior = 0xf6e5; + t.hyphenmonospace = 0xff0d; + t.hyphensmall = 0xfe63; + t.hyphensuperior = 0xf6e6; + t.hyphentwo = 0x2010; + t.i = 0x0069; + t.iacute = 0x00ed; + t.iacyrillic = 0x044f; + t.ibengali = 0x0987; + t.ibopomofo = 0x3127; + t.ibreve = 0x012d; + t.icaron = 0x01d0; + t.icircle = 0x24d8; + t.icircumflex = 0x00ee; + t.icyrillic = 0x0456; + t.idblgrave = 0x0209; + t.ideographearthcircle = 0x328f; + t.ideographfirecircle = 0x328b; + t.ideographicallianceparen = 0x323f; + t.ideographiccallparen = 0x323a; + t.ideographiccentrecircle = 0x32a5; + t.ideographicclose = 0x3006; + t.ideographiccomma = 0x3001; + t.ideographiccommaleft = 0xff64; + t.ideographiccongratulationparen = 0x3237; + t.ideographiccorrectcircle = 0x32a3; + t.ideographicearthparen = 0x322f; + t.ideographicenterpriseparen = 0x323d; + t.ideographicexcellentcircle = 0x329d; + t.ideographicfestivalparen = 0x3240; + t.ideographicfinancialcircle = 0x3296; + t.ideographicfinancialparen = 0x3236; + t.ideographicfireparen = 0x322b; + t.ideographichaveparen = 0x3232; + t.ideographichighcircle = 0x32a4; + t.ideographiciterationmark = 0x3005; + t.ideographiclaborcircle = 0x3298; + t.ideographiclaborparen = 0x3238; + t.ideographicleftcircle = 0x32a7; + t.ideographiclowcircle = 0x32a6; + t.ideographicmedicinecircle = 0x32a9; + t.ideographicmetalparen = 0x322e; + t.ideographicmoonparen = 0x322a; + t.ideographicnameparen = 0x3234; + t.ideographicperiod = 0x3002; + t.ideographicprintcircle = 0x329e; + t.ideographicreachparen = 0x3243; + t.ideographicrepresentparen = 0x3239; + t.ideographicresourceparen = 0x323e; + t.ideographicrightcircle = 0x32a8; + t.ideographicsecretcircle = 0x3299; + t.ideographicselfparen = 0x3242; + t.ideographicsocietyparen = 0x3233; + t.ideographicspace = 0x3000; + t.ideographicspecialparen = 0x3235; + t.ideographicstockparen = 0x3231; + t.ideographicstudyparen = 0x323b; + t.ideographicsunparen = 0x3230; + t.ideographicsuperviseparen = 0x323c; + t.ideographicwaterparen = 0x322c; + t.ideographicwoodparen = 0x322d; + t.ideographiczero = 0x3007; + t.ideographmetalcircle = 0x328e; + t.ideographmooncircle = 0x328a; + t.ideographnamecircle = 0x3294; + t.ideographsuncircle = 0x3290; + t.ideographwatercircle = 0x328c; + t.ideographwoodcircle = 0x328d; + t.ideva = 0x0907; + t.idieresis = 0x00ef; + t.idieresisacute = 0x1e2f; + t.idieresiscyrillic = 0x04e5; + t.idotbelow = 0x1ecb; + t.iebrevecyrillic = 0x04d7; + t.iecyrillic = 0x0435; + t.ieungacirclekorean = 0x3275; + t.ieungaparenkorean = 0x3215; + t.ieungcirclekorean = 0x3267; + t.ieungkorean = 0x3147; + t.ieungparenkorean = 0x3207; + t.igrave = 0x00ec; + t.igujarati = 0x0a87; + t.igurmukhi = 0x0a07; + t.ihiragana = 0x3044; + t.ihookabove = 0x1ec9; + t.iibengali = 0x0988; + t.iicyrillic = 0x0438; + t.iideva = 0x0908; + t.iigujarati = 0x0a88; + t.iigurmukhi = 0x0a08; + t.iimatragurmukhi = 0x0a40; + t.iinvertedbreve = 0x020b; + t.iishortcyrillic = 0x0439; + t.iivowelsignbengali = 0x09c0; + t.iivowelsigndeva = 0x0940; + t.iivowelsigngujarati = 0x0ac0; + t.ij = 0x0133; + t.ikatakana = 0x30a4; + t.ikatakanahalfwidth = 0xff72; + t.ikorean = 0x3163; + t.ilde = 0x02dc; + t.iluyhebrew = 0x05ac; + t.imacron = 0x012b; + t.imacroncyrillic = 0x04e3; + t.imageorapproximatelyequal = 0x2253; + t.imatragurmukhi = 0x0a3f; + t.imonospace = 0xff49; + t.increment = 0x2206; + t.infinity = 0x221e; + t.iniarmenian = 0x056b; + t.integral = 0x222b; + t.integralbottom = 0x2321; + t.integralbt = 0x2321; + t.integralex = 0xf8f5; + t.integraltop = 0x2320; + t.integraltp = 0x2320; + t.intersection = 0x2229; + t.intisquare = 0x3305; + t.invbullet = 0x25d8; + t.invcircle = 0x25d9; + t.invsmileface = 0x263b; + t.iocyrillic = 0x0451; + t.iogonek = 0x012f; + t.iota = 0x03b9; + t.iotadieresis = 0x03ca; + t.iotadieresistonos = 0x0390; + t.iotalatin = 0x0269; + t.iotatonos = 0x03af; + t.iparen = 0x24a4; + t.irigurmukhi = 0x0a72; + t.ismallhiragana = 0x3043; + t.ismallkatakana = 0x30a3; + t.ismallkatakanahalfwidth = 0xff68; + t.issharbengali = 0x09fa; + t.istroke = 0x0268; + t.isuperior = 0xf6ed; + t.iterationhiragana = 0x309d; + t.iterationkatakana = 0x30fd; + t.itilde = 0x0129; + t.itildebelow = 0x1e2d; + t.iubopomofo = 0x3129; + t.iucyrillic = 0x044e; + t.ivowelsignbengali = 0x09bf; + t.ivowelsigndeva = 0x093f; + t.ivowelsigngujarati = 0x0abf; + t.izhitsacyrillic = 0x0475; + t.izhitsadblgravecyrillic = 0x0477; + t.j = 0x006a; + t.jaarmenian = 0x0571; + t.jabengali = 0x099c; + t.jadeva = 0x091c; + t.jagujarati = 0x0a9c; + t.jagurmukhi = 0x0a1c; + t.jbopomofo = 0x3110; + t.jcaron = 0x01f0; + t.jcircle = 0x24d9; + t.jcircumflex = 0x0135; + t.jcrossedtail = 0x029d; + t.jdotlessstroke = 0x025f; + t.jecyrillic = 0x0458; + t.jeemarabic = 0x062c; + t.jeemfinalarabic = 0xfe9e; + t.jeeminitialarabic = 0xfe9f; + t.jeemmedialarabic = 0xfea0; + t.jeharabic = 0x0698; + t.jehfinalarabic = 0xfb8b; + t.jhabengali = 0x099d; + t.jhadeva = 0x091d; + t.jhagujarati = 0x0a9d; + t.jhagurmukhi = 0x0a1d; + t.jheharmenian = 0x057b; + t.jis = 0x3004; + t.jmonospace = 0xff4a; + t.jparen = 0x24a5; + t.jsuperior = 0x02b2; + t.k = 0x006b; + t.kabashkircyrillic = 0x04a1; + t.kabengali = 0x0995; + t.kacute = 0x1e31; + t.kacyrillic = 0x043a; + t.kadescendercyrillic = 0x049b; + t.kadeva = 0x0915; + t.kaf = 0x05db; + t.kafarabic = 0x0643; + t.kafdagesh = 0xfb3b; + t.kafdageshhebrew = 0xfb3b; + t.kaffinalarabic = 0xfeda; + t.kafhebrew = 0x05db; + t.kafinitialarabic = 0xfedb; + t.kafmedialarabic = 0xfedc; + t.kafrafehebrew = 0xfb4d; + t.kagujarati = 0x0a95; + t.kagurmukhi = 0x0a15; + t.kahiragana = 0x304b; + t.kahookcyrillic = 0x04c4; + t.kakatakana = 0x30ab; + t.kakatakanahalfwidth = 0xff76; + t.kappa = 0x03ba; + t.kappasymbolgreek = 0x03f0; + t.kapyeounmieumkorean = 0x3171; + t.kapyeounphieuphkorean = 0x3184; + t.kapyeounpieupkorean = 0x3178; + t.kapyeounssangpieupkorean = 0x3179; + t.karoriisquare = 0x330d; + t.kashidaautoarabic = 0x0640; + t.kashidaautonosidebearingarabic = 0x0640; + t.kasmallkatakana = 0x30f5; + t.kasquare = 0x3384; + t.kasraarabic = 0x0650; + t.kasratanarabic = 0x064d; + t.kastrokecyrillic = 0x049f; + t.katahiraprolongmarkhalfwidth = 0xff70; + t.kaverticalstrokecyrillic = 0x049d; + t.kbopomofo = 0x310e; + t.kcalsquare = 0x3389; + t.kcaron = 0x01e9; + t.kcedilla = 0x0137; + t.kcircle = 0x24da; + t.kcommaaccent = 0x0137; + t.kdotbelow = 0x1e33; + t.keharmenian = 0x0584; + t.kehiragana = 0x3051; + t.kekatakana = 0x30b1; + t.kekatakanahalfwidth = 0xff79; + t.kenarmenian = 0x056f; + t.kesmallkatakana = 0x30f6; + t.kgreenlandic = 0x0138; + t.khabengali = 0x0996; + t.khacyrillic = 0x0445; + t.khadeva = 0x0916; + t.khagujarati = 0x0a96; + t.khagurmukhi = 0x0a16; + t.khaharabic = 0x062e; + t.khahfinalarabic = 0xfea6; + t.khahinitialarabic = 0xfea7; + t.khahmedialarabic = 0xfea8; + t.kheicoptic = 0x03e7; + t.khhadeva = 0x0959; + t.khhagurmukhi = 0x0a59; + t.khieukhacirclekorean = 0x3278; + t.khieukhaparenkorean = 0x3218; + t.khieukhcirclekorean = 0x326a; + t.khieukhkorean = 0x314b; + t.khieukhparenkorean = 0x320a; + t.khokhaithai = 0x0e02; + t.khokhonthai = 0x0e05; + t.khokhuatthai = 0x0e03; + t.khokhwaithai = 0x0e04; + t.khomutthai = 0x0e5b; + t.khook = 0x0199; + t.khorakhangthai = 0x0e06; + t.khzsquare = 0x3391; + t.kihiragana = 0x304d; + t.kikatakana = 0x30ad; + t.kikatakanahalfwidth = 0xff77; + t.kiroguramusquare = 0x3315; + t.kiromeetorusquare = 0x3316; + t.kirosquare = 0x3314; + t.kiyeokacirclekorean = 0x326e; + t.kiyeokaparenkorean = 0x320e; + t.kiyeokcirclekorean = 0x3260; + t.kiyeokkorean = 0x3131; + t.kiyeokparenkorean = 0x3200; + t.kiyeoksioskorean = 0x3133; + t.kjecyrillic = 0x045c; + t.klinebelow = 0x1e35; + t.klsquare = 0x3398; + t.kmcubedsquare = 0x33a6; + t.kmonospace = 0xff4b; + t.kmsquaredsquare = 0x33a2; + t.kohiragana = 0x3053; + t.kohmsquare = 0x33c0; + t.kokaithai = 0x0e01; + t.kokatakana = 0x30b3; + t.kokatakanahalfwidth = 0xff7a; + t.kooposquare = 0x331e; + t.koppacyrillic = 0x0481; + t.koreanstandardsymbol = 0x327f; + t.koroniscmb = 0x0343; + t.kparen = 0x24a6; + t.kpasquare = 0x33aa; + t.ksicyrillic = 0x046f; + t.ktsquare = 0x33cf; + t.kturned = 0x029e; + t.kuhiragana = 0x304f; + t.kukatakana = 0x30af; + t.kukatakanahalfwidth = 0xff78; + t.kvsquare = 0x33b8; + t.kwsquare = 0x33be; + t.l = 0x006c; + t.labengali = 0x09b2; + t.lacute = 0x013a; + t.ladeva = 0x0932; + t.lagujarati = 0x0ab2; + t.lagurmukhi = 0x0a32; + t.lakkhangyaothai = 0x0e45; + t.lamaleffinalarabic = 0xfefc; + t.lamalefhamzaabovefinalarabic = 0xfef8; + t.lamalefhamzaaboveisolatedarabic = 0xfef7; + t.lamalefhamzabelowfinalarabic = 0xfefa; + t.lamalefhamzabelowisolatedarabic = 0xfef9; + t.lamalefisolatedarabic = 0xfefb; + t.lamalefmaddaabovefinalarabic = 0xfef6; + t.lamalefmaddaaboveisolatedarabic = 0xfef5; + t.lamarabic = 0x0644; + t.lambda = 0x03bb; + t.lambdastroke = 0x019b; + t.lamed = 0x05dc; + t.lameddagesh = 0xfb3c; + t.lameddageshhebrew = 0xfb3c; + t.lamedhebrew = 0x05dc; + t.lamfinalarabic = 0xfede; + t.lamhahinitialarabic = 0xfcca; + t.laminitialarabic = 0xfedf; + t.lamjeeminitialarabic = 0xfcc9; + t.lamkhahinitialarabic = 0xfccb; + t.lamlamhehisolatedarabic = 0xfdf2; + t.lammedialarabic = 0xfee0; + t.lammeemhahinitialarabic = 0xfd88; + t.lammeeminitialarabic = 0xfccc; + t.largecircle = 0x25ef; + t.lbar = 0x019a; + t.lbelt = 0x026c; + t.lbopomofo = 0x310c; + t.lcaron = 0x013e; + t.lcedilla = 0x013c; + t.lcircle = 0x24db; + t.lcircumflexbelow = 0x1e3d; + t.lcommaaccent = 0x013c; + t.ldot = 0x0140; + t.ldotaccent = 0x0140; + t.ldotbelow = 0x1e37; + t.ldotbelowmacron = 0x1e39; + t.leftangleabovecmb = 0x031a; + t.lefttackbelowcmb = 0x0318; + t.less = 0x003c; + t.lessequal = 0x2264; + t.lessequalorgreater = 0x22da; + t.lessmonospace = 0xff1c; + t.lessorequivalent = 0x2272; + t.lessorgreater = 0x2276; + t.lessoverequal = 0x2266; + t.lesssmall = 0xfe64; + t.lezh = 0x026e; + t.lfblock = 0x258c; + t.lhookretroflex = 0x026d; + t.lira = 0x20a4; + t.liwnarmenian = 0x056c; + t.lj = 0x01c9; + t.ljecyrillic = 0x0459; + t.ll = 0xf6c0; + t.lladeva = 0x0933; + t.llagujarati = 0x0ab3; + t.llinebelow = 0x1e3b; + t.llladeva = 0x0934; + t.llvocalicbengali = 0x09e1; + t.llvocalicdeva = 0x0961; + t.llvocalicvowelsignbengali = 0x09e3; + t.llvocalicvowelsigndeva = 0x0963; + t.lmiddletilde = 0x026b; + t.lmonospace = 0xff4c; + t.lmsquare = 0x33d0; + t.lochulathai = 0x0e2c; + t.logicaland = 0x2227; + t.logicalnot = 0x00ac; + t.logicalnotreversed = 0x2310; + t.logicalor = 0x2228; + t.lolingthai = 0x0e25; + t.longs = 0x017f; + t.lowlinecenterline = 0xfe4e; + t.lowlinecmb = 0x0332; + t.lowlinedashed = 0xfe4d; + t.lozenge = 0x25ca; + t.lparen = 0x24a7; + t.lslash = 0x0142; + t.lsquare = 0x2113; + t.lsuperior = 0xf6ee; + t.ltshade = 0x2591; + t.luthai = 0x0e26; + t.lvocalicbengali = 0x098c; + t.lvocalicdeva = 0x090c; + t.lvocalicvowelsignbengali = 0x09e2; + t.lvocalicvowelsigndeva = 0x0962; + t.lxsquare = 0x33d3; + t.m = 0x006d; + t.mabengali = 0x09ae; + t.macron = 0x00af; + t.macronbelowcmb = 0x0331; + t.macroncmb = 0x0304; + t.macronlowmod = 0x02cd; + t.macronmonospace = 0xffe3; + t.macute = 0x1e3f; + t.madeva = 0x092e; + t.magujarati = 0x0aae; + t.magurmukhi = 0x0a2e; + t.mahapakhhebrew = 0x05a4; + t.mahapakhlefthebrew = 0x05a4; + t.mahiragana = 0x307e; + t.maichattawalowleftthai = 0xf895; + t.maichattawalowrightthai = 0xf894; + t.maichattawathai = 0x0e4b; + t.maichattawaupperleftthai = 0xf893; + t.maieklowleftthai = 0xf88c; + t.maieklowrightthai = 0xf88b; + t.maiekthai = 0x0e48; + t.maiekupperleftthai = 0xf88a; + t.maihanakatleftthai = 0xf884; + t.maihanakatthai = 0x0e31; + t.maitaikhuleftthai = 0xf889; + t.maitaikhuthai = 0x0e47; + t.maitholowleftthai = 0xf88f; + t.maitholowrightthai = 0xf88e; + t.maithothai = 0x0e49; + t.maithoupperleftthai = 0xf88d; + t.maitrilowleftthai = 0xf892; + t.maitrilowrightthai = 0xf891; + t.maitrithai = 0x0e4a; + t.maitriupperleftthai = 0xf890; + t.maiyamokthai = 0x0e46; + t.makatakana = 0x30de; + t.makatakanahalfwidth = 0xff8f; + t.male = 0x2642; + t.mansyonsquare = 0x3347; + t.maqafhebrew = 0x05be; + t.mars = 0x2642; + t.masoracirclehebrew = 0x05af; + t.masquare = 0x3383; + t.mbopomofo = 0x3107; + t.mbsquare = 0x33d4; + t.mcircle = 0x24dc; + t.mcubedsquare = 0x33a5; + t.mdotaccent = 0x1e41; + t.mdotbelow = 0x1e43; + t.meemarabic = 0x0645; + t.meemfinalarabic = 0xfee2; + t.meeminitialarabic = 0xfee3; + t.meemmedialarabic = 0xfee4; + t.meemmeeminitialarabic = 0xfcd1; + t.meemmeemisolatedarabic = 0xfc48; + t.meetorusquare = 0x334d; + t.mehiragana = 0x3081; + t.meizierasquare = 0x337e; + t.mekatakana = 0x30e1; + t.mekatakanahalfwidth = 0xff92; + t.mem = 0x05de; + t.memdagesh = 0xfb3e; + t.memdageshhebrew = 0xfb3e; + t.memhebrew = 0x05de; + t.menarmenian = 0x0574; + t.merkhahebrew = 0x05a5; + t.merkhakefulahebrew = 0x05a6; + t.merkhakefulalefthebrew = 0x05a6; + t.merkhalefthebrew = 0x05a5; + t.mhook = 0x0271; + t.mhzsquare = 0x3392; + t.middledotkatakanahalfwidth = 0xff65; + t.middot = 0x00b7; + t.mieumacirclekorean = 0x3272; + t.mieumaparenkorean = 0x3212; + t.mieumcirclekorean = 0x3264; + t.mieumkorean = 0x3141; + t.mieumpansioskorean = 0x3170; + t.mieumparenkorean = 0x3204; + t.mieumpieupkorean = 0x316e; + t.mieumsioskorean = 0x316f; + t.mihiragana = 0x307f; + t.mikatakana = 0x30df; + t.mikatakanahalfwidth = 0xff90; + t.minus = 0x2212; + t.minusbelowcmb = 0x0320; + t.minuscircle = 0x2296; + t.minusmod = 0x02d7; + t.minusplus = 0x2213; + t.minute = 0x2032; + t.miribaarusquare = 0x334a; + t.mirisquare = 0x3349; + t.mlonglegturned = 0x0270; + t.mlsquare = 0x3396; + t.mmcubedsquare = 0x33a3; + t.mmonospace = 0xff4d; + t.mmsquaredsquare = 0x339f; + t.mohiragana = 0x3082; + t.mohmsquare = 0x33c1; + t.mokatakana = 0x30e2; + t.mokatakanahalfwidth = 0xff93; + t.molsquare = 0x33d6; + t.momathai = 0x0e21; + t.moverssquare = 0x33a7; + t.moverssquaredsquare = 0x33a8; + t.mparen = 0x24a8; + t.mpasquare = 0x33ab; + t.mssquare = 0x33b3; + t.msuperior = 0xf6ef; + t.mturned = 0x026f; + t.mu = 0x00b5; + t.mu1 = 0x00b5; + t.muasquare = 0x3382; + t.muchgreater = 0x226b; + t.muchless = 0x226a; + t.mufsquare = 0x338c; + t.mugreek = 0x03bc; + t.mugsquare = 0x338d; + t.muhiragana = 0x3080; + t.mukatakana = 0x30e0; + t.mukatakanahalfwidth = 0xff91; + t.mulsquare = 0x3395; + t.multiply = 0x00d7; + t.mumsquare = 0x339b; + t.munahhebrew = 0x05a3; + t.munahlefthebrew = 0x05a3; + t.musicalnote = 0x266a; + t.musicalnotedbl = 0x266b; + t.musicflatsign = 0x266d; + t.musicsharpsign = 0x266f; + t.mussquare = 0x33b2; + t.muvsquare = 0x33b6; + t.muwsquare = 0x33bc; + t.mvmegasquare = 0x33b9; + t.mvsquare = 0x33b7; + t.mwmegasquare = 0x33bf; + t.mwsquare = 0x33bd; + t.n = 0x006e; + t.nabengali = 0x09a8; + t.nabla = 0x2207; + t.nacute = 0x0144; + t.nadeva = 0x0928; + t.nagujarati = 0x0aa8; + t.nagurmukhi = 0x0a28; + t.nahiragana = 0x306a; + t.nakatakana = 0x30ca; + t.nakatakanahalfwidth = 0xff85; + t.napostrophe = 0x0149; + t.nasquare = 0x3381; + t.nbopomofo = 0x310b; + t.nbspace = 0x00a0; + t.ncaron = 0x0148; + t.ncedilla = 0x0146; + t.ncircle = 0x24dd; + t.ncircumflexbelow = 0x1e4b; + t.ncommaaccent = 0x0146; + t.ndotaccent = 0x1e45; + t.ndotbelow = 0x1e47; + t.nehiragana = 0x306d; + t.nekatakana = 0x30cd; + t.nekatakanahalfwidth = 0xff88; + t.newsheqelsign = 0x20aa; + t.nfsquare = 0x338b; + t.ngabengali = 0x0999; + t.ngadeva = 0x0919; + t.ngagujarati = 0x0a99; + t.ngagurmukhi = 0x0a19; + t.ngonguthai = 0x0e07; + t.nhiragana = 0x3093; + t.nhookleft = 0x0272; + t.nhookretroflex = 0x0273; + t.nieunacirclekorean = 0x326f; + t.nieunaparenkorean = 0x320f; + t.nieuncieuckorean = 0x3135; + t.nieuncirclekorean = 0x3261; + t.nieunhieuhkorean = 0x3136; + t.nieunkorean = 0x3134; + t.nieunpansioskorean = 0x3168; + t.nieunparenkorean = 0x3201; + t.nieunsioskorean = 0x3167; + t.nieuntikeutkorean = 0x3166; + t.nihiragana = 0x306b; + t.nikatakana = 0x30cb; + t.nikatakanahalfwidth = 0xff86; + t.nikhahitleftthai = 0xf899; + t.nikhahitthai = 0x0e4d; + t.nine = 0x0039; + t.ninearabic = 0x0669; + t.ninebengali = 0x09ef; + t.ninecircle = 0x2468; + t.ninecircleinversesansserif = 0x2792; + t.ninedeva = 0x096f; + t.ninegujarati = 0x0aef; + t.ninegurmukhi = 0x0a6f; + t.ninehackarabic = 0x0669; + t.ninehangzhou = 0x3029; + t.nineideographicparen = 0x3228; + t.nineinferior = 0x2089; + t.ninemonospace = 0xff19; + t.nineoldstyle = 0xf739; + t.nineparen = 0x247c; + t.nineperiod = 0x2490; + t.ninepersian = 0x06f9; + t.nineroman = 0x2178; + t.ninesuperior = 0x2079; + t.nineteencircle = 0x2472; + t.nineteenparen = 0x2486; + t.nineteenperiod = 0x249a; + t.ninethai = 0x0e59; + t.nj = 0x01cc; + t.njecyrillic = 0x045a; + t.nkatakana = 0x30f3; + t.nkatakanahalfwidth = 0xff9d; + t.nlegrightlong = 0x019e; + t.nlinebelow = 0x1e49; + t.nmonospace = 0xff4e; + t.nmsquare = 0x339a; + t.nnabengali = 0x09a3; + t.nnadeva = 0x0923; + t.nnagujarati = 0x0aa3; + t.nnagurmukhi = 0x0a23; + t.nnnadeva = 0x0929; + t.nohiragana = 0x306e; + t.nokatakana = 0x30ce; + t.nokatakanahalfwidth = 0xff89; + t.nonbreakingspace = 0x00a0; + t.nonenthai = 0x0e13; + t.nonuthai = 0x0e19; + t.noonarabic = 0x0646; + t.noonfinalarabic = 0xfee6; + t.noonghunnaarabic = 0x06ba; + t.noonghunnafinalarabic = 0xfb9f; + t.nooninitialarabic = 0xfee7; + t.noonjeeminitialarabic = 0xfcd2; + t.noonjeemisolatedarabic = 0xfc4b; + t.noonmedialarabic = 0xfee8; + t.noonmeeminitialarabic = 0xfcd5; + t.noonmeemisolatedarabic = 0xfc4e; + t.noonnoonfinalarabic = 0xfc8d; + t.notcontains = 0x220c; + t.notelement = 0x2209; + t.notelementof = 0x2209; + t.notequal = 0x2260; + t.notgreater = 0x226f; + t.notgreaternorequal = 0x2271; + t.notgreaternorless = 0x2279; + t.notidentical = 0x2262; + t.notless = 0x226e; + t.notlessnorequal = 0x2270; + t.notparallel = 0x2226; + t.notprecedes = 0x2280; + t.notsubset = 0x2284; + t.notsucceeds = 0x2281; + t.notsuperset = 0x2285; + t.nowarmenian = 0x0576; + t.nparen = 0x24a9; + t.nssquare = 0x33b1; + t.nsuperior = 0x207f; + t.ntilde = 0x00f1; + t.nu = 0x03bd; + t.nuhiragana = 0x306c; + t.nukatakana = 0x30cc; + t.nukatakanahalfwidth = 0xff87; + t.nuktabengali = 0x09bc; + t.nuktadeva = 0x093c; + t.nuktagujarati = 0x0abc; + t.nuktagurmukhi = 0x0a3c; + t.numbersign = 0x0023; + t.numbersignmonospace = 0xff03; + t.numbersignsmall = 0xfe5f; + t.numeralsigngreek = 0x0374; + t.numeralsignlowergreek = 0x0375; + t.numero = 0x2116; + t.nun = 0x05e0; + t.nundagesh = 0xfb40; + t.nundageshhebrew = 0xfb40; + t.nunhebrew = 0x05e0; + t.nvsquare = 0x33b5; + t.nwsquare = 0x33bb; + t.nyabengali = 0x099e; + t.nyadeva = 0x091e; + t.nyagujarati = 0x0a9e; + t.nyagurmukhi = 0x0a1e; + t.o = 0x006f; + t.oacute = 0x00f3; + t.oangthai = 0x0e2d; + t.obarred = 0x0275; + t.obarredcyrillic = 0x04e9; + t.obarreddieresiscyrillic = 0x04eb; + t.obengali = 0x0993; + t.obopomofo = 0x311b; + t.obreve = 0x014f; + t.ocandradeva = 0x0911; + t.ocandragujarati = 0x0a91; + t.ocandravowelsigndeva = 0x0949; + t.ocandravowelsigngujarati = 0x0ac9; + t.ocaron = 0x01d2; + t.ocircle = 0x24de; + t.ocircumflex = 0x00f4; + t.ocircumflexacute = 0x1ed1; + t.ocircumflexdotbelow = 0x1ed9; + t.ocircumflexgrave = 0x1ed3; + t.ocircumflexhookabove = 0x1ed5; + t.ocircumflextilde = 0x1ed7; + t.ocyrillic = 0x043e; + t.odblacute = 0x0151; + t.odblgrave = 0x020d; + t.odeva = 0x0913; + t.odieresis = 0x00f6; + t.odieresiscyrillic = 0x04e7; + t.odotbelow = 0x1ecd; + t.oe = 0x0153; + t.oekorean = 0x315a; + t.ogonek = 0x02db; + t.ogonekcmb = 0x0328; + t.ograve = 0x00f2; + t.ogujarati = 0x0a93; + t.oharmenian = 0x0585; + t.ohiragana = 0x304a; + t.ohookabove = 0x1ecf; + t.ohorn = 0x01a1; + t.ohornacute = 0x1edb; + t.ohorndotbelow = 0x1ee3; + t.ohorngrave = 0x1edd; + t.ohornhookabove = 0x1edf; + t.ohorntilde = 0x1ee1; + t.ohungarumlaut = 0x0151; + t.oi = 0x01a3; + t.oinvertedbreve = 0x020f; + t.okatakana = 0x30aa; + t.okatakanahalfwidth = 0xff75; + t.okorean = 0x3157; + t.olehebrew = 0x05ab; + t.omacron = 0x014d; + t.omacronacute = 0x1e53; + t.omacrongrave = 0x1e51; + t.omdeva = 0x0950; + t.omega = 0x03c9; + t.omega1 = 0x03d6; + t.omegacyrillic = 0x0461; + t.omegalatinclosed = 0x0277; + t.omegaroundcyrillic = 0x047b; + t.omegatitlocyrillic = 0x047d; + t.omegatonos = 0x03ce; + t.omgujarati = 0x0ad0; + t.omicron = 0x03bf; + t.omicrontonos = 0x03cc; + t.omonospace = 0xff4f; + t.one = 0x0031; + t.onearabic = 0x0661; + t.onebengali = 0x09e7; + t.onecircle = 0x2460; + t.onecircleinversesansserif = 0x278a; + t.onedeva = 0x0967; + t.onedotenleader = 0x2024; + t.oneeighth = 0x215b; + t.onefitted = 0xf6dc; + t.onegujarati = 0x0ae7; + t.onegurmukhi = 0x0a67; + t.onehackarabic = 0x0661; + t.onehalf = 0x00bd; + t.onehangzhou = 0x3021; + t.oneideographicparen = 0x3220; + t.oneinferior = 0x2081; + t.onemonospace = 0xff11; + t.onenumeratorbengali = 0x09f4; + t.oneoldstyle = 0xf731; + t.oneparen = 0x2474; + t.oneperiod = 0x2488; + t.onepersian = 0x06f1; + t.onequarter = 0x00bc; + t.oneroman = 0x2170; + t.onesuperior = 0x00b9; + t.onethai = 0x0e51; + t.onethird = 0x2153; + t.oogonek = 0x01eb; + t.oogonekmacron = 0x01ed; + t.oogurmukhi = 0x0a13; + t.oomatragurmukhi = 0x0a4b; + t.oopen = 0x0254; + t.oparen = 0x24aa; + t.openbullet = 0x25e6; + t.option = 0x2325; + t.ordfeminine = 0x00aa; + t.ordmasculine = 0x00ba; + t.orthogonal = 0x221f; + t.oshortdeva = 0x0912; + t.oshortvowelsigndeva = 0x094a; + t.oslash = 0x00f8; + t.oslashacute = 0x01ff; + t.osmallhiragana = 0x3049; + t.osmallkatakana = 0x30a9; + t.osmallkatakanahalfwidth = 0xff6b; + t.ostrokeacute = 0x01ff; + t.osuperior = 0xf6f0; + t.otcyrillic = 0x047f; + t.otilde = 0x00f5; + t.otildeacute = 0x1e4d; + t.otildedieresis = 0x1e4f; + t.oubopomofo = 0x3121; + t.overline = 0x203e; + t.overlinecenterline = 0xfe4a; + t.overlinecmb = 0x0305; + t.overlinedashed = 0xfe49; + t.overlinedblwavy = 0xfe4c; + t.overlinewavy = 0xfe4b; + t.overscore = 0x00af; + t.ovowelsignbengali = 0x09cb; + t.ovowelsigndeva = 0x094b; + t.ovowelsigngujarati = 0x0acb; + t.p = 0x0070; + t.paampssquare = 0x3380; + t.paasentosquare = 0x332b; + t.pabengali = 0x09aa; + t.pacute = 0x1e55; + t.padeva = 0x092a; + t.pagedown = 0x21df; + t.pageup = 0x21de; + t.pagujarati = 0x0aaa; + t.pagurmukhi = 0x0a2a; + t.pahiragana = 0x3071; + t.paiyannoithai = 0x0e2f; + t.pakatakana = 0x30d1; + t.palatalizationcyrilliccmb = 0x0484; + t.palochkacyrillic = 0x04c0; + t.pansioskorean = 0x317f; + t.paragraph = 0x00b6; + t.parallel = 0x2225; + t.parenleft = 0x0028; + t.parenleftaltonearabic = 0xfd3e; + t.parenleftbt = 0xf8ed; + t.parenleftex = 0xf8ec; + t.parenleftinferior = 0x208d; + t.parenleftmonospace = 0xff08; + t.parenleftsmall = 0xfe59; + t.parenleftsuperior = 0x207d; + t.parenlefttp = 0xf8eb; + t.parenleftvertical = 0xfe35; + t.parenright = 0x0029; + t.parenrightaltonearabic = 0xfd3f; + t.parenrightbt = 0xf8f8; + t.parenrightex = 0xf8f7; + t.parenrightinferior = 0x208e; + t.parenrightmonospace = 0xff09; + t.parenrightsmall = 0xfe5a; + t.parenrightsuperior = 0x207e; + t.parenrighttp = 0xf8f6; + t.parenrightvertical = 0xfe36; + t.partialdiff = 0x2202; + t.paseqhebrew = 0x05c0; + t.pashtahebrew = 0x0599; + t.pasquare = 0x33a9; + t.patah = 0x05b7; + t.patah11 = 0x05b7; + t.patah1d = 0x05b7; + t.patah2a = 0x05b7; + t.patahhebrew = 0x05b7; + t.patahnarrowhebrew = 0x05b7; + t.patahquarterhebrew = 0x05b7; + t.patahwidehebrew = 0x05b7; + t.pazerhebrew = 0x05a1; + t.pbopomofo = 0x3106; + t.pcircle = 0x24df; + t.pdotaccent = 0x1e57; + t.pe = 0x05e4; + t.pecyrillic = 0x043f; + t.pedagesh = 0xfb44; + t.pedageshhebrew = 0xfb44; + t.peezisquare = 0x333b; + t.pefinaldageshhebrew = 0xfb43; + t.peharabic = 0x067e; + t.peharmenian = 0x057a; + t.pehebrew = 0x05e4; + t.pehfinalarabic = 0xfb57; + t.pehinitialarabic = 0xfb58; + t.pehiragana = 0x307a; + t.pehmedialarabic = 0xfb59; + t.pekatakana = 0x30da; + t.pemiddlehookcyrillic = 0x04a7; + t.perafehebrew = 0xfb4e; + t.percent = 0x0025; + t.percentarabic = 0x066a; + t.percentmonospace = 0xff05; + t.percentsmall = 0xfe6a; + t.period = 0x002e; + t.periodarmenian = 0x0589; + t.periodcentered = 0x00b7; + t.periodhalfwidth = 0xff61; + t.periodinferior = 0xf6e7; + t.periodmonospace = 0xff0e; + t.periodsmall = 0xfe52; + t.periodsuperior = 0xf6e8; + t.perispomenigreekcmb = 0x0342; + t.perpendicular = 0x22a5; + t.perthousand = 0x2030; + t.peseta = 0x20a7; + t.pfsquare = 0x338a; + t.phabengali = 0x09ab; + t.phadeva = 0x092b; + t.phagujarati = 0x0aab; + t.phagurmukhi = 0x0a2b; + t.phi = 0x03c6; + t.phi1 = 0x03d5; + t.phieuphacirclekorean = 0x327a; + t.phieuphaparenkorean = 0x321a; + t.phieuphcirclekorean = 0x326c; + t.phieuphkorean = 0x314d; + t.phieuphparenkorean = 0x320c; + t.philatin = 0x0278; + t.phinthuthai = 0x0e3a; + t.phisymbolgreek = 0x03d5; + t.phook = 0x01a5; + t.phophanthai = 0x0e1e; + t.phophungthai = 0x0e1c; + t.phosamphaothai = 0x0e20; + t.pi = 0x03c0; + t.pieupacirclekorean = 0x3273; + t.pieupaparenkorean = 0x3213; + t.pieupcieuckorean = 0x3176; + t.pieupcirclekorean = 0x3265; + t.pieupkiyeokkorean = 0x3172; + t.pieupkorean = 0x3142; + t.pieupparenkorean = 0x3205; + t.pieupsioskiyeokkorean = 0x3174; + t.pieupsioskorean = 0x3144; + t.pieupsiostikeutkorean = 0x3175; + t.pieupthieuthkorean = 0x3177; + t.pieuptikeutkorean = 0x3173; + t.pihiragana = 0x3074; + t.pikatakana = 0x30d4; + t.pisymbolgreek = 0x03d6; + t.piwrarmenian = 0x0583; + t.planckover2pi = 0x210f; + t.planckover2pi1 = 0x210f; + t.plus = 0x002b; + t.plusbelowcmb = 0x031f; + t.pluscircle = 0x2295; + t.plusminus = 0x00b1; + t.plusmod = 0x02d6; + t.plusmonospace = 0xff0b; + t.plussmall = 0xfe62; + t.plussuperior = 0x207a; + t.pmonospace = 0xff50; + t.pmsquare = 0x33d8; + t.pohiragana = 0x307d; + t.pointingindexdownwhite = 0x261f; + t.pointingindexleftwhite = 0x261c; + t.pointingindexrightwhite = 0x261e; + t.pointingindexupwhite = 0x261d; + t.pokatakana = 0x30dd; + t.poplathai = 0x0e1b; + t.postalmark = 0x3012; + t.postalmarkface = 0x3020; + t.pparen = 0x24ab; + t.precedes = 0x227a; + t.prescription = 0x211e; + t.primemod = 0x02b9; + t.primereversed = 0x2035; + t.product = 0x220f; + t.projective = 0x2305; + t.prolongedkana = 0x30fc; + t.propellor = 0x2318; + t.propersubset = 0x2282; + t.propersuperset = 0x2283; + t.proportion = 0x2237; + t.proportional = 0x221d; + t.psi = 0x03c8; + t.psicyrillic = 0x0471; + t.psilipneumatacyrilliccmb = 0x0486; + t.pssquare = 0x33b0; + t.puhiragana = 0x3077; + t.pukatakana = 0x30d7; + t.pvsquare = 0x33b4; + t.pwsquare = 0x33ba; + t.q = 0x0071; + t.qadeva = 0x0958; + t.qadmahebrew = 0x05a8; + t.qafarabic = 0x0642; + t.qaffinalarabic = 0xfed6; + t.qafinitialarabic = 0xfed7; + t.qafmedialarabic = 0xfed8; + t.qamats = 0x05b8; + t.qamats10 = 0x05b8; + t.qamats1a = 0x05b8; + t.qamats1c = 0x05b8; + t.qamats27 = 0x05b8; + t.qamats29 = 0x05b8; + t.qamats33 = 0x05b8; + t.qamatsde = 0x05b8; + t.qamatshebrew = 0x05b8; + t.qamatsnarrowhebrew = 0x05b8; + t.qamatsqatanhebrew = 0x05b8; + t.qamatsqatannarrowhebrew = 0x05b8; + t.qamatsqatanquarterhebrew = 0x05b8; + t.qamatsqatanwidehebrew = 0x05b8; + t.qamatsquarterhebrew = 0x05b8; + t.qamatswidehebrew = 0x05b8; + t.qarneyparahebrew = 0x059f; + t.qbopomofo = 0x3111; + t.qcircle = 0x24e0; + t.qhook = 0x02a0; + t.qmonospace = 0xff51; + t.qof = 0x05e7; + t.qofdagesh = 0xfb47; + t.qofdageshhebrew = 0xfb47; + t.qofhebrew = 0x05e7; + t.qparen = 0x24ac; + t.quarternote = 0x2669; + t.qubuts = 0x05bb; + t.qubuts18 = 0x05bb; + t.qubuts25 = 0x05bb; + t.qubuts31 = 0x05bb; + t.qubutshebrew = 0x05bb; + t.qubutsnarrowhebrew = 0x05bb; + t.qubutsquarterhebrew = 0x05bb; + t.qubutswidehebrew = 0x05bb; + t.question = 0x003f; + t.questionarabic = 0x061f; + t.questionarmenian = 0x055e; + t.questiondown = 0x00bf; + t.questiondownsmall = 0xf7bf; + t.questiongreek = 0x037e; + t.questionmonospace = 0xff1f; + t.questionsmall = 0xf73f; + t.quotedbl = 0x0022; + t.quotedblbase = 0x201e; + t.quotedblleft = 0x201c; + t.quotedblmonospace = 0xff02; + t.quotedblprime = 0x301e; + t.quotedblprimereversed = 0x301d; + t.quotedblright = 0x201d; + t.quoteleft = 0x2018; + t.quoteleftreversed = 0x201b; + t.quotereversed = 0x201b; + t.quoteright = 0x2019; + t.quoterightn = 0x0149; + t.quotesinglbase = 0x201a; + t.quotesingle = 0x0027; + t.quotesinglemonospace = 0xff07; + t.r = 0x0072; + t.raarmenian = 0x057c; + t.rabengali = 0x09b0; + t.racute = 0x0155; + t.radeva = 0x0930; + t.radical = 0x221a; + t.radicalex = 0xf8e5; + t.radoverssquare = 0x33ae; + t.radoverssquaredsquare = 0x33af; + t.radsquare = 0x33ad; + t.rafe = 0x05bf; + t.rafehebrew = 0x05bf; + t.ragujarati = 0x0ab0; + t.ragurmukhi = 0x0a30; + t.rahiragana = 0x3089; + t.rakatakana = 0x30e9; + t.rakatakanahalfwidth = 0xff97; + t.ralowerdiagonalbengali = 0x09f1; + t.ramiddlediagonalbengali = 0x09f0; + t.ramshorn = 0x0264; + t.ratio = 0x2236; + t.rbopomofo = 0x3116; + t.rcaron = 0x0159; + t.rcedilla = 0x0157; + t.rcircle = 0x24e1; + t.rcommaaccent = 0x0157; + t.rdblgrave = 0x0211; + t.rdotaccent = 0x1e59; + t.rdotbelow = 0x1e5b; + t.rdotbelowmacron = 0x1e5d; + t.referencemark = 0x203b; + t.reflexsubset = 0x2286; + t.reflexsuperset = 0x2287; + t.registered = 0x00ae; + t.registersans = 0xf8e8; + t.registerserif = 0xf6da; + t.reharabic = 0x0631; + t.reharmenian = 0x0580; + t.rehfinalarabic = 0xfeae; + t.rehiragana = 0x308c; + t.rekatakana = 0x30ec; + t.rekatakanahalfwidth = 0xff9a; + t.resh = 0x05e8; + t.reshdageshhebrew = 0xfb48; + t.reshhebrew = 0x05e8; + t.reversedtilde = 0x223d; + t.reviahebrew = 0x0597; + t.reviamugrashhebrew = 0x0597; + t.revlogicalnot = 0x2310; + t.rfishhook = 0x027e; + t.rfishhookreversed = 0x027f; + t.rhabengali = 0x09dd; + t.rhadeva = 0x095d; + t.rho = 0x03c1; + t.rhook = 0x027d; + t.rhookturned = 0x027b; + t.rhookturnedsuperior = 0x02b5; + t.rhosymbolgreek = 0x03f1; + t.rhotichookmod = 0x02de; + t.rieulacirclekorean = 0x3271; + t.rieulaparenkorean = 0x3211; + t.rieulcirclekorean = 0x3263; + t.rieulhieuhkorean = 0x3140; + t.rieulkiyeokkorean = 0x313a; + t.rieulkiyeoksioskorean = 0x3169; + t.rieulkorean = 0x3139; + t.rieulmieumkorean = 0x313b; + t.rieulpansioskorean = 0x316c; + t.rieulparenkorean = 0x3203; + t.rieulphieuphkorean = 0x313f; + t.rieulpieupkorean = 0x313c; + t.rieulpieupsioskorean = 0x316b; + t.rieulsioskorean = 0x313d; + t.rieulthieuthkorean = 0x313e; + t.rieultikeutkorean = 0x316a; + t.rieulyeorinhieuhkorean = 0x316d; + t.rightangle = 0x221f; + t.righttackbelowcmb = 0x0319; + t.righttriangle = 0x22bf; + t.rihiragana = 0x308a; + t.rikatakana = 0x30ea; + t.rikatakanahalfwidth = 0xff98; + t.ring = 0x02da; + t.ringbelowcmb = 0x0325; + t.ringcmb = 0x030a; + t.ringhalfleft = 0x02bf; + t.ringhalfleftarmenian = 0x0559; + t.ringhalfleftbelowcmb = 0x031c; + t.ringhalfleftcentered = 0x02d3; + t.ringhalfright = 0x02be; + t.ringhalfrightbelowcmb = 0x0339; + t.ringhalfrightcentered = 0x02d2; + t.rinvertedbreve = 0x0213; + t.rittorusquare = 0x3351; + t.rlinebelow = 0x1e5f; + t.rlongleg = 0x027c; + t.rlonglegturned = 0x027a; + t.rmonospace = 0xff52; + t.rohiragana = 0x308d; + t.rokatakana = 0x30ed; + t.rokatakanahalfwidth = 0xff9b; + t.roruathai = 0x0e23; + t.rparen = 0x24ad; + t.rrabengali = 0x09dc; + t.rradeva = 0x0931; + t.rragurmukhi = 0x0a5c; + t.rreharabic = 0x0691; + t.rrehfinalarabic = 0xfb8d; + t.rrvocalicbengali = 0x09e0; + t.rrvocalicdeva = 0x0960; + t.rrvocalicgujarati = 0x0ae0; + t.rrvocalicvowelsignbengali = 0x09c4; + t.rrvocalicvowelsigndeva = 0x0944; + t.rrvocalicvowelsigngujarati = 0x0ac4; + t.rsuperior = 0xf6f1; + t.rtblock = 0x2590; + t.rturned = 0x0279; + t.rturnedsuperior = 0x02b4; + t.ruhiragana = 0x308b; + t.rukatakana = 0x30eb; + t.rukatakanahalfwidth = 0xff99; + t.rupeemarkbengali = 0x09f2; + t.rupeesignbengali = 0x09f3; + t.rupiah = 0xf6dd; + t.ruthai = 0x0e24; + t.rvocalicbengali = 0x098b; + t.rvocalicdeva = 0x090b; + t.rvocalicgujarati = 0x0a8b; + t.rvocalicvowelsignbengali = 0x09c3; + t.rvocalicvowelsigndeva = 0x0943; + t.rvocalicvowelsigngujarati = 0x0ac3; + t.s = 0x0073; + t.sabengali = 0x09b8; + t.sacute = 0x015b; + t.sacutedotaccent = 0x1e65; + t.sadarabic = 0x0635; + t.sadeva = 0x0938; + t.sadfinalarabic = 0xfeba; + t.sadinitialarabic = 0xfebb; + t.sadmedialarabic = 0xfebc; + t.sagujarati = 0x0ab8; + t.sagurmukhi = 0x0a38; + t.sahiragana = 0x3055; + t.sakatakana = 0x30b5; + t.sakatakanahalfwidth = 0xff7b; + t.sallallahoualayhewasallamarabic = 0xfdfa; + t.samekh = 0x05e1; + t.samekhdagesh = 0xfb41; + t.samekhdageshhebrew = 0xfb41; + t.samekhhebrew = 0x05e1; + t.saraaathai = 0x0e32; + t.saraaethai = 0x0e41; + t.saraaimaimalaithai = 0x0e44; + t.saraaimaimuanthai = 0x0e43; + t.saraamthai = 0x0e33; + t.saraathai = 0x0e30; + t.saraethai = 0x0e40; + t.saraiileftthai = 0xf886; + t.saraiithai = 0x0e35; + t.saraileftthai = 0xf885; + t.saraithai = 0x0e34; + t.saraothai = 0x0e42; + t.saraueeleftthai = 0xf888; + t.saraueethai = 0x0e37; + t.saraueleftthai = 0xf887; + t.sarauethai = 0x0e36; + t.sarauthai = 0x0e38; + t.sarauuthai = 0x0e39; + t.sbopomofo = 0x3119; + t.scaron = 0x0161; + t.scarondotaccent = 0x1e67; + t.scedilla = 0x015f; + t.schwa = 0x0259; + t.schwacyrillic = 0x04d9; + t.schwadieresiscyrillic = 0x04db; + t.schwahook = 0x025a; + t.scircle = 0x24e2; + t.scircumflex = 0x015d; + t.scommaaccent = 0x0219; + t.sdotaccent = 0x1e61; + t.sdotbelow = 0x1e63; + t.sdotbelowdotaccent = 0x1e69; + t.seagullbelowcmb = 0x033c; + t.second = 0x2033; + t.secondtonechinese = 0x02ca; + t.section = 0x00a7; + t.seenarabic = 0x0633; + t.seenfinalarabic = 0xfeb2; + t.seeninitialarabic = 0xfeb3; + t.seenmedialarabic = 0xfeb4; + t.segol = 0x05b6; + t.segol13 = 0x05b6; + t.segol1f = 0x05b6; + t.segol2c = 0x05b6; + t.segolhebrew = 0x05b6; + t.segolnarrowhebrew = 0x05b6; + t.segolquarterhebrew = 0x05b6; + t.segoltahebrew = 0x0592; + t.segolwidehebrew = 0x05b6; + t.seharmenian = 0x057d; + t.sehiragana = 0x305b; + t.sekatakana = 0x30bb; + t.sekatakanahalfwidth = 0xff7e; + t.semicolon = 0x003b; + t.semicolonarabic = 0x061b; + t.semicolonmonospace = 0xff1b; + t.semicolonsmall = 0xfe54; + t.semivoicedmarkkana = 0x309c; + t.semivoicedmarkkanahalfwidth = 0xff9f; + t.sentisquare = 0x3322; + t.sentosquare = 0x3323; + t.seven = 0x0037; + t.sevenarabic = 0x0667; + t.sevenbengali = 0x09ed; + t.sevencircle = 0x2466; + t.sevencircleinversesansserif = 0x2790; + t.sevendeva = 0x096d; + t.seveneighths = 0x215e; + t.sevengujarati = 0x0aed; + t.sevengurmukhi = 0x0a6d; + t.sevenhackarabic = 0x0667; + t.sevenhangzhou = 0x3027; + t.sevenideographicparen = 0x3226; + t.seveninferior = 0x2087; + t.sevenmonospace = 0xff17; + t.sevenoldstyle = 0xf737; + t.sevenparen = 0x247a; + t.sevenperiod = 0x248e; + t.sevenpersian = 0x06f7; + t.sevenroman = 0x2176; + t.sevensuperior = 0x2077; + t.seventeencircle = 0x2470; + t.seventeenparen = 0x2484; + t.seventeenperiod = 0x2498; + t.seventhai = 0x0e57; + t.sfthyphen = 0x00ad; + t.shaarmenian = 0x0577; + t.shabengali = 0x09b6; + t.shacyrillic = 0x0448; + t.shaddaarabic = 0x0651; + t.shaddadammaarabic = 0xfc61; + t.shaddadammatanarabic = 0xfc5e; + t.shaddafathaarabic = 0xfc60; + t.shaddakasraarabic = 0xfc62; + t.shaddakasratanarabic = 0xfc5f; + t.shade = 0x2592; + t.shadedark = 0x2593; + t.shadelight = 0x2591; + t.shademedium = 0x2592; + t.shadeva = 0x0936; + t.shagujarati = 0x0ab6; + t.shagurmukhi = 0x0a36; + t.shalshelethebrew = 0x0593; + t.shbopomofo = 0x3115; + t.shchacyrillic = 0x0449; + t.sheenarabic = 0x0634; + t.sheenfinalarabic = 0xfeb6; + t.sheeninitialarabic = 0xfeb7; + t.sheenmedialarabic = 0xfeb8; + t.sheicoptic = 0x03e3; + t.sheqel = 0x20aa; + t.sheqelhebrew = 0x20aa; + t.sheva = 0x05b0; + t.sheva115 = 0x05b0; + t.sheva15 = 0x05b0; + t.sheva22 = 0x05b0; + t.sheva2e = 0x05b0; + t.shevahebrew = 0x05b0; + t.shevanarrowhebrew = 0x05b0; + t.shevaquarterhebrew = 0x05b0; + t.shevawidehebrew = 0x05b0; + t.shhacyrillic = 0x04bb; + t.shimacoptic = 0x03ed; + t.shin = 0x05e9; + t.shindagesh = 0xfb49; + t.shindageshhebrew = 0xfb49; + t.shindageshshindot = 0xfb2c; + t.shindageshshindothebrew = 0xfb2c; + t.shindageshsindot = 0xfb2d; + t.shindageshsindothebrew = 0xfb2d; + t.shindothebrew = 0x05c1; + t.shinhebrew = 0x05e9; + t.shinshindot = 0xfb2a; + t.shinshindothebrew = 0xfb2a; + t.shinsindot = 0xfb2b; + t.shinsindothebrew = 0xfb2b; + t.shook = 0x0282; + t.sigma = 0x03c3; + t.sigma1 = 0x03c2; + t.sigmafinal = 0x03c2; + t.sigmalunatesymbolgreek = 0x03f2; + t.sihiragana = 0x3057; + t.sikatakana = 0x30b7; + t.sikatakanahalfwidth = 0xff7c; + t.siluqhebrew = 0x05bd; + t.siluqlefthebrew = 0x05bd; + t.similar = 0x223c; + t.sindothebrew = 0x05c2; + t.siosacirclekorean = 0x3274; + t.siosaparenkorean = 0x3214; + t.sioscieuckorean = 0x317e; + t.sioscirclekorean = 0x3266; + t.sioskiyeokkorean = 0x317a; + t.sioskorean = 0x3145; + t.siosnieunkorean = 0x317b; + t.siosparenkorean = 0x3206; + t.siospieupkorean = 0x317d; + t.siostikeutkorean = 0x317c; + t.six = 0x0036; + t.sixarabic = 0x0666; + t.sixbengali = 0x09ec; + t.sixcircle = 0x2465; + t.sixcircleinversesansserif = 0x278f; + t.sixdeva = 0x096c; + t.sixgujarati = 0x0aec; + t.sixgurmukhi = 0x0a6c; + t.sixhackarabic = 0x0666; + t.sixhangzhou = 0x3026; + t.sixideographicparen = 0x3225; + t.sixinferior = 0x2086; + t.sixmonospace = 0xff16; + t.sixoldstyle = 0xf736; + t.sixparen = 0x2479; + t.sixperiod = 0x248d; + t.sixpersian = 0x06f6; + t.sixroman = 0x2175; + t.sixsuperior = 0x2076; + t.sixteencircle = 0x246f; + t.sixteencurrencydenominatorbengali = 0x09f9; + t.sixteenparen = 0x2483; + t.sixteenperiod = 0x2497; + t.sixthai = 0x0e56; + t.slash = 0x002f; + t.slashmonospace = 0xff0f; + t.slong = 0x017f; + t.slongdotaccent = 0x1e9b; + t.smileface = 0x263a; + t.smonospace = 0xff53; + t.sofpasuqhebrew = 0x05c3; + t.softhyphen = 0x00ad; + t.softsigncyrillic = 0x044c; + t.sohiragana = 0x305d; + t.sokatakana = 0x30bd; + t.sokatakanahalfwidth = 0xff7f; + t.soliduslongoverlaycmb = 0x0338; + t.solidusshortoverlaycmb = 0x0337; + t.sorusithai = 0x0e29; + t.sosalathai = 0x0e28; + t.sosothai = 0x0e0b; + t.sosuathai = 0x0e2a; + t.space = 0x0020; + t.spacehackarabic = 0x0020; + t.spade = 0x2660; + t.spadesuitblack = 0x2660; + t.spadesuitwhite = 0x2664; + t.sparen = 0x24ae; + t.squarebelowcmb = 0x033b; + t.squarecc = 0x33c4; + t.squarecm = 0x339d; + t.squarediagonalcrosshatchfill = 0x25a9; + t.squarehorizontalfill = 0x25a4; + t.squarekg = 0x338f; + t.squarekm = 0x339e; + t.squarekmcapital = 0x33ce; + t.squareln = 0x33d1; + t.squarelog = 0x33d2; + t.squaremg = 0x338e; + t.squaremil = 0x33d5; + t.squaremm = 0x339c; + t.squaremsquared = 0x33a1; + t.squareorthogonalcrosshatchfill = 0x25a6; + t.squareupperlefttolowerrightfill = 0x25a7; + t.squareupperrighttolowerleftfill = 0x25a8; + t.squareverticalfill = 0x25a5; + t.squarewhitewithsmallblack = 0x25a3; + t.srsquare = 0x33db; + t.ssabengali = 0x09b7; + t.ssadeva = 0x0937; + t.ssagujarati = 0x0ab7; + t.ssangcieuckorean = 0x3149; + t.ssanghieuhkorean = 0x3185; + t.ssangieungkorean = 0x3180; + t.ssangkiyeokkorean = 0x3132; + t.ssangnieunkorean = 0x3165; + t.ssangpieupkorean = 0x3143; + t.ssangsioskorean = 0x3146; + t.ssangtikeutkorean = 0x3138; + t.ssuperior = 0xf6f2; + t.sterling = 0x00a3; + t.sterlingmonospace = 0xffe1; + t.strokelongoverlaycmb = 0x0336; + t.strokeshortoverlaycmb = 0x0335; + t.subset = 0x2282; + t.subsetnotequal = 0x228a; + t.subsetorequal = 0x2286; + t.succeeds = 0x227b; + t.suchthat = 0x220b; + t.suhiragana = 0x3059; + t.sukatakana = 0x30b9; + t.sukatakanahalfwidth = 0xff7d; + t.sukunarabic = 0x0652; + t.summation = 0x2211; + t.sun = 0x263c; + t.superset = 0x2283; + t.supersetnotequal = 0x228b; + t.supersetorequal = 0x2287; + t.svsquare = 0x33dc; + t.syouwaerasquare = 0x337c; + t.t = 0x0074; + t.tabengali = 0x09a4; + t.tackdown = 0x22a4; + t.tackleft = 0x22a3; + t.tadeva = 0x0924; + t.tagujarati = 0x0aa4; + t.tagurmukhi = 0x0a24; + t.taharabic = 0x0637; + t.tahfinalarabic = 0xfec2; + t.tahinitialarabic = 0xfec3; + t.tahiragana = 0x305f; + t.tahmedialarabic = 0xfec4; + t.taisyouerasquare = 0x337d; + t.takatakana = 0x30bf; + t.takatakanahalfwidth = 0xff80; + t.tatweelarabic = 0x0640; + t.tau = 0x03c4; + t.tav = 0x05ea; + t.tavdages = 0xfb4a; + t.tavdagesh = 0xfb4a; + t.tavdageshhebrew = 0xfb4a; + t.tavhebrew = 0x05ea; + t.tbar = 0x0167; + t.tbopomofo = 0x310a; + t.tcaron = 0x0165; + t.tccurl = 0x02a8; + t.tcedilla = 0x0163; + t.tcheharabic = 0x0686; + t.tchehfinalarabic = 0xfb7b; + t.tchehinitialarabic = 0xfb7c; + t.tchehmedialarabic = 0xfb7d; + t.tcircle = 0x24e3; + t.tcircumflexbelow = 0x1e71; + t.tcommaaccent = 0x0163; + t.tdieresis = 0x1e97; + t.tdotaccent = 0x1e6b; + t.tdotbelow = 0x1e6d; + t.tecyrillic = 0x0442; + t.tedescendercyrillic = 0x04ad; + t.teharabic = 0x062a; + t.tehfinalarabic = 0xfe96; + t.tehhahinitialarabic = 0xfca2; + t.tehhahisolatedarabic = 0xfc0c; + t.tehinitialarabic = 0xfe97; + t.tehiragana = 0x3066; + t.tehjeeminitialarabic = 0xfca1; + t.tehjeemisolatedarabic = 0xfc0b; + t.tehmarbutaarabic = 0x0629; + t.tehmarbutafinalarabic = 0xfe94; + t.tehmedialarabic = 0xfe98; + t.tehmeeminitialarabic = 0xfca4; + t.tehmeemisolatedarabic = 0xfc0e; + t.tehnoonfinalarabic = 0xfc73; + t.tekatakana = 0x30c6; + t.tekatakanahalfwidth = 0xff83; + t.telephone = 0x2121; + t.telephoneblack = 0x260e; + t.telishagedolahebrew = 0x05a0; + t.telishaqetanahebrew = 0x05a9; + t.tencircle = 0x2469; + t.tenideographicparen = 0x3229; + t.tenparen = 0x247d; + t.tenperiod = 0x2491; + t.tenroman = 0x2179; + t.tesh = 0x02a7; + t.tet = 0x05d8; + t.tetdagesh = 0xfb38; + t.tetdageshhebrew = 0xfb38; + t.tethebrew = 0x05d8; + t.tetsecyrillic = 0x04b5; + t.tevirhebrew = 0x059b; + t.tevirlefthebrew = 0x059b; + t.thabengali = 0x09a5; + t.thadeva = 0x0925; + t.thagujarati = 0x0aa5; + t.thagurmukhi = 0x0a25; + t.thalarabic = 0x0630; + t.thalfinalarabic = 0xfeac; + t.thanthakhatlowleftthai = 0xf898; + t.thanthakhatlowrightthai = 0xf897; + t.thanthakhatthai = 0x0e4c; + t.thanthakhatupperleftthai = 0xf896; + t.theharabic = 0x062b; + t.thehfinalarabic = 0xfe9a; + t.thehinitialarabic = 0xfe9b; + t.thehmedialarabic = 0xfe9c; + t.thereexists = 0x2203; + t.therefore = 0x2234; + t.theta = 0x03b8; + t.theta1 = 0x03d1; + t.thetasymbolgreek = 0x03d1; + t.thieuthacirclekorean = 0x3279; + t.thieuthaparenkorean = 0x3219; + t.thieuthcirclekorean = 0x326b; + t.thieuthkorean = 0x314c; + t.thieuthparenkorean = 0x320b; + t.thirteencircle = 0x246c; + t.thirteenparen = 0x2480; + t.thirteenperiod = 0x2494; + t.thonangmonthothai = 0x0e11; + t.thook = 0x01ad; + t.thophuthaothai = 0x0e12; + t.thorn = 0x00fe; + t.thothahanthai = 0x0e17; + t.thothanthai = 0x0e10; + t.thothongthai = 0x0e18; + t.thothungthai = 0x0e16; + t.thousandcyrillic = 0x0482; + t.thousandsseparatorarabic = 0x066c; + t.thousandsseparatorpersian = 0x066c; + t.three = 0x0033; + t.threearabic = 0x0663; + t.threebengali = 0x09e9; + t.threecircle = 0x2462; + t.threecircleinversesansserif = 0x278c; + t.threedeva = 0x0969; + t.threeeighths = 0x215c; + t.threegujarati = 0x0ae9; + t.threegurmukhi = 0x0a69; + t.threehackarabic = 0x0663; + t.threehangzhou = 0x3023; + t.threeideographicparen = 0x3222; + t.threeinferior = 0x2083; + t.threemonospace = 0xff13; + t.threenumeratorbengali = 0x09f6; + t.threeoldstyle = 0xf733; + t.threeparen = 0x2476; + t.threeperiod = 0x248a; + t.threepersian = 0x06f3; + t.threequarters = 0x00be; + t.threequartersemdash = 0xf6de; + t.threeroman = 0x2172; + t.threesuperior = 0x00b3; + t.threethai = 0x0e53; + t.thzsquare = 0x3394; + t.tihiragana = 0x3061; + t.tikatakana = 0x30c1; + t.tikatakanahalfwidth = 0xff81; + t.tikeutacirclekorean = 0x3270; + t.tikeutaparenkorean = 0x3210; + t.tikeutcirclekorean = 0x3262; + t.tikeutkorean = 0x3137; + t.tikeutparenkorean = 0x3202; + t.tilde = 0x02dc; + t.tildebelowcmb = 0x0330; + t.tildecmb = 0x0303; + t.tildecomb = 0x0303; + t.tildedoublecmb = 0x0360; + t.tildeoperator = 0x223c; + t.tildeoverlaycmb = 0x0334; + t.tildeverticalcmb = 0x033e; + t.timescircle = 0x2297; + t.tipehahebrew = 0x0596; + t.tipehalefthebrew = 0x0596; + t.tippigurmukhi = 0x0a70; + t.titlocyrilliccmb = 0x0483; + t.tiwnarmenian = 0x057f; + t.tlinebelow = 0x1e6f; + t.tmonospace = 0xff54; + t.toarmenian = 0x0569; + t.tohiragana = 0x3068; + t.tokatakana = 0x30c8; + t.tokatakanahalfwidth = 0xff84; + t.tonebarextrahighmod = 0x02e5; + t.tonebarextralowmod = 0x02e9; + t.tonebarhighmod = 0x02e6; + t.tonebarlowmod = 0x02e8; + t.tonebarmidmod = 0x02e7; + t.tonefive = 0x01bd; + t.tonesix = 0x0185; + t.tonetwo = 0x01a8; + t.tonos = 0x0384; + t.tonsquare = 0x3327; + t.topatakthai = 0x0e0f; + t.tortoiseshellbracketleft = 0x3014; + t.tortoiseshellbracketleftsmall = 0xfe5d; + t.tortoiseshellbracketleftvertical = 0xfe39; + t.tortoiseshellbracketright = 0x3015; + t.tortoiseshellbracketrightsmall = 0xfe5e; + t.tortoiseshellbracketrightvertical = 0xfe3a; + t.totaothai = 0x0e15; + t.tpalatalhook = 0x01ab; + t.tparen = 0x24af; + t.trademark = 0x2122; + t.trademarksans = 0xf8ea; + t.trademarkserif = 0xf6db; + t.tretroflexhook = 0x0288; + t.triagdn = 0x25bc; + t.triaglf = 0x25c4; + t.triagrt = 0x25ba; + t.triagup = 0x25b2; + t.ts = 0x02a6; + t.tsadi = 0x05e6; + t.tsadidagesh = 0xfb46; + t.tsadidageshhebrew = 0xfb46; + t.tsadihebrew = 0x05e6; + t.tsecyrillic = 0x0446; + t.tsere = 0x05b5; + t.tsere12 = 0x05b5; + t.tsere1e = 0x05b5; + t.tsere2b = 0x05b5; + t.tserehebrew = 0x05b5; + t.tserenarrowhebrew = 0x05b5; + t.tserequarterhebrew = 0x05b5; + t.tserewidehebrew = 0x05b5; + t.tshecyrillic = 0x045b; + t.tsuperior = 0xf6f3; + t.ttabengali = 0x099f; + t.ttadeva = 0x091f; + t.ttagujarati = 0x0a9f; + t.ttagurmukhi = 0x0a1f; + t.tteharabic = 0x0679; + t.ttehfinalarabic = 0xfb67; + t.ttehinitialarabic = 0xfb68; + t.ttehmedialarabic = 0xfb69; + t.tthabengali = 0x09a0; + t.tthadeva = 0x0920; + t.tthagujarati = 0x0aa0; + t.tthagurmukhi = 0x0a20; + t.tturned = 0x0287; + t.tuhiragana = 0x3064; + t.tukatakana = 0x30c4; + t.tukatakanahalfwidth = 0xff82; + t.tusmallhiragana = 0x3063; + t.tusmallkatakana = 0x30c3; + t.tusmallkatakanahalfwidth = 0xff6f; + t.twelvecircle = 0x246b; + t.twelveparen = 0x247f; + t.twelveperiod = 0x2493; + t.twelveroman = 0x217b; + t.twentycircle = 0x2473; + t.twentyhangzhou = 0x5344; + t.twentyparen = 0x2487; + t.twentyperiod = 0x249b; + t.two = 0x0032; + t.twoarabic = 0x0662; + t.twobengali = 0x09e8; + t.twocircle = 0x2461; + t.twocircleinversesansserif = 0x278b; + t.twodeva = 0x0968; + t.twodotenleader = 0x2025; + t.twodotleader = 0x2025; + t.twodotleadervertical = 0xfe30; + t.twogujarati = 0x0ae8; + t.twogurmukhi = 0x0a68; + t.twohackarabic = 0x0662; + t.twohangzhou = 0x3022; + t.twoideographicparen = 0x3221; + t.twoinferior = 0x2082; + t.twomonospace = 0xff12; + t.twonumeratorbengali = 0x09f5; + t.twooldstyle = 0xf732; + t.twoparen = 0x2475; + t.twoperiod = 0x2489; + t.twopersian = 0x06f2; + t.tworoman = 0x2171; + t.twostroke = 0x01bb; + t.twosuperior = 0x00b2; + t.twothai = 0x0e52; + t.twothirds = 0x2154; + t.u = 0x0075; + t.uacute = 0x00fa; + t.ubar = 0x0289; + t.ubengali = 0x0989; + t.ubopomofo = 0x3128; + t.ubreve = 0x016d; + t.ucaron = 0x01d4; + t.ucircle = 0x24e4; + t.ucircumflex = 0x00fb; + t.ucircumflexbelow = 0x1e77; + t.ucyrillic = 0x0443; + t.udattadeva = 0x0951; + t.udblacute = 0x0171; + t.udblgrave = 0x0215; + t.udeva = 0x0909; + t.udieresis = 0x00fc; + t.udieresisacute = 0x01d8; + t.udieresisbelow = 0x1e73; + t.udieresiscaron = 0x01da; + t.udieresiscyrillic = 0x04f1; + t.udieresisgrave = 0x01dc; + t.udieresismacron = 0x01d6; + t.udotbelow = 0x1ee5; + t.ugrave = 0x00f9; + t.ugujarati = 0x0a89; + t.ugurmukhi = 0x0a09; + t.uhiragana = 0x3046; + t.uhookabove = 0x1ee7; + t.uhorn = 0x01b0; + t.uhornacute = 0x1ee9; + t.uhorndotbelow = 0x1ef1; + t.uhorngrave = 0x1eeb; + t.uhornhookabove = 0x1eed; + t.uhorntilde = 0x1eef; + t.uhungarumlaut = 0x0171; + t.uhungarumlautcyrillic = 0x04f3; + t.uinvertedbreve = 0x0217; + t.ukatakana = 0x30a6; + t.ukatakanahalfwidth = 0xff73; + t.ukcyrillic = 0x0479; + t.ukorean = 0x315c; + t.umacron = 0x016b; + t.umacroncyrillic = 0x04ef; + t.umacrondieresis = 0x1e7b; + t.umatragurmukhi = 0x0a41; + t.umonospace = 0xff55; + t.underscore = 0x005f; + t.underscoredbl = 0x2017; + t.underscoremonospace = 0xff3f; + t.underscorevertical = 0xfe33; + t.underscorewavy = 0xfe4f; + t.union = 0x222a; + t.universal = 0x2200; + t.uogonek = 0x0173; + t.uparen = 0x24b0; + t.upblock = 0x2580; + t.upperdothebrew = 0x05c4; + t.upsilon = 0x03c5; + t.upsilondieresis = 0x03cb; + t.upsilondieresistonos = 0x03b0; + t.upsilonlatin = 0x028a; + t.upsilontonos = 0x03cd; + t.uptackbelowcmb = 0x031d; + t.uptackmod = 0x02d4; + t.uragurmukhi = 0x0a73; + t.uring = 0x016f; + t.ushortcyrillic = 0x045e; + t.usmallhiragana = 0x3045; + t.usmallkatakana = 0x30a5; + t.usmallkatakanahalfwidth = 0xff69; + t.ustraightcyrillic = 0x04af; + t.ustraightstrokecyrillic = 0x04b1; + t.utilde = 0x0169; + t.utildeacute = 0x1e79; + t.utildebelow = 0x1e75; + t.uubengali = 0x098a; + t.uudeva = 0x090a; + t.uugujarati = 0x0a8a; + t.uugurmukhi = 0x0a0a; + t.uumatragurmukhi = 0x0a42; + t.uuvowelsignbengali = 0x09c2; + t.uuvowelsigndeva = 0x0942; + t.uuvowelsigngujarati = 0x0ac2; + t.uvowelsignbengali = 0x09c1; + t.uvowelsigndeva = 0x0941; + t.uvowelsigngujarati = 0x0ac1; + t.v = 0x0076; + t.vadeva = 0x0935; + t.vagujarati = 0x0ab5; + t.vagurmukhi = 0x0a35; + t.vakatakana = 0x30f7; + t.vav = 0x05d5; + t.vavdagesh = 0xfb35; + t.vavdagesh65 = 0xfb35; + t.vavdageshhebrew = 0xfb35; + t.vavhebrew = 0x05d5; + t.vavholam = 0xfb4b; + t.vavholamhebrew = 0xfb4b; + t.vavvavhebrew = 0x05f0; + t.vavyodhebrew = 0x05f1; + t.vcircle = 0x24e5; + t.vdotbelow = 0x1e7f; + t.vecyrillic = 0x0432; + t.veharabic = 0x06a4; + t.vehfinalarabic = 0xfb6b; + t.vehinitialarabic = 0xfb6c; + t.vehmedialarabic = 0xfb6d; + t.vekatakana = 0x30f9; + t.venus = 0x2640; + t.verticalbar = 0x007c; + t.verticallineabovecmb = 0x030d; + t.verticallinebelowcmb = 0x0329; + t.verticallinelowmod = 0x02cc; + t.verticallinemod = 0x02c8; + t.vewarmenian = 0x057e; + t.vhook = 0x028b; + t.vikatakana = 0x30f8; + t.viramabengali = 0x09cd; + t.viramadeva = 0x094d; + t.viramagujarati = 0x0acd; + t.visargabengali = 0x0983; + t.visargadeva = 0x0903; + t.visargagujarati = 0x0a83; + t.vmonospace = 0xff56; + t.voarmenian = 0x0578; + t.voicediterationhiragana = 0x309e; + t.voicediterationkatakana = 0x30fe; + t.voicedmarkkana = 0x309b; + t.voicedmarkkanahalfwidth = 0xff9e; + t.vokatakana = 0x30fa; + t.vparen = 0x24b1; + t.vtilde = 0x1e7d; + t.vturned = 0x028c; + t.vuhiragana = 0x3094; + t.vukatakana = 0x30f4; + t.w = 0x0077; + t.wacute = 0x1e83; + t.waekorean = 0x3159; + t.wahiragana = 0x308f; + t.wakatakana = 0x30ef; + t.wakatakanahalfwidth = 0xff9c; + t.wakorean = 0x3158; + t.wasmallhiragana = 0x308e; + t.wasmallkatakana = 0x30ee; + t.wattosquare = 0x3357; + t.wavedash = 0x301c; + t.wavyunderscorevertical = 0xfe34; + t.wawarabic = 0x0648; + t.wawfinalarabic = 0xfeee; + t.wawhamzaabovearabic = 0x0624; + t.wawhamzaabovefinalarabic = 0xfe86; + t.wbsquare = 0x33dd; + t.wcircle = 0x24e6; + t.wcircumflex = 0x0175; + t.wdieresis = 0x1e85; + t.wdotaccent = 0x1e87; + t.wdotbelow = 0x1e89; + t.wehiragana = 0x3091; + t.weierstrass = 0x2118; + t.wekatakana = 0x30f1; + t.wekorean = 0x315e; + t.weokorean = 0x315d; + t.wgrave = 0x1e81; + t.whitebullet = 0x25e6; + t.whitecircle = 0x25cb; + t.whitecircleinverse = 0x25d9; + t.whitecornerbracketleft = 0x300e; + t.whitecornerbracketleftvertical = 0xfe43; + t.whitecornerbracketright = 0x300f; + t.whitecornerbracketrightvertical = 0xfe44; + t.whitediamond = 0x25c7; + t.whitediamondcontainingblacksmalldiamond = 0x25c8; + t.whitedownpointingsmalltriangle = 0x25bf; + t.whitedownpointingtriangle = 0x25bd; + t.whiteleftpointingsmalltriangle = 0x25c3; + t.whiteleftpointingtriangle = 0x25c1; + t.whitelenticularbracketleft = 0x3016; + t.whitelenticularbracketright = 0x3017; + t.whiterightpointingsmalltriangle = 0x25b9; + t.whiterightpointingtriangle = 0x25b7; + t.whitesmallsquare = 0x25ab; + t.whitesmilingface = 0x263a; + t.whitesquare = 0x25a1; + t.whitestar = 0x2606; + t.whitetelephone = 0x260f; + t.whitetortoiseshellbracketleft = 0x3018; + t.whitetortoiseshellbracketright = 0x3019; + t.whiteuppointingsmalltriangle = 0x25b5; + t.whiteuppointingtriangle = 0x25b3; + t.wihiragana = 0x3090; + t.wikatakana = 0x30f0; + t.wikorean = 0x315f; + t.wmonospace = 0xff57; + t.wohiragana = 0x3092; + t.wokatakana = 0x30f2; + t.wokatakanahalfwidth = 0xff66; + t.won = 0x20a9; + t.wonmonospace = 0xffe6; + t.wowaenthai = 0x0e27; + t.wparen = 0x24b2; + t.wring = 0x1e98; + t.wsuperior = 0x02b7; + t.wturned = 0x028d; + t.wynn = 0x01bf; + t.x = 0x0078; + t.xabovecmb = 0x033d; + t.xbopomofo = 0x3112; + t.xcircle = 0x24e7; + t.xdieresis = 0x1e8d; + t.xdotaccent = 0x1e8b; + t.xeharmenian = 0x056d; + t.xi = 0x03be; + t.xmonospace = 0xff58; + t.xparen = 0x24b3; + t.xsuperior = 0x02e3; + t.y = 0x0079; + t.yaadosquare = 0x334e; + t.yabengali = 0x09af; + t.yacute = 0x00fd; + t.yadeva = 0x092f; + t.yaekorean = 0x3152; + t.yagujarati = 0x0aaf; + t.yagurmukhi = 0x0a2f; + t.yahiragana = 0x3084; + t.yakatakana = 0x30e4; + t.yakatakanahalfwidth = 0xff94; + t.yakorean = 0x3151; + t.yamakkanthai = 0x0e4e; + t.yasmallhiragana = 0x3083; + t.yasmallkatakana = 0x30e3; + t.yasmallkatakanahalfwidth = 0xff6c; + t.yatcyrillic = 0x0463; + t.ycircle = 0x24e8; + t.ycircumflex = 0x0177; + t.ydieresis = 0x00ff; + t.ydotaccent = 0x1e8f; + t.ydotbelow = 0x1ef5; + t.yeharabic = 0x064a; + t.yehbarreearabic = 0x06d2; + t.yehbarreefinalarabic = 0xfbaf; + t.yehfinalarabic = 0xfef2; + t.yehhamzaabovearabic = 0x0626; + t.yehhamzaabovefinalarabic = 0xfe8a; + t.yehhamzaaboveinitialarabic = 0xfe8b; + t.yehhamzaabovemedialarabic = 0xfe8c; + t.yehinitialarabic = 0xfef3; + t.yehmedialarabic = 0xfef4; + t.yehmeeminitialarabic = 0xfcdd; + t.yehmeemisolatedarabic = 0xfc58; + t.yehnoonfinalarabic = 0xfc94; + t.yehthreedotsbelowarabic = 0x06d1; + t.yekorean = 0x3156; + t.yen = 0x00a5; + t.yenmonospace = 0xffe5; + t.yeokorean = 0x3155; + t.yeorinhieuhkorean = 0x3186; + t.yerahbenyomohebrew = 0x05aa; + t.yerahbenyomolefthebrew = 0x05aa; + t.yericyrillic = 0x044b; + t.yerudieresiscyrillic = 0x04f9; + t.yesieungkorean = 0x3181; + t.yesieungpansioskorean = 0x3183; + t.yesieungsioskorean = 0x3182; + t.yetivhebrew = 0x059a; + t.ygrave = 0x1ef3; + t.yhook = 0x01b4; + t.yhookabove = 0x1ef7; + t.yiarmenian = 0x0575; + t.yicyrillic = 0x0457; + t.yikorean = 0x3162; + t.yinyang = 0x262f; + t.yiwnarmenian = 0x0582; + t.ymonospace = 0xff59; + t.yod = 0x05d9; + t.yoddagesh = 0xfb39; + t.yoddageshhebrew = 0xfb39; + t.yodhebrew = 0x05d9; + t.yodyodhebrew = 0x05f2; + t.yodyodpatahhebrew = 0xfb1f; + t.yohiragana = 0x3088; + t.yoikorean = 0x3189; + t.yokatakana = 0x30e8; + t.yokatakanahalfwidth = 0xff96; + t.yokorean = 0x315b; + t.yosmallhiragana = 0x3087; + t.yosmallkatakana = 0x30e7; + t.yosmallkatakanahalfwidth = 0xff6e; + t.yotgreek = 0x03f3; + t.yoyaekorean = 0x3188; + t.yoyakorean = 0x3187; + t.yoyakthai = 0x0e22; + t.yoyingthai = 0x0e0d; + t.yparen = 0x24b4; + t.ypogegrammeni = 0x037a; + t.ypogegrammenigreekcmb = 0x0345; + t.yr = 0x01a6; + t.yring = 0x1e99; + t.ysuperior = 0x02b8; + t.ytilde = 0x1ef9; + t.yturned = 0x028e; + t.yuhiragana = 0x3086; + t.yuikorean = 0x318c; + t.yukatakana = 0x30e6; + t.yukatakanahalfwidth = 0xff95; + t.yukorean = 0x3160; + t.yusbigcyrillic = 0x046b; + t.yusbigiotifiedcyrillic = 0x046d; + t.yuslittlecyrillic = 0x0467; + t.yuslittleiotifiedcyrillic = 0x0469; + t.yusmallhiragana = 0x3085; + t.yusmallkatakana = 0x30e5; + t.yusmallkatakanahalfwidth = 0xff6d; + t.yuyekorean = 0x318b; + t.yuyeokorean = 0x318a; + t.yyabengali = 0x09df; + t.yyadeva = 0x095f; + t.z = 0x007a; + t.zaarmenian = 0x0566; + t.zacute = 0x017a; + t.zadeva = 0x095b; + t.zagurmukhi = 0x0a5b; + t.zaharabic = 0x0638; + t.zahfinalarabic = 0xfec6; + t.zahinitialarabic = 0xfec7; + t.zahiragana = 0x3056; + t.zahmedialarabic = 0xfec8; + t.zainarabic = 0x0632; + t.zainfinalarabic = 0xfeb0; + t.zakatakana = 0x30b6; + t.zaqefgadolhebrew = 0x0595; + t.zaqefqatanhebrew = 0x0594; + t.zarqahebrew = 0x0598; + t.zayin = 0x05d6; + t.zayindagesh = 0xfb36; + t.zayindageshhebrew = 0xfb36; + t.zayinhebrew = 0x05d6; + t.zbopomofo = 0x3117; + t.zcaron = 0x017e; + t.zcircle = 0x24e9; + t.zcircumflex = 0x1e91; + t.zcurl = 0x0291; + t.zdot = 0x017c; + t.zdotaccent = 0x017c; + t.zdotbelow = 0x1e93; + t.zecyrillic = 0x0437; + t.zedescendercyrillic = 0x0499; + t.zedieresiscyrillic = 0x04df; + t.zehiragana = 0x305c; + t.zekatakana = 0x30bc; + t.zero = 0x0030; + t.zeroarabic = 0x0660; + t.zerobengali = 0x09e6; + t.zerodeva = 0x0966; + t.zerogujarati = 0x0ae6; + t.zerogurmukhi = 0x0a66; + t.zerohackarabic = 0x0660; + t.zeroinferior = 0x2080; + t.zeromonospace = 0xff10; + t.zerooldstyle = 0xf730; + t.zeropersian = 0x06f0; + t.zerosuperior = 0x2070; + t.zerothai = 0x0e50; + t.zerowidthjoiner = 0xfeff; + t.zerowidthnonjoiner = 0x200c; + t.zerowidthspace = 0x200b; + t.zeta = 0x03b6; + t.zhbopomofo = 0x3113; + t.zhearmenian = 0x056a; + t.zhebrevecyrillic = 0x04c2; + t.zhecyrillic = 0x0436; + t.zhedescendercyrillic = 0x0497; + t.zhedieresiscyrillic = 0x04dd; + t.zihiragana = 0x3058; + t.zikatakana = 0x30b8; + t.zinorhebrew = 0x05ae; + t.zlinebelow = 0x1e95; + t.zmonospace = 0xff5a; + t.zohiragana = 0x305e; + t.zokatakana = 0x30be; + t.zparen = 0x24b5; + t.zretroflexhook = 0x0290; + t.zstroke = 0x01b6; + t.zuhiragana = 0x305a; + t.zukatakana = 0x30ba; + t[".notdef"] = 0x0000; + t.angbracketleftbig = 0x2329; + t.angbracketleftBig = 0x2329; + t.angbracketleftbigg = 0x2329; + t.angbracketleftBigg = 0x2329; + t.angbracketrightBig = 0x232a; + t.angbracketrightbig = 0x232a; + t.angbracketrightBigg = 0x232a; + t.angbracketrightbigg = 0x232a; + t.arrowhookleft = 0x21aa; + t.arrowhookright = 0x21a9; + t.arrowlefttophalf = 0x21bc; + t.arrowleftbothalf = 0x21bd; + t.arrownortheast = 0x2197; + t.arrownorthwest = 0x2196; + t.arrowrighttophalf = 0x21c0; + t.arrowrightbothalf = 0x21c1; + t.arrowsoutheast = 0x2198; + t.arrowsouthwest = 0x2199; + t.backslashbig = 0x2216; + t.backslashBig = 0x2216; + t.backslashBigg = 0x2216; + t.backslashbigg = 0x2216; + t.bardbl = 0x2016; + t.bracehtipdownleft = 0xfe37; + t.bracehtipdownright = 0xfe37; + t.bracehtipupleft = 0xfe38; + t.bracehtipupright = 0xfe38; + t.braceleftBig = 0x007b; + t.braceleftbig = 0x007b; + t.braceleftbigg = 0x007b; + t.braceleftBigg = 0x007b; + t.bracerightBig = 0x007d; + t.bracerightbig = 0x007d; + t.bracerightbigg = 0x007d; + t.bracerightBigg = 0x007d; + t.bracketleftbig = 0x005b; + t.bracketleftBig = 0x005b; + t.bracketleftbigg = 0x005b; + t.bracketleftBigg = 0x005b; + t.bracketrightBig = 0x005d; + t.bracketrightbig = 0x005d; + t.bracketrightbigg = 0x005d; + t.bracketrightBigg = 0x005d; + t.ceilingleftbig = 0x2308; + t.ceilingleftBig = 0x2308; + t.ceilingleftBigg = 0x2308; + t.ceilingleftbigg = 0x2308; + t.ceilingrightbig = 0x2309; + t.ceilingrightBig = 0x2309; + t.ceilingrightbigg = 0x2309; + t.ceilingrightBigg = 0x2309; + t.circledotdisplay = 0x2299; + t.circledottext = 0x2299; + t.circlemultiplydisplay = 0x2297; + t.circlemultiplytext = 0x2297; + t.circleplusdisplay = 0x2295; + t.circleplustext = 0x2295; + t.contintegraldisplay = 0x222e; + t.contintegraltext = 0x222e; + t.coproductdisplay = 0x2210; + t.coproducttext = 0x2210; + t.floorleftBig = 0x230a; + t.floorleftbig = 0x230a; + t.floorleftbigg = 0x230a; + t.floorleftBigg = 0x230a; + t.floorrightbig = 0x230b; + t.floorrightBig = 0x230b; + t.floorrightBigg = 0x230b; + t.floorrightbigg = 0x230b; + t.hatwide = 0x0302; + t.hatwider = 0x0302; + t.hatwidest = 0x0302; + t.intercal = 0x1d40; + t.integraldisplay = 0x222b; + t.integraltext = 0x222b; + t.intersectiondisplay = 0x22c2; + t.intersectiontext = 0x22c2; + t.logicalanddisplay = 0x2227; + t.logicalandtext = 0x2227; + t.logicalordisplay = 0x2228; + t.logicalortext = 0x2228; + t.parenleftBig = 0x0028; + t.parenleftbig = 0x0028; + t.parenleftBigg = 0x0028; + t.parenleftbigg = 0x0028; + t.parenrightBig = 0x0029; + t.parenrightbig = 0x0029; + t.parenrightBigg = 0x0029; + t.parenrightbigg = 0x0029; + t.prime = 0x2032; + t.productdisplay = 0x220f; + t.producttext = 0x220f; + t.radicalbig = 0x221a; + t.radicalBig = 0x221a; + t.radicalBigg = 0x221a; + t.radicalbigg = 0x221a; + t.radicalbt = 0x221a; + t.radicaltp = 0x221a; + t.radicalvertex = 0x221a; + t.slashbig = 0x002f; + t.slashBig = 0x002f; + t.slashBigg = 0x002f; + t.slashbigg = 0x002f; + t.summationdisplay = 0x2211; + t.summationtext = 0x2211; + t.tildewide = 0x02dc; + t.tildewider = 0x02dc; + t.tildewidest = 0x02dc; + t.uniondisplay = 0x22c3; + t.unionmultidisplay = 0x228e; + t.unionmultitext = 0x228e; + t.unionsqdisplay = 0x2294; + t.unionsqtext = 0x2294; + t.uniontext = 0x22c3; + t.vextenddouble = 0x2225; + t.vextendsingle = 0x2223; +}); +const getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) { + t.space = 0x0020; + t.a1 = 0x2701; + t.a2 = 0x2702; + t.a202 = 0x2703; + t.a3 = 0x2704; + t.a4 = 0x260e; + t.a5 = 0x2706; + t.a119 = 0x2707; + t.a118 = 0x2708; + t.a117 = 0x2709; + t.a11 = 0x261b; + t.a12 = 0x261e; + t.a13 = 0x270c; + t.a14 = 0x270d; + t.a15 = 0x270e; + t.a16 = 0x270f; + t.a105 = 0x2710; + t.a17 = 0x2711; + t.a18 = 0x2712; + t.a19 = 0x2713; + t.a20 = 0x2714; + t.a21 = 0x2715; + t.a22 = 0x2716; + t.a23 = 0x2717; + t.a24 = 0x2718; + t.a25 = 0x2719; + t.a26 = 0x271a; + t.a27 = 0x271b; + t.a28 = 0x271c; + t.a6 = 0x271d; + t.a7 = 0x271e; + t.a8 = 0x271f; + t.a9 = 0x2720; + t.a10 = 0x2721; + t.a29 = 0x2722; + t.a30 = 0x2723; + t.a31 = 0x2724; + t.a32 = 0x2725; + t.a33 = 0x2726; + t.a34 = 0x2727; + t.a35 = 0x2605; + t.a36 = 0x2729; + t.a37 = 0x272a; + t.a38 = 0x272b; + t.a39 = 0x272c; + t.a40 = 0x272d; + t.a41 = 0x272e; + t.a42 = 0x272f; + t.a43 = 0x2730; + t.a44 = 0x2731; + t.a45 = 0x2732; + t.a46 = 0x2733; + t.a47 = 0x2734; + t.a48 = 0x2735; + t.a49 = 0x2736; + t.a50 = 0x2737; + t.a51 = 0x2738; + t.a52 = 0x2739; + t.a53 = 0x273a; + t.a54 = 0x273b; + t.a55 = 0x273c; + t.a56 = 0x273d; + t.a57 = 0x273e; + t.a58 = 0x273f; + t.a59 = 0x2740; + t.a60 = 0x2741; + t.a61 = 0x2742; + t.a62 = 0x2743; + t.a63 = 0x2744; + t.a64 = 0x2745; + t.a65 = 0x2746; + t.a66 = 0x2747; + t.a67 = 0x2748; + t.a68 = 0x2749; + t.a69 = 0x274a; + t.a70 = 0x274b; + t.a71 = 0x25cf; + t.a72 = 0x274d; + t.a73 = 0x25a0; + t.a74 = 0x274f; + t.a203 = 0x2750; + t.a75 = 0x2751; + t.a204 = 0x2752; + t.a76 = 0x25b2; + t.a77 = 0x25bc; + t.a78 = 0x25c6; + t.a79 = 0x2756; + t.a81 = 0x25d7; + t.a82 = 0x2758; + t.a83 = 0x2759; + t.a84 = 0x275a; + t.a97 = 0x275b; + t.a98 = 0x275c; + t.a99 = 0x275d; + t.a100 = 0x275e; + t.a101 = 0x2761; + t.a102 = 0x2762; + t.a103 = 0x2763; + t.a104 = 0x2764; + t.a106 = 0x2765; + t.a107 = 0x2766; + t.a108 = 0x2767; + t.a112 = 0x2663; + t.a111 = 0x2666; + t.a110 = 0x2665; + t.a109 = 0x2660; + t.a120 = 0x2460; + t.a121 = 0x2461; + t.a122 = 0x2462; + t.a123 = 0x2463; + t.a124 = 0x2464; + t.a125 = 0x2465; + t.a126 = 0x2466; + t.a127 = 0x2467; + t.a128 = 0x2468; + t.a129 = 0x2469; + t.a130 = 0x2776; + t.a131 = 0x2777; + t.a132 = 0x2778; + t.a133 = 0x2779; + t.a134 = 0x277a; + t.a135 = 0x277b; + t.a136 = 0x277c; + t.a137 = 0x277d; + t.a138 = 0x277e; + t.a139 = 0x277f; + t.a140 = 0x2780; + t.a141 = 0x2781; + t.a142 = 0x2782; + t.a143 = 0x2783; + t.a144 = 0x2784; + t.a145 = 0x2785; + t.a146 = 0x2786; + t.a147 = 0x2787; + t.a148 = 0x2788; + t.a149 = 0x2789; + t.a150 = 0x278a; + t.a151 = 0x278b; + t.a152 = 0x278c; + t.a153 = 0x278d; + t.a154 = 0x278e; + t.a155 = 0x278f; + t.a156 = 0x2790; + t.a157 = 0x2791; + t.a158 = 0x2792; + t.a159 = 0x2793; + t.a160 = 0x2794; + t.a161 = 0x2192; + t.a163 = 0x2194; + t.a164 = 0x2195; + t.a196 = 0x2798; + t.a165 = 0x2799; + t.a192 = 0x279a; + t.a166 = 0x279b; + t.a167 = 0x279c; + t.a168 = 0x279d; + t.a169 = 0x279e; + t.a170 = 0x279f; + t.a171 = 0x27a0; + t.a172 = 0x27a1; + t.a173 = 0x27a2; + t.a162 = 0x27a3; + t.a174 = 0x27a4; + t.a175 = 0x27a5; + t.a176 = 0x27a6; + t.a177 = 0x27a7; + t.a178 = 0x27a8; + t.a179 = 0x27a9; + t.a193 = 0x27aa; + t.a180 = 0x27ab; + t.a199 = 0x27ac; + t.a181 = 0x27ad; + t.a200 = 0x27ae; + t.a182 = 0x27af; + t.a201 = 0x27b1; + t.a183 = 0x27b2; + t.a184 = 0x27b3; + t.a197 = 0x27b4; + t.a185 = 0x27b5; + t.a194 = 0x27b6; + t.a198 = 0x27b7; + t.a186 = 0x27b8; + t.a195 = 0x27b9; + t.a187 = 0x27ba; + t.a188 = 0x27bb; + t.a189 = 0x27bc; + t.a190 = 0x27bd; + t.a191 = 0x27be; + t.a89 = 0x2768; + t.a90 = 0x2769; + t.a93 = 0x276a; + t.a94 = 0x276b; + t.a91 = 0x276c; + t.a92 = 0x276d; + t.a205 = 0x276e; + t.a85 = 0x276f; + t.a206 = 0x2770; + t.a86 = 0x2771; + t.a87 = 0x2772; + t.a88 = 0x2773; + t.a95 = 0x2774; + t.a96 = 0x2775; + t[".notdef"] = 0x0000; +}); + +;// ./src/core/unicode.js + +const getSpecialPUASymbols = getLookupTableFactory(function (t) { + t[63721] = 0x00a9; + t[63193] = 0x00a9; + t[63720] = 0x00ae; + t[63194] = 0x00ae; + t[63722] = 0x2122; + t[63195] = 0x2122; + t[63729] = 0x23a7; + t[63730] = 0x23a8; + t[63731] = 0x23a9; + t[63740] = 0x23ab; + t[63741] = 0x23ac; + t[63742] = 0x23ad; + t[63726] = 0x23a1; + t[63727] = 0x23a2; + t[63728] = 0x23a3; + t[63737] = 0x23a4; + t[63738] = 0x23a5; + t[63739] = 0x23a6; + t[63723] = 0x239b; + t[63724] = 0x239c; + t[63725] = 0x239d; + t[63734] = 0x239e; + t[63735] = 0x239f; + t[63736] = 0x23a0; +}); +function mapSpecialUnicodeValues(code) { + if (code >= 0xfff0 && code <= 0xffff) { + return 0; + } else if (code >= 0xf600 && code <= 0xf8ff) { + return getSpecialPUASymbols()[code] || code; + } else if (code === 0x00ad) { + return 0x002d; + } + return code; +} +function getUnicodeForGlyph(name, glyphsUnicodeMap) { + let unicode = glyphsUnicodeMap[name]; + if (unicode !== undefined) { + return unicode; + } + if (!name) { + return -1; + } + if (name[0] === "u") { + const nameLen = name.length; + let hexStr; + if (nameLen === 7 && name[1] === "n" && name[2] === "i") { + hexStr = name.substring(3); + } else if (nameLen >= 5 && nameLen <= 7) { + hexStr = name.substring(1); + } else { + return -1; + } + if (hexStr === hexStr.toUpperCase()) { + unicode = parseInt(hexStr, 16); + if (unicode >= 0) { + return unicode; + } + } + } + return -1; +} +const UnicodeRanges = [[0x0000, 0x007f], [0x0080, 0x00ff], [0x0100, 0x017f], [0x0180, 0x024f], [0x0250, 0x02af, 0x1d00, 0x1d7f, 0x1d80, 0x1dbf], [0x02b0, 0x02ff, 0xa700, 0xa71f], [0x0300, 0x036f, 0x1dc0, 0x1dff], [0x0370, 0x03ff], [0x2c80, 0x2cff], [0x0400, 0x04ff, 0x0500, 0x052f, 0x2de0, 0x2dff, 0xa640, 0xa69f], [0x0530, 0x058f], [0x0590, 0x05ff], [0xa500, 0xa63f], [0x0600, 0x06ff, 0x0750, 0x077f], [0x07c0, 0x07ff], [0x0900, 0x097f], [0x0980, 0x09ff], [0x0a00, 0x0a7f], [0x0a80, 0x0aff], [0x0b00, 0x0b7f], [0x0b80, 0x0bff], [0x0c00, 0x0c7f], [0x0c80, 0x0cff], [0x0d00, 0x0d7f], [0x0e00, 0x0e7f], [0x0e80, 0x0eff], [0x10a0, 0x10ff, 0x2d00, 0x2d2f], [0x1b00, 0x1b7f], [0x1100, 0x11ff], [0x1e00, 0x1eff, 0x2c60, 0x2c7f, 0xa720, 0xa7ff], [0x1f00, 0x1fff], [0x2000, 0x206f, 0x2e00, 0x2e7f], [0x2070, 0x209f], [0x20a0, 0x20cf], [0x20d0, 0x20ff], [0x2100, 0x214f], [0x2150, 0x218f], [0x2190, 0x21ff, 0x27f0, 0x27ff, 0x2900, 0x297f, 0x2b00, 0x2bff], [0x2200, 0x22ff, 0x2a00, 0x2aff, 0x27c0, 0x27ef, 0x2980, 0x29ff], [0x2300, 0x23ff], [0x2400, 0x243f], [0x2440, 0x245f], [0x2460, 0x24ff], [0x2500, 0x257f], [0x2580, 0x259f], [0x25a0, 0x25ff], [0x2600, 0x26ff], [0x2700, 0x27bf], [0x3000, 0x303f], [0x3040, 0x309f], [0x30a0, 0x30ff, 0x31f0, 0x31ff], [0x3100, 0x312f, 0x31a0, 0x31bf], [0x3130, 0x318f], [0xa840, 0xa87f], [0x3200, 0x32ff], [0x3300, 0x33ff], [0xac00, 0xd7af], [0xd800, 0xdfff], [0x10900, 0x1091f], [0x4e00, 0x9fff, 0x2e80, 0x2eff, 0x2f00, 0x2fdf, 0x2ff0, 0x2fff, 0x3400, 0x4dbf, 0x20000, 0x2a6df, 0x3190, 0x319f], [0xe000, 0xf8ff], [0x31c0, 0x31ef, 0xf900, 0xfaff, 0x2f800, 0x2fa1f], [0xfb00, 0xfb4f], [0xfb50, 0xfdff], [0xfe20, 0xfe2f], [0xfe10, 0xfe1f], [0xfe50, 0xfe6f], [0xfe70, 0xfeff], [0xff00, 0xffef], [0xfff0, 0xffff], [0x0f00, 0x0fff], [0x0700, 0x074f], [0x0780, 0x07bf], [0x0d80, 0x0dff], [0x1000, 0x109f], [0x1200, 0x137f, 0x1380, 0x139f, 0x2d80, 0x2ddf], [0x13a0, 0x13ff], [0x1400, 0x167f], [0x1680, 0x169f], [0x16a0, 0x16ff], [0x1780, 0x17ff], [0x1800, 0x18af], [0x2800, 0x28ff], [0xa000, 0xa48f], [0x1700, 0x171f, 0x1720, 0x173f, 0x1740, 0x175f, 0x1760, 0x177f], [0x10300, 0x1032f], [0x10330, 0x1034f], [0x10400, 0x1044f], [0x1d000, 0x1d0ff, 0x1d100, 0x1d1ff, 0x1d200, 0x1d24f], [0x1d400, 0x1d7ff], [0xff000, 0xffffd], [0xfe00, 0xfe0f, 0xe0100, 0xe01ef], [0xe0000, 0xe007f], [0x1900, 0x194f], [0x1950, 0x197f], [0x1980, 0x19df], [0x1a00, 0x1a1f], [0x2c00, 0x2c5f], [0x2d30, 0x2d7f], [0x4dc0, 0x4dff], [0xa800, 0xa82f], [0x10000, 0x1007f, 0x10080, 0x100ff, 0x10100, 0x1013f], [0x10140, 0x1018f], [0x10380, 0x1039f], [0x103a0, 0x103df], [0x10450, 0x1047f], [0x10480, 0x104af], [0x10800, 0x1083f], [0x10a00, 0x10a5f], [0x1d300, 0x1d35f], [0x12000, 0x123ff, 0x12400, 0x1247f], [0x1d360, 0x1d37f], [0x1b80, 0x1bbf], [0x1c00, 0x1c4f], [0x1c50, 0x1c7f], [0xa880, 0xa8df], [0xa900, 0xa92f], [0xa930, 0xa95f], [0xaa00, 0xaa5f], [0x10190, 0x101cf], [0x101d0, 0x101ff], [0x102a0, 0x102df, 0x10280, 0x1029f, 0x10920, 0x1093f], [0x1f030, 0x1f09f, 0x1f000, 0x1f02f]]; +function getUnicodeRangeFor(value, lastPosition = -1) { + if (lastPosition !== -1) { + const range = UnicodeRanges[lastPosition]; + for (let i = 0, ii = range.length; i < ii; i += 2) { + if (value >= range[i] && value <= range[i + 1]) { + return lastPosition; + } + } + } + for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) { + const range = UnicodeRanges[i]; + for (let j = 0, jj = range.length; j < jj; j += 2) { + if (value >= range[j] && value <= range[j + 1]) { + return i; + } + } + } + return -1; +} +const SpecialCharRegExp = new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$", "u"); +const CategoryCache = new Map(); +function getCharUnicodeCategory(char) { + const cachedCategory = CategoryCache.get(char); + if (cachedCategory) { + return cachedCategory; + } + const groups = char.match(SpecialCharRegExp); + const category = { + isWhitespace: !!groups?.[1], + isZeroWidthDiacritic: !!groups?.[2], + isInvisibleFormatMark: !!groups?.[3] + }; + CategoryCache.set(char, category); + return category; +} +function clearUnicodeCaches() { + CategoryCache.clear(); +} + +;// ./src/core/fonts_utils.js + + + + + +const SEAC_ANALYSIS_ENABLED = true; +const FontFlags = { + FixedPitch: 1, + Serif: 2, + Symbolic: 4, + Script: 8, + Nonsymbolic: 32, + Italic: 64, + AllCap: 65536, + SmallCap: 131072, + ForceBold: 262144 +}; +const MacStandardGlyphOrdering = [".notdef", ".null", "nonmarkingreturn", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quotesingle", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "grave", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "Adieresis", "Aring", "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute", "agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla", "eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave", "icircumflex", "idieresis", "ntilde", "oacute", "ograve", "ocircumflex", "odieresis", "otilde", "uacute", "ugrave", "ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling", "section", "bullet", "paragraph", "germandbls", "registered", "copyright", "trademark", "acute", "dieresis", "notequal", "AE", "Oslash", "infinity", "plusminus", "lessequal", "greaterequal", "yen", "mu", "partialdiff", "summation", "product", "pi", "integral", "ordfeminine", "ordmasculine", "Omega", "ae", "oslash", "questiondown", "exclamdown", "logicalnot", "radical", "florin", "approxequal", "Delta", "guillemotleft", "guillemotright", "ellipsis", "nonbreakingspace", "Agrave", "Atilde", "Otilde", "OE", "oe", "endash", "emdash", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide", "lozenge", "ydieresis", "Ydieresis", "fraction", "currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl", "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex", "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave", "dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "Lslash", "lslash", "Scaron", "scaron", "Zcaron", "zcaron", "brokenbar", "Eth", "eth", "Yacute", "yacute", "Thorn", "thorn", "minus", "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf", "onequarter", "threequarters", "franc", "Gbreve", "gbreve", "Idotaccent", "Scedilla", "scedilla", "Cacute", "cacute", "Ccaron", "ccaron", "dcroat"]; +function recoverGlyphName(name, glyphsUnicodeMap) { + if (glyphsUnicodeMap[name] !== undefined) { + return name; + } + const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap); + if (unicode !== -1) { + for (const key in glyphsUnicodeMap) { + if (glyphsUnicodeMap[key] === unicode) { + return key; + } + } + } + info("Unable to recover a standard glyph name for: " + name); + return name; +} +function type1FontGlyphMapping(properties, builtInEncoding, glyphNames) { + const charCodeToGlyphId = Object.create(null); + let glyphId, charCode, baseEncoding; + const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + if (properties.isInternalFont) { + baseEncoding = builtInEncoding; + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } else if (properties.baseEncodingName) { + baseEncoding = getEncoding(properties.baseEncodingName); + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } else if (isSymbolicFont) { + for (charCode in builtInEncoding) { + charCodeToGlyphId[charCode] = builtInEncoding[charCode]; + } + } else { + baseEncoding = StandardEncoding; + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } + const differences = properties.differences; + let glyphsUnicodeMap; + if (differences) { + for (charCode in differences) { + const glyphName = differences[charCode]; + glyphId = glyphNames.indexOf(glyphName); + if (glyphId === -1) { + if (!glyphsUnicodeMap) { + glyphsUnicodeMap = getGlyphsUnicode(); + } + const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + if (standardGlyphName !== glyphName) { + glyphId = glyphNames.indexOf(standardGlyphName); + } + } + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } + return charCodeToGlyphId; +} +function normalizeFontName(name) { + return name.replaceAll(/[,_]/g, "-").replaceAll(/\s/g, ""); +} +const getVerticalPresentationForm = getLookupTableFactory(t => { + t[0x2013] = 0xfe32; + t[0x2014] = 0xfe31; + t[0x2025] = 0xfe30; + t[0x2026] = 0xfe19; + t[0x3001] = 0xfe11; + t[0x3002] = 0xfe12; + t[0x3008] = 0xfe3f; + t[0x3009] = 0xfe40; + t[0x300a] = 0xfe3d; + t[0x300b] = 0xfe3e; + t[0x300c] = 0xfe41; + t[0x300d] = 0xfe42; + t[0x300e] = 0xfe43; + t[0x300f] = 0xfe44; + t[0x3010] = 0xfe3b; + t[0x3011] = 0xfe3c; + t[0x3014] = 0xfe39; + t[0x3015] = 0xfe3a; + t[0x3016] = 0xfe17; + t[0x3017] = 0xfe18; + t[0xfe4f] = 0xfe34; + t[0xff01] = 0xfe15; + t[0xff08] = 0xfe35; + t[0xff09] = 0xfe36; + t[0xff0c] = 0xfe10; + t[0xff1a] = 0xfe13; + t[0xff1b] = 0xfe14; + t[0xff1f] = 0xfe16; + t[0xff3b] = 0xfe47; + t[0xff3d] = 0xfe48; + t[0xff3f] = 0xfe33; + t[0xff5b] = 0xfe37; + t[0xff5d] = 0xfe38; +}); +const MAX_SIZE_TO_COMPILE = 1000; +function compileType3Glyph({ + data: img, + width, + height +}) { + if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) { + return null; + } + const POINT_TO_PROCESS_LIMIT = 1000; + const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); + const width1 = width + 1; + const points = new Uint8Array(width1 * (height + 1)); + let i, j, j0; + const lineSize = width + 7 & ~7; + const data = new Uint8Array(lineSize * height); + let pos = 0; + for (const elem of img) { + let mask = 128; + while (mask > 0) { + data[pos++] = elem & mask ? 0 : 255; + mask >>= 1; + } + } + let count = 0; + pos = 0; + if (data[pos] !== 0) { + points[0] = 1; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j] = data[pos] ? 2 : 1; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j] = 2; + ++count; + } + for (i = 1; i < height; i++) { + pos = i * lineSize; + j0 = i * width1; + if (data[pos - lineSize] !== data[pos]) { + points[j0] = data[pos] ? 1 : 8; + ++count; + } + let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + for (j = 1; j < width; j++) { + sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); + if (POINT_TYPES[sum]) { + points[j0 + j] = POINT_TYPES[sum]; + ++count; + } + pos++; + } + if (data[pos - lineSize] !== data[pos]) { + points[j0 + j] = data[pos] ? 2 : 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + } + pos = lineSize * (height - 1); + j0 = i * width1; + if (data[pos] !== 0) { + points[j0] = 8; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j0 + j] = data[pos] ? 4 : 8; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j0 + j] = 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + const pathBuf = []; + const { + a, + b, + c, + d, + e, + f + } = new DOMMatrix().scaleSelf(1 / width, -1 / height).translateSelf(0, -height); + for (i = 0; count && i <= height; i++) { + let p = i * width1; + const end = p + width; + while (p < end && !points[p]) { + p++; + } + if (p === end) { + continue; + } + let x = p % width1; + let y = i; + pathBuf.push(DrawOPS.moveTo, a * x + c * y + e, b * x + d * y + f); + const p0 = p; + let type = points[p]; + do { + const step = steps[type]; + do { + p += step; + } while (!points[p]); + const pp = points[p]; + if (pp !== 5 && pp !== 10) { + type = pp; + points[p] = 0; + } else { + type = pp & 0x33 * type >> 4; + points[p] &= type >> 2 | type << 2; + } + x = p % width1; + y = p / width1 | 0; + pathBuf.push(DrawOPS.lineTo, a * x + c * y + e, b * x + d * y + f); + if (!points[p]) { + --count; + } + } while (p0 !== p); + --i; + } + return [OPS.rawFillPath, [new Float32Array(pathBuf)], new Float32Array([0, 0, width, height])]; +} + +;// ./src/core/charsets.js +const ISOAdobeCharset = [".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron"]; +const ExpertCharset = [".notdef", "space", "exclamsmall", "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "onequarter", "onehalf", "threequarters", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall"]; +const ExpertSubsetCharset = [".notdef", "space", "dollaroldstyle", "dollarsuperior", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "hyphensuperior", "colonmonetary", "onefitted", "rupiah", "centoldstyle", "figuredash", "hypheninferior", "onequarter", "onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior"]; + +;// ./src/core/cff_parser.js + + + + +const MAX_SUBR_NESTING = 10; +const CFFStandardStrings = [".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall", "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall", "001.000", "001.001", "001.002", "001.003", "Black", "Bold", "Book", "Light", "Medium", "Regular", "Roman", "Semibold"]; +const NUM_STANDARD_CFF_STRINGS = 391; +const CharstringValidationData = [null, { + id: "hstem", + min: 2, + stackClearing: true, + stem: true +}, null, { + id: "vstem", + min: 2, + stackClearing: true, + stem: true +}, { + id: "vmoveto", + min: 1, + stackClearing: true +}, { + id: "rlineto", + min: 2, + resetStack: true +}, { + id: "hlineto", + min: 1, + resetStack: true +}, { + id: "vlineto", + min: 1, + resetStack: true +}, { + id: "rrcurveto", + min: 6, + resetStack: true +}, null, { + id: "callsubr", + min: 1, + undefStack: true +}, { + id: "return", + min: 0, + undefStack: true +}, null, null, { + id: "endchar", + min: 0, + stackClearing: true +}, null, null, null, { + id: "hstemhm", + min: 2, + stackClearing: true, + stem: true +}, { + id: "hintmask", + min: 0, + stackClearing: true +}, { + id: "cntrmask", + min: 0, + stackClearing: true +}, { + id: "rmoveto", + min: 2, + stackClearing: true +}, { + id: "hmoveto", + min: 1, + stackClearing: true +}, { + id: "vstemhm", + min: 2, + stackClearing: true, + stem: true +}, { + id: "rcurveline", + min: 8, + resetStack: true +}, { + id: "rlinecurve", + min: 8, + resetStack: true +}, { + id: "vvcurveto", + min: 4, + resetStack: true +}, { + id: "hhcurveto", + min: 4, + resetStack: true +}, null, { + id: "callgsubr", + min: 1, + undefStack: true +}, { + id: "vhcurveto", + min: 4, + resetStack: true +}, { + id: "hvcurveto", + min: 4, + resetStack: true +}]; +const CharstringValidationData12 = [null, null, null, { + id: "and", + min: 2, + stackDelta: -1 +}, { + id: "or", + min: 2, + stackDelta: -1 +}, { + id: "not", + min: 1, + stackDelta: 0 +}, null, null, null, { + id: "abs", + min: 1, + stackDelta: 0 +}, { + id: "add", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] + stack[index - 1]; + } +}, { + id: "sub", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] - stack[index - 1]; + } +}, { + id: "div", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] / stack[index - 1]; + } +}, null, { + id: "neg", + min: 1, + stackDelta: 0, + stackFn(stack, index) { + stack[index - 1] = -stack[index - 1]; + } +}, { + id: "eq", + min: 2, + stackDelta: -1 +}, null, null, { + id: "drop", + min: 1, + stackDelta: -1 +}, null, { + id: "put", + min: 2, + stackDelta: -2 +}, { + id: "get", + min: 1, + stackDelta: 0 +}, { + id: "ifelse", + min: 4, + stackDelta: -3 +}, { + id: "random", + min: 0, + stackDelta: 1 +}, { + id: "mul", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] * stack[index - 1]; + } +}, null, { + id: "sqrt", + min: 1, + stackDelta: 0 +}, { + id: "dup", + min: 1, + stackDelta: 1 +}, { + id: "exch", + min: 2, + stackDelta: 0 +}, { + id: "index", + min: 2, + stackDelta: 0 +}, { + id: "roll", + min: 3, + stackDelta: -2 +}, null, null, null, { + id: "hflex", + min: 7, + resetStack: true +}, { + id: "flex", + min: 13, + resetStack: true +}, { + id: "hflex1", + min: 9, + resetStack: true +}, { + id: "flex1", + min: 11, + resetStack: true +}]; +class CFFParser { + constructor(file, properties, seacAnalysisEnabled) { + this.bytes = file.getBytes(); + this.properties = properties; + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + } + parse() { + const properties = this.properties; + const cff = new CFF(); + this.cff = cff; + const header = this.parseHeader(); + const nameIndex = this.parseIndex(header.endPos); + const topDictIndex = this.parseIndex(nameIndex.endPos); + const stringIndex = this.parseIndex(topDictIndex.endPos); + const globalSubrIndex = this.parseIndex(stringIndex.endPos); + const topDictParsed = this.parseDict(topDictIndex.obj.get(0)); + const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings); + cff.header = header.obj; + cff.names = this.parseNameIndex(nameIndex.obj); + cff.strings = this.parseStringIndex(stringIndex.obj); + cff.topDict = topDict; + cff.globalSubrIndex = globalSubrIndex.obj; + this.parsePrivateDict(cff.topDict); + cff.isCIDFont = topDict.hasName("ROS"); + const charStringOffset = topDict.getByName("CharStrings"); + const charStringIndex = this.parseIndex(charStringOffset).obj; + const fontMatrix = topDict.getByName("FontMatrix"); + if (fontMatrix) { + properties.fontMatrix = fontMatrix; + } + const fontBBox = topDict.getByName("FontBBox"); + if (fontBBox) { + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + } + let charset, encoding; + if (cff.isCIDFont) { + const fdArrayIndex = this.parseIndex(topDict.getByName("FDArray")).obj; + for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) { + const dictRaw = fdArrayIndex.get(i); + const fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings); + this.parsePrivateDict(fontDict); + cff.fdArray.push(fontDict); + } + encoding = null; + charset = this.parseCharsets(topDict.getByName("charset"), charStringIndex.count, cff.strings, true); + cff.fdSelect = this.parseFDSelect(topDict.getByName("FDSelect"), charStringIndex.count); + } else { + charset = this.parseCharsets(topDict.getByName("charset"), charStringIndex.count, cff.strings, false); + encoding = this.parseEncoding(topDict.getByName("Encoding"), properties, cff.strings, charset.charset); + } + cff.charset = charset; + cff.encoding = encoding; + const charStringsAndSeacs = this.parseCharStrings({ + charStrings: charStringIndex, + localSubrIndex: topDict.privateDict.subrsIndex, + globalSubrIndex: globalSubrIndex.obj, + fdSelect: cff.fdSelect, + fdArray: cff.fdArray, + privateDict: topDict.privateDict + }); + cff.charStrings = charStringsAndSeacs.charStrings; + cff.seacs = charStringsAndSeacs.seacs; + cff.widths = charStringsAndSeacs.widths; + return cff; + } + parseHeader() { + let bytes = this.bytes; + const bytesLength = bytes.length; + let offset = 0; + while (offset < bytesLength && bytes[offset] !== 1) { + ++offset; + } + if (offset >= bytesLength) { + throw new FormatError("Invalid CFF header"); + } + if (offset !== 0) { + info("cff data is shifted"); + bytes = bytes.subarray(offset); + this.bytes = bytes; + } + const major = bytes[0]; + const minor = bytes[1]; + const hdrSize = bytes[2]; + const offSize = bytes[3]; + const header = new CFFHeader(major, minor, hdrSize, offSize); + return { + obj: header, + endPos: hdrSize + }; + } + parseDict(dict) { + let pos = 0; + function parseOperand() { + let value = dict[pos++]; + if (value === 30) { + return parseFloatOperand(); + } else if (value === 28) { + value = readInt16(dict, pos); + pos += 2; + return value; + } else if (value === 29) { + value = dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + return value; + } else if (value >= 32 && value <= 246) { + return value - 139; + } else if (value >= 247 && value <= 250) { + return (value - 247) * 256 + dict[pos++] + 108; + } else if (value >= 251 && value <= 254) { + return -((value - 251) * 256) - dict[pos++] - 108; + } + warn('CFFParser_parseDict: "' + value + '" is a reserved command.'); + return NaN; + } + function parseFloatOperand() { + let str = ""; + const eof = 15; + const lookup = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "E", "E-", null, "-"]; + const length = dict.length; + while (pos < length) { + const b = dict[pos++]; + const b1 = b >> 4; + const b2 = b & 15; + if (b1 === eof) { + break; + } + str += lookup[b1]; + if (b2 === eof) { + break; + } + str += lookup[b2]; + } + return parseFloat(str); + } + let operands = []; + const entries = []; + pos = 0; + const end = dict.length; + while (pos < end) { + let b = dict[pos]; + if (b <= 21) { + if (b === 12) { + b = b << 8 | dict[++pos]; + } + entries.push([b, operands]); + operands = []; + ++pos; + } else { + operands.push(parseOperand()); + } + } + return entries; + } + parseIndex(pos) { + const cffIndex = new CFFIndex(); + const bytes = this.bytes; + const count = bytes[pos++] << 8 | bytes[pos++]; + const offsets = []; + let end = pos; + let i, ii; + if (count !== 0) { + const offsetSize = bytes[pos++]; + const startPos = pos + (count + 1) * offsetSize - 1; + for (i = 0, ii = count + 1; i < ii; ++i) { + let offset = 0; + for (let j = 0; j < offsetSize; ++j) { + offset <<= 8; + offset += bytes[pos++]; + } + offsets.push(startPos + offset); + } + end = offsets[count]; + } + for (i = 0, ii = offsets.length - 1; i < ii; ++i) { + const offsetStart = offsets[i]; + const offsetEnd = offsets[i + 1]; + cffIndex.add(bytes.subarray(offsetStart, offsetEnd)); + } + return { + obj: cffIndex, + endPos: end + }; + } + parseNameIndex(index) { + const names = []; + for (let i = 0, ii = index.count; i < ii; ++i) { + const name = index.get(i); + names.push(bytesToString(name)); + } + return names; + } + parseStringIndex(index) { + const strings = new CFFStrings(); + for (let i = 0, ii = index.count; i < ii; ++i) { + const data = index.get(i); + strings.add(bytesToString(data)); + } + return strings; + } + createDict(Type, dict, strings) { + const cffDict = new Type(strings); + for (const [key, value] of dict) { + cffDict.setByKey(key, value); + } + return cffDict; + } + parseCharString(state, data, localSubrIndex, globalSubrIndex) { + if (!data || state.callDepth > MAX_SUBR_NESTING) { + return false; + } + let stackSize = state.stackSize; + const stack = state.stack; + let length = data.length; + for (let j = 0; j < length;) { + const value = data[j++]; + let validationCommand = null; + if (value === 12) { + const q = data[j++]; + if (q === 0) { + data[j - 2] = 139; + data[j - 1] = 22; + stackSize = 0; + } else { + validationCommand = CharstringValidationData12[q]; + } + } else if (value === 28) { + stack[stackSize] = readInt16(data, j); + j += 2; + stackSize++; + } else if (value === 14) { + if (stackSize >= 4) { + stackSize -= 4; + if (this.seacAnalysisEnabled) { + state.seac = stack.slice(stackSize, stackSize + 4); + return false; + } + } + validationCommand = CharstringValidationData[value]; + } else if (value >= 32 && value <= 246) { + stack[stackSize] = value - 139; + stackSize++; + } else if (value >= 247 && value <= 254) { + stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108; + j++; + stackSize++; + } else if (value === 255) { + stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536; + j += 4; + stackSize++; + } else if (value === 19 || value === 20) { + state.hints += stackSize >> 1; + if (state.hints === 0) { + data.copyWithin(j - 1, j, -1); + j -= 1; + length -= 1; + continue; + } + j += state.hints + 7 >> 3; + stackSize %= 2; + validationCommand = CharstringValidationData[value]; + } else if (value === 10 || value === 29) { + const subrsIndex = value === 10 ? localSubrIndex : globalSubrIndex; + if (!subrsIndex) { + validationCommand = CharstringValidationData[value]; + warn("Missing subrsIndex for " + validationCommand.id); + return false; + } + let bias = 32768; + if (subrsIndex.count < 1240) { + bias = 107; + } else if (subrsIndex.count < 33900) { + bias = 1131; + } + const subrNumber = stack[--stackSize] + bias; + if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) { + validationCommand = CharstringValidationData[value]; + warn("Out of bounds subrIndex for " + validationCommand.id); + return false; + } + state.stackSize = stackSize; + state.callDepth++; + const valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex); + if (!valid) { + return false; + } + state.callDepth--; + stackSize = state.stackSize; + continue; + } else if (value === 11) { + state.stackSize = stackSize; + return true; + } else if (value === 0 && j === data.length) { + data[j - 1] = 14; + validationCommand = CharstringValidationData[14]; + } else if (value === 9) { + data.copyWithin(j - 1, j, -1); + j -= 1; + length -= 1; + continue; + } else { + validationCommand = CharstringValidationData[value]; + } + if (validationCommand) { + if (validationCommand.stem) { + state.hints += stackSize >> 1; + if (value === 3 || value === 23) { + state.hasVStems = true; + } else if (state.hasVStems && (value === 1 || value === 18)) { + warn("CFF stem hints are in wrong order"); + data[j - 1] = value === 1 ? 3 : 23; + } + } + if ("min" in validationCommand) { + if (!state.undefStack && stackSize < validationCommand.min) { + warn("Not enough parameters for " + validationCommand.id + "; actual: " + stackSize + ", expected: " + validationCommand.min); + if (stackSize === 0) { + data[j - 1] = 14; + return true; + } + return false; + } + } + if (state.firstStackClearing && validationCommand.stackClearing) { + state.firstStackClearing = false; + stackSize -= validationCommand.min; + if (stackSize >= 2 && validationCommand.stem) { + stackSize %= 2; + } else if (stackSize > 1) { + warn("Found too many parameters for stack-clearing command"); + } + if (stackSize > 0) { + state.width = stack[stackSize - 1]; + } + } + if ("stackDelta" in validationCommand) { + if ("stackFn" in validationCommand) { + validationCommand.stackFn(stack, stackSize); + } + stackSize += validationCommand.stackDelta; + } else if (validationCommand.stackClearing) { + stackSize = 0; + } else if (validationCommand.resetStack) { + stackSize = 0; + state.undefStack = false; + } else if (validationCommand.undefStack) { + stackSize = 0; + state.undefStack = true; + state.firstStackClearing = false; + } + } + } + if (length < data.length) { + data.fill(14, length); + } + state.stackSize = stackSize; + return true; + } + parseCharStrings({ + charStrings, + localSubrIndex, + globalSubrIndex, + fdSelect, + fdArray, + privateDict + }) { + const seacs = []; + const widths = []; + const count = charStrings.count; + for (let i = 0; i < count; i++) { + const charstring = charStrings.get(i); + const state = { + callDepth: 0, + stackSize: 0, + stack: [], + undefStack: true, + hints: 0, + firstStackClearing: true, + seac: null, + width: null, + hasVStems: false + }; + let valid = true; + let localSubrToUse = null; + let privateDictToUse = privateDict; + if (fdSelect && fdArray.length) { + const fdIndex = fdSelect.getFDIndex(i); + if (fdIndex === -1) { + warn("Glyph index is not in fd select."); + valid = false; + } + if (fdIndex >= fdArray.length) { + warn("Invalid fd index for glyph index."); + valid = false; + } + if (valid) { + privateDictToUse = fdArray[fdIndex].privateDict; + localSubrToUse = privateDictToUse.subrsIndex; + } + } else if (localSubrIndex) { + localSubrToUse = localSubrIndex; + } + if (valid) { + valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex); + } + if (state.width !== null) { + const nominalWidth = privateDictToUse.getByName("nominalWidthX"); + widths[i] = nominalWidth + state.width; + } else { + const defaultWidth = privateDictToUse.getByName("defaultWidthX"); + widths[i] = defaultWidth; + } + if (state.seac !== null) { + seacs[i] = state.seac; + } + if (!valid) { + charStrings.set(i, new Uint8Array([14])); + } + } + return { + charStrings, + seacs, + widths + }; + } + emptyPrivateDictionary(parentDict) { + const privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings); + parentDict.setByKey(18, [0, 0]); + parentDict.privateDict = privateDict; + } + parsePrivateDict(parentDict) { + if (!parentDict.hasName("Private")) { + this.emptyPrivateDictionary(parentDict); + return; + } + const privateOffset = parentDict.getByName("Private"); + if (!Array.isArray(privateOffset) || privateOffset.length !== 2) { + parentDict.removeByName("Private"); + return; + } + const size = privateOffset[0]; + const offset = privateOffset[1]; + if (size === 0 || offset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + const privateDictEnd = offset + size; + const dictData = this.bytes.subarray(offset, privateDictEnd); + const dict = this.parseDict(dictData); + const privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings); + parentDict.privateDict = privateDict; + if (privateDict.getByName("ExpansionFactor") === 0) { + privateDict.setByName("ExpansionFactor", 0.06); + } + if (!privateDict.getByName("Subrs")) { + return; + } + const subrsOffset = privateDict.getByName("Subrs"); + const relativeOffset = offset + subrsOffset; + if (subrsOffset === 0 || relativeOffset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + const subrsIndex = this.parseIndex(relativeOffset); + privateDict.subrsIndex = subrsIndex.obj; + } + parseCharsets(pos, length, strings, cid) { + if (pos === 0) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, ISOAdobeCharset); + } else if (pos === 1) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, ExpertCharset); + } else if (pos === 2) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, ExpertSubsetCharset); + } + const bytes = this.bytes; + const start = pos; + const format = bytes[pos++]; + const charset = [cid ? 0 : ".notdef"]; + let id, count, i; + length -= 1; + switch (format) { + case 0: + for (i = 0; i < length; i++) { + id = bytes[pos++] << 8 | bytes[pos++]; + charset.push(cid ? id : strings.get(id)); + } + break; + case 1: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++]; + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + break; + case 2: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++] << 8 | bytes[pos++]; + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + break; + default: + throw new FormatError("Unknown charset format"); + } + const end = pos; + const raw = bytes.subarray(start, end); + return new CFFCharset(false, format, charset, raw); + } + parseEncoding(pos, properties, strings, charset) { + const encoding = Object.create(null); + const bytes = this.bytes; + let predefined = false; + let format, i, ii; + let raw = null; + function readSupplement() { + const supplementsCount = bytes[pos++]; + for (i = 0; i < supplementsCount; i++) { + const code = bytes[pos++]; + const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff); + encoding[code] = charset.indexOf(strings.get(sid)); + } + } + if (pos === 0 || pos === 1) { + predefined = true; + format = pos; + const baseEncoding = pos ? ExpertEncoding : StandardEncoding; + for (i = 0, ii = charset.length; i < ii; i++) { + const index = baseEncoding.indexOf(charset[i]); + if (index !== -1) { + encoding[index] = i; + } + } + } else { + const dataStart = pos; + format = bytes[pos++]; + switch (format & 0x7f) { + case 0: + const glyphsCount = bytes[pos++]; + for (i = 1; i <= glyphsCount; i++) { + encoding[bytes[pos++]] = i; + } + break; + case 1: + const rangesCount = bytes[pos++]; + let gid = 1; + for (i = 0; i < rangesCount; i++) { + const start = bytes[pos++]; + const left = bytes[pos++]; + for (let j = start; j <= start + left; j++) { + encoding[j] = gid++; + } + } + break; + default: + throw new FormatError(`Unknown encoding format: ${format} in CFF`); + } + const dataEnd = pos; + if (format & 0x80) { + bytes[dataStart] &= 0x7f; + readSupplement(); + } + raw = bytes.subarray(dataStart, dataEnd); + } + format &= 0x7f; + return new CFFEncoding(predefined, format, encoding, raw); + } + parseFDSelect(pos, length) { + const bytes = this.bytes; + const format = bytes[pos++]; + const fdSelect = []; + let i; + switch (format) { + case 0: + for (i = 0; i < length; ++i) { + const id = bytes[pos++]; + fdSelect.push(id); + } + break; + case 3: + const rangesCount = bytes[pos++] << 8 | bytes[pos++]; + for (i = 0; i < rangesCount; ++i) { + let first = bytes[pos++] << 8 | bytes[pos++]; + if (i === 0 && first !== 0) { + warn("parseFDSelect: The first range must have a first GID of 0" + " -- trying to recover."); + first = 0; + } + const fdIndex = bytes[pos++]; + const next = bytes[pos] << 8 | bytes[pos + 1]; + for (let j = first; j < next; ++j) { + fdSelect.push(fdIndex); + } + } + pos += 2; + break; + default: + throw new FormatError(`parseFDSelect: Unknown format "${format}".`); + } + if (fdSelect.length !== length) { + throw new FormatError("parseFDSelect: Invalid font data."); + } + return new CFFFDSelect(format, fdSelect); + } +} +class CFF { + constructor() { + this.header = null; + this.names = []; + this.topDict = null; + this.strings = new CFFStrings(); + this.globalSubrIndex = null; + this.encoding = null; + this.charset = null; + this.charStrings = null; + this.fdArray = []; + this.fdSelect = null; + this.isCIDFont = false; + } + duplicateFirstGlyph() { + if (this.charStrings.count >= 65535) { + warn("Not enough space in charstrings to duplicate first glyph."); + return; + } + const glyphZero = this.charStrings.get(0); + this.charStrings.add(glyphZero); + if (this.isCIDFont) { + this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]); + } + } + hasGlyphId(id) { + if (id < 0 || id >= this.charStrings.count) { + return false; + } + const glyph = this.charStrings.get(id); + return glyph.length > 0; + } +} +class CFFHeader { + constructor(major, minor, hdrSize, offSize) { + this.major = major; + this.minor = minor; + this.hdrSize = hdrSize; + this.offSize = offSize; + } +} +class CFFStrings { + constructor() { + this.strings = []; + } + get(index) { + if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) { + return CFFStandardStrings[index]; + } + if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) { + return this.strings[index - NUM_STANDARD_CFF_STRINGS]; + } + return CFFStandardStrings[0]; + } + getSID(str) { + let index = CFFStandardStrings.indexOf(str); + if (index !== -1) { + return index; + } + index = this.strings.indexOf(str); + if (index !== -1) { + return index + NUM_STANDARD_CFF_STRINGS; + } + return -1; + } + add(value) { + this.strings.push(value); + } + get count() { + return this.strings.length; + } +} +class CFFIndex { + constructor() { + this.objects = []; + this.length = 0; + } + add(data) { + this.length += data.length; + this.objects.push(data); + } + set(index, data) { + this.length += data.length - this.objects[index].length; + this.objects[index] = data; + } + get(index) { + return this.objects[index]; + } + get count() { + return this.objects.length; + } +} +class CFFDict { + constructor(tables, strings) { + this.keyToNameMap = tables.keyToNameMap; + this.nameToKeyMap = tables.nameToKeyMap; + this.defaults = tables.defaults; + this.types = tables.types; + this.opcodes = tables.opcodes; + this.order = tables.order; + this.strings = strings; + this.values = Object.create(null); + } + setByKey(key, value) { + if (!(key in this.keyToNameMap)) { + return false; + } + if (value.length === 0) { + return true; + } + for (const val of value) { + if (isNaN(val)) { + warn(`Invalid CFFDict value: "${value}" for key "${key}".`); + return true; + } + } + const type = this.types[key]; + if (type === "num" || type === "sid" || type === "offset") { + value = value[0]; + } + this.values[key] = value; + return true; + } + setByName(name, value) { + if (!(name in this.nameToKeyMap)) { + throw new FormatError(`Invalid dictionary name "${name}"`); + } + this.values[this.nameToKeyMap[name]] = value; + } + hasName(name) { + return this.nameToKeyMap[name] in this.values; + } + getByName(name) { + if (!(name in this.nameToKeyMap)) { + throw new FormatError(`Invalid dictionary name ${name}"`); + } + const key = this.nameToKeyMap[name]; + if (!(key in this.values)) { + return this.defaults[key]; + } + return this.values[key]; + } + removeByName(name) { + delete this.values[this.nameToKeyMap[name]]; + } + static createTables(layout) { + const tables = { + keyToNameMap: {}, + nameToKeyMap: {}, + defaults: {}, + types: {}, + opcodes: {}, + order: [] + }; + for (const entry of layout) { + const key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0]; + tables.keyToNameMap[key] = entry[1]; + tables.nameToKeyMap[entry[1]] = key; + tables.types[key] = entry[2]; + tables.defaults[key] = entry[3]; + tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]]; + tables.order.push(key); + } + return tables; + } +} +const CFFTopDictLayout = [[[12, 30], "ROS", ["sid", "sid", "num"], null], [[12, 20], "SyntheticBase", "num", null], [0, "version", "sid", null], [1, "Notice", "sid", null], [[12, 0], "Copyright", "sid", null], [2, "FullName", "sid", null], [3, "FamilyName", "sid", null], [4, "Weight", "sid", null], [[12, 1], "isFixedPitch", "num", 0], [[12, 2], "ItalicAngle", "num", 0], [[12, 3], "UnderlinePosition", "num", -100], [[12, 4], "UnderlineThickness", "num", 50], [[12, 5], "PaintType", "num", 0], [[12, 6], "CharstringType", "num", 2], [[12, 7], "FontMatrix", ["num", "num", "num", "num", "num", "num"], [0.001, 0, 0, 0.001, 0, 0]], [13, "UniqueID", "num", null], [5, "FontBBox", ["num", "num", "num", "num"], [0, 0, 0, 0]], [[12, 8], "StrokeWidth", "num", 0], [14, "XUID", "array", null], [15, "charset", "offset", 0], [16, "Encoding", "offset", 0], [17, "CharStrings", "offset", 0], [18, "Private", ["offset", "offset"], null], [[12, 21], "PostScript", "sid", null], [[12, 22], "BaseFontName", "sid", null], [[12, 23], "BaseFontBlend", "delta", null], [[12, 31], "CIDFontVersion", "num", 0], [[12, 32], "CIDFontRevision", "num", 0], [[12, 33], "CIDFontType", "num", 0], [[12, 34], "CIDCount", "num", 8720], [[12, 35], "UIDBase", "num", null], [[12, 37], "FDSelect", "offset", null], [[12, 36], "FDArray", "offset", null], [[12, 38], "FontName", "sid", null]]; +class CFFTopDict extends CFFDict { + static get tables() { + return shadow(this, "tables", this.createTables(CFFTopDictLayout)); + } + constructor(strings) { + super(CFFTopDict.tables, strings); + this.privateDict = null; + } +} +const CFFPrivateDictLayout = [[6, "BlueValues", "delta", null], [7, "OtherBlues", "delta", null], [8, "FamilyBlues", "delta", null], [9, "FamilyOtherBlues", "delta", null], [[12, 9], "BlueScale", "num", 0.039625], [[12, 10], "BlueShift", "num", 7], [[12, 11], "BlueFuzz", "num", 1], [10, "StdHW", "num", null], [11, "StdVW", "num", null], [[12, 12], "StemSnapH", "delta", null], [[12, 13], "StemSnapV", "delta", null], [[12, 14], "ForceBold", "num", 0], [[12, 17], "LanguageGroup", "num", 0], [[12, 18], "ExpansionFactor", "num", 0.06], [[12, 19], "initialRandomSeed", "num", 0], [20, "defaultWidthX", "num", 0], [21, "nominalWidthX", "num", 0], [19, "Subrs", "offset", null]]; +class CFFPrivateDict extends CFFDict { + static get tables() { + return shadow(this, "tables", this.createTables(CFFPrivateDictLayout)); + } + constructor(strings) { + super(CFFPrivateDict.tables, strings); + this.subrsIndex = null; + } +} +const CFFCharsetPredefinedTypes = { + ISO_ADOBE: 0, + EXPERT: 1, + EXPERT_SUBSET: 2 +}; +class CFFCharset { + constructor(predefined, format, charset, raw) { + this.predefined = predefined; + this.format = format; + this.charset = charset; + this.raw = raw; + } +} +class CFFEncoding { + constructor(predefined, format, encoding, raw) { + this.predefined = predefined; + this.format = format; + this.encoding = encoding; + this.raw = raw; + } +} +class CFFFDSelect { + constructor(format, fdSelect) { + this.format = format; + this.fdSelect = fdSelect; + } + getFDIndex(glyphIndex) { + if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) { + return -1; + } + return this.fdSelect[glyphIndex]; + } +} +class CFFOffsetTracker { + constructor() { + this.offsets = Object.create(null); + } + isTracking(key) { + return key in this.offsets; + } + track(key, location) { + if (key in this.offsets) { + throw new FormatError(`Already tracking location of ${key}`); + } + this.offsets[key] = location; + } + offset(value) { + for (const key in this.offsets) { + this.offsets[key] += value; + } + } + setEntryLocation(key, values, output) { + if (!(key in this.offsets)) { + throw new FormatError(`Not tracking location of ${key}`); + } + const data = output.data; + const dataOffset = this.offsets[key]; + const size = 5; + for (let i = 0, ii = values.length; i < ii; ++i) { + const offset0 = i * size + dataOffset; + const offset1 = offset0 + 1; + const offset2 = offset0 + 2; + const offset3 = offset0 + 3; + const offset4 = offset0 + 4; + if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) { + throw new FormatError("writing to an offset that is not empty"); + } + const value = values[i]; + data[offset0] = 0x1d; + data[offset1] = value >> 24 & 0xff; + data[offset2] = value >> 16 & 0xff; + data[offset3] = value >> 8 & 0xff; + data[offset4] = value & 0xff; + } + } +} +class CFFCompiler { + constructor(cff) { + this.cff = cff; + } + compile() { + const cff = this.cff; + const output = { + data: [], + length: 0, + add(data) { + try { + this.data.push(...data); + } catch { + this.data = this.data.concat(data); + } + this.length = this.data.length; + } + }; + const header = this.compileHeader(cff.header); + output.add(header); + const nameIndex = this.compileNameIndex(cff.names); + output.add(nameIndex); + if (cff.isCIDFont) { + if (cff.topDict.hasName("FontMatrix")) { + const base = cff.topDict.getByName("FontMatrix"); + cff.topDict.removeByName("FontMatrix"); + for (const subDict of cff.fdArray) { + let matrix = base.slice(0); + if (subDict.hasName("FontMatrix")) { + matrix = Util.transform(matrix, subDict.getByName("FontMatrix")); + } + subDict.setByName("FontMatrix", matrix); + } + } + } + const xuid = cff.topDict.getByName("XUID"); + if (xuid?.length > 16) { + cff.topDict.removeByName("XUID"); + } + cff.topDict.setByName("charset", 0); + let compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont); + output.add(compiled.output); + const topDictTracker = compiled.trackers[0]; + const stringIndex = this.compileStringIndex(cff.strings.strings); + output.add(stringIndex); + const globalSubrIndex = this.compileIndex(cff.globalSubrIndex); + output.add(globalSubrIndex); + if (cff.encoding && cff.topDict.hasName("Encoding")) { + if (cff.encoding.predefined) { + topDictTracker.setEntryLocation("Encoding", [cff.encoding.format], output); + } else { + const encoding = this.compileEncoding(cff.encoding); + topDictTracker.setEntryLocation("Encoding", [output.length], output); + output.add(encoding); + } + } + const charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont); + topDictTracker.setEntryLocation("charset", [output.length], output); + output.add(charset); + const charStrings = this.compileCharStrings(cff.charStrings); + topDictTracker.setEntryLocation("CharStrings", [output.length], output); + output.add(charStrings); + if (cff.isCIDFont) { + topDictTracker.setEntryLocation("FDSelect", [output.length], output); + const fdSelect = this.compileFDSelect(cff.fdSelect); + output.add(fdSelect); + compiled = this.compileTopDicts(cff.fdArray, output.length, true); + topDictTracker.setEntryLocation("FDArray", [output.length], output); + output.add(compiled.output); + const fontDictTrackers = compiled.trackers; + this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output); + } + this.compilePrivateDicts([cff.topDict], [topDictTracker], output); + output.add([0]); + return output.data; + } + encodeNumber(value) { + if (Number.isInteger(value)) { + return this.encodeInteger(value); + } + return this.encodeFloat(value); + } + static get EncodeFloatRegExp() { + return shadow(this, "EncodeFloatRegExp", /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/); + } + encodeFloat(num) { + let value = num.toString(); + const m = CFFCompiler.EncodeFloatRegExp.exec(value); + if (m) { + const epsilon = parseFloat("1e" + ((m[2] ? +m[2] : 0) + m[1].length)); + value = (Math.round(num * epsilon) / epsilon).toString(); + } + let nibbles = ""; + let i, ii; + for (i = 0, ii = value.length; i < ii; ++i) { + const a = value[i]; + if (a === "e") { + nibbles += value[++i] === "-" ? "c" : "b"; + } else if (a === ".") { + nibbles += "a"; + } else if (a === "-") { + nibbles += "e"; + } else { + nibbles += a; + } + } + nibbles += nibbles.length & 1 ? "f" : "ff"; + const out = [30]; + for (i = 0, ii = nibbles.length; i < ii; i += 2) { + out.push(parseInt(nibbles.substring(i, i + 2), 16)); + } + return out; + } + encodeInteger(value) { + let code; + if (value >= -107 && value <= 107) { + code = [value + 139]; + } else if (value >= 108 && value <= 1131) { + value -= 108; + code = [(value >> 8) + 247, value & 0xff]; + } else if (value >= -1131 && value <= -108) { + value = -value - 108; + code = [(value >> 8) + 251, value & 0xff]; + } else if (value >= -32768 && value <= 32767) { + code = [0x1c, value >> 8 & 0xff, value & 0xff]; + } else { + code = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff]; + } + return code; + } + compileHeader(header) { + return [header.major, header.minor, 4, header.offSize]; + } + compileNameIndex(names) { + const nameIndex = new CFFIndex(); + for (const name of names) { + const length = Math.min(name.length, 127); + let sanitizedName = new Array(length); + for (let j = 0; j < length; j++) { + let char = name[j]; + if (char < "!" || char > "~" || char === "[" || char === "]" || char === "(" || char === ")" || char === "{" || char === "}" || char === "<" || char === ">" || char === "/" || char === "%") { + char = "_"; + } + sanitizedName[j] = char; + } + sanitizedName = sanitizedName.join(""); + if (sanitizedName === "") { + sanitizedName = "Bad_Font_Name"; + } + nameIndex.add(stringToBytes(sanitizedName)); + } + return this.compileIndex(nameIndex); + } + compileTopDicts(dicts, length, removeCidKeys) { + const fontDictTrackers = []; + let fdArrayIndex = new CFFIndex(); + for (const fontDict of dicts) { + if (removeCidKeys) { + fontDict.removeByName("CIDFontVersion"); + fontDict.removeByName("CIDFontRevision"); + fontDict.removeByName("CIDFontType"); + fontDict.removeByName("CIDCount"); + fontDict.removeByName("UIDBase"); + } + const fontDictTracker = new CFFOffsetTracker(); + const fontDictData = this.compileDict(fontDict, fontDictTracker); + fontDictTrackers.push(fontDictTracker); + fdArrayIndex.add(fontDictData); + fontDictTracker.offset(length); + } + fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers); + return { + trackers: fontDictTrackers, + output: fdArrayIndex + }; + } + compilePrivateDicts(dicts, trackers, output) { + for (let i = 0, ii = dicts.length; i < ii; ++i) { + const fontDict = dicts[i]; + const privateDict = fontDict.privateDict; + if (!privateDict || !fontDict.hasName("Private")) { + throw new FormatError("There must be a private dictionary."); + } + const privateDictTracker = new CFFOffsetTracker(); + const privateDictData = this.compileDict(privateDict, privateDictTracker); + let outputLength = output.length; + privateDictTracker.offset(outputLength); + if (!privateDictData.length) { + outputLength = 0; + } + trackers[i].setEntryLocation("Private", [privateDictData.length, outputLength], output); + output.add(privateDictData); + if (privateDict.subrsIndex && privateDict.hasName("Subrs")) { + const subrs = this.compileIndex(privateDict.subrsIndex); + privateDictTracker.setEntryLocation("Subrs", [privateDictData.length], output); + output.add(subrs); + } + } + } + compileDict(dict, offsetTracker) { + const out = []; + for (const key of dict.order) { + if (!(key in dict.values)) { + continue; + } + let values = dict.values[key]; + let types = dict.types[key]; + if (!Array.isArray(types)) { + types = [types]; + } + if (!Array.isArray(values)) { + values = [values]; + } + if (values.length === 0) { + continue; + } + for (let j = 0, jj = types.length; j < jj; ++j) { + const type = types[j]; + const value = values[j]; + switch (type) { + case "num": + case "sid": + out.push(...this.encodeNumber(value)); + break; + case "offset": + const name = dict.keyToNameMap[key]; + if (!offsetTracker.isTracking(name)) { + offsetTracker.track(name, out.length); + } + out.push(0x1d, 0, 0, 0, 0); + break; + case "array": + case "delta": + out.push(...this.encodeNumber(value)); + for (let k = 1, kk = values.length; k < kk; ++k) { + out.push(...this.encodeNumber(values[k])); + } + break; + default: + throw new FormatError(`Unknown data type of ${type}`); + } + } + out.push(...dict.opcodes[key]); + } + return out; + } + compileStringIndex(strings) { + const stringIndex = new CFFIndex(); + for (const string of strings) { + stringIndex.add(stringToBytes(string)); + } + return this.compileIndex(stringIndex); + } + compileCharStrings(charStrings) { + const charStringsIndex = new CFFIndex(); + for (let i = 0; i < charStrings.count; i++) { + const glyph = charStrings.get(i); + if (glyph.length === 0) { + charStringsIndex.add(new Uint8Array([0x8b, 0x0e])); + continue; + } + charStringsIndex.add(glyph); + } + return this.compileIndex(charStringsIndex); + } + compileCharset(charset, numGlyphs, strings, isCIDFont) { + let out; + const numGlyphsLessNotDef = numGlyphs - 1; + if (isCIDFont) { + const nLeft = numGlyphsLessNotDef - 1; + out = new Uint8Array([2, 0, 1, nLeft >> 8 & 0xff, nLeft & 0xff]); + } else { + const length = 1 + numGlyphsLessNotDef * 2; + out = new Uint8Array(length); + out[0] = 0; + let charsetIndex = 0; + const numCharsets = charset.charset.length; + let warned = false; + for (let i = 1; i < out.length; i += 2) { + let sid = 0; + if (charsetIndex < numCharsets) { + const name = charset.charset[charsetIndex++]; + sid = strings.getSID(name); + if (sid === -1) { + sid = 0; + if (!warned) { + warned = true; + warn(`Couldn't find ${name} in CFF strings`); + } + } + } + out[i] = sid >> 8 & 0xff; + out[i + 1] = sid & 0xff; + } + } + return this.compileTypedArray(out); + } + compileEncoding(encoding) { + return this.compileTypedArray(encoding.raw); + } + compileFDSelect(fdSelect) { + const format = fdSelect.format; + let out, i; + switch (format) { + case 0: + out = new Uint8Array(1 + fdSelect.fdSelect.length); + out[0] = format; + for (i = 0; i < fdSelect.fdSelect.length; i++) { + out[i + 1] = fdSelect.fdSelect[i]; + } + break; + case 3: + const start = 0; + let lastFD = fdSelect.fdSelect[0]; + const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD]; + for (i = 1; i < fdSelect.fdSelect.length; i++) { + const currentFD = fdSelect.fdSelect[i]; + if (currentFD !== lastFD) { + ranges.push(i >> 8 & 0xff, i & 0xff, currentFD); + lastFD = currentFD; + } + } + const numRanges = (ranges.length - 3) / 3; + ranges[1] = numRanges >> 8 & 0xff; + ranges[2] = numRanges & 0xff; + ranges.push(i >> 8 & 0xff, i & 0xff); + out = new Uint8Array(ranges); + break; + } + return this.compileTypedArray(out); + } + compileTypedArray(data) { + return Array.from(data); + } + compileIndex(index, trackers = []) { + const objects = index.objects; + const count = objects.length; + if (count === 0) { + return [0, 0]; + } + const data = [count >> 8 & 0xff, count & 0xff]; + let lastOffset = 1, + i; + for (i = 0; i < count; ++i) { + lastOffset += objects[i].length; + } + let offsetSize; + if (lastOffset < 0x100) { + offsetSize = 1; + } else if (lastOffset < 0x10000) { + offsetSize = 2; + } else if (lastOffset < 0x1000000) { + offsetSize = 3; + } else { + offsetSize = 4; + } + data.push(offsetSize); + let relativeOffset = 1; + for (i = 0; i < count + 1; i++) { + if (offsetSize === 1) { + data.push(relativeOffset & 0xff); + } else if (offsetSize === 2) { + data.push(relativeOffset >> 8 & 0xff, relativeOffset & 0xff); + } else if (offsetSize === 3) { + data.push(relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff); + } else { + data.push(relativeOffset >>> 24 & 0xff, relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff); + } + if (objects[i]) { + relativeOffset += objects[i].length; + } + } + for (i = 0; i < count; i++) { + if (trackers[i]) { + trackers[i].offset(data.length); + } + data.push(...objects[i]); + } + return data; + } +} + +;// ./src/core/standard_fonts.js + + +const getStdFontMap = getLookupTableFactory(function (t) { + t["Times-Roman"] = "Times-Roman"; + t.Helvetica = "Helvetica"; + t.Courier = "Courier"; + t.Symbol = "Symbol"; + t["Times-Bold"] = "Times-Bold"; + t["Helvetica-Bold"] = "Helvetica-Bold"; + t["Courier-Bold"] = "Courier-Bold"; + t.ZapfDingbats = "ZapfDingbats"; + t["Times-Italic"] = "Times-Italic"; + t["Helvetica-Oblique"] = "Helvetica-Oblique"; + t["Courier-Oblique"] = "Courier-Oblique"; + t["Times-BoldItalic"] = "Times-BoldItalic"; + t["Helvetica-BoldOblique"] = "Helvetica-BoldOblique"; + t["Courier-BoldOblique"] = "Courier-BoldOblique"; + t.ArialNarrow = "Helvetica"; + t["ArialNarrow-Bold"] = "Helvetica-Bold"; + t["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique"; + t["ArialNarrow-Italic"] = "Helvetica-Oblique"; + t.ArialBlack = "Helvetica"; + t["ArialBlack-Bold"] = "Helvetica-Bold"; + t["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique"; + t["ArialBlack-Italic"] = "Helvetica-Oblique"; + t["Arial-Black"] = "Helvetica"; + t["Arial-Black-Bold"] = "Helvetica-Bold"; + t["Arial-Black-BoldItalic"] = "Helvetica-BoldOblique"; + t["Arial-Black-Italic"] = "Helvetica-Oblique"; + t.Arial = "Helvetica"; + t["Arial-Bold"] = "Helvetica-Bold"; + t["Arial-BoldItalic"] = "Helvetica-BoldOblique"; + t["Arial-Italic"] = "Helvetica-Oblique"; + t.ArialMT = "Helvetica"; + t["Arial-BoldItalicMT"] = "Helvetica-BoldOblique"; + t["Arial-BoldMT"] = "Helvetica-Bold"; + t["Arial-ItalicMT"] = "Helvetica-Oblique"; + t["Arial-BoldItalicMT-BoldItalic"] = "Helvetica-BoldOblique"; + t["Arial-BoldMT-Bold"] = "Helvetica-Bold"; + t["Arial-ItalicMT-Italic"] = "Helvetica-Oblique"; + t.ArialUnicodeMS = "Helvetica"; + t["ArialUnicodeMS-Bold"] = "Helvetica-Bold"; + t["ArialUnicodeMS-BoldItalic"] = "Helvetica-BoldOblique"; + t["ArialUnicodeMS-Italic"] = "Helvetica-Oblique"; + t["Courier-BoldItalic"] = "Courier-BoldOblique"; + t["Courier-Italic"] = "Courier-Oblique"; + t.CourierNew = "Courier"; + t["CourierNew-Bold"] = "Courier-Bold"; + t["CourierNew-BoldItalic"] = "Courier-BoldOblique"; + t["CourierNew-Italic"] = "Courier-Oblique"; + t["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique"; + t["CourierNewPS-BoldMT"] = "Courier-Bold"; + t["CourierNewPS-ItalicMT"] = "Courier-Oblique"; + t.CourierNewPSMT = "Courier"; + t["Helvetica-BoldItalic"] = "Helvetica-BoldOblique"; + t["Helvetica-Italic"] = "Helvetica-Oblique"; + t["HelveticaLTStd-Bold"] = "Helvetica-Bold"; + t["Symbol-Bold"] = "Symbol"; + t["Symbol-BoldItalic"] = "Symbol"; + t["Symbol-Italic"] = "Symbol"; + t.TimesNewRoman = "Times-Roman"; + t["TimesNewRoman-Bold"] = "Times-Bold"; + t["TimesNewRoman-BoldItalic"] = "Times-BoldItalic"; + t["TimesNewRoman-Italic"] = "Times-Italic"; + t.TimesNewRomanPS = "Times-Roman"; + t["TimesNewRomanPS-Bold"] = "Times-Bold"; + t["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic"; + t["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic"; + t["TimesNewRomanPS-BoldMT"] = "Times-Bold"; + t["TimesNewRomanPS-Italic"] = "Times-Italic"; + t["TimesNewRomanPS-ItalicMT"] = "Times-Italic"; + t.TimesNewRomanPSMT = "Times-Roman"; + t["TimesNewRomanPSMT-Bold"] = "Times-Bold"; + t["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic"; + t["TimesNewRomanPSMT-Italic"] = "Times-Italic"; +}); +const getFontNameToFileMap = getLookupTableFactory(function (t) { + t.Courier = "FoxitFixed.pfb"; + t["Courier-Bold"] = "FoxitFixedBold.pfb"; + t["Courier-BoldOblique"] = "FoxitFixedBoldItalic.pfb"; + t["Courier-Oblique"] = "FoxitFixedItalic.pfb"; + t.Helvetica = "LiberationSans-Regular.ttf"; + t["Helvetica-Bold"] = "LiberationSans-Bold.ttf"; + t["Helvetica-BoldOblique"] = "LiberationSans-BoldItalic.ttf"; + t["Helvetica-Oblique"] = "LiberationSans-Italic.ttf"; + t["Times-Roman"] = "FoxitSerif.pfb"; + t["Times-Bold"] = "FoxitSerifBold.pfb"; + t["Times-BoldItalic"] = "FoxitSerifBoldItalic.pfb"; + t["Times-Italic"] = "FoxitSerifItalic.pfb"; + t.Symbol = "FoxitSymbol.pfb"; + t.ZapfDingbats = "FoxitDingbats.pfb"; + t["LiberationSans-Regular"] = "LiberationSans-Regular.ttf"; + t["LiberationSans-Bold"] = "LiberationSans-Bold.ttf"; + t["LiberationSans-Italic"] = "LiberationSans-Italic.ttf"; + t["LiberationSans-BoldItalic"] = "LiberationSans-BoldItalic.ttf"; +}); +const getNonStdFontMap = getLookupTableFactory(function (t) { + t.Calibri = "Helvetica"; + t["Calibri-Bold"] = "Helvetica-Bold"; + t["Calibri-BoldItalic"] = "Helvetica-BoldOblique"; + t["Calibri-Italic"] = "Helvetica-Oblique"; + t.CenturyGothic = "Helvetica"; + t["CenturyGothic-Bold"] = "Helvetica-Bold"; + t["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique"; + t["CenturyGothic-Italic"] = "Helvetica-Oblique"; + t.ComicSansMS = "Comic Sans MS"; + t["ComicSansMS-Bold"] = "Comic Sans MS-Bold"; + t["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic"; + t["ComicSansMS-Italic"] = "Comic Sans MS-Italic"; + t.GillSansMT = "Helvetica"; + t["GillSansMT-Bold"] = "Helvetica-Bold"; + t["GillSansMT-BoldItalic"] = "Helvetica-BoldOblique"; + t["GillSansMT-Italic"] = "Helvetica-Oblique"; + t.Impact = "Helvetica"; + t["ItcSymbol-Bold"] = "Helvetica-Bold"; + t["ItcSymbol-BoldItalic"] = "Helvetica-BoldOblique"; + t["ItcSymbol-Book"] = "Helvetica"; + t["ItcSymbol-BookItalic"] = "Helvetica-Oblique"; + t["ItcSymbol-Medium"] = "Helvetica"; + t["ItcSymbol-MediumItalic"] = "Helvetica-Oblique"; + t.LucidaConsole = "Courier"; + t["LucidaConsole-Bold"] = "Courier-Bold"; + t["LucidaConsole-BoldItalic"] = "Courier-BoldOblique"; + t["LucidaConsole-Italic"] = "Courier-Oblique"; + t["LucidaSans-Demi"] = "Helvetica-Bold"; + t["MS-Gothic"] = "MS Gothic"; + t["MS-Gothic-Bold"] = "MS Gothic-Bold"; + t["MS-Gothic-BoldItalic"] = "MS Gothic-BoldItalic"; + t["MS-Gothic-Italic"] = "MS Gothic-Italic"; + t["MS-Mincho"] = "MS Mincho"; + t["MS-Mincho-Bold"] = "MS Mincho-Bold"; + t["MS-Mincho-BoldItalic"] = "MS Mincho-BoldItalic"; + t["MS-Mincho-Italic"] = "MS Mincho-Italic"; + t["MS-PGothic"] = "MS PGothic"; + t["MS-PGothic-Bold"] = "MS PGothic-Bold"; + t["MS-PGothic-BoldItalic"] = "MS PGothic-BoldItalic"; + t["MS-PGothic-Italic"] = "MS PGothic-Italic"; + t["MS-PMincho"] = "MS PMincho"; + t["MS-PMincho-Bold"] = "MS PMincho-Bold"; + t["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic"; + t["MS-PMincho-Italic"] = "MS PMincho-Italic"; + t.NuptialScript = "Times-Italic"; + t.SegoeUISymbol = "Helvetica"; +}); +const getSerifFonts = getLookupTableFactory(function (t) { + t["Adobe Jenson"] = true; + t["Adobe Text"] = true; + t.Albertus = true; + t.Aldus = true; + t.Alexandria = true; + t.Algerian = true; + t["American Typewriter"] = true; + t.Antiqua = true; + t.Apex = true; + t.Arno = true; + t.Aster = true; + t.Aurora = true; + t.Baskerville = true; + t.Bell = true; + t.Bembo = true; + t["Bembo Schoolbook"] = true; + t.Benguiat = true; + t["Berkeley Old Style"] = true; + t["Bernhard Modern"] = true; + t["Berthold City"] = true; + t.Bodoni = true; + t["Bauer Bodoni"] = true; + t["Book Antiqua"] = true; + t.Bookman = true; + t["Bordeaux Roman"] = true; + t["Californian FB"] = true; + t.Calisto = true; + t.Calvert = true; + t.Capitals = true; + t.Cambria = true; + t.Cartier = true; + t.Caslon = true; + t.Catull = true; + t.Centaur = true; + t["Century Old Style"] = true; + t["Century Schoolbook"] = true; + t.Chaparral = true; + t["Charis SIL"] = true; + t.Cheltenham = true; + t["Cholla Slab"] = true; + t.Clarendon = true; + t.Clearface = true; + t.Cochin = true; + t.Colonna = true; + t["Computer Modern"] = true; + t["Concrete Roman"] = true; + t.Constantia = true; + t["Cooper Black"] = true; + t.Corona = true; + t.Ecotype = true; + t.Egyptienne = true; + t.Elephant = true; + t.Excelsior = true; + t.Fairfield = true; + t["FF Scala"] = true; + t.Folkard = true; + t.Footlight = true; + t.FreeSerif = true; + t["Friz Quadrata"] = true; + t.Garamond = true; + t.Gentium = true; + t.Georgia = true; + t.Gloucester = true; + t["Goudy Old Style"] = true; + t["Goudy Schoolbook"] = true; + t["Goudy Pro Font"] = true; + t.Granjon = true; + t["Guardian Egyptian"] = true; + t.Heather = true; + t.Hercules = true; + t["High Tower Text"] = true; + t.Hiroshige = true; + t["Hoefler Text"] = true; + t["Humana Serif"] = true; + t.Imprint = true; + t["Ionic No. 5"] = true; + t.Janson = true; + t.Joanna = true; + t.Korinna = true; + t.Lexicon = true; + t.LiberationSerif = true; + t["Liberation Serif"] = true; + t["Linux Libertine"] = true; + t.Literaturnaya = true; + t.Lucida = true; + t["Lucida Bright"] = true; + t.Melior = true; + t.Memphis = true; + t.Miller = true; + t.Minion = true; + t.Modern = true; + t["Mona Lisa"] = true; + t["Mrs Eaves"] = true; + t["MS Serif"] = true; + t["Museo Slab"] = true; + t["New York"] = true; + t["Nimbus Roman"] = true; + t["NPS Rawlinson Roadway"] = true; + t.NuptialScript = true; + t.Palatino = true; + t.Perpetua = true; + t.Plantin = true; + t["Plantin Schoolbook"] = true; + t.Playbill = true; + t["Poor Richard"] = true; + t["Rawlinson Roadway"] = true; + t.Renault = true; + t.Requiem = true; + t.Rockwell = true; + t.Roman = true; + t["Rotis Serif"] = true; + t.Sabon = true; + t.Scala = true; + t.Seagull = true; + t.Sistina = true; + t.Souvenir = true; + t.STIX = true; + t["Stone Informal"] = true; + t["Stone Serif"] = true; + t.Sylfaen = true; + t.Times = true; + t.Trajan = true; + t["Trinité"] = true; + t["Trump Mediaeval"] = true; + t.Utopia = true; + t["Vale Type"] = true; + t["Bitstream Vera"] = true; + t["Vera Serif"] = true; + t.Versailles = true; + t.Wanted = true; + t.Weiss = true; + t["Wide Latin"] = true; + t.Windsor = true; + t.XITS = true; +}); +const getSymbolsFonts = getLookupTableFactory(function (t) { + t.Dingbats = true; + t.Symbol = true; + t.ZapfDingbats = true; + t.Wingdings = true; + t["Wingdings-Bold"] = true; + t["Wingdings-Regular"] = true; +}); +const getGlyphMapForStandardFonts = getLookupTableFactory(function (t) { + t[2] = 10; + t[3] = 32; + t[4] = 33; + t[5] = 34; + t[6] = 35; + t[7] = 36; + t[8] = 37; + t[9] = 38; + t[10] = 39; + t[11] = 40; + t[12] = 41; + t[13] = 42; + t[14] = 43; + t[15] = 44; + t[16] = 45; + t[17] = 46; + t[18] = 47; + t[19] = 48; + t[20] = 49; + t[21] = 50; + t[22] = 51; + t[23] = 52; + t[24] = 53; + t[25] = 54; + t[26] = 55; + t[27] = 56; + t[28] = 57; + t[29] = 58; + t[30] = 894; + t[31] = 60; + t[32] = 61; + t[33] = 62; + t[34] = 63; + t[35] = 64; + t[36] = 65; + t[37] = 66; + t[38] = 67; + t[39] = 68; + t[40] = 69; + t[41] = 70; + t[42] = 71; + t[43] = 72; + t[44] = 73; + t[45] = 74; + t[46] = 75; + t[47] = 76; + t[48] = 77; + t[49] = 78; + t[50] = 79; + t[51] = 80; + t[52] = 81; + t[53] = 82; + t[54] = 83; + t[55] = 84; + t[56] = 85; + t[57] = 86; + t[58] = 87; + t[59] = 88; + t[60] = 89; + t[61] = 90; + t[62] = 91; + t[63] = 92; + t[64] = 93; + t[65] = 94; + t[66] = 95; + t[67] = 96; + t[68] = 97; + t[69] = 98; + t[70] = 99; + t[71] = 100; + t[72] = 101; + t[73] = 102; + t[74] = 103; + t[75] = 104; + t[76] = 105; + t[77] = 106; + t[78] = 107; + t[79] = 108; + t[80] = 109; + t[81] = 110; + t[82] = 111; + t[83] = 112; + t[84] = 113; + t[85] = 114; + t[86] = 115; + t[87] = 116; + t[88] = 117; + t[89] = 118; + t[90] = 119; + t[91] = 120; + t[92] = 121; + t[93] = 122; + t[94] = 123; + t[95] = 124; + t[96] = 125; + t[97] = 126; + t[98] = 196; + t[99] = 197; + t[100] = 199; + t[101] = 201; + t[102] = 209; + t[103] = 214; + t[104] = 220; + t[105] = 225; + t[106] = 224; + t[107] = 226; + t[108] = 228; + t[109] = 227; + t[110] = 229; + t[111] = 231; + t[112] = 233; + t[113] = 232; + t[114] = 234; + t[115] = 235; + t[116] = 237; + t[117] = 236; + t[118] = 238; + t[119] = 239; + t[120] = 241; + t[121] = 243; + t[122] = 242; + t[123] = 244; + t[124] = 246; + t[125] = 245; + t[126] = 250; + t[127] = 249; + t[128] = 251; + t[129] = 252; + t[130] = 8224; + t[131] = 176; + t[132] = 162; + t[133] = 163; + t[134] = 167; + t[135] = 8226; + t[136] = 182; + t[137] = 223; + t[138] = 174; + t[139] = 169; + t[140] = 8482; + t[141] = 180; + t[142] = 168; + t[143] = 8800; + t[144] = 198; + t[145] = 216; + t[146] = 8734; + t[147] = 177; + t[148] = 8804; + t[149] = 8805; + t[150] = 165; + t[151] = 181; + t[152] = 8706; + t[153] = 8721; + t[154] = 8719; + t[156] = 8747; + t[157] = 170; + t[158] = 186; + t[159] = 8486; + t[160] = 230; + t[161] = 248; + t[162] = 191; + t[163] = 161; + t[164] = 172; + t[165] = 8730; + t[166] = 402; + t[167] = 8776; + t[168] = 8710; + t[169] = 171; + t[170] = 187; + t[171] = 8230; + t[179] = 8220; + t[180] = 8221; + t[181] = 8216; + t[182] = 8217; + t[200] = 193; + t[203] = 205; + t[207] = 211; + t[210] = 218; + t[223] = 711; + t[224] = 321; + t[225] = 322; + t[226] = 352; + t[227] = 353; + t[228] = 381; + t[229] = 382; + t[233] = 221; + t[234] = 253; + t[252] = 263; + t[253] = 268; + t[254] = 269; + t[258] = 258; + t[260] = 260; + t[261] = 261; + t[265] = 280; + t[266] = 281; + t[267] = 282; + t[268] = 283; + t[269] = 313; + t[275] = 323; + t[276] = 324; + t[278] = 328; + t[283] = 344; + t[284] = 345; + t[285] = 346; + t[286] = 347; + t[292] = 367; + t[295] = 377; + t[296] = 378; + t[298] = 380; + t[305] = 963; + t[306] = 964; + t[307] = 966; + t[308] = 8215; + t[309] = 8252; + t[310] = 8319; + t[311] = 8359; + t[312] = 8592; + t[313] = 8593; + t[337] = 9552; + t[493] = 1039; + t[494] = 1040; + t[570] = 1040; + t[571] = 1041; + t[572] = 1042; + t[573] = 1043; + t[574] = 1044; + t[575] = 1045; + t[576] = 1046; + t[577] = 1047; + t[578] = 1048; + t[579] = 1049; + t[580] = 1050; + t[581] = 1051; + t[582] = 1052; + t[583] = 1053; + t[584] = 1054; + t[585] = 1055; + t[586] = 1056; + t[587] = 1057; + t[588] = 1058; + t[589] = 1059; + t[590] = 1060; + t[591] = 1061; + t[592] = 1062; + t[593] = 1063; + t[594] = 1064; + t[595] = 1065; + t[596] = 1066; + t[597] = 1067; + t[598] = 1068; + t[599] = 1069; + t[600] = 1070; + t[672] = 1488; + t[673] = 1489; + t[674] = 1490; + t[675] = 1491; + t[676] = 1492; + t[677] = 1493; + t[678] = 1494; + t[679] = 1495; + t[680] = 1496; + t[681] = 1497; + t[682] = 1498; + t[683] = 1499; + t[684] = 1500; + t[685] = 1501; + t[686] = 1502; + t[687] = 1503; + t[688] = 1504; + t[689] = 1505; + t[690] = 1506; + t[691] = 1507; + t[692] = 1508; + t[693] = 1509; + t[694] = 1510; + t[695] = 1511; + t[696] = 1512; + t[697] = 1513; + t[698] = 1514; + t[705] = 1524; + t[706] = 8362; + t[710] = 64288; + t[711] = 64298; + t[759] = 1617; + t[761] = 1776; + t[763] = 1778; + t[775] = 1652; + t[777] = 1764; + t[778] = 1780; + t[779] = 1781; + t[780] = 1782; + t[782] = 771; + t[783] = 64726; + t[786] = 8363; + t[788] = 8532; + t[790] = 768; + t[791] = 769; + t[792] = 768; + t[795] = 803; + t[797] = 64336; + t[798] = 64337; + t[799] = 64342; + t[800] = 64343; + t[801] = 64344; + t[802] = 64345; + t[803] = 64362; + t[804] = 64363; + t[805] = 64364; + t[2424] = 7821; + t[2425] = 7822; + t[2426] = 7823; + t[2427] = 7824; + t[2428] = 7825; + t[2429] = 7826; + t[2430] = 7827; + t[2433] = 7682; + t[2678] = 8045; + t[2679] = 8046; + t[2830] = 1552; + t[2838] = 686; + t[2840] = 751; + t[2842] = 753; + t[2843] = 754; + t[2844] = 755; + t[2846] = 757; + t[2856] = 767; + t[2857] = 848; + t[2858] = 849; + t[2862] = 853; + t[2863] = 854; + t[2864] = 855; + t[2865] = 861; + t[2866] = 862; + t[2906] = 7460; + t[2908] = 7462; + t[2909] = 7463; + t[2910] = 7464; + t[2912] = 7466; + t[2913] = 7467; + t[2914] = 7468; + t[2916] = 7470; + t[2917] = 7471; + t[2918] = 7472; + t[2920] = 7474; + t[2921] = 7475; + t[2922] = 7476; + t[2924] = 7478; + t[2925] = 7479; + t[2926] = 7480; + t[2928] = 7482; + t[2929] = 7483; + t[2930] = 7484; + t[2932] = 7486; + t[2933] = 7487; + t[2934] = 7488; + t[2936] = 7490; + t[2937] = 7491; + t[2938] = 7492; + t[2940] = 7494; + t[2941] = 7495; + t[2942] = 7496; + t[2944] = 7498; + t[2946] = 7500; + t[2948] = 7502; + t[2950] = 7504; + t[2951] = 7505; + t[2952] = 7506; + t[2954] = 7508; + t[2955] = 7509; + t[2956] = 7510; + t[2958] = 7512; + t[2959] = 7513; + t[2960] = 7514; + t[2962] = 7516; + t[2963] = 7517; + t[2964] = 7518; + t[2966] = 7520; + t[2967] = 7521; + t[2968] = 7522; + t[2970] = 7524; + t[2971] = 7525; + t[2972] = 7526; + t[2974] = 7528; + t[2975] = 7529; + t[2976] = 7530; + t[2978] = 1537; + t[2979] = 1538; + t[2980] = 1539; + t[2982] = 1549; + t[2983] = 1551; + t[2984] = 1552; + t[2986] = 1554; + t[2987] = 1555; + t[2988] = 1556; + t[2990] = 1623; + t[2991] = 1624; + t[2995] = 1775; + t[2999] = 1791; + t[3002] = 64290; + t[3003] = 64291; + t[3004] = 64292; + t[3006] = 64294; + t[3007] = 64295; + t[3008] = 64296; + t[3011] = 1900; + t[3014] = 8223; + t[3015] = 8244; + t[3017] = 7532; + t[3018] = 7533; + t[3019] = 7534; + t[3075] = 7590; + t[3076] = 7591; + t[3079] = 7594; + t[3080] = 7595; + t[3083] = 7598; + t[3084] = 7599; + t[3087] = 7602; + t[3088] = 7603; + t[3091] = 7606; + t[3092] = 7607; + t[3095] = 7610; + t[3096] = 7611; + t[3099] = 7614; + t[3100] = 7615; + t[3103] = 7618; + t[3104] = 7619; + t[3107] = 8337; + t[3108] = 8338; + t[3116] = 1884; + t[3119] = 1885; + t[3120] = 1885; + t[3123] = 1886; + t[3124] = 1886; + t[3127] = 1887; + t[3128] = 1887; + t[3131] = 1888; + t[3132] = 1888; + t[3135] = 1889; + t[3136] = 1889; + t[3139] = 1890; + t[3140] = 1890; + t[3143] = 1891; + t[3144] = 1891; + t[3147] = 1892; + t[3148] = 1892; + t[3153] = 580; + t[3154] = 581; + t[3157] = 584; + t[3158] = 585; + t[3161] = 588; + t[3162] = 589; + t[3165] = 891; + t[3166] = 892; + t[3169] = 1274; + t[3170] = 1275; + t[3173] = 1278; + t[3174] = 1279; + t[3181] = 7622; + t[3182] = 7623; + t[3282] = 11799; + t[3316] = 578; + t[3379] = 42785; + t[3393] = 1159; + t[3416] = 8377; +}); +const getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (t) { + t[227] = 322; + t[264] = 261; + t[291] = 346; +}); +const getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) { + t[1] = 32; + t[4] = 65; + t[5] = 192; + t[6] = 193; + t[9] = 196; + t[17] = 66; + t[18] = 67; + t[21] = 268; + t[24] = 68; + t[28] = 69; + t[29] = 200; + t[30] = 201; + t[32] = 282; + t[38] = 70; + t[39] = 71; + t[44] = 72; + t[47] = 73; + t[48] = 204; + t[49] = 205; + t[58] = 74; + t[60] = 75; + t[62] = 76; + t[68] = 77; + t[69] = 78; + t[75] = 79; + t[76] = 210; + t[80] = 214; + t[87] = 80; + t[89] = 81; + t[90] = 82; + t[92] = 344; + t[94] = 83; + t[97] = 352; + t[100] = 84; + t[104] = 85; + t[109] = 220; + t[115] = 86; + t[116] = 87; + t[121] = 88; + t[122] = 89; + t[124] = 221; + t[127] = 90; + t[129] = 381; + t[258] = 97; + t[259] = 224; + t[260] = 225; + t[263] = 228; + t[268] = 261; + t[271] = 98; + t[272] = 99; + t[273] = 263; + t[275] = 269; + t[282] = 100; + t[286] = 101; + t[287] = 232; + t[288] = 233; + t[290] = 283; + t[295] = 281; + t[296] = 102; + t[336] = 103; + t[346] = 104; + t[349] = 105; + t[350] = 236; + t[351] = 237; + t[361] = 106; + t[364] = 107; + t[367] = 108; + t[371] = 322; + t[373] = 109; + t[374] = 110; + t[381] = 111; + t[382] = 242; + t[383] = 243; + t[386] = 246; + t[393] = 112; + t[395] = 113; + t[396] = 114; + t[398] = 345; + t[400] = 115; + t[401] = 347; + t[403] = 353; + t[410] = 116; + t[437] = 117; + t[442] = 252; + t[448] = 118; + t[449] = 119; + t[454] = 120; + t[455] = 121; + t[457] = 253; + t[460] = 122; + t[462] = 382; + t[463] = 380; + t[853] = 44; + t[855] = 58; + t[856] = 46; + t[876] = 47; + t[878] = 45; + t[882] = 45; + t[894] = 40; + t[895] = 41; + t[896] = 91; + t[897] = 93; + t[923] = 64; + t[940] = 163; + t[1004] = 48; + t[1005] = 49; + t[1006] = 50; + t[1007] = 51; + t[1008] = 52; + t[1009] = 53; + t[1010] = 54; + t[1011] = 55; + t[1012] = 56; + t[1013] = 57; + t[1081] = 37; + t[1085] = 43; + t[1086] = 45; +}); +function getStandardFontName(name) { + const fontName = normalizeFontName(name); + const stdFontMap = getStdFontMap(); + return stdFontMap[fontName]; +} +function isKnownFontName(name) { + const fontName = normalizeFontName(name); + return !!(getStdFontMap()[fontName] || getNonStdFontMap()[fontName] || getSerifFonts()[fontName] || getSymbolsFonts()[fontName]); +} + +;// ./src/core/to_unicode_map.js + +class ToUnicodeMap { + constructor(cmap = []) { + this._map = cmap; + } + get length() { + return this._map.length; + } + forEach(callback) { + for (const charCode in this._map) { + callback(charCode, this._map[charCode].codePointAt(0)); + } + } + has(i) { + return this._map[i] !== undefined; + } + get(i) { + return this._map[i]; + } + charCodeOf(value) { + const map = this._map; + if (map.length <= 0x10000) { + return map.indexOf(value); + } + for (const charCode in map) { + if (map[charCode] === value) { + return charCode | 0; + } + } + return -1; + } + amend(map) { + for (const charCode in map) { + this._map[charCode] = map[charCode]; + } + } +} +class IdentityToUnicodeMap { + constructor(firstChar, lastChar) { + this.firstChar = firstChar; + this.lastChar = lastChar; + } + get length() { + return this.lastChar + 1 - this.firstChar; + } + forEach(callback) { + for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) { + callback(i, i); + } + } + has(i) { + return this.firstChar <= i && i <= this.lastChar; + } + get(i) { + if (this.firstChar <= i && i <= this.lastChar) { + return String.fromCharCode(i); + } + return undefined; + } + charCodeOf(v) { + return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1; + } + amend(map) { + unreachable("Should not call amend()"); + } +} + +;// ./src/core/cff_font.js + + + +class CFFFont { + constructor(file, properties) { + this.properties = properties; + const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED); + this.cff = parser.parse(); + this.cff.duplicateFirstGlyph(); + const compiler = new CFFCompiler(this.cff); + this.seacs = this.cff.seacs; + try { + this.data = compiler.compile(); + } catch { + warn("Failed to compile font " + properties.loadedName); + this.data = file; + } + this._createBuiltInEncoding(); + } + get numGlyphs() { + return this.cff.charStrings.count; + } + getCharset() { + return this.cff.charset.charset; + } + getGlyphMapping() { + const cff = this.cff; + const properties = this.properties; + const { + cidToGidMap, + cMap + } = properties; + const charsets = cff.charset.charset; + let charCodeToGlyphId; + let glyphId; + if (properties.composite) { + let invCidToGidMap; + if (cidToGidMap?.length > 0) { + invCidToGidMap = Object.create(null); + for (let i = 0, ii = cidToGidMap.length; i < ii; i++) { + const gid = cidToGidMap[i]; + if (gid !== undefined) { + invCidToGidMap[gid] = i; + } + } + } + charCodeToGlyphId = Object.create(null); + let charCode; + if (cff.isCIDFont) { + for (glyphId = 0; glyphId < charsets.length; glyphId++) { + const cid = charsets[glyphId]; + charCode = cMap.charCodeOf(cid); + if (invCidToGidMap?.[charCode] !== undefined) { + charCode = invCidToGidMap[charCode]; + } + charCodeToGlyphId[charCode] = glyphId; + } + } else { + for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) { + charCode = cMap.charCodeOf(glyphId); + charCodeToGlyphId[charCode] = glyphId; + } + } + return charCodeToGlyphId; + } + let encoding = cff.encoding ? cff.encoding.encoding : null; + if (properties.isInternalFont) { + encoding = properties.defaultEncoding; + } + charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets); + return charCodeToGlyphId; + } + hasGlyphId(id) { + return this.cff.hasGlyphId(id); + } + _createBuiltInEncoding() { + const { + charset, + encoding + } = this.cff; + if (!charset || !encoding) { + return; + } + const charsets = charset.charset, + encodings = encoding.encoding; + const map = []; + for (const charCode in encodings) { + const glyphId = encodings[charCode]; + if (glyphId >= 0) { + const glyphName = charsets[glyphId]; + if (glyphName) { + map[charCode] = glyphName; + } + } + } + if (map.length > 0) { + this.properties.builtInEncoding = map; + } + } +} + +;// ./src/core/font_renderer.js + + + + + + +function getFloat214(data, offset) { + return readInt16(data, offset) / 16384; +} +function getSubroutineBias(subrs) { + const numSubrs = subrs.length; + let bias = 32768; + if (numSubrs < 1240) { + bias = 107; + } else if (numSubrs < 33900) { + bias = 1131; + } + return bias; +} +function parseCmap(data, start, end) { + const offset = readUint16(data, start + 2) === 1 ? readUint32(data, start + 8) : readUint32(data, start + 16); + const format = readUint16(data, start + offset); + let ranges, p, i; + if (format === 4) { + readUint16(data, start + offset + 2); + const segCount = readUint16(data, start + offset + 6) >> 1; + p = start + offset + 14; + ranges = []; + for (i = 0; i < segCount; i++, p += 2) { + ranges[i] = { + end: readUint16(data, p) + }; + } + p += 2; + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].start = readUint16(data, p); + } + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].idDelta = readUint16(data, p); + } + for (i = 0; i < segCount; i++, p += 2) { + let idOffset = readUint16(data, p); + if (idOffset === 0) { + continue; + } + ranges[i].ids = []; + for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) { + ranges[i].ids[j] = readUint16(data, p + idOffset); + idOffset += 2; + } + } + return ranges; + } else if (format === 12) { + const groups = readUint32(data, start + offset + 12); + p = start + offset + 16; + ranges = []; + for (i = 0; i < groups; i++) { + start = readUint32(data, p); + ranges.push({ + start, + end: readUint32(data, p + 4), + idDelta: readUint32(data, p + 8) - start + }); + p += 12; + } + return ranges; + } + throw new FormatError(`unsupported cmap: ${format}`); +} +function parseCff(data, start, end, seacAnalysisEnabled) { + const properties = {}; + const parser = new CFFParser(new Stream(data, start, end - start), properties, seacAnalysisEnabled); + const cff = parser.parse(); + return { + glyphs: cff.charStrings.objects, + subrs: cff.topDict.privateDict?.subrsIndex?.objects, + gsubrs: cff.globalSubrIndex?.objects, + isCFFCIDFont: cff.isCIDFont, + fdSelect: cff.fdSelect, + fdArray: cff.fdArray + }; +} +function parseGlyfTable(glyf, loca, isGlyphLocationsLong) { + let itemSize, itemDecode; + if (isGlyphLocationsLong) { + itemSize = 4; + itemDecode = readUint32; + } else { + itemSize = 2; + itemDecode = (data, offset) => 2 * readUint16(data, offset); + } + const glyphs = []; + let startOffset = itemDecode(loca, 0); + for (let j = itemSize; j < loca.length; j += itemSize) { + const endOffset = itemDecode(loca, j); + glyphs.push(glyf.subarray(startOffset, endOffset)); + startOffset = endOffset; + } + return glyphs; +} +function lookupCmap(ranges, unicode) { + const code = unicode.codePointAt(0); + let gid = 0, + l = 0, + r = ranges.length - 1; + while (l < r) { + const c = l + r + 1 >> 1; + if (code < ranges[c].start) { + r = c - 1; + } else { + l = c; + } + } + if (ranges[l].start <= code && code <= ranges[l].end) { + gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff; + } + return { + charCode: code, + glyphId: gid + }; +} +function compileGlyf(code, cmds, font) { + function moveTo(x, y) { + if (firstPoint) { + cmds.add("L", firstPoint); + } + firstPoint = [x, y]; + cmds.add("M", [x, y]); + } + function lineTo(x, y) { + cmds.add("L", [x, y]); + } + function quadraticCurveTo(xa, ya, x, y) { + cmds.add("Q", [xa, ya, x, y]); + } + let i = 0; + const numberOfContours = readInt16(code, i); + let flags; + let firstPoint = null; + let x = 0, + y = 0; + i += 10; + if (numberOfContours < 0) { + do { + flags = readUint16(code, i); + const glyphIndex = readUint16(code, i + 2); + i += 4; + let arg1, arg2; + if (flags & 0x01) { + if (flags & 0x02) { + arg1 = readInt16(code, i); + arg2 = readInt16(code, i + 2); + } else { + arg1 = readUint16(code, i); + arg2 = readUint16(code, i + 2); + } + i += 4; + } else if (flags & 0x02) { + arg1 = readInt8(code, i++); + arg2 = readInt8(code, i++); + } else { + arg1 = code[i++]; + arg2 = code[i++]; + } + if (flags & 0x02) { + x = arg1; + y = arg2; + } else { + x = 0; + y = 0; + } + let scaleX = 1, + scaleY = 1, + scale01 = 0, + scale10 = 0; + if (flags & 0x08) { + scaleX = scaleY = getFloat214(code, i); + i += 2; + } else if (flags & 0x40) { + scaleX = getFloat214(code, i); + scaleY = getFloat214(code, i + 2); + i += 4; + } else if (flags & 0x80) { + scaleX = getFloat214(code, i); + scale01 = getFloat214(code, i + 2); + scale10 = getFloat214(code, i + 4); + scaleY = getFloat214(code, i + 6); + i += 8; + } + const subglyph = font.glyphs[glyphIndex]; + if (subglyph) { + cmds.save(); + cmds.transform([scaleX, scale01, scale10, scaleY, x, y]); + if (!(flags & 0x02)) {} + compileGlyf(subglyph, cmds, font); + cmds.restore(); + } + } while (flags & 0x20); + } else { + const endPtsOfContours = []; + let j, jj; + for (j = 0; j < numberOfContours; j++) { + endPtsOfContours.push(readUint16(code, i)); + i += 2; + } + const instructionLength = readUint16(code, i); + i += 2 + instructionLength; + const numberOfPoints = endPtsOfContours.at(-1) + 1; + const points = []; + while (points.length < numberOfPoints) { + flags = code[i++]; + let repeat = 1; + if (flags & 0x08) { + repeat += code[i++]; + } + while (repeat-- > 0) { + points.push({ + flags + }); + } + } + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x12) { + case 0x00: + x += readInt16(code, i); + i += 2; + break; + case 0x02: + x -= code[i++]; + break; + case 0x12: + x += code[i++]; + break; + } + points[j].x = x; + } + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x24) { + case 0x00: + y += readInt16(code, i); + i += 2; + break; + case 0x04: + y -= code[i++]; + break; + case 0x24: + y += code[i++]; + break; + } + points[j].y = y; + } + let startPoint = 0; + for (i = 0; i < numberOfContours; i++) { + const endPoint = endPtsOfContours[i]; + const contour = points.slice(startPoint, endPoint + 1); + if (contour[0].flags & 1) { + contour.push(contour[0]); + } else if (contour.at(-1).flags & 1) { + contour.unshift(contour.at(-1)); + } else { + const p = { + flags: 1, + x: (contour[0].x + contour.at(-1).x) / 2, + y: (contour[0].y + contour.at(-1).y) / 2 + }; + contour.unshift(p); + contour.push(p); + } + moveTo(contour[0].x, contour[0].y); + for (j = 1, jj = contour.length; j < jj; j++) { + if (contour[j].flags & 1) { + lineTo(contour[j].x, contour[j].y); + } else if (contour[j + 1].flags & 1) { + quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y); + j++; + } else { + quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2); + } + } + startPoint = endPoint + 1; + } + } +} +function compileCharString(charStringCode, cmds, font, glyphId) { + function moveTo(x, y) { + if (firstPoint) { + cmds.add("L", firstPoint); + } + firstPoint = [x, y]; + cmds.add("M", [x, y]); + } + function lineTo(x, y) { + cmds.add("L", [x, y]); + } + function bezierCurveTo(x1, y1, x2, y2, x, y) { + cmds.add("C", [x1, y1, x2, y2, x, y]); + } + const stack = []; + let x = 0, + y = 0; + let stems = 0; + let firstPoint = null; + function parse(code) { + let i = 0; + while (i < code.length) { + let stackClean = false; + let v = code[i++]; + let xa, xb, ya, yb, y1, y2, y3, n, subrCode; + switch (v) { + case 1: + stems += stack.length >> 1; + stackClean = true; + break; + case 3: + stems += stack.length >> 1; + stackClean = true; + break; + case 4: + y += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 5: + while (stack.length > 0) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + break; + case 6: + while (stack.length > 0) { + x += stack.shift(); + lineTo(x, y); + if (stack.length === 0) { + break; + } + y += stack.shift(); + lineTo(x, y); + } + break; + case 7: + while (stack.length > 0) { + y += stack.shift(); + lineTo(x, y); + if (stack.length === 0) { + break; + } + x += stack.shift(); + lineTo(x, y); + } + break; + case 8: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 10: + n = stack.pop(); + subrCode = null; + if (font.isCFFCIDFont) { + const fdIndex = font.fdSelect.getFDIndex(glyphId); + if (fdIndex >= 0 && fdIndex < font.fdArray.length) { + const fontDict = font.fdArray[fdIndex]; + let subrs; + if (fontDict.privateDict?.subrsIndex) { + subrs = fontDict.privateDict.subrsIndex.objects; + } + if (subrs) { + n += getSubroutineBias(subrs); + subrCode = subrs[n]; + } + } else { + warn("Invalid fd index for glyph index."); + } + } else { + subrCode = font.subrs[n + font.subrsBias]; + } + if (subrCode) { + parse(subrCode); + } + break; + case 11: + return; + case 12: + v = code[i++]; + switch (v) { + case 34: + xa = x + stack.shift(); + xb = xa + stack.shift(); + y1 = y + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y, xb, y1, x, y1); + xa = x + stack.shift(); + xb = xa + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y, x, y); + break; + case 35: + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + stack.pop(); + break; + case 36: + xa = x + stack.shift(); + y1 = y + stack.shift(); + xb = xa + stack.shift(); + y2 = y1 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y2, x, y2); + xa = x + stack.shift(); + xb = xa + stack.shift(); + y3 = y2 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y2, xb, y3, x, y); + break; + case 37: + const x0 = x, + y0 = y; + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb; + if (Math.abs(x - x0) > Math.abs(y - y0)) { + x += stack.shift(); + } else { + y += stack.shift(); + } + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + default: + throw new FormatError(`unknown operator: 12 ${v}`); + } + break; + case 14: + if (stack.length >= 4) { + const achar = stack.pop(); + const bchar = stack.pop(); + y = stack.pop(); + x = stack.pop(); + cmds.save(); + cmds.translate(x, y); + let cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); + cmds.restore(); + cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); + } + return; + case 18: + stems += stack.length >> 1; + stackClean = true; + break; + case 19: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + case 20: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + case 21: + y += stack.pop(); + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 22: + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 23: + stems += stack.length >> 1; + stackClean = true; + break; + case 24: + while (stack.length > 2) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + break; + case 25: + while (stack.length > 6) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + case 26: + if (stack.length % 2) { + x += stack.shift(); + } + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 27: + if (stack.length % 2) { + y += stack.shift(); + } + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb; + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 28: + stack.push(readInt16(code, i)); + i += 2; + break; + case 29: + n = stack.pop() + font.gsubrsBias; + subrCode = font.gsubrs[n]; + if (subrCode) { + parse(subrCode); + } + break; + case 30: + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + if (stack.length === 0) { + break; + } + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 31: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + if (stack.length === 0) { + break; + } + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + default: + if (v < 32) { + throw new FormatError(`unknown operator: ${v}`); + } + if (v < 247) { + stack.push(v - 139); + } else if (v < 251) { + stack.push((v - 247) * 256 + code[i++] + 108); + } else if (v < 255) { + stack.push(-(v - 251) * 256 - code[i++] - 108); + } else { + stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536); + i += 4; + } + break; + } + if (stackClean) { + stack.length = 0; + } + } + } + parse(charStringCode); +} +const NOOP = ""; +class Commands { + cmds = []; + transformStack = []; + currentTransform = [1, 0, 0, 1, 0, 0]; + add(cmd, args) { + if (args) { + const { + currentTransform + } = this; + for (let i = 0, ii = args.length; i < ii; i += 2) { + Util.applyTransform(args, currentTransform, i); + } + this.cmds.push(`${cmd}${args.join(" ")}`); + } else { + this.cmds.push(cmd); + } + } + transform(transf) { + this.currentTransform = Util.transform(this.currentTransform, transf); + } + translate(x, y) { + this.transform([1, 0, 0, 1, x, y]); + } + save() { + this.transformStack.push(this.currentTransform.slice()); + } + restore() { + this.currentTransform = this.transformStack.pop() || [1, 0, 0, 1, 0, 0]; + } + getSVG() { + return this.cmds.join(""); + } +} +class CompiledFont { + constructor(fontMatrix) { + this.fontMatrix = fontMatrix; + this.compiledGlyphs = Object.create(null); + this.compiledCharCodeToGlyphId = Object.create(null); + } + getPathJs(unicode) { + const { + charCode, + glyphId + } = lookupCmap(this.cmap, unicode); + let fn = this.compiledGlyphs[glyphId], + compileEx; + if (fn === undefined) { + try { + fn = this.compileGlyph(this.glyphs[glyphId], glyphId); + } catch (ex) { + fn = NOOP; + compileEx = ex; + } + this.compiledGlyphs[glyphId] = fn; + } + this.compiledCharCodeToGlyphId[charCode] ??= glyphId; + if (compileEx) { + throw compileEx; + } + return fn; + } + compileGlyph(code, glyphId) { + if (!code?.length || code[0] === 14) { + return NOOP; + } + let fontMatrix = this.fontMatrix; + if (this.isCFFCIDFont) { + const fdIndex = this.fdSelect.getFDIndex(glyphId); + if (fdIndex >= 0 && fdIndex < this.fdArray.length) { + const fontDict = this.fdArray[fdIndex]; + fontMatrix = fontDict.getByName("FontMatrix") || FONT_IDENTITY_MATRIX; + } else { + warn("Invalid fd index for glyph index."); + } + } + assert(isNumberArray(fontMatrix, 6), "Expected a valid fontMatrix."); + const cmds = new Commands(); + cmds.transform(fontMatrix.slice()); + this.compileGlyphImpl(code, cmds, glyphId); + cmds.add("Z"); + return cmds.getSVG(); + } + compileGlyphImpl() { + unreachable("Children classes should implement this."); + } + hasBuiltPath(unicode) { + const { + charCode, + glyphId + } = lookupCmap(this.cmap, unicode); + return this.compiledGlyphs[glyphId] !== undefined && this.compiledCharCodeToGlyphId[charCode] !== undefined; + } +} +class TrueTypeCompiled extends CompiledFont { + constructor(glyphs, cmap, fontMatrix) { + super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]); + this.glyphs = glyphs; + this.cmap = cmap; + } + compileGlyphImpl(code, cmds) { + compileGlyf(code, cmds, this); + } +} +class Type2Compiled extends CompiledFont { + constructor(cffInfo, cmap, fontMatrix) { + super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]); + this.glyphs = cffInfo.glyphs; + this.gsubrs = cffInfo.gsubrs || []; + this.subrs = cffInfo.subrs || []; + this.cmap = cmap; + this.glyphNameMap = getGlyphsUnicode(); + this.gsubrsBias = getSubroutineBias(this.gsubrs); + this.subrsBias = getSubroutineBias(this.subrs); + this.isCFFCIDFont = cffInfo.isCFFCIDFont; + this.fdSelect = cffInfo.fdSelect; + this.fdArray = cffInfo.fdArray; + } + compileGlyphImpl(code, cmds, glyphId) { + compileCharString(code, cmds, this, glyphId); + } +} +class FontRendererFactory { + static create(font, seacAnalysisEnabled) { + const data = new Uint8Array(font.data); + let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm; + const numTables = readUint16(data, 4); + for (let i = 0, p = 12; i < numTables; i++, p += 16) { + const tag = bytesToString(data.subarray(p, p + 4)); + const offset = readUint32(data, p + 8); + const length = readUint32(data, p + 12); + switch (tag) { + case "cmap": + cmap = parseCmap(data, offset, offset + length); + break; + case "glyf": + glyf = data.subarray(offset, offset + length); + break; + case "loca": + loca = data.subarray(offset, offset + length); + break; + case "head": + unitsPerEm = readUint16(data, offset + 18); + indexToLocFormat = readUint16(data, offset + 50); + break; + case "CFF ": + cff = parseCff(data, offset, offset + length, seacAnalysisEnabled); + break; + } + } + if (glyf) { + const fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0]; + return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix); + } + return new Type2Compiled(cff, cmap, font.fontMatrix); + } +} + +;// ./src/core/metrics.js + +const getMetrics = getLookupTableFactory(function (t) { + t.Courier = 600; + t["Courier-Bold"] = 600; + t["Courier-BoldOblique"] = 600; + t["Courier-Oblique"] = 600; + t.Helvetica = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 278; + t.quotedbl = 355; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 667; + t.quoteright = 222; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 278; + t.semicolon = 278; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 556; + t.at = 1015; + t.A = 667; + t.B = 667; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 500; + t.K = 667; + t.L = 556; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 278; + t.backslash = 278; + t.bracketright = 278; + t.asciicircum = 469; + t.underscore = 556; + t.quoteleft = 222; + t.a = 556; + t.b = 556; + t.c = 500; + t.d = 556; + t.e = 556; + t.f = 278; + t.g = 556; + t.h = 556; + t.i = 222; + t.j = 222; + t.k = 500; + t.l = 222; + t.m = 833; + t.n = 556; + t.o = 556; + t.p = 556; + t.q = 556; + t.r = 333; + t.s = 500; + t.t = 278; + t.u = 556; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 500; + t.braceleft = 334; + t.bar = 260; + t.braceright = 334; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 191; + t.quotedblleft = 333; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 500; + t.fl = 500; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 537; + t.bullet = 350; + t.quotesinglbase = 222; + t.quotedblbase = 333; + t.quotedblright = 333; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 556; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 222; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 556; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 667; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 500; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 500; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 222; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 500; + t.scedilla = 500; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 556; + t.acircumflex = 556; + t.Amacron = 667; + t.rcaron = 333; + t.ccedilla = 500; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 643; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 667; + t.Abreve = 667; + t.multiply = 584; + t.uacute = 556; + t.Tcaron = 611; + t.partialdiff = 476; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 500; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 260; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 333; + t.omacron = 556; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 222; + t.tcaron = 317; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 667; + t.Adieresis = 667; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 222; + t.Oacute = 778; + t.oacute = 556; + t.amacron = 556; + t.sacute = 500; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 556; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 556; + t.igrave = 278; + t.ohungarumlaut = 556; + t.Eogonek = 667; + t.dcroat = 556; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 299; + t.Kcommaaccent = 667; + t.Lacute = 556; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 556; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 556; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 556; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 556; + t.Ccaron = 722; + t.ugrave = 556; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 333; + t.Ntilde = 722; + t.otilde = 556; + t.Rcommaaccent = 722; + t.Lcommaaccent = 556; + t.Atilde = 667; + t.Aogonek = 667; + t.Aring = 667; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 500; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 556; + t.tcommaaccent = 278; + t.logicalnot = 584; + t.odieresis = 556; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 556; + t.eth = 556; + t.zcaron = 500; + t.ncommaaccent = 556; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t["Helvetica-Bold"] = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 333; + t.quotedbl = 474; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 722; + t.quoteright = 278; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 333; + t.semicolon = 333; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 611; + t.at = 975; + t.A = 722; + t.B = 722; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 556; + t.K = 722; + t.L = 611; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 584; + t.underscore = 556; + t.quoteleft = 278; + t.a = 556; + t.b = 611; + t.c = 556; + t.d = 611; + t.e = 556; + t.f = 333; + t.g = 611; + t.h = 611; + t.i = 278; + t.j = 278; + t.k = 556; + t.l = 278; + t.m = 889; + t.n = 611; + t.o = 611; + t.p = 611; + t.q = 611; + t.r = 389; + t.s = 556; + t.t = 333; + t.u = 611; + t.v = 556; + t.w = 778; + t.x = 556; + t.y = 556; + t.z = 500; + t.braceleft = 389; + t.bar = 280; + t.braceright = 389; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 238; + t.quotedblleft = 500; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 611; + t.fl = 611; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 556; + t.bullet = 350; + t.quotesinglbase = 278; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 611; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 611; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 722; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 556; + t.scommaaccent = 556; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 611; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 556; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 556; + t.scedilla = 556; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 611; + t.acircumflex = 556; + t.Amacron = 722; + t.rcaron = 389; + t.ccedilla = 556; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 743; + t.Umacron = 722; + t.uring = 611; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 584; + t.uacute = 611; + t.Tcaron = 611; + t.partialdiff = 494; + t.ydieresis = 556; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 556; + t.nacute = 611; + t.umacron = 611; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 280; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 389; + t.omacron = 611; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 278; + t.tcaron = 389; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 278; + t.Oacute = 778; + t.oacute = 611; + t.amacron = 556; + t.sacute = 556; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 611; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 611; + t.igrave = 278; + t.ohungarumlaut = 611; + t.Eogonek = 667; + t.dcroat = 611; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 400; + t.Kcommaaccent = 722; + t.Lacute = 611; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 611; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 611; + t.ntilde = 611; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 611; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 611; + t.Ccaron = 722; + t.ugrave = 611; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 722; + t.otilde = 611; + t.Rcommaaccent = 722; + t.Lcommaaccent = 611; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 556; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 611; + t.tcommaaccent = 333; + t.logicalnot = 584; + t.odieresis = 611; + t.udieresis = 611; + t.notequal = 549; + t.gcommaaccent = 611; + t.eth = 611; + t.zcaron = 500; + t.ncommaaccent = 611; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t["Helvetica-BoldOblique"] = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 333; + t.quotedbl = 474; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 722; + t.quoteright = 278; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 333; + t.semicolon = 333; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 611; + t.at = 975; + t.A = 722; + t.B = 722; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 556; + t.K = 722; + t.L = 611; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 584; + t.underscore = 556; + t.quoteleft = 278; + t.a = 556; + t.b = 611; + t.c = 556; + t.d = 611; + t.e = 556; + t.f = 333; + t.g = 611; + t.h = 611; + t.i = 278; + t.j = 278; + t.k = 556; + t.l = 278; + t.m = 889; + t.n = 611; + t.o = 611; + t.p = 611; + t.q = 611; + t.r = 389; + t.s = 556; + t.t = 333; + t.u = 611; + t.v = 556; + t.w = 778; + t.x = 556; + t.y = 556; + t.z = 500; + t.braceleft = 389; + t.bar = 280; + t.braceright = 389; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 238; + t.quotedblleft = 500; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 611; + t.fl = 611; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 556; + t.bullet = 350; + t.quotesinglbase = 278; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 611; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 611; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 722; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 556; + t.scommaaccent = 556; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 611; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 556; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 556; + t.scedilla = 556; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 611; + t.acircumflex = 556; + t.Amacron = 722; + t.rcaron = 389; + t.ccedilla = 556; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 743; + t.Umacron = 722; + t.uring = 611; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 584; + t.uacute = 611; + t.Tcaron = 611; + t.partialdiff = 494; + t.ydieresis = 556; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 556; + t.nacute = 611; + t.umacron = 611; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 280; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 389; + t.omacron = 611; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 278; + t.tcaron = 389; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 278; + t.Oacute = 778; + t.oacute = 611; + t.amacron = 556; + t.sacute = 556; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 611; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 611; + t.igrave = 278; + t.ohungarumlaut = 611; + t.Eogonek = 667; + t.dcroat = 611; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 400; + t.Kcommaaccent = 722; + t.Lacute = 611; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 611; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 611; + t.ntilde = 611; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 611; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 611; + t.Ccaron = 722; + t.ugrave = 611; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 722; + t.otilde = 611; + t.Rcommaaccent = 722; + t.Lcommaaccent = 611; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 556; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 611; + t.tcommaaccent = 333; + t.logicalnot = 584; + t.odieresis = 611; + t.udieresis = 611; + t.notequal = 549; + t.gcommaaccent = 611; + t.eth = 611; + t.zcaron = 500; + t.ncommaaccent = 611; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t["Helvetica-Oblique"] = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 278; + t.quotedbl = 355; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 667; + t.quoteright = 222; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 278; + t.semicolon = 278; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 556; + t.at = 1015; + t.A = 667; + t.B = 667; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 500; + t.K = 667; + t.L = 556; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 278; + t.backslash = 278; + t.bracketright = 278; + t.asciicircum = 469; + t.underscore = 556; + t.quoteleft = 222; + t.a = 556; + t.b = 556; + t.c = 500; + t.d = 556; + t.e = 556; + t.f = 278; + t.g = 556; + t.h = 556; + t.i = 222; + t.j = 222; + t.k = 500; + t.l = 222; + t.m = 833; + t.n = 556; + t.o = 556; + t.p = 556; + t.q = 556; + t.r = 333; + t.s = 500; + t.t = 278; + t.u = 556; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 500; + t.braceleft = 334; + t.bar = 260; + t.braceright = 334; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 191; + t.quotedblleft = 333; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 500; + t.fl = 500; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 537; + t.bullet = 350; + t.quotesinglbase = 222; + t.quotedblbase = 333; + t.quotedblright = 333; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 556; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 222; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 556; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 667; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 500; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 500; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 222; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 500; + t.scedilla = 500; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 556; + t.acircumflex = 556; + t.Amacron = 667; + t.rcaron = 333; + t.ccedilla = 500; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 643; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 667; + t.Abreve = 667; + t.multiply = 584; + t.uacute = 556; + t.Tcaron = 611; + t.partialdiff = 476; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 500; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 260; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 333; + t.omacron = 556; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 222; + t.tcaron = 317; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 667; + t.Adieresis = 667; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 222; + t.Oacute = 778; + t.oacute = 556; + t.amacron = 556; + t.sacute = 500; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 556; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 556; + t.igrave = 278; + t.ohungarumlaut = 556; + t.Eogonek = 667; + t.dcroat = 556; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 299; + t.Kcommaaccent = 667; + t.Lacute = 556; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 556; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 556; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 556; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 556; + t.Ccaron = 722; + t.ugrave = 556; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 333; + t.Ntilde = 722; + t.otilde = 556; + t.Rcommaaccent = 722; + t.Lcommaaccent = 556; + t.Atilde = 667; + t.Aogonek = 667; + t.Aring = 667; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 500; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 556; + t.tcommaaccent = 278; + t.logicalnot = 584; + t.odieresis = 556; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 556; + t.eth = 556; + t.zcaron = 500; + t.ncommaaccent = 556; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t.Symbol = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.universal = 713; + t.numbersign = 500; + t.existential = 549; + t.percent = 833; + t.ampersand = 778; + t.suchthat = 439; + t.parenleft = 333; + t.parenright = 333; + t.asteriskmath = 500; + t.plus = 549; + t.comma = 250; + t.minus = 549; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 278; + t.semicolon = 278; + t.less = 549; + t.equal = 549; + t.greater = 549; + t.question = 444; + t.congruent = 549; + t.Alpha = 722; + t.Beta = 667; + t.Chi = 722; + t.Delta = 612; + t.Epsilon = 611; + t.Phi = 763; + t.Gamma = 603; + t.Eta = 722; + t.Iota = 333; + t.theta1 = 631; + t.Kappa = 722; + t.Lambda = 686; + t.Mu = 889; + t.Nu = 722; + t.Omicron = 722; + t.Pi = 768; + t.Theta = 741; + t.Rho = 556; + t.Sigma = 592; + t.Tau = 611; + t.Upsilon = 690; + t.sigma1 = 439; + t.Omega = 768; + t.Xi = 645; + t.Psi = 795; + t.Zeta = 611; + t.bracketleft = 333; + t.therefore = 863; + t.bracketright = 333; + t.perpendicular = 658; + t.underscore = 500; + t.radicalex = 500; + t.alpha = 631; + t.beta = 549; + t.chi = 549; + t.delta = 494; + t.epsilon = 439; + t.phi = 521; + t.gamma = 411; + t.eta = 603; + t.iota = 329; + t.phi1 = 603; + t.kappa = 549; + t.lambda = 549; + t.mu = 576; + t.nu = 521; + t.omicron = 549; + t.pi = 549; + t.theta = 521; + t.rho = 549; + t.sigma = 603; + t.tau = 439; + t.upsilon = 576; + t.omega1 = 713; + t.omega = 686; + t.xi = 493; + t.psi = 686; + t.zeta = 494; + t.braceleft = 480; + t.bar = 200; + t.braceright = 480; + t.similar = 549; + t.Euro = 750; + t.Upsilon1 = 620; + t.minute = 247; + t.lessequal = 549; + t.fraction = 167; + t.infinity = 713; + t.florin = 500; + t.club = 753; + t.diamond = 753; + t.heart = 753; + t.spade = 753; + t.arrowboth = 1042; + t.arrowleft = 987; + t.arrowup = 603; + t.arrowright = 987; + t.arrowdown = 603; + t.degree = 400; + t.plusminus = 549; + t.second = 411; + t.greaterequal = 549; + t.multiply = 549; + t.proportional = 713; + t.partialdiff = 494; + t.bullet = 460; + t.divide = 549; + t.notequal = 549; + t.equivalence = 549; + t.approxequal = 549; + t.ellipsis = 1000; + t.arrowvertex = 603; + t.arrowhorizex = 1000; + t.carriagereturn = 658; + t.aleph = 823; + t.Ifraktur = 686; + t.Rfraktur = 795; + t.weierstrass = 987; + t.circlemultiply = 768; + t.circleplus = 768; + t.emptyset = 823; + t.intersection = 768; + t.union = 768; + t.propersuperset = 713; + t.reflexsuperset = 713; + t.notsubset = 713; + t.propersubset = 713; + t.reflexsubset = 713; + t.element = 713; + t.notelement = 713; + t.angle = 768; + t.gradient = 713; + t.registerserif = 790; + t.copyrightserif = 790; + t.trademarkserif = 890; + t.product = 823; + t.radical = 549; + t.dotmath = 250; + t.logicalnot = 713; + t.logicaland = 603; + t.logicalor = 603; + t.arrowdblboth = 1042; + t.arrowdblleft = 987; + t.arrowdblup = 603; + t.arrowdblright = 987; + t.arrowdbldown = 603; + t.lozenge = 494; + t.angleleft = 329; + t.registersans = 790; + t.copyrightsans = 790; + t.trademarksans = 786; + t.summation = 713; + t.parenlefttp = 384; + t.parenleftex = 384; + t.parenleftbt = 384; + t.bracketlefttp = 384; + t.bracketleftex = 384; + t.bracketleftbt = 384; + t.bracelefttp = 494; + t.braceleftmid = 494; + t.braceleftbt = 494; + t.braceex = 494; + t.angleright = 329; + t.integral = 274; + t.integraltp = 686; + t.integralex = 686; + t.integralbt = 686; + t.parenrighttp = 384; + t.parenrightex = 384; + t.parenrightbt = 384; + t.bracketrighttp = 384; + t.bracketrightex = 384; + t.bracketrightbt = 384; + t.bracerighttp = 494; + t.bracerightmid = 494; + t.bracerightbt = 494; + t.apple = 790; + }); + t["Times-Roman"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.quotedbl = 408; + t.numbersign = 500; + t.dollar = 500; + t.percent = 833; + t.ampersand = 778; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 564; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 278; + t.semicolon = 278; + t.less = 564; + t.equal = 564; + t.greater = 564; + t.question = 444; + t.at = 921; + t.A = 722; + t.B = 667; + t.C = 667; + t.D = 722; + t.E = 611; + t.F = 556; + t.G = 722; + t.H = 722; + t.I = 333; + t.J = 389; + t.K = 722; + t.L = 611; + t.M = 889; + t.N = 722; + t.O = 722; + t.P = 556; + t.Q = 722; + t.R = 667; + t.S = 556; + t.T = 611; + t.U = 722; + t.V = 722; + t.W = 944; + t.X = 722; + t.Y = 722; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 469; + t.underscore = 500; + t.quoteleft = 333; + t.a = 444; + t.b = 500; + t.c = 444; + t.d = 500; + t.e = 444; + t.f = 333; + t.g = 500; + t.h = 500; + t.i = 278; + t.j = 278; + t.k = 500; + t.l = 278; + t.m = 778; + t.n = 500; + t.o = 500; + t.p = 500; + t.q = 500; + t.r = 333; + t.s = 389; + t.t = 278; + t.u = 500; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 444; + t.braceleft = 480; + t.bar = 200; + t.braceright = 480; + t.asciitilde = 541; + t.exclamdown = 333; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 180; + t.quotedblleft = 444; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 556; + t.fl = 556; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 453; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 444; + t.quotedblright = 444; + t.guillemotright = 500; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 444; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 889; + t.ordfeminine = 276; + t.Lslash = 611; + t.Oslash = 722; + t.OE = 889; + t.ordmasculine = 310; + t.ae = 667; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 722; + t.germandbls = 500; + t.Idieresis = 333; + t.eacute = 444; + t.abreve = 444; + t.uhungarumlaut = 500; + t.ecaron = 444; + t.Ydieresis = 722; + t.divide = 564; + t.Yacute = 722; + t.Acircumflex = 722; + t.aacute = 444; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 444; + t.Uacute = 722; + t.uogonek = 500; + t.Edieresis = 611; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 760; + t.Emacron = 611; + t.ccaron = 444; + t.aring = 444; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 444; + t.Tcommaaccent = 611; + t.Cacute = 667; + t.atilde = 444; + t.Edotaccent = 611; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 667; + t.Gcommaaccent = 722; + t.ucircumflex = 500; + t.acircumflex = 444; + t.Amacron = 722; + t.rcaron = 333; + t.ccedilla = 444; + t.Zdotaccent = 611; + t.Thorn = 556; + t.Omacron = 722; + t.Racute = 667; + t.Sacute = 556; + t.dcaron = 588; + t.Umacron = 722; + t.uring = 500; + t.threesuperior = 300; + t.Ograve = 722; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 564; + t.uacute = 500; + t.Tcaron = 611; + t.partialdiff = 476; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 611; + t.adieresis = 444; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 500; + t.umacron = 500; + t.Ncaron = 722; + t.Iacute = 333; + t.plusminus = 564; + t.brokenbar = 200; + t.registered = 760; + t.Gbreve = 722; + t.Idotaccent = 333; + t.summation = 600; + t.Egrave = 611; + t.racute = 333; + t.omacron = 500; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 667; + t.lcommaaccent = 278; + t.tcaron = 326; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 444; + t.zacute = 444; + t.iogonek = 278; + t.Oacute = 722; + t.oacute = 500; + t.amacron = 444; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 722; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 500; + t.twosuperior = 300; + t.Odieresis = 722; + t.mu = 500; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 611; + t.dcroat = 500; + t.threequarters = 750; + t.Scedilla = 556; + t.lcaron = 344; + t.Kcommaaccent = 722; + t.Lacute = 611; + t.trademark = 980; + t.edotaccent = 444; + t.Igrave = 333; + t.Imacron = 333; + t.Lcaron = 611; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 500; + t.Uhungarumlaut = 722; + t.Eacute = 611; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 556; + t.Scommaaccent = 556; + t.Ohungarumlaut = 722; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 667; + t.ugrave = 500; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 333; + t.Ntilde = 722; + t.otilde = 500; + t.Rcommaaccent = 667; + t.Lcommaaccent = 611; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 722; + t.zdotaccent = 444; + t.Ecaron = 611; + t.Iogonek = 333; + t.kcommaaccent = 500; + t.minus = 564; + t.Icircumflex = 333; + t.ncaron = 500; + t.tcommaaccent = 278; + t.logicalnot = 564; + t.odieresis = 500; + t.udieresis = 500; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 444; + t.ncommaaccent = 500; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t["Times-Bold"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.quotedbl = 555; + t.numbersign = 500; + t.dollar = 500; + t.percent = 1000; + t.ampersand = 833; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 570; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 333; + t.semicolon = 333; + t.less = 570; + t.equal = 570; + t.greater = 570; + t.question = 500; + t.at = 930; + t.A = 722; + t.B = 667; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 778; + t.I = 389; + t.J = 500; + t.K = 778; + t.L = 667; + t.M = 944; + t.N = 722; + t.O = 778; + t.P = 611; + t.Q = 778; + t.R = 722; + t.S = 556; + t.T = 667; + t.U = 722; + t.V = 722; + t.W = 1000; + t.X = 722; + t.Y = 722; + t.Z = 667; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 581; + t.underscore = 500; + t.quoteleft = 333; + t.a = 500; + t.b = 556; + t.c = 444; + t.d = 556; + t.e = 444; + t.f = 333; + t.g = 500; + t.h = 556; + t.i = 278; + t.j = 333; + t.k = 556; + t.l = 278; + t.m = 833; + t.n = 556; + t.o = 500; + t.p = 556; + t.q = 556; + t.r = 444; + t.s = 389; + t.t = 333; + t.u = 556; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 444; + t.braceleft = 394; + t.bar = 220; + t.braceright = 394; + t.asciitilde = 520; + t.exclamdown = 333; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 278; + t.quotedblleft = 500; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 556; + t.fl = 556; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 540; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 500; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 500; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 300; + t.Lslash = 667; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 330; + t.ae = 722; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 722; + t.germandbls = 556; + t.Idieresis = 389; + t.eacute = 444; + t.abreve = 500; + t.uhungarumlaut = 556; + t.ecaron = 444; + t.Ydieresis = 722; + t.divide = 570; + t.Yacute = 722; + t.Acircumflex = 722; + t.aacute = 500; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 500; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 747; + t.Emacron = 667; + t.ccaron = 444; + t.aring = 500; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 500; + t.Tcommaaccent = 667; + t.Cacute = 722; + t.atilde = 500; + t.Edotaccent = 667; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 556; + t.acircumflex = 500; + t.Amacron = 722; + t.rcaron = 444; + t.ccedilla = 444; + t.Zdotaccent = 667; + t.Thorn = 611; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 556; + t.dcaron = 672; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 300; + t.Ograve = 778; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 570; + t.uacute = 556; + t.Tcaron = 667; + t.partialdiff = 494; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 500; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 389; + t.plusminus = 570; + t.brokenbar = 220; + t.registered = 747; + t.Gbreve = 778; + t.Idotaccent = 389; + t.summation = 600; + t.Egrave = 667; + t.racute = 444; + t.omacron = 500; + t.Zacute = 667; + t.Zcaron = 667; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 278; + t.tcaron = 416; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 444; + t.zacute = 444; + t.iogonek = 278; + t.Oacute = 778; + t.oacute = 500; + t.amacron = 500; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 556; + t.twosuperior = 300; + t.Odieresis = 778; + t.mu = 556; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 667; + t.dcroat = 556; + t.threequarters = 750; + t.Scedilla = 556; + t.lcaron = 394; + t.Kcommaaccent = 778; + t.Lacute = 667; + t.trademark = 1000; + t.edotaccent = 444; + t.Igrave = 389; + t.Imacron = 389; + t.Lcaron = 667; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 556; + t.Scommaaccent = 556; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 722; + t.ugrave = 556; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 444; + t.Ntilde = 722; + t.otilde = 500; + t.Rcommaaccent = 722; + t.Lcommaaccent = 667; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 778; + t.zdotaccent = 444; + t.Ecaron = 667; + t.Iogonek = 389; + t.kcommaaccent = 556; + t.minus = 570; + t.Icircumflex = 389; + t.ncaron = 556; + t.tcommaaccent = 333; + t.logicalnot = 570; + t.odieresis = 500; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 444; + t.ncommaaccent = 556; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t["Times-BoldItalic"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 389; + t.quotedbl = 555; + t.numbersign = 500; + t.dollar = 500; + t.percent = 833; + t.ampersand = 778; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 570; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 333; + t.semicolon = 333; + t.less = 570; + t.equal = 570; + t.greater = 570; + t.question = 500; + t.at = 832; + t.A = 667; + t.B = 667; + t.C = 667; + t.D = 722; + t.E = 667; + t.F = 667; + t.G = 722; + t.H = 778; + t.I = 389; + t.J = 500; + t.K = 667; + t.L = 611; + t.M = 889; + t.N = 722; + t.O = 722; + t.P = 611; + t.Q = 722; + t.R = 667; + t.S = 556; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 889; + t.X = 667; + t.Y = 611; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 570; + t.underscore = 500; + t.quoteleft = 333; + t.a = 500; + t.b = 500; + t.c = 444; + t.d = 500; + t.e = 444; + t.f = 333; + t.g = 500; + t.h = 556; + t.i = 278; + t.j = 278; + t.k = 500; + t.l = 278; + t.m = 778; + t.n = 556; + t.o = 500; + t.p = 500; + t.q = 500; + t.r = 389; + t.s = 389; + t.t = 278; + t.u = 556; + t.v = 444; + t.w = 667; + t.x = 500; + t.y = 444; + t.z = 389; + t.braceleft = 348; + t.bar = 220; + t.braceright = 348; + t.asciitilde = 570; + t.exclamdown = 389; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 278; + t.quotedblleft = 500; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 556; + t.fl = 556; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 500; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 500; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 500; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 944; + t.ordfeminine = 266; + t.Lslash = 611; + t.Oslash = 722; + t.OE = 944; + t.ordmasculine = 300; + t.ae = 722; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 722; + t.germandbls = 500; + t.Idieresis = 389; + t.eacute = 444; + t.abreve = 500; + t.uhungarumlaut = 556; + t.ecaron = 444; + t.Ydieresis = 611; + t.divide = 570; + t.Yacute = 611; + t.Acircumflex = 667; + t.aacute = 500; + t.Ucircumflex = 722; + t.yacute = 444; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 500; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 747; + t.Emacron = 667; + t.ccaron = 444; + t.aring = 500; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 500; + t.Tcommaaccent = 611; + t.Cacute = 667; + t.atilde = 500; + t.Edotaccent = 667; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 667; + t.Gcommaaccent = 722; + t.ucircumflex = 556; + t.acircumflex = 500; + t.Amacron = 667; + t.rcaron = 389; + t.ccedilla = 444; + t.Zdotaccent = 611; + t.Thorn = 611; + t.Omacron = 722; + t.Racute = 667; + t.Sacute = 556; + t.dcaron = 608; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 300; + t.Ograve = 722; + t.Agrave = 667; + t.Abreve = 667; + t.multiply = 570; + t.uacute = 556; + t.Tcaron = 611; + t.partialdiff = 494; + t.ydieresis = 444; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 500; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 389; + t.plusminus = 570; + t.brokenbar = 220; + t.registered = 747; + t.Gbreve = 722; + t.Idotaccent = 389; + t.summation = 600; + t.Egrave = 667; + t.racute = 389; + t.omacron = 500; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 667; + t.lcommaaccent = 278; + t.tcaron = 366; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 667; + t.Adieresis = 667; + t.egrave = 444; + t.zacute = 389; + t.iogonek = 278; + t.Oacute = 722; + t.oacute = 500; + t.amacron = 500; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 722; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 500; + t.twosuperior = 300; + t.Odieresis = 722; + t.mu = 576; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 667; + t.dcroat = 500; + t.threequarters = 750; + t.Scedilla = 556; + t.lcaron = 382; + t.Kcommaaccent = 667; + t.Lacute = 611; + t.trademark = 1000; + t.edotaccent = 444; + t.Igrave = 389; + t.Imacron = 389; + t.Lcaron = 611; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 556; + t.Scommaaccent = 556; + t.Ohungarumlaut = 722; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 667; + t.ugrave = 556; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 722; + t.otilde = 500; + t.Rcommaaccent = 667; + t.Lcommaaccent = 611; + t.Atilde = 667; + t.Aogonek = 667; + t.Aring = 667; + t.Otilde = 722; + t.zdotaccent = 389; + t.Ecaron = 667; + t.Iogonek = 389; + t.kcommaaccent = 500; + t.minus = 606; + t.Icircumflex = 389; + t.ncaron = 556; + t.tcommaaccent = 278; + t.logicalnot = 606; + t.odieresis = 500; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 389; + t.ncommaaccent = 556; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t["Times-Italic"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.quotedbl = 420; + t.numbersign = 500; + t.dollar = 500; + t.percent = 833; + t.ampersand = 778; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 675; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 333; + t.semicolon = 333; + t.less = 675; + t.equal = 675; + t.greater = 675; + t.question = 500; + t.at = 920; + t.A = 611; + t.B = 611; + t.C = 667; + t.D = 722; + t.E = 611; + t.F = 611; + t.G = 722; + t.H = 722; + t.I = 333; + t.J = 444; + t.K = 667; + t.L = 556; + t.M = 833; + t.N = 667; + t.O = 722; + t.P = 611; + t.Q = 722; + t.R = 611; + t.S = 500; + t.T = 556; + t.U = 722; + t.V = 611; + t.W = 833; + t.X = 611; + t.Y = 556; + t.Z = 556; + t.bracketleft = 389; + t.backslash = 278; + t.bracketright = 389; + t.asciicircum = 422; + t.underscore = 500; + t.quoteleft = 333; + t.a = 500; + t.b = 500; + t.c = 444; + t.d = 500; + t.e = 444; + t.f = 278; + t.g = 500; + t.h = 500; + t.i = 278; + t.j = 278; + t.k = 444; + t.l = 278; + t.m = 722; + t.n = 500; + t.o = 500; + t.p = 500; + t.q = 500; + t.r = 389; + t.s = 389; + t.t = 278; + t.u = 500; + t.v = 444; + t.w = 667; + t.x = 444; + t.y = 444; + t.z = 389; + t.braceleft = 400; + t.bar = 275; + t.braceright = 400; + t.asciitilde = 541; + t.exclamdown = 389; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 214; + t.quotedblleft = 556; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 500; + t.fl = 500; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 523; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 556; + t.quotedblright = 556; + t.guillemotright = 500; + t.ellipsis = 889; + t.perthousand = 1000; + t.questiondown = 500; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 889; + t.AE = 889; + t.ordfeminine = 276; + t.Lslash = 556; + t.Oslash = 722; + t.OE = 944; + t.ordmasculine = 310; + t.ae = 667; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 667; + t.germandbls = 500; + t.Idieresis = 333; + t.eacute = 444; + t.abreve = 500; + t.uhungarumlaut = 500; + t.ecaron = 444; + t.Ydieresis = 556; + t.divide = 675; + t.Yacute = 556; + t.Acircumflex = 611; + t.aacute = 500; + t.Ucircumflex = 722; + t.yacute = 444; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 500; + t.Uacute = 722; + t.uogonek = 500; + t.Edieresis = 611; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 760; + t.Emacron = 611; + t.ccaron = 444; + t.aring = 500; + t.Ncommaaccent = 667; + t.lacute = 278; + t.agrave = 500; + t.Tcommaaccent = 556; + t.Cacute = 667; + t.atilde = 500; + t.Edotaccent = 611; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 611; + t.Gcommaaccent = 722; + t.ucircumflex = 500; + t.acircumflex = 500; + t.Amacron = 611; + t.rcaron = 389; + t.ccedilla = 444; + t.Zdotaccent = 556; + t.Thorn = 611; + t.Omacron = 722; + t.Racute = 611; + t.Sacute = 500; + t.dcaron = 544; + t.Umacron = 722; + t.uring = 500; + t.threesuperior = 300; + t.Ograve = 722; + t.Agrave = 611; + t.Abreve = 611; + t.multiply = 675; + t.uacute = 500; + t.Tcaron = 556; + t.partialdiff = 476; + t.ydieresis = 444; + t.Nacute = 667; + t.icircumflex = 278; + t.Ecircumflex = 611; + t.adieresis = 500; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 500; + t.umacron = 500; + t.Ncaron = 667; + t.Iacute = 333; + t.plusminus = 675; + t.brokenbar = 275; + t.registered = 760; + t.Gbreve = 722; + t.Idotaccent = 333; + t.summation = 600; + t.Egrave = 611; + t.racute = 389; + t.omacron = 500; + t.Zacute = 556; + t.Zcaron = 556; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 667; + t.lcommaaccent = 278; + t.tcaron = 300; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 611; + t.Adieresis = 611; + t.egrave = 444; + t.zacute = 389; + t.iogonek = 278; + t.Oacute = 722; + t.oacute = 500; + t.amacron = 500; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 722; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 500; + t.twosuperior = 300; + t.Odieresis = 722; + t.mu = 500; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 611; + t.dcroat = 500; + t.threequarters = 750; + t.Scedilla = 500; + t.lcaron = 300; + t.Kcommaaccent = 667; + t.Lacute = 556; + t.trademark = 980; + t.edotaccent = 444; + t.Igrave = 333; + t.Imacron = 333; + t.Lcaron = 611; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 500; + t.Uhungarumlaut = 722; + t.Eacute = 611; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 500; + t.Scommaaccent = 500; + t.Ohungarumlaut = 722; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 667; + t.ugrave = 500; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 667; + t.otilde = 500; + t.Rcommaaccent = 611; + t.Lcommaaccent = 556; + t.Atilde = 611; + t.Aogonek = 611; + t.Aring = 611; + t.Otilde = 722; + t.zdotaccent = 389; + t.Ecaron = 611; + t.Iogonek = 333; + t.kcommaaccent = 444; + t.minus = 675; + t.Icircumflex = 333; + t.ncaron = 500; + t.tcommaaccent = 278; + t.logicalnot = 675; + t.odieresis = 500; + t.udieresis = 500; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 389; + t.ncommaaccent = 500; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t.ZapfDingbats = getLookupTableFactory(function (t) { + t.space = 278; + t.a1 = 974; + t.a2 = 961; + t.a202 = 974; + t.a3 = 980; + t.a4 = 719; + t.a5 = 789; + t.a119 = 790; + t.a118 = 791; + t.a117 = 690; + t.a11 = 960; + t.a12 = 939; + t.a13 = 549; + t.a14 = 855; + t.a15 = 911; + t.a16 = 933; + t.a105 = 911; + t.a17 = 945; + t.a18 = 974; + t.a19 = 755; + t.a20 = 846; + t.a21 = 762; + t.a22 = 761; + t.a23 = 571; + t.a24 = 677; + t.a25 = 763; + t.a26 = 760; + t.a27 = 759; + t.a28 = 754; + t.a6 = 494; + t.a7 = 552; + t.a8 = 537; + t.a9 = 577; + t.a10 = 692; + t.a29 = 786; + t.a30 = 788; + t.a31 = 788; + t.a32 = 790; + t.a33 = 793; + t.a34 = 794; + t.a35 = 816; + t.a36 = 823; + t.a37 = 789; + t.a38 = 841; + t.a39 = 823; + t.a40 = 833; + t.a41 = 816; + t.a42 = 831; + t.a43 = 923; + t.a44 = 744; + t.a45 = 723; + t.a46 = 749; + t.a47 = 790; + t.a48 = 792; + t.a49 = 695; + t.a50 = 776; + t.a51 = 768; + t.a52 = 792; + t.a53 = 759; + t.a54 = 707; + t.a55 = 708; + t.a56 = 682; + t.a57 = 701; + t.a58 = 826; + t.a59 = 815; + t.a60 = 789; + t.a61 = 789; + t.a62 = 707; + t.a63 = 687; + t.a64 = 696; + t.a65 = 689; + t.a66 = 786; + t.a67 = 787; + t.a68 = 713; + t.a69 = 791; + t.a70 = 785; + t.a71 = 791; + t.a72 = 873; + t.a73 = 761; + t.a74 = 762; + t.a203 = 762; + t.a75 = 759; + t.a204 = 759; + t.a76 = 892; + t.a77 = 892; + t.a78 = 788; + t.a79 = 784; + t.a81 = 438; + t.a82 = 138; + t.a83 = 277; + t.a84 = 415; + t.a97 = 392; + t.a98 = 392; + t.a99 = 668; + t.a100 = 668; + t.a89 = 390; + t.a90 = 390; + t.a93 = 317; + t.a94 = 317; + t.a91 = 276; + t.a92 = 276; + t.a205 = 509; + t.a85 = 509; + t.a206 = 410; + t.a86 = 410; + t.a87 = 234; + t.a88 = 234; + t.a95 = 334; + t.a96 = 334; + t.a101 = 732; + t.a102 = 544; + t.a103 = 544; + t.a104 = 910; + t.a106 = 667; + t.a107 = 760; + t.a108 = 760; + t.a112 = 776; + t.a111 = 595; + t.a110 = 694; + t.a109 = 626; + t.a120 = 788; + t.a121 = 788; + t.a122 = 788; + t.a123 = 788; + t.a124 = 788; + t.a125 = 788; + t.a126 = 788; + t.a127 = 788; + t.a128 = 788; + t.a129 = 788; + t.a130 = 788; + t.a131 = 788; + t.a132 = 788; + t.a133 = 788; + t.a134 = 788; + t.a135 = 788; + t.a136 = 788; + t.a137 = 788; + t.a138 = 788; + t.a139 = 788; + t.a140 = 788; + t.a141 = 788; + t.a142 = 788; + t.a143 = 788; + t.a144 = 788; + t.a145 = 788; + t.a146 = 788; + t.a147 = 788; + t.a148 = 788; + t.a149 = 788; + t.a150 = 788; + t.a151 = 788; + t.a152 = 788; + t.a153 = 788; + t.a154 = 788; + t.a155 = 788; + t.a156 = 788; + t.a157 = 788; + t.a158 = 788; + t.a159 = 788; + t.a160 = 894; + t.a161 = 838; + t.a163 = 1016; + t.a164 = 458; + t.a196 = 748; + t.a165 = 924; + t.a192 = 748; + t.a166 = 918; + t.a167 = 927; + t.a168 = 928; + t.a169 = 928; + t.a170 = 834; + t.a171 = 873; + t.a172 = 828; + t.a173 = 924; + t.a162 = 924; + t.a174 = 917; + t.a175 = 930; + t.a176 = 931; + t.a177 = 463; + t.a178 = 883; + t.a179 = 836; + t.a193 = 836; + t.a180 = 867; + t.a199 = 867; + t.a181 = 696; + t.a200 = 696; + t.a182 = 874; + t.a201 = 874; + t.a183 = 760; + t.a184 = 946; + t.a197 = 771; + t.a185 = 865; + t.a194 = 771; + t.a198 = 888; + t.a186 = 967; + t.a195 = 888; + t.a187 = 831; + t.a188 = 873; + t.a189 = 927; + t.a190 = 970; + t.a191 = 918; + }); +}); +const getFontBasicMetrics = getLookupTableFactory(function (t) { + t.Courier = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: -426 + }; + t["Courier-Bold"] = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: 439 + }; + t["Courier-Oblique"] = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: 426 + }; + t["Courier-BoldOblique"] = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: 426 + }; + t.Helvetica = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 523 + }; + t["Helvetica-Bold"] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 532 + }; + t["Helvetica-Oblique"] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 523 + }; + t["Helvetica-BoldOblique"] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 532 + }; + t["Times-Roman"] = { + ascent: 683, + descent: -217, + capHeight: 662, + xHeight: 450 + }; + t["Times-Bold"] = { + ascent: 683, + descent: -217, + capHeight: 676, + xHeight: 461 + }; + t["Times-Italic"] = { + ascent: 683, + descent: -217, + capHeight: 653, + xHeight: 441 + }; + t["Times-BoldItalic"] = { + ascent: 683, + descent: -217, + capHeight: 669, + xHeight: 462 + }; + t.Symbol = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN + }; + t.ZapfDingbats = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN + }; +}); + +;// ./src/core/glyf.js +const ON_CURVE_POINT = 1 << 0; +const X_SHORT_VECTOR = 1 << 1; +const Y_SHORT_VECTOR = 1 << 2; +const REPEAT_FLAG = 1 << 3; +const X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4; +const Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5; +const OVERLAP_SIMPLE = 1 << 6; +const ARG_1_AND_2_ARE_WORDS = 1 << 0; +const ARGS_ARE_XY_VALUES = 1 << 1; +const WE_HAVE_A_SCALE = 1 << 3; +const MORE_COMPONENTS = 1 << 5; +const WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6; +const WE_HAVE_A_TWO_BY_TWO = 1 << 7; +const WE_HAVE_INSTRUCTIONS = 1 << 8; +class GlyfTable { + constructor({ + glyfTable, + isGlyphLocationsLong, + locaTable, + numGlyphs + }) { + this.glyphs = []; + const loca = new DataView(locaTable.buffer, locaTable.byteOffset, locaTable.byteLength); + const glyf = new DataView(glyfTable.buffer, glyfTable.byteOffset, glyfTable.byteLength); + const offsetSize = isGlyphLocationsLong ? 4 : 2; + let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0); + let pos = 0; + for (let i = 0; i < numGlyphs; i++) { + pos += offsetSize; + const next = isGlyphLocationsLong ? loca.getUint32(pos) : 2 * loca.getUint16(pos); + if (next === prev) { + this.glyphs.push(new Glyph({})); + continue; + } + const glyph = Glyph.parse(prev, glyf); + this.glyphs.push(glyph); + prev = next; + } + } + getSize() { + return Math.sumPrecise(this.glyphs.map(g => g.getSize() + 3 & ~3)); + } + write() { + const totalSize = this.getSize(); + const glyfTable = new DataView(new ArrayBuffer(totalSize)); + const isLocationLong = totalSize > 0x1fffe; + const offsetSize = isLocationLong ? 4 : 2; + const locaTable = new DataView(new ArrayBuffer((this.glyphs.length + 1) * offsetSize)); + if (isLocationLong) { + locaTable.setUint32(0, 0); + } else { + locaTable.setUint16(0, 0); + } + let pos = 0; + let locaIndex = 0; + for (const glyph of this.glyphs) { + pos += glyph.write(pos, glyfTable); + pos = pos + 3 & ~3; + locaIndex += offsetSize; + if (isLocationLong) { + locaTable.setUint32(locaIndex, pos); + } else { + locaTable.setUint16(locaIndex, pos >> 1); + } + } + return { + isLocationLong, + loca: new Uint8Array(locaTable.buffer), + glyf: new Uint8Array(glyfTable.buffer) + }; + } + scale(factors) { + for (let i = 0, ii = this.glyphs.length; i < ii; i++) { + this.glyphs[i].scale(factors[i]); + } + } +} +class Glyph { + constructor({ + header = null, + simple = null, + composites = null + }) { + this.header = header; + this.simple = simple; + this.composites = composites; + } + static parse(pos, glyf) { + const [read, header] = GlyphHeader.parse(pos, glyf); + pos += read; + if (header.numberOfContours < 0) { + const composites = []; + while (true) { + const [n, composite] = CompositeGlyph.parse(pos, glyf); + pos += n; + composites.push(composite); + if (!(composite.flags & MORE_COMPONENTS)) { + break; + } + } + return new Glyph({ + header, + composites + }); + } + const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours); + return new Glyph({ + header, + simple + }); + } + getSize() { + if (!this.header) { + return 0; + } + const size = this.simple ? this.simple.getSize() : Math.sumPrecise(this.composites.map(c => c.getSize())); + return this.header.getSize() + size; + } + write(pos, buf) { + if (!this.header) { + return 0; + } + const spos = pos; + pos += this.header.write(pos, buf); + if (this.simple) { + pos += this.simple.write(pos, buf); + } else { + for (const composite of this.composites) { + pos += composite.write(pos, buf); + } + } + return pos - spos; + } + scale(factor) { + if (!this.header) { + return; + } + const xMiddle = (this.header.xMin + this.header.xMax) / 2; + this.header.scale(xMiddle, factor); + if (this.simple) { + this.simple.scale(xMiddle, factor); + } else { + for (const composite of this.composites) { + composite.scale(xMiddle, factor); + } + } + } +} +class GlyphHeader { + constructor({ + numberOfContours, + xMin, + yMin, + xMax, + yMax + }) { + this.numberOfContours = numberOfContours; + this.xMin = xMin; + this.yMin = yMin; + this.xMax = xMax; + this.yMax = yMax; + } + static parse(pos, glyf) { + return [10, new GlyphHeader({ + numberOfContours: glyf.getInt16(pos), + xMin: glyf.getInt16(pos + 2), + yMin: glyf.getInt16(pos + 4), + xMax: glyf.getInt16(pos + 6), + yMax: glyf.getInt16(pos + 8) + })]; + } + getSize() { + return 10; + } + write(pos, buf) { + buf.setInt16(pos, this.numberOfContours); + buf.setInt16(pos + 2, this.xMin); + buf.setInt16(pos + 4, this.yMin); + buf.setInt16(pos + 6, this.xMax); + buf.setInt16(pos + 8, this.yMax); + return 10; + } + scale(x, factor) { + this.xMin = Math.round(x + (this.xMin - x) * factor); + this.xMax = Math.round(x + (this.xMax - x) * factor); + } +} +class Contour { + constructor({ + flags, + xCoordinates, + yCoordinates + }) { + this.xCoordinates = xCoordinates; + this.yCoordinates = yCoordinates; + this.flags = flags; + } +} +class SimpleGlyph { + constructor({ + contours, + instructions + }) { + this.contours = contours; + this.instructions = instructions; + } + static parse(pos, glyf, numberOfContours) { + const endPtsOfContours = []; + for (let i = 0; i < numberOfContours; i++) { + const endPt = glyf.getUint16(pos); + pos += 2; + endPtsOfContours.push(endPt); + } + const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1; + const instructionLength = glyf.getUint16(pos); + pos += 2; + const instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength); + pos += instructionLength; + const flags = []; + for (let i = 0; i < numberOfPt; pos++, i++) { + let flag = glyf.getUint8(pos); + flags.push(flag); + if (flag & REPEAT_FLAG) { + const count = glyf.getUint8(++pos); + flag ^= REPEAT_FLAG; + for (let m = 0; m < count; m++) { + flags.push(flag); + } + i += count; + } + } + const allXCoordinates = []; + let xCoordinates = []; + let yCoordinates = []; + let pointFlags = []; + const contours = []; + let endPtsOfContoursIndex = 0; + let lastCoordinate = 0; + for (let i = 0; i < numberOfPt; i++) { + const flag = flags[i]; + if (flag & X_SHORT_VECTOR) { + const x = glyf.getUint8(pos++); + lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x; + xCoordinates.push(lastCoordinate); + } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) { + xCoordinates.push(lastCoordinate); + } else { + lastCoordinate += glyf.getInt16(pos); + pos += 2; + xCoordinates.push(lastCoordinate); + } + if (endPtsOfContours[endPtsOfContoursIndex] === i) { + endPtsOfContoursIndex++; + allXCoordinates.push(xCoordinates); + xCoordinates = []; + } + } + lastCoordinate = 0; + endPtsOfContoursIndex = 0; + for (let i = 0; i < numberOfPt; i++) { + const flag = flags[i]; + if (flag & Y_SHORT_VECTOR) { + const y = glyf.getUint8(pos++); + lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y; + yCoordinates.push(lastCoordinate); + } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) { + yCoordinates.push(lastCoordinate); + } else { + lastCoordinate += glyf.getInt16(pos); + pos += 2; + yCoordinates.push(lastCoordinate); + } + pointFlags.push(flag & ON_CURVE_POINT | flag & OVERLAP_SIMPLE); + if (endPtsOfContours[endPtsOfContoursIndex] === i) { + xCoordinates = allXCoordinates[endPtsOfContoursIndex]; + endPtsOfContoursIndex++; + contours.push(new Contour({ + flags: pointFlags, + xCoordinates, + yCoordinates + })); + yCoordinates = []; + pointFlags = []; + } + } + return new SimpleGlyph({ + contours, + instructions + }); + } + getSize() { + let size = this.contours.length * 2 + 2 + this.instructions.length; + let lastX = 0; + let lastY = 0; + for (const contour of this.contours) { + size += contour.flags.length; + for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) { + const x = contour.xCoordinates[i]; + const y = contour.yCoordinates[i]; + let abs = Math.abs(x - lastX); + if (abs > 255) { + size += 2; + } else if (abs > 0) { + size += 1; + } + lastX = x; + abs = Math.abs(y - lastY); + if (abs > 255) { + size += 2; + } else if (abs > 0) { + size += 1; + } + lastY = y; + } + } + return size; + } + write(pos, buf) { + const spos = pos; + const xCoordinates = []; + const yCoordinates = []; + const flags = []; + let lastX = 0; + let lastY = 0; + for (const contour of this.contours) { + for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) { + let flag = contour.flags[i]; + const x = contour.xCoordinates[i]; + let delta = x - lastX; + if (delta === 0) { + flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR; + xCoordinates.push(0); + } else { + const abs = Math.abs(delta); + if (abs <= 255) { + flag |= delta >= 0 ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR : X_SHORT_VECTOR; + xCoordinates.push(abs); + } else { + xCoordinates.push(delta); + } + } + lastX = x; + const y = contour.yCoordinates[i]; + delta = y - lastY; + if (delta === 0) { + flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR; + yCoordinates.push(0); + } else { + const abs = Math.abs(delta); + if (abs <= 255) { + flag |= delta >= 0 ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR : Y_SHORT_VECTOR; + yCoordinates.push(abs); + } else { + yCoordinates.push(delta); + } + } + lastY = y; + flags.push(flag); + } + buf.setUint16(pos, xCoordinates.length - 1); + pos += 2; + } + buf.setUint16(pos, this.instructions.length); + pos += 2; + if (this.instructions.length) { + new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos); + pos += this.instructions.length; + } + for (const flag of flags) { + buf.setUint8(pos++, flag); + } + for (let i = 0, ii = xCoordinates.length; i < ii; i++) { + const x = xCoordinates[i]; + const flag = flags[i]; + if (flag & X_SHORT_VECTOR) { + buf.setUint8(pos++, x); + } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) { + buf.setInt16(pos, x); + pos += 2; + } + } + for (let i = 0, ii = yCoordinates.length; i < ii; i++) { + const y = yCoordinates[i]; + const flag = flags[i]; + if (flag & Y_SHORT_VECTOR) { + buf.setUint8(pos++, y); + } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) { + buf.setInt16(pos, y); + pos += 2; + } + } + return pos - spos; + } + scale(x, factor) { + for (const contour of this.contours) { + if (contour.xCoordinates.length === 0) { + continue; + } + for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) { + contour.xCoordinates[i] = Math.round(x + (contour.xCoordinates[i] - x) * factor); + } + } + } +} +class CompositeGlyph { + constructor({ + flags, + glyphIndex, + argument1, + argument2, + transf, + instructions + }) { + this.flags = flags; + this.glyphIndex = glyphIndex; + this.argument1 = argument1; + this.argument2 = argument2; + this.transf = transf; + this.instructions = instructions; + } + static parse(pos, glyf) { + const spos = pos; + const transf = []; + let flags = glyf.getUint16(pos); + const glyphIndex = glyf.getUint16(pos + 2); + pos += 4; + let argument1, argument2; + if (flags & ARG_1_AND_2_ARE_WORDS) { + if (flags & ARGS_ARE_XY_VALUES) { + argument1 = glyf.getInt16(pos); + argument2 = glyf.getInt16(pos + 2); + } else { + argument1 = glyf.getUint16(pos); + argument2 = glyf.getUint16(pos + 2); + } + pos += 4; + flags ^= ARG_1_AND_2_ARE_WORDS; + } else { + if (flags & ARGS_ARE_XY_VALUES) { + argument1 = glyf.getInt8(pos); + argument2 = glyf.getInt8(pos + 1); + } else { + argument1 = glyf.getUint8(pos); + argument2 = glyf.getUint8(pos + 1); + } + pos += 2; + } + if (flags & WE_HAVE_A_SCALE) { + transf.push(glyf.getUint16(pos)); + pos += 2; + } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) { + transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2)); + pos += 4; + } else if (flags & WE_HAVE_A_TWO_BY_TWO) { + transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2), glyf.getUint16(pos + 4), glyf.getUint16(pos + 6)); + pos += 8; + } + let instructions = null; + if (flags & WE_HAVE_INSTRUCTIONS) { + const instructionLength = glyf.getUint16(pos); + pos += 2; + instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength); + pos += instructionLength; + } + return [pos - spos, new CompositeGlyph({ + flags, + glyphIndex, + argument1, + argument2, + transf, + instructions + })]; + } + getSize() { + let size = 2 + 2 + this.transf.length * 2; + if (this.flags & WE_HAVE_INSTRUCTIONS) { + size += 2 + this.instructions.length; + } + size += 2; + if (this.flags & 2) { + if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) { + size += 2; + } + } else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) { + size += 2; + } + return size; + } + write(pos, buf) { + const spos = pos; + if (this.flags & ARGS_ARE_XY_VALUES) { + if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) { + this.flags |= ARG_1_AND_2_ARE_WORDS; + } + } else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) { + this.flags |= ARG_1_AND_2_ARE_WORDS; + } + buf.setUint16(pos, this.flags); + buf.setUint16(pos + 2, this.glyphIndex); + pos += 4; + if (this.flags & ARG_1_AND_2_ARE_WORDS) { + if (this.flags & ARGS_ARE_XY_VALUES) { + buf.setInt16(pos, this.argument1); + buf.setInt16(pos + 2, this.argument2); + } else { + buf.setUint16(pos, this.argument1); + buf.setUint16(pos + 2, this.argument2); + } + pos += 4; + } else { + buf.setUint8(pos, this.argument1); + buf.setUint8(pos + 1, this.argument2); + pos += 2; + } + if (this.flags & WE_HAVE_INSTRUCTIONS) { + buf.setUint16(pos, this.instructions.length); + pos += 2; + if (this.instructions.length) { + new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos); + pos += this.instructions.length; + } + } + return pos - spos; + } + scale(x, factor) {} +} + +;// ./src/core/opentype_file_builder.js + + +function writeInt16(dest, offset, num) { + dest[offset] = num >> 8 & 0xff; + dest[offset + 1] = num & 0xff; +} +function writeInt32(dest, offset, num) { + dest[offset] = num >> 24 & 0xff; + dest[offset + 1] = num >> 16 & 0xff; + dest[offset + 2] = num >> 8 & 0xff; + dest[offset + 3] = num & 0xff; +} +function writeData(dest, offset, data) { + if (data instanceof Uint8Array) { + dest.set(data, offset); + } else if (typeof data === "string") { + for (let i = 0, ii = data.length; i < ii; i++) { + dest[offset++] = data.charCodeAt(i) & 0xff; + } + } else { + for (const num of data) { + dest[offset++] = num & 0xff; + } + } +} +const OTF_HEADER_SIZE = 12; +const OTF_TABLE_ENTRY_SIZE = 16; +class OpenTypeFileBuilder { + constructor(sfnt) { + this.sfnt = sfnt; + this.tables = Object.create(null); + } + static getSearchParams(entriesCount, entrySize) { + let maxPower2 = 1, + log2 = 0; + while ((maxPower2 ^ entriesCount) > maxPower2) { + maxPower2 <<= 1; + log2++; + } + const searchRange = maxPower2 * entrySize; + return { + range: searchRange, + entry: log2, + rangeShift: entrySize * entriesCount - searchRange + }; + } + toArray() { + let sfnt = this.sfnt; + const tables = this.tables; + const tablesNames = Object.keys(tables); + tablesNames.sort(); + const numTables = tablesNames.length; + let i, j, jj, table, tableName; + let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE; + const tableOffsets = [offset]; + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + const paddedLength = (table.length + 3 & ~3) >>> 0; + offset += paddedLength; + tableOffsets.push(offset); + } + const file = new Uint8Array(offset); + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + writeData(file, tableOffsets[i], table); + } + if (sfnt === "true") { + sfnt = string32(0x00010000); + } + file[0] = sfnt.charCodeAt(0) & 0xff; + file[1] = sfnt.charCodeAt(1) & 0xff; + file[2] = sfnt.charCodeAt(2) & 0xff; + file[3] = sfnt.charCodeAt(3) & 0xff; + writeInt16(file, 4, numTables); + const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16); + writeInt16(file, 6, searchParams.range); + writeInt16(file, 8, searchParams.entry); + writeInt16(file, 10, searchParams.rangeShift); + offset = OTF_HEADER_SIZE; + for (i = 0; i < numTables; i++) { + tableName = tablesNames[i]; + file[offset] = tableName.charCodeAt(0) & 0xff; + file[offset + 1] = tableName.charCodeAt(1) & 0xff; + file[offset + 2] = tableName.charCodeAt(2) & 0xff; + file[offset + 3] = tableName.charCodeAt(3) & 0xff; + let checksum = 0; + for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) { + const quad = readUint32(file, j); + checksum = checksum + quad >>> 0; + } + writeInt32(file, offset + 4, checksum); + writeInt32(file, offset + 8, tableOffsets[i]); + writeInt32(file, offset + 12, tables[tableName].length); + offset += OTF_TABLE_ENTRY_SIZE; + } + return file; + } + addTable(tag, data) { + if (tag in this.tables) { + throw new Error("Table " + tag + " already exists"); + } + this.tables[tag] = data; + } +} + +;// ./src/core/type1_parser.js + + + + +const HINTING_ENABLED = false; +const COMMAND_MAP = { + hstem: [1], + vstem: [3], + vmoveto: [4], + rlineto: [5], + hlineto: [6], + vlineto: [7], + rrcurveto: [8], + callsubr: [10], + flex: [12, 35], + drop: [12, 18], + endchar: [14], + rmoveto: [21], + hmoveto: [22], + vhcurveto: [30], + hvcurveto: [31] +}; +class Type1CharString { + constructor() { + this.width = 0; + this.lsb = 0; + this.flexing = false; + this.output = []; + this.stack = []; + } + convert(encoded, subrs, seacAnalysisEnabled) { + const count = encoded.length; + let error = false; + let wx, sbx, subrNumber; + for (let i = 0; i < count; i++) { + let value = encoded[i]; + if (value < 32) { + if (value === 12) { + value = (value << 8) + encoded[++i]; + } + switch (value) { + case 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + case 3: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + case 4: + if (this.flexing) { + if (this.stack.length < 1) { + error = true; + break; + } + const dy = this.stack.pop(); + this.stack.push(0, dy); + break; + } + error = this.executeCommand(1, COMMAND_MAP.vmoveto); + break; + case 5: + error = this.executeCommand(2, COMMAND_MAP.rlineto); + break; + case 6: + error = this.executeCommand(1, COMMAND_MAP.hlineto); + break; + case 7: + error = this.executeCommand(1, COMMAND_MAP.vlineto); + break; + case 8: + error = this.executeCommand(6, COMMAND_MAP.rrcurveto); + break; + case 9: + this.stack = []; + break; + case 10: + if (this.stack.length < 1) { + error = true; + break; + } + subrNumber = this.stack.pop(); + if (!subrs[subrNumber]) { + error = true; + break; + } + error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled); + break; + case 11: + return error; + case 13: + if (this.stack.length < 2) { + error = true; + break; + } + wx = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx); + error = this.executeCommand(2, COMMAND_MAP.hmoveto); + break; + case 14: + this.output.push(COMMAND_MAP.endchar[0]); + break; + case 21: + if (this.flexing) { + break; + } + error = this.executeCommand(2, COMMAND_MAP.rmoveto); + break; + case 22: + if (this.flexing) { + this.stack.push(0); + break; + } + error = this.executeCommand(1, COMMAND_MAP.hmoveto); + break; + case 30: + error = this.executeCommand(4, COMMAND_MAP.vhcurveto); + break; + case 31: + error = this.executeCommand(4, COMMAND_MAP.hvcurveto); + break; + case (12 << 8) + 0: + this.stack = []; + break; + case (12 << 8) + 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + case (12 << 8) + 2: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + case (12 << 8) + 6: + if (seacAnalysisEnabled) { + const asb = this.stack.at(-5); + this.seac = this.stack.splice(-4, 4); + this.seac[0] += this.lsb - asb; + error = this.executeCommand(0, COMMAND_MAP.endchar); + } else { + error = this.executeCommand(4, COMMAND_MAP.endchar); + } + break; + case (12 << 8) + 7: + if (this.stack.length < 4) { + error = true; + break; + } + this.stack.pop(); + wx = this.stack.pop(); + const sby = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx, sby); + error = this.executeCommand(3, COMMAND_MAP.rmoveto); + break; + case (12 << 8) + 12: + if (this.stack.length < 2) { + error = true; + break; + } + const num2 = this.stack.pop(); + const num1 = this.stack.pop(); + this.stack.push(num1 / num2); + break; + case (12 << 8) + 16: + if (this.stack.length < 2) { + error = true; + break; + } + subrNumber = this.stack.pop(); + const numArgs = this.stack.pop(); + if (subrNumber === 0 && numArgs === 3) { + const flexArgs = this.stack.splice(-17, 17); + this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]); + error = this.executeCommand(13, COMMAND_MAP.flex, true); + this.flexing = false; + this.stack.push(flexArgs[15], flexArgs[16]); + } else if (subrNumber === 1 && numArgs === 0) { + this.flexing = true; + } + break; + case (12 << 8) + 17: + break; + case (12 << 8) + 33: + this.stack = []; + break; + default: + warn('Unknown type 1 charstring command of "' + value + '"'); + break; + } + if (error) { + break; + } + continue; + } else if (value <= 246) { + value -= 139; + } else if (value <= 250) { + value = (value - 247) * 256 + encoded[++i] + 108; + } else if (value <= 254) { + value = -((value - 251) * 256) - encoded[++i] - 108; + } else { + value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0; + } + this.stack.push(value); + } + return error; + } + executeCommand(howManyArgs, command, keepStack) { + const stackLength = this.stack.length; + if (howManyArgs > stackLength) { + return true; + } + const start = stackLength - howManyArgs; + for (let i = start; i < stackLength; i++) { + let value = this.stack[i]; + if (Number.isInteger(value)) { + this.output.push(28, value >> 8 & 0xff, value & 0xff); + } else { + value = 65536 * value | 0; + this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); + } + } + this.output.push(...command); + if (keepStack) { + this.stack.splice(start, howManyArgs); + } else { + this.stack.length = 0; + } + return false; + } +} +const EEXEC_ENCRYPT_KEY = 55665; +const CHAR_STRS_ENCRYPT_KEY = 4330; +function isHexDigit(code) { + return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102; +} +function decrypt(data, key, discardNumber) { + if (discardNumber >= data.length) { + return new Uint8Array(0); + } + const c1 = 52845, + c2 = 22719; + let r = key | 0, + i, + j; + for (i = 0; i < discardNumber; i++) { + r = (data[i] + r) * c1 + c2 & (1 << 16) - 1; + } + const count = data.length - discardNumber; + const decrypted = new Uint8Array(count); + for (i = discardNumber, j = 0; j < count; i++, j++) { + const value = data[i]; + decrypted[j] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + return decrypted; +} +function decryptAscii(data, key, discardNumber) { + const c1 = 52845, + c2 = 22719; + let r = key | 0; + const count = data.length, + maybeLength = count >>> 1; + const decrypted = new Uint8Array(maybeLength); + let i, j; + for (i = 0, j = 0; i < count; i++) { + const digit1 = data[i]; + if (!isHexDigit(digit1)) { + continue; + } + i++; + let digit2; + while (i < count && !isHexDigit(digit2 = data[i])) { + i++; + } + if (i < count) { + const value = parseInt(String.fromCharCode(digit1, digit2), 16); + decrypted[j++] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + } + return decrypted.slice(discardNumber, j); +} +function isSpecial(c) { + return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29; +} +class Type1Parser { + constructor(stream, encrypted, seacAnalysisEnabled) { + if (encrypted) { + const data = stream.getBytes(); + const isBinary = !((isHexDigit(data[0]) || isWhiteSpace(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7])); + stream = new Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)); + } + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + this.stream = stream; + this.nextChar(); + } + readNumberArray() { + this.getToken(); + const array = []; + while (true) { + const token = this.getToken(); + if (token === null || token === "]" || token === "}") { + break; + } + array.push(parseFloat(token || 0)); + } + return array; + } + readNumber() { + const token = this.getToken(); + return parseFloat(token || 0); + } + readInt() { + const token = this.getToken(); + return parseInt(token || 0, 10) | 0; + } + readBoolean() { + const token = this.getToken(); + return token === "true" ? 1 : 0; + } + nextChar() { + return this.currentChar = this.stream.getByte(); + } + prevChar() { + this.stream.skip(-2); + return this.currentChar = this.stream.getByte(); + } + getToken() { + let comment = false; + let ch = this.currentChar; + while (true) { + if (ch === -1) { + return null; + } + if (comment) { + if (ch === 0x0a || ch === 0x0d) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!isWhiteSpace(ch)) { + break; + } + ch = this.nextChar(); + } + if (isSpecial(ch)) { + this.nextChar(); + return String.fromCharCode(ch); + } + let token = ""; + do { + token += String.fromCharCode(ch); + ch = this.nextChar(); + } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch)); + return token; + } + readCharStrings(bytes, lenIV) { + if (lenIV === -1) { + return bytes; + } + return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV); + } + extractFontProgram(properties) { + const stream = this.stream; + const subrs = [], + charstrings = []; + const privateData = Object.create(null); + privateData.lenIV = 4; + const program = { + subrs: [], + charstrings: [], + properties: { + privateData + } + }; + let token, length, data, lenIV; + while ((token = this.getToken()) !== null) { + if (token !== "/") { + continue; + } + token = this.getToken(); + switch (token) { + case "CharStrings": + this.getToken(); + this.getToken(); + this.getToken(); + this.getToken(); + while (true) { + token = this.getToken(); + if (token === null || token === "end") { + break; + } + if (token !== "/") { + continue; + } + const glyph = this.getToken(); + length = this.readInt(); + this.getToken(); + data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); + lenIV = program.properties.privateData.lenIV; + const encoded = this.readCharStrings(data, lenIV); + this.nextChar(); + token = this.getToken(); + if (token === "noaccess") { + this.getToken(); + } else if (token === "/") { + this.prevChar(); + } + charstrings.push({ + glyph, + encoded + }); + } + break; + case "Subrs": + this.readInt(); + this.getToken(); + while (this.getToken() === "dup") { + const index = this.readInt(); + length = this.readInt(); + this.getToken(); + data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); + lenIV = program.properties.privateData.lenIV; + const encoded = this.readCharStrings(data, lenIV); + this.nextChar(); + token = this.getToken(); + if (token === "noaccess") { + this.getToken(); + } + subrs[index] = encoded; + } + break; + case "BlueValues": + case "OtherBlues": + case "FamilyBlues": + case "FamilyOtherBlues": + const blueArray = this.readNumberArray(); + if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) { + program.properties.privateData[token] = blueArray; + } + break; + case "StemSnapH": + case "StemSnapV": + program.properties.privateData[token] = this.readNumberArray(); + break; + case "StdHW": + case "StdVW": + program.properties.privateData[token] = this.readNumberArray()[0]; + break; + case "BlueShift": + case "lenIV": + case "BlueFuzz": + case "BlueScale": + case "LanguageGroup": + program.properties.privateData[token] = this.readNumber(); + break; + case "ExpansionFactor": + program.properties.privateData[token] = this.readNumber() || 0.06; + break; + case "ForceBold": + program.properties.privateData[token] = this.readBoolean(); + break; + } + } + for (const { + encoded, + glyph + } of charstrings) { + const charString = new Type1CharString(); + const error = charString.convert(encoded, subrs, this.seacAnalysisEnabled); + let output = charString.output; + if (error) { + output = [14]; + } + const charStringObject = { + glyphName: glyph, + charstring: output, + width: charString.width, + lsb: charString.lsb, + seac: charString.seac + }; + if (glyph === ".notdef") { + program.charstrings.unshift(charStringObject); + } else { + program.charstrings.push(charStringObject); + } + if (properties.builtInEncoding) { + const index = properties.builtInEncoding.indexOf(glyph); + if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) { + properties.widths[index] = charString.width; + } + } + } + return program; + } + extractFontHeader(properties) { + let token; + while ((token = this.getToken()) !== null) { + if (token !== "/") { + continue; + } + token = this.getToken(); + switch (token) { + case "FontMatrix": + const matrix = this.readNumberArray(); + properties.fontMatrix = matrix; + break; + case "Encoding": + const encodingArg = this.getToken(); + let encoding; + if (!/^\d+$/.test(encodingArg)) { + encoding = getEncoding(encodingArg); + } else { + encoding = []; + const size = parseInt(encodingArg, 10) | 0; + this.getToken(); + for (let j = 0; j < size; j++) { + token = this.getToken(); + while (token !== "dup" && token !== "def") { + token = this.getToken(); + if (token === null) { + return; + } + } + if (token === "def") { + break; + } + const index = this.readInt(); + this.getToken(); + const glyph = this.getToken(); + encoding[index] = glyph; + this.getToken(); + } + } + properties.builtInEncoding = encoding; + break; + case "FontBBox": + const fontBBox = this.readNumberArray(); + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + break; + } + } + } +} + +;// ./src/core/type1_font.js + + + + + + +function findBlock(streamBytes, signature, startIndex) { + const streamBytesLength = streamBytes.length; + const signatureLength = signature.length; + const scanLength = streamBytesLength - signatureLength; + let i = startIndex, + found = false; + while (i < scanLength) { + let j = 0; + while (j < signatureLength && streamBytes[i + j] === signature[j]) { + j++; + } + if (j >= signatureLength) { + i += j; + while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) { + i++; + } + found = true; + break; + } + i++; + } + return { + found, + length: i + }; +} +function getHeaderBlock(stream, suggestedLength) { + const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63]; + const streamStartPos = stream.pos; + let headerBytes, headerBytesLength, block; + try { + headerBytes = stream.getBytes(suggestedLength); + headerBytesLength = headerBytes.length; + } catch {} + if (headerBytesLength === suggestedLength) { + block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length); + if (block.found && block.length === suggestedLength) { + return { + stream: new Stream(headerBytes), + length: suggestedLength + }; + } + } + warn('Invalid "Length1" property in Type1 font -- trying to recover.'); + stream.pos = streamStartPos; + const SCAN_BLOCK_LENGTH = 2048; + let actualLength; + while (true) { + const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + block = findBlock(scanBytes, EEXEC_SIGNATURE, 0); + if (block.length === 0) { + break; + } + stream.pos += block.length; + if (block.found) { + actualLength = stream.pos - streamStartPos; + break; + } + } + stream.pos = streamStartPos; + if (actualLength) { + return { + stream: new Stream(stream.getBytes(actualLength)), + length: actualLength + }; + } + warn('Unable to recover "Length1" property in Type1 font -- using as is.'); + return { + stream: new Stream(stream.getBytes(suggestedLength)), + length: suggestedLength + }; +} +function getEexecBlock(stream, suggestedLength) { + const eexecBytes = stream.getBytes(); + if (eexecBytes.length === 0) { + throw new FormatError("getEexecBlock - no font program found."); + } + return { + stream: new Stream(eexecBytes), + length: eexecBytes.length + }; +} +class Type1Font { + constructor(name, file, properties) { + const PFB_HEADER_SIZE = 6; + let headerBlockLength = properties.length1; + let eexecBlockLength = properties.length2; + let pfbHeader = file.peekBytes(PFB_HEADER_SIZE); + const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01; + if (pfbHeaderPresent) { + file.skip(PFB_HEADER_SIZE); + headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + const headerBlock = getHeaderBlock(file, headerBlockLength); + const headerBlockParser = new Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED); + headerBlockParser.extractFontHeader(properties); + if (pfbHeaderPresent) { + pfbHeader = file.getBytes(PFB_HEADER_SIZE); + eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + const eexecBlock = getEexecBlock(file, eexecBlockLength); + const eexecBlockParser = new Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED); + const data = eexecBlockParser.extractFontProgram(properties); + for (const key in data.properties) { + properties[key] = data.properties[key]; + } + const charstrings = data.charstrings; + const type2Charstrings = this.getType2Charstrings(charstrings); + const subrs = this.getType2Subrs(data.subrs); + this.charstrings = charstrings; + this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties); + this.seacs = this.getSeacs(data.charstrings); + } + get numGlyphs() { + return this.charstrings.length + 1; + } + getCharset() { + const charset = [".notdef"]; + for (const { + glyphName + } of this.charstrings) { + charset.push(glyphName); + } + return charset; + } + getGlyphMapping(properties) { + const charstrings = this.charstrings; + if (properties.composite) { + const charCodeToGlyphId = Object.create(null); + for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) { + const charCode = properties.cMap.charCodeOf(glyphId); + charCodeToGlyphId[charCode] = glyphId + 1; + } + return charCodeToGlyphId; + } + const glyphNames = [".notdef"]; + let builtInEncoding, glyphId; + for (glyphId = 0; glyphId < charstrings.length; glyphId++) { + glyphNames.push(charstrings[glyphId].glyphName); + } + const encoding = properties.builtInEncoding; + if (encoding) { + builtInEncoding = Object.create(null); + for (const charCode in encoding) { + glyphId = glyphNames.indexOf(encoding[charCode]); + if (glyphId >= 0) { + builtInEncoding[charCode] = glyphId; + } + } + } + return type1FontGlyphMapping(properties, builtInEncoding, glyphNames); + } + hasGlyphId(id) { + if (id < 0 || id >= this.numGlyphs) { + return false; + } + if (id === 0) { + return true; + } + const glyph = this.charstrings[id - 1]; + return glyph.charstring.length > 0; + } + getSeacs(charstrings) { + const seacMap = []; + for (let i = 0, ii = charstrings.length; i < ii; i++) { + const charstring = charstrings[i]; + if (charstring.seac) { + seacMap[i + 1] = charstring.seac; + } + } + return seacMap; + } + getType2Charstrings(type1Charstrings) { + const type2Charstrings = []; + for (const type1Charstring of type1Charstrings) { + type2Charstrings.push(type1Charstring.charstring); + } + return type2Charstrings; + } + getType2Subrs(type1Subrs) { + let bias = 0; + const count = type1Subrs.length; + if (count < 1133) { + bias = 107; + } else if (count < 33769) { + bias = 1131; + } else { + bias = 32768; + } + const type2Subrs = []; + let i; + for (i = 0; i < bias; i++) { + type2Subrs.push([0x0b]); + } + for (i = 0; i < count; i++) { + type2Subrs.push(type1Subrs[i]); + } + return type2Subrs; + } + wrap(name, glyphs, charstrings, subrs, properties) { + const cff = new CFF(); + cff.header = new CFFHeader(1, 0, 4, 4); + cff.names = [name]; + const topDict = new CFFTopDict(); + topDict.setByName("version", 391); + topDict.setByName("Notice", 392); + topDict.setByName("FullName", 393); + topDict.setByName("FamilyName", 394); + topDict.setByName("Weight", 395); + topDict.setByName("Encoding", null); + topDict.setByName("FontMatrix", properties.fontMatrix); + topDict.setByName("FontBBox", properties.bbox); + topDict.setByName("charset", null); + topDict.setByName("CharStrings", null); + topDict.setByName("Private", null); + cff.topDict = topDict; + const strings = new CFFStrings(); + strings.add("Version 0.11"); + strings.add("See original notice"); + strings.add(name); + strings.add(name); + strings.add("Medium"); + cff.strings = strings; + cff.globalSubrIndex = new CFFIndex(); + const count = glyphs.length; + const charsetArray = [".notdef"]; + let i, ii; + for (i = 0; i < count; i++) { + const glyphName = charstrings[i].glyphName; + const index = CFFStandardStrings.indexOf(glyphName); + if (index === -1) { + strings.add(glyphName); + } + charsetArray.push(glyphName); + } + cff.charset = new CFFCharset(false, 0, charsetArray); + const charStringsIndex = new CFFIndex(); + charStringsIndex.add([0x8b, 0x0e]); + for (i = 0; i < count; i++) { + charStringsIndex.add(glyphs[i]); + } + cff.charStrings = charStringsIndex; + const privateDict = new CFFPrivateDict(); + privateDict.setByName("Subrs", null); + const fields = ["BlueValues", "OtherBlues", "FamilyBlues", "FamilyOtherBlues", "StemSnapH", "StemSnapV", "BlueShift", "BlueFuzz", "BlueScale", "LanguageGroup", "ExpansionFactor", "ForceBold", "StdHW", "StdVW"]; + for (i = 0, ii = fields.length; i < ii; i++) { + const field = fields[i]; + if (!(field in properties.privateData)) { + continue; + } + const value = properties.privateData[field]; + if (Array.isArray(value)) { + for (let j = value.length - 1; j > 0; j--) { + value[j] -= value[j - 1]; + } + } + privateDict.setByName(field, value); + } + cff.topDict.privateDict = privateDict; + const subrIndex = new CFFIndex(); + for (i = 0, ii = subrs.length; i < ii; i++) { + subrIndex.add(subrs[i]); + } + privateDict.subrsIndex = subrIndex; + const compiler = new CFFCompiler(cff); + return compiler.compile(); + } +} + +;// ./src/core/fonts.js + + + + + + + + + + + + + + + + + +const PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]]; +const PDF_GLYPH_SPACE_UNITS = 1000; +const EXPORT_DATA_PROPERTIES = ["ascent", "bbox", "black", "bold", "charProcOperatorList", "cssFontInfo", "data", "defaultVMetrics", "defaultWidth", "descent", "disableFontFace", "fallbackName", "fontExtraProperties", "fontMatrix", "isInvalidPDFjsFont", "isType3Font", "italic", "loadedName", "mimetype", "missingFile", "name", "remeasure", "systemFontInfo", "vertical"]; +const EXPORT_DATA_EXTRA_PROPERTIES = ["cMap", "composite", "defaultEncoding", "differences", "isMonospace", "isSerifFont", "isSymbolicFont", "seacMap", "subtype", "toFontChar", "toUnicode", "type", "vmetrics", "widths"]; +function adjustWidths(properties) { + if (!properties.fontMatrix) { + return; + } + if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) { + return; + } + const scale = 0.001 / properties.fontMatrix[0]; + const glyphsWidths = properties.widths; + for (const glyph in glyphsWidths) { + glyphsWidths[glyph] *= scale; + } + properties.defaultWidth *= scale; +} +function adjustTrueTypeToUnicode(properties, isSymbolicFont, nameRecords) { + if (properties.isInternalFont) { + return; + } + if (properties.hasIncludedToUnicodeMap) { + return; + } + if (properties.hasEncoding) { + return; + } + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + if (!isSymbolicFont) { + return; + } + if (nameRecords.length === 0) { + return; + } + if (properties.defaultEncoding === WinAnsiEncoding) { + return; + } + for (const r of nameRecords) { + if (!isWinNameRecord(r)) { + return; + } + } + const encoding = WinAnsiEncoding; + const toUnicode = [], + glyphsUnicodeMap = getGlyphsUnicode(); + for (const charCode in encoding) { + const glyphName = encoding[charCode]; + if (glyphName === "") { + continue; + } + const unicode = glyphsUnicodeMap[glyphName]; + if (unicode === undefined) { + continue; + } + toUnicode[charCode] = String.fromCharCode(unicode); + } + if (toUnicode.length > 0) { + properties.toUnicode.amend(toUnicode); + } +} +function adjustType1ToUnicode(properties, builtInEncoding) { + if (properties.isInternalFont) { + return; + } + if (properties.hasIncludedToUnicodeMap) { + return; + } + if (builtInEncoding === properties.defaultEncoding) { + return; + } + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + const toUnicode = [], + glyphsUnicodeMap = getGlyphsUnicode(); + for (const charCode in builtInEncoding) { + if (properties.hasEncoding) { + if (properties.baseEncodingName || properties.differences[charCode] !== undefined) { + continue; + } + } + const glyphName = builtInEncoding[charCode]; + const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + toUnicode[charCode] = String.fromCharCode(unicode); + } + } + if (toUnicode.length > 0) { + properties.toUnicode.amend(toUnicode); + } +} +function amendFallbackToUnicode(properties) { + if (!properties.fallbackToUnicode) { + return; + } + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + const toUnicode = []; + for (const charCode in properties.fallbackToUnicode) { + if (properties.toUnicode.has(charCode)) { + continue; + } + toUnicode[charCode] = properties.fallbackToUnicode[charCode]; + } + if (toUnicode.length > 0) { + properties.toUnicode.amend(toUnicode); + } +} +class fonts_Glyph { + constructor(originalCharCode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) { + this.originalCharCode = originalCharCode; + this.fontChar = fontChar; + this.unicode = unicode; + this.accent = accent; + this.width = width; + this.vmetric = vmetric; + this.operatorListId = operatorListId; + this.isSpace = isSpace; + this.isInFont = isInFont; + } + get category() { + return shadow(this, "category", getCharUnicodeCategory(this.unicode), true); + } +} +function int16(b0, b1) { + return (b0 << 8) + b1; +} +function writeSignedInt16(bytes, index, value) { + bytes[index + 1] = value; + bytes[index] = value >>> 8; +} +function signedInt16(b0, b1) { + const value = (b0 << 8) + b1; + return value & 1 << 15 ? value - 0x10000 : value; +} +function writeUint32(bytes, index, value) { + bytes[index + 3] = value & 0xff; + bytes[index + 2] = value >>> 8; + bytes[index + 1] = value >>> 16; + bytes[index] = value >>> 24; +} +function int32(b0, b1, b2, b3) { + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; +} +function string16(value) { + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); +} +function safeString16(value) { + if (value > 0x7fff) { + value = 0x7fff; + } else if (value < -0x8000) { + value = -0x8000; + } + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); +} +function isTrueTypeFile(file) { + const header = file.peekBytes(4); + return readUint32(header, 0) === 0x00010000 || bytesToString(header) === "true"; +} +function isTrueTypeCollectionFile(file) { + const header = file.peekBytes(4); + return bytesToString(header) === "ttcf"; +} +function isOpenTypeFile(file) { + const header = file.peekBytes(4); + return bytesToString(header) === "OTTO"; +} +function isType1File(file) { + const header = file.peekBytes(2); + if (header[0] === 0x25 && header[1] === 0x21) { + return true; + } + if (header[0] === 0x80 && header[1] === 0x01) { + return true; + } + return false; +} +function isCFFFile(file) { + const header = file.peekBytes(4); + if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) { + return true; + } + return false; +} +function getFontFileType(file, { + type, + subtype, + composite +}) { + let fileType, fileSubtype; + if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) { + fileType = composite ? "CIDFontType2" : "TrueType"; + } else if (isOpenTypeFile(file)) { + fileType = composite ? "CIDFontType2" : "OpenType"; + } else if (isType1File(file)) { + if (composite) { + fileType = "CIDFontType0"; + } else { + fileType = type === "MMType1" ? "MMType1" : "Type1"; + } + } else if (isCFFFile(file)) { + if (composite) { + fileType = "CIDFontType0"; + fileSubtype = "CIDFontType0C"; + } else { + fileType = type === "MMType1" ? "MMType1" : "Type1"; + fileSubtype = "Type1C"; + } + } else { + warn("getFontFileType: Unable to detect correct font file Type/Subtype."); + fileType = type; + fileSubtype = subtype; + } + return [fileType, fileSubtype]; +} +function applyStandardFontGlyphMap(map, glyphMap) { + for (const charCode in glyphMap) { + map[+charCode] = glyphMap[charCode]; + } +} +function buildToFontChar(encoding, glyphsUnicodeMap, differences) { + const toFontChar = []; + let unicode; + for (let i = 0, ii = encoding.length; i < ii; i++) { + unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap); + if (unicode !== -1) { + toFontChar[i] = unicode; + } + } + for (const charCode in differences) { + unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap); + if (unicode !== -1) { + toFontChar[+charCode] = unicode; + } + } + return toFontChar; +} +function isMacNameRecord(r) { + return r.platform === 1 && r.encoding === 0 && r.language === 0; +} +function isWinNameRecord(r) { + return r.platform === 3 && r.encoding === 1 && r.language === 0x409; +} +function convertCidString(charCode, cid, shouldThrow = false) { + switch (cid.length) { + case 1: + return cid.charCodeAt(0); + case 2: + return cid.charCodeAt(0) << 8 | cid.charCodeAt(1); + } + const msg = `Unsupported CID string (charCode ${charCode}): "${cid}".`; + if (shouldThrow) { + throw new FormatError(msg); + } + warn(msg); + return cid; +} +function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId, toUnicode) { + const newMap = Object.create(null); + const toUnicodeExtraMap = new Map(); + const toFontChar = []; + const usedGlyphIds = new Set(); + let privateUseAreaIndex = 0; + const privateUseOffetStart = PRIVATE_USE_AREAS[privateUseAreaIndex][0]; + let nextAvailableFontCharCode = privateUseOffetStart; + let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1]; + const isInPrivateArea = code => PRIVATE_USE_AREAS[0][0] <= code && code <= PRIVATE_USE_AREAS[0][1] || PRIVATE_USE_AREAS[1][0] <= code && code <= PRIVATE_USE_AREAS[1][1]; + let LIGATURE_TO_UNICODE = null; + for (const originalCharCode in charCodeToGlyphId) { + let glyphId = charCodeToGlyphId[originalCharCode]; + if (!hasGlyph(glyphId)) { + continue; + } + if (nextAvailableFontCharCode > privateUseOffetEnd) { + privateUseAreaIndex++; + if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) { + warn("Ran out of space in font private use area."); + break; + } + nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0]; + privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1]; + } + const fontCharCode = nextAvailableFontCharCode++; + if (glyphId === 0) { + glyphId = newGlyphZeroId; + } + let unicode = toUnicode.get(originalCharCode); + if (typeof unicode === "string") { + if (unicode.length === 1) { + unicode = unicode.codePointAt(0); + } else { + if (!LIGATURE_TO_UNICODE) { + LIGATURE_TO_UNICODE = new Map(); + for (let i = 0xfb00; i <= 0xfb4f; i++) { + const normalized = String.fromCharCode(i).normalize("NFKD"); + if (normalized.length > 1) { + LIGATURE_TO_UNICODE.set(normalized, i); + } + } + } + unicode = LIGATURE_TO_UNICODE.get(unicode) || unicode.codePointAt(0); + } + } + if (unicode && !isInPrivateArea(unicode) && !usedGlyphIds.has(glyphId)) { + toUnicodeExtraMap.set(unicode, glyphId); + usedGlyphIds.add(glyphId); + } + newMap[fontCharCode] = glyphId; + toFontChar[originalCharCode] = fontCharCode; + } + return { + toFontChar, + charCodeToGlyphId: newMap, + toUnicodeExtraMap, + nextAvailableFontCharCode + }; +} +function getRanges(glyphs, toUnicodeExtraMap, numGlyphs) { + const codes = []; + for (const charCode in glyphs) { + if (glyphs[charCode] >= numGlyphs) { + continue; + } + codes.push({ + fontCharCode: charCode | 0, + glyphId: glyphs[charCode] + }); + } + if (toUnicodeExtraMap) { + for (const [unicode, glyphId] of toUnicodeExtraMap) { + if (glyphId >= numGlyphs) { + continue; + } + codes.push({ + fontCharCode: unicode, + glyphId + }); + } + } + if (codes.length === 0) { + codes.push({ + fontCharCode: 0, + glyphId: 0 + }); + } + codes.sort((a, b) => a.fontCharCode - b.fontCharCode); + const ranges = []; + const length = codes.length; + for (let n = 0; n < length;) { + const start = codes[n].fontCharCode; + const codeIndices = [codes[n].glyphId]; + ++n; + let end = start; + while (n < length && end + 1 === codes[n].fontCharCode) { + codeIndices.push(codes[n].glyphId); + ++end; + ++n; + if (end === 0xffff) { + break; + } + } + ranges.push([start, end, codeIndices]); + } + return ranges; +} +function createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) { + const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs); + const numTables = ranges.at(-1)[1] > 0xffff ? 2 : 1; + let cmap = "\x00\x00" + string16(numTables) + "\x00\x03" + "\x00\x01" + string32(4 + numTables * 8); + let i, ii, j, jj; + for (i = ranges.length - 1; i >= 0; --i) { + if (ranges[i][0] <= 0xffff) { + break; + } + } + const bmpLength = i + 1; + if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) { + ranges[i][1] = 0xfffe; + } + const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0; + const segCount = bmpLength + trailingRangesCount; + const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2); + let startCount = ""; + let endCount = ""; + let idDeltas = ""; + let idRangeOffsets = ""; + let glyphsIds = ""; + let bias = 0; + let range, start, end, codes; + for (i = 0, ii = bmpLength; i < ii; i++) { + range = ranges[i]; + start = range[0]; + end = range[1]; + startCount += string16(start); + endCount += string16(end); + codes = range[2]; + let contiguous = true; + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + contiguous = false; + break; + } + } + if (!contiguous) { + const offset = (segCount - i) * 2 + bias * 2; + bias += end - start + 1; + idDeltas += string16(0); + idRangeOffsets += string16(offset); + for (j = 0, jj = codes.length; j < jj; ++j) { + glyphsIds += string16(codes[j]); + } + } else { + const startCode = codes[0]; + idDeltas += string16(startCode - start & 0xffff); + idRangeOffsets += string16(0); + } + } + if (trailingRangesCount > 0) { + endCount += "\xFF\xFF"; + startCount += "\xFF\xFF"; + idDeltas += "\x00\x01"; + idRangeOffsets += "\x00\x00"; + } + const format314 = "\x00\x00" + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + "\x00\x00" + startCount + idDeltas + idRangeOffsets + glyphsIds; + let format31012 = ""; + let header31012 = ""; + if (numTables > 1) { + cmap += "\x00\x03" + "\x00\x0A" + string32(4 + numTables * 8 + 4 + format314.length); + format31012 = ""; + for (i = 0, ii = ranges.length; i < ii; i++) { + range = ranges[i]; + start = range[0]; + codes = range[2]; + let code = codes[0]; + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + end = range[0] + j - 1; + format31012 += string32(start) + string32(end) + string32(code); + start = end + 1; + code = codes[j]; + } + } + format31012 += string32(start) + string32(range[1]) + string32(code); + } + header31012 = "\x00\x0C" + "\x00\x00" + string32(format31012.length + 16) + "\x00\x00\x00\x00" + string32(format31012.length / 12); + } + return cmap + "\x00\x04" + string16(format314.length + 4) + format314 + header31012 + format31012; +} +function validateOS2Table(os2, file) { + file.pos = (file.start || 0) + os2.offset; + const version = file.getUint16(); + file.skip(60); + const selection = file.getUint16(); + if (version < 4 && selection & 0x0300) { + return false; + } + const firstChar = file.getUint16(); + const lastChar = file.getUint16(); + if (firstChar > lastChar) { + return false; + } + file.skip(6); + const usWinAscent = file.getUint16(); + if (usWinAscent === 0) { + return false; + } + os2.data[8] = os2.data[9] = 0; + return true; +} +function createOS2Table(properties, charstrings, override) { + override ||= { + unitsPerEm: 0, + yMax: 0, + yMin: 0, + ascent: 0, + descent: 0 + }; + let ulUnicodeRange1 = 0; + let ulUnicodeRange2 = 0; + let ulUnicodeRange3 = 0; + let ulUnicodeRange4 = 0; + let firstCharIndex = null; + let lastCharIndex = 0; + let position = -1; + if (charstrings) { + for (let code in charstrings) { + code |= 0; + if (firstCharIndex > code || !firstCharIndex) { + firstCharIndex = code; + } + if (lastCharIndex < code) { + lastCharIndex = code; + } + position = getUnicodeRangeFor(code, position); + if (position < 32) { + ulUnicodeRange1 |= 1 << position; + } else if (position < 64) { + ulUnicodeRange2 |= 1 << position - 32; + } else if (position < 96) { + ulUnicodeRange3 |= 1 << position - 64; + } else if (position < 123) { + ulUnicodeRange4 |= 1 << position - 96; + } else { + throw new FormatError("Unicode ranges Bits > 123 are reserved for internal usage"); + } + } + if (lastCharIndex > 0xffff) { + lastCharIndex = 0xffff; + } + } else { + firstCharIndex = 0; + lastCharIndex = 255; + } + const bbox = properties.bbox || [0, 0, 0, 0]; + const unitsPerEm = override.unitsPerEm || (properties.fontMatrix ? 1 / Math.max(...properties.fontMatrix.slice(0, 4).map(Math.abs)) : 1000); + const scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS; + const typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3])); + let typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1])); + if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) { + typoDescent = -typoDescent; + } + const winAscent = override.yMax || typoAscent; + const winDescent = -override.yMin || -typoDescent; + return "\x00\x03" + "\x02\x24" + "\x01\xF4" + "\x00\x05" + "\x00\x00" + "\x02\x8A" + "\x02\xBB" + "\x00\x00" + "\x00\x8C" + "\x02\x8A" + "\x02\xBB" + "\x00\x00" + "\x01\xDF" + "\x00\x31" + "\x01\x02" + "\x00\x00" + "\x00\x00\x06" + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + "\x00\x00\x00\x00\x00\x00" + string32(ulUnicodeRange1) + string32(ulUnicodeRange2) + string32(ulUnicodeRange3) + string32(ulUnicodeRange4) + "\x2A\x32\x31\x2A" + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + "\x00\x64" + string16(winAscent) + string16(winDescent) + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + "\x00\x03"; +} +function createPostTable(properties) { + const angle = Math.floor(properties.italicAngle * 2 ** 16); + return "\x00\x03\x00\x00" + string32(angle) + "\x00\x00" + "\x00\x00" + string32(properties.fixedPitch ? 1 : 0) + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x00\x00\x00\x00"; +} +function createPostscriptName(name) { + return name.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, "").slice(0, 63); +} +function createNameTable(name, proto) { + if (!proto) { + proto = [[], []]; + } + const strings = [proto[0][0] || "Original licence", proto[0][1] || name, proto[0][2] || "Unknown", proto[0][3] || "uniqueID", proto[0][4] || name, proto[0][5] || "Version 0.11", proto[0][6] || createPostscriptName(name), proto[0][7] || "Unknown", proto[0][8] || "Unknown", proto[0][9] || "Unknown"]; + const stringsUnicode = []; + let i, ii, j, jj, str; + for (i = 0, ii = strings.length; i < ii; i++) { + str = proto[1][i] || strings[i]; + const strBufUnicode = []; + for (j = 0, jj = str.length; j < jj; j++) { + strBufUnicode.push(string16(str.charCodeAt(j))); + } + stringsUnicode.push(strBufUnicode.join("")); + } + const names = [strings, stringsUnicode]; + const platforms = ["\x00\x01", "\x00\x03"]; + const encodings = ["\x00\x00", "\x00\x01"]; + const languages = ["\x00\x00", "\x04\x09"]; + const namesRecordCount = strings.length * platforms.length; + let nameTable = "\x00\x00" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6); + let strOffset = 0; + for (i = 0, ii = platforms.length; i < ii; i++) { + const strs = names[i]; + for (j = 0, jj = strs.length; j < jj; j++) { + str = strs[j]; + const nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset); + nameTable += nameRecord; + strOffset += str.length; + } + } + nameTable += strings.join("") + stringsUnicode.join(""); + return nameTable; +} +class Font { + constructor(name, file, properties, evaluatorOptions) { + this.name = name; + this.psName = null; + this.mimetype = null; + this.disableFontFace = evaluatorOptions.disableFontFace; + this.fontExtraProperties = evaluatorOptions.fontExtraProperties; + this.loadedName = properties.loadedName; + this.isType3Font = properties.isType3Font; + this.missingFile = false; + this.cssFontInfo = properties.cssFontInfo; + this._charsCache = Object.create(null); + this._glyphCache = Object.create(null); + let isSerifFont = !!(properties.flags & FontFlags.Serif); + if (!isSerifFont && !properties.isSimulatedFlags) { + const baseName = name.replaceAll(/[,_]/g, "-").split("-", 1)[0], + serifFonts = getSerifFonts(); + for (const namePart of baseName.split("+")) { + if (serifFonts[namePart]) { + isSerifFont = true; + break; + } + } + } + this.isSerifFont = isSerifFont; + this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + this.isMonospace = !!(properties.flags & FontFlags.FixedPitch); + let { + type, + subtype + } = properties; + this.type = type; + this.subtype = subtype; + this.systemFontInfo = properties.systemFontInfo; + const matches = name.match(/^InvalidPDFjsFont_(.*)_\d+$/); + this.isInvalidPDFjsFont = !!matches; + if (this.isInvalidPDFjsFont) { + this.fallbackName = matches[1]; + } else if (this.isMonospace) { + this.fallbackName = "monospace"; + } else if (this.isSerifFont) { + this.fallbackName = "serif"; + } else { + this.fallbackName = "sans-serif"; + } + if (this.systemFontInfo?.guessFallback) { + this.systemFontInfo.guessFallback = false; + this.systemFontInfo.css += `,${this.fallbackName}`; + } + this.differences = properties.differences; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.composite = properties.composite; + this.cMap = properties.cMap; + this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS; + this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS; + this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS; + this.lineHeight = this.ascent - this.descent; + this.fontMatrix = properties.fontMatrix; + this.bbox = properties.bbox; + this.defaultEncoding = properties.defaultEncoding; + this.toUnicode = properties.toUnicode; + this.toFontChar = []; + if (properties.type === "Type3") { + for (let charCode = 0; charCode < 256; charCode++) { + this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode]; + } + return; + } + this.cidEncoding = properties.cidEncoding || ""; + this.vertical = !!properties.vertical; + if (this.vertical) { + this.vmetrics = properties.vmetrics; + this.defaultVMetrics = properties.defaultVMetrics; + } + if (!file || file.isEmpty) { + if (file) { + warn('Font file is empty in "' + name + '" (' + this.loadedName + ")"); + } + this.fallbackToSystemFont(properties); + return; + } + [type, subtype] = getFontFileType(file, properties); + if (type !== this.type || subtype !== this.subtype) { + info("Inconsistent font file Type/SubType, expected: " + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`); + } + let data; + try { + switch (type) { + case "MMType1": + info("MMType1 font (" + name + "), falling back to Type1."); + case "Type1": + case "CIDFontType0": + this.mimetype = "font/opentype"; + const cff = subtype === "Type1C" || subtype === "CIDFontType0C" ? new CFFFont(file, properties) : new Type1Font(name, file, properties); + adjustWidths(properties); + data = this.convert(name, cff, properties); + break; + case "OpenType": + case "TrueType": + case "CIDFontType2": + this.mimetype = "font/opentype"; + data = this.checkAndRepair(name, file, properties); + adjustWidths(properties); + if (this.isOpenType) { + type = "OpenType"; + } + break; + default: + throw new FormatError(`Font ${type} is not supported`); + } + } catch (e) { + warn(e); + this.fallbackToSystemFont(properties); + return; + } + amendFallbackToUnicode(properties); + this.data = data; + this.type = type; + this.subtype = subtype; + this.fontMatrix = properties.fontMatrix; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.toUnicode = properties.toUnicode; + this.seacMap = properties.seacMap; + } + get renderer() { + const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED); + return shadow(this, "renderer", renderer); + } + exportData() { + const exportDataProps = this.fontExtraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES; + const data = Object.create(null); + for (const prop of exportDataProps) { + const value = this[prop]; + if (value !== undefined) { + data[prop] = value; + } + } + return data; + } + fallbackToSystemFont(properties) { + this.missingFile = true; + const { + name, + type + } = this; + let fontName = normalizeFontName(name); + const stdFontMap = getStdFontMap(), + nonStdFontMap = getNonStdFontMap(); + const isStandardFont = !!stdFontMap[fontName]; + const isMappedToStandardFont = !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]); + fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName; + const fontBasicMetricsMap = getFontBasicMetrics(); + const metrics = fontBasicMetricsMap[fontName]; + if (metrics) { + if (isNaN(this.ascent)) { + this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS; + } + if (isNaN(this.descent)) { + this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS; + } + if (isNaN(this.capHeight)) { + this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS; + } + } + this.bold = /bold/gi.test(fontName); + this.italic = /oblique|italic/gi.test(fontName); + this.black = /Black/g.test(name); + const isNarrow = /Narrow/g.test(name); + this.remeasure = (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0; + if ((isStandardFont || isMappedToStandardFont) && type === "CIDFontType2" && this.cidEncoding.startsWith("Identity-")) { + const cidToGidMap = properties.cidToGidMap; + const map = []; + applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts()); + if (/Arial-?Black/i.test(name)) { + applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack()); + } else if (/Calibri/i.test(name)) { + applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri()); + } + if (cidToGidMap) { + for (const charCode in map) { + const cid = map[charCode]; + if (cidToGidMap[cid] !== undefined) { + map[+charCode] = cidToGidMap[cid]; + } + } + if (cidToGidMap.length !== this.toUnicode.length && properties.hasIncludedToUnicodeMap && this.toUnicode instanceof IdentityToUnicodeMap) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + const cid = map[charCode]; + if (cidToGidMap[cid] === undefined) { + map[+charCode] = unicodeCharCode; + } + }); + } + } + if (!(this.toUnicode instanceof IdentityToUnicodeMap)) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + map[+charCode] = unicodeCharCode; + }); + } + this.toFontChar = map; + this.toUnicode = new ToUnicodeMap(map); + } else if (/Symbol/i.test(fontName)) { + this.toFontChar = buildToFontChar(SymbolSetEncoding, getGlyphsUnicode(), this.differences); + } else if (/Dingbats/i.test(fontName)) { + this.toFontChar = buildToFontChar(ZapfDingbatsEncoding, getDingbatsGlyphsUnicode(), this.differences); + } else if (isStandardFont || isMappedToStandardFont) { + const map = buildToFontChar(this.defaultEncoding, getGlyphsUnicode(), this.differences); + if (type === "CIDFontType2" && !this.cidEncoding.startsWith("Identity-") && !(this.toUnicode instanceof IdentityToUnicodeMap)) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + map[+charCode] = unicodeCharCode; + }); + } + this.toFontChar = map; + } else { + const glyphsUnicodeMap = getGlyphsUnicode(); + const map = []; + this.toUnicode.forEach((charCode, unicodeCharCode) => { + if (!this.composite) { + const glyphName = this.differences[charCode] || this.defaultEncoding[charCode]; + const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + unicodeCharCode = unicode; + } + } + map[+charCode] = unicodeCharCode; + }); + if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) { + if (/Tahoma|Verdana/i.test(name)) { + applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts()); + } + } + this.toFontChar = map; + } + amendFallbackToUnicode(properties); + this.loadedName = fontName.split("-", 1)[0]; + } + checkAndRepair(name, font, properties) { + const VALID_TABLES = ["OS/2", "cmap", "head", "hhea", "hmtx", "maxp", "name", "post", "loca", "glyf", "fpgm", "prep", "cvt ", "CFF "]; + function readTables(file, numTables) { + const tables = Object.create(null); + tables["OS/2"] = null; + tables.cmap = null; + tables.head = null; + tables.hhea = null; + tables.hmtx = null; + tables.maxp = null; + tables.name = null; + tables.post = null; + for (let i = 0; i < numTables; i++) { + const table = readTableEntry(file); + if (!VALID_TABLES.includes(table.tag)) { + continue; + } + if (table.length === 0) { + continue; + } + tables[table.tag] = table; + } + return tables; + } + function readTableEntry(file) { + const tag = file.getString(4); + const checksum = file.getInt32() >>> 0; + const offset = file.getInt32() >>> 0; + const length = file.getInt32() >>> 0; + const previousPosition = file.pos; + file.pos = file.start || 0; + file.skip(offset); + const data = file.getBytes(length); + file.pos = previousPosition; + if (tag === "head") { + data[8] = data[9] = data[10] = data[11] = 0; + data[17] |= 0x20; + } + return { + tag, + checksum, + length, + offset, + data + }; + } + function readOpenTypeHeader(ttf) { + return { + version: ttf.getString(4), + numTables: ttf.getUint16(), + searchRange: ttf.getUint16(), + entrySelector: ttf.getUint16(), + rangeShift: ttf.getUint16() + }; + } + function readTrueTypeCollectionHeader(ttc) { + const ttcTag = ttc.getString(4); + assert(ttcTag === "ttcf", "Must be a TrueType Collection font."); + const majorVersion = ttc.getUint16(); + const minorVersion = ttc.getUint16(); + const numFonts = ttc.getInt32() >>> 0; + const offsetTable = []; + for (let i = 0; i < numFonts; i++) { + offsetTable.push(ttc.getInt32() >>> 0); + } + const header = { + ttcTag, + majorVersion, + minorVersion, + numFonts, + offsetTable + }; + switch (majorVersion) { + case 1: + return header; + case 2: + header.dsigTag = ttc.getInt32() >>> 0; + header.dsigLength = ttc.getInt32() >>> 0; + header.dsigOffset = ttc.getInt32() >>> 0; + return header; + } + throw new FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`); + } + function readTrueTypeCollectionData(ttc, fontName) { + const { + numFonts, + offsetTable + } = readTrueTypeCollectionHeader(ttc); + const fontNameParts = fontName.split("+"); + let fallbackData; + for (let i = 0; i < numFonts; i++) { + ttc.pos = (ttc.start || 0) + offsetTable[i]; + const potentialHeader = readOpenTypeHeader(ttc); + const potentialTables = readTables(ttc, potentialHeader.numTables); + if (!potentialTables.name) { + throw new FormatError('TrueType Collection font must contain a "name" table.'); + } + const [nameTable] = readNameTable(potentialTables.name); + for (let j = 0, jj = nameTable.length; j < jj; j++) { + for (let k = 0, kk = nameTable[j].length; k < kk; k++) { + const nameEntry = nameTable[j][k]?.replaceAll(/\s/g, ""); + if (!nameEntry) { + continue; + } + if (nameEntry === fontName) { + return { + header: potentialHeader, + tables: potentialTables + }; + } + if (fontNameParts.length < 2) { + continue; + } + for (const part of fontNameParts) { + if (nameEntry === part) { + fallbackData = { + name: part, + header: potentialHeader, + tables: potentialTables + }; + } + } + } + } + } + if (fallbackData) { + warn(`TrueType Collection does not contain "${fontName}" font, ` + `falling back to "${fallbackData.name}" font instead.`); + return { + header: fallbackData.header, + tables: fallbackData.tables + }; + } + throw new FormatError(`TrueType Collection does not contain "${fontName}" font.`); + } + function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) { + if (!cmap) { + warn("No cmap table available."); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + let segment; + let start = (file.start || 0) + cmap.offset; + file.pos = start; + file.skip(2); + const numTables = file.getUint16(); + let potentialTable; + let canBreak = false; + for (let i = 0; i < numTables; i++) { + const platformId = file.getUint16(); + const encodingId = file.getUint16(); + const offset = file.getInt32() >>> 0; + let useTable = false; + if (potentialTable?.platformId === platformId && potentialTable?.encodingId === encodingId) { + continue; + } + if (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 3)) { + useTable = true; + } else if (platformId === 1 && encodingId === 0) { + useTable = true; + } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) { + useTable = true; + if (!isSymbolicFont) { + canBreak = true; + } + } else if (isSymbolicFont && platformId === 3 && encodingId === 0) { + useTable = true; + let correctlySorted = true; + if (i < numTables - 1) { + const nextBytes = file.peekBytes(2), + nextPlatformId = int16(nextBytes[0], nextBytes[1]); + if (nextPlatformId < platformId) { + correctlySorted = false; + } + } + if (correctlySorted) { + canBreak = true; + } + } + if (useTable) { + potentialTable = { + platformId, + encodingId, + offset + }; + } + if (canBreak) { + break; + } + } + if (potentialTable) { + file.pos = start + potentialTable.offset; + } + if (!potentialTable || file.peekByte() === -1) { + warn("Could not find a preferred cmap table."); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + const format = file.getUint16(); + let hasShortCmap = false; + const mappings = []; + let j, glyphId; + if (format === 0) { + file.skip(2 + 2); + for (j = 0; j < 256; j++) { + const index = file.getByte(); + if (!index) { + continue; + } + mappings.push({ + charCode: j, + glyphId: index + }); + } + hasShortCmap = true; + } else if (format === 2) { + file.skip(2 + 2); + const subHeaderKeys = []; + let maxSubHeaderKey = 0; + for (let i = 0; i < 256; i++) { + const subHeaderKey = file.getUint16() >> 3; + subHeaderKeys.push(subHeaderKey); + maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey); + } + const subHeaders = []; + for (let i = 0; i <= maxSubHeaderKey; i++) { + subHeaders.push({ + firstCode: file.getUint16(), + entryCount: file.getUint16(), + idDelta: signedInt16(file.getByte(), file.getByte()), + idRangePos: file.pos + file.getUint16() + }); + } + for (let i = 0; i < 256; i++) { + if (subHeaderKeys[i] === 0) { + file.pos = subHeaders[0].idRangePos + 2 * i; + glyphId = file.getUint16(); + mappings.push({ + charCode: i, + glyphId + }); + } else { + const s = subHeaders[subHeaderKeys[i]]; + for (j = 0; j < s.entryCount; j++) { + const charCode = (i << 8) + j + s.firstCode; + file.pos = s.idRangePos + 2 * j; + glyphId = file.getUint16(); + if (glyphId !== 0) { + glyphId = (glyphId + s.idDelta) % 65536; + } + mappings.push({ + charCode, + glyphId + }); + } + } + } + } else if (format === 4) { + file.skip(2 + 2); + const segCount = file.getUint16() >> 1; + file.skip(6); + const segments = []; + let segIndex; + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments.push({ + end: file.getUint16() + }); + } + file.skip(2); + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].start = file.getUint16(); + } + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].delta = file.getUint16(); + } + let offsetsCount = 0, + offsetIndex; + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + const rangeOffset = file.getUint16(); + if (!rangeOffset) { + segment.offsetIndex = -1; + continue; + } + offsetIndex = (rangeOffset >> 1) - (segCount - segIndex); + segment.offsetIndex = offsetIndex; + offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1); + } + const offsets = []; + for (j = 0; j < offsetsCount; j++) { + offsets.push(file.getUint16()); + } + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + start = segment.start; + const end = segment.end; + const delta = segment.delta; + offsetIndex = segment.offsetIndex; + for (j = start; j <= end; j++) { + if (j === 0xffff) { + continue; + } + glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start]; + glyphId = glyphId + delta & 0xffff; + mappings.push({ + charCode: j, + glyphId + }); + } + } + } else if (format === 6) { + file.skip(2 + 2); + const firstCode = file.getUint16(); + const entryCount = file.getUint16(); + for (j = 0; j < entryCount; j++) { + glyphId = file.getUint16(); + const charCode = firstCode + j; + mappings.push({ + charCode, + glyphId + }); + } + } else if (format === 12) { + file.skip(2 + 4 + 4); + const nGroups = file.getInt32() >>> 0; + for (j = 0; j < nGroups; j++) { + const startCharCode = file.getInt32() >>> 0; + const endCharCode = file.getInt32() >>> 0; + let glyphCode = file.getInt32() >>> 0; + for (let charCode = startCharCode; charCode <= endCharCode; charCode++) { + mappings.push({ + charCode, + glyphId: glyphCode++ + }); + } + } + } else { + warn("cmap table has unsupported format: " + format); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + mappings.sort((a, b) => a.charCode - b.charCode); + const finalMappings = [], + seenCharCodes = new Set(); + for (const map of mappings) { + const { + charCode + } = map; + if (seenCharCodes.has(charCode)) { + continue; + } + seenCharCodes.add(charCode); + finalMappings.push(map); + } + return { + platformId: potentialTable.platformId, + encodingId: potentialTable.encodingId, + mappings: finalMappings, + hasShortCmap + }; + } + function sanitizeMetrics(file, header, metrics, headTable, numGlyphs, dupFirstEntry) { + if (!header) { + if (metrics) { + metrics.data = null; + } + return; + } + file.pos = (file.start || 0) + header.offset; + file.pos += 4; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + const caretOffset = file.getUint16(); + file.pos += 8; + file.pos += 2; + let numOfMetrics = file.getUint16(); + if (caretOffset !== 0) { + const macStyle = int16(headTable.data[44], headTable.data[45]); + if (!(macStyle & 2)) { + header.data[22] = 0; + header.data[23] = 0; + } + } + if (numOfMetrics > numGlyphs) { + info(`The numOfMetrics (${numOfMetrics}) should not be ` + `greater than the numGlyphs (${numGlyphs}).`); + numOfMetrics = numGlyphs; + header.data[34] = (numOfMetrics & 0xff00) >> 8; + header.data[35] = numOfMetrics & 0x00ff; + } + const numOfSidebearings = numGlyphs - numOfMetrics; + const numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1); + if (numMissing > 0) { + const entries = new Uint8Array(metrics.length + numMissing * 2); + entries.set(metrics.data); + if (dupFirstEntry) { + entries[metrics.length] = metrics.data[2]; + entries[metrics.length + 1] = metrics.data[3]; + } + metrics.data = entries; + } + } + function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) { + const glyphProfile = { + length: 0, + sizeOfInstructions: 0 + }; + if (sourceStart < 0 || sourceStart >= source.length || sourceEnd > source.length || sourceEnd - sourceStart <= 12) { + return glyphProfile; + } + const glyf = source.subarray(sourceStart, sourceEnd); + const xMin = signedInt16(glyf[2], glyf[3]); + const yMin = signedInt16(glyf[4], glyf[5]); + const xMax = signedInt16(glyf[6], glyf[7]); + const yMax = signedInt16(glyf[8], glyf[9]); + if (xMin > xMax) { + writeSignedInt16(glyf, 2, xMax); + writeSignedInt16(glyf, 6, xMin); + } + if (yMin > yMax) { + writeSignedInt16(glyf, 4, yMax); + writeSignedInt16(glyf, 8, yMin); + } + const contoursCount = signedInt16(glyf[0], glyf[1]); + if (contoursCount < 0) { + if (contoursCount < -1) { + return glyphProfile; + } + dest.set(glyf, destStart); + glyphProfile.length = glyf.length; + return glyphProfile; + } + let i, + j = 10, + flagsCount = 0; + for (i = 0; i < contoursCount; i++) { + const endPoint = glyf[j] << 8 | glyf[j + 1]; + flagsCount = endPoint + 1; + j += 2; + } + const instructionsStart = j; + const instructionsLength = glyf[j] << 8 | glyf[j + 1]; + glyphProfile.sizeOfInstructions = instructionsLength; + j += 2 + instructionsLength; + const instructionsEnd = j; + let coordinatesLength = 0; + for (i = 0; i < flagsCount; i++) { + const flag = glyf[j++]; + if (flag & 0xc0) { + glyf[j - 1] = flag & 0x3f; + } + let xLength = 2; + if (flag & 2) { + xLength = 1; + } else if (flag & 16) { + xLength = 0; + } + let yLength = 2; + if (flag & 4) { + yLength = 1; + } else if (flag & 32) { + yLength = 0; + } + const xyLength = xLength + yLength; + coordinatesLength += xyLength; + if (flag & 8) { + const repeat = glyf[j++]; + if (repeat === 0) { + glyf[j - 1] ^= 8; + } + i += repeat; + coordinatesLength += repeat * xyLength; + } + } + if (coordinatesLength === 0) { + return glyphProfile; + } + let glyphDataLength = j + coordinatesLength; + if (glyphDataLength > glyf.length) { + return glyphProfile; + } + if (!hintsValid && instructionsLength > 0) { + dest.set(glyf.subarray(0, instructionsStart), destStart); + dest.set([0, 0], destStart + instructionsStart); + dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2); + glyphDataLength -= instructionsLength; + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + } + glyphProfile.length = glyphDataLength; + return glyphProfile; + } + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + dest.set(glyf.subarray(0, glyphDataLength), destStart); + glyphProfile.length = glyphDataLength; + return glyphProfile; + } + dest.set(glyf, destStart); + glyphProfile.length = glyf.length; + return glyphProfile; + } + function sanitizeHead(head, numGlyphs, locaLength) { + const data = head.data; + const version = int32(data[0], data[1], data[2], data[3]); + if (version >> 16 !== 1) { + info("Attempting to fix invalid version in head table: " + version); + data[0] = 0; + data[1] = 1; + data[2] = 0; + data[3] = 0; + } + const indexToLocFormat = int16(data[50], data[51]); + if (indexToLocFormat < 0 || indexToLocFormat > 1) { + info("Attempting to fix invalid indexToLocFormat in head table: " + indexToLocFormat); + const numGlyphsPlusOne = numGlyphs + 1; + if (locaLength === numGlyphsPlusOne << 1) { + data[50] = 0; + data[51] = 0; + } else if (locaLength === numGlyphsPlusOne << 2) { + data[50] = 0; + data[51] = 1; + } else { + throw new FormatError("Could not fix indexToLocFormat: " + indexToLocFormat); + } + } + } + function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) { + let itemSize, itemDecode, itemEncode; + if (isGlyphLocationsLong) { + itemSize = 4; + itemDecode = function fontItemDecodeLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + }; + itemEncode = function fontItemEncodeLong(data, offset, value) { + data[offset] = value >>> 24 & 0xff; + data[offset + 1] = value >> 16 & 0xff; + data[offset + 2] = value >> 8 & 0xff; + data[offset + 3] = value & 0xff; + }; + } else { + itemSize = 2; + itemDecode = function fontItemDecode(data, offset) { + return data[offset] << 9 | data[offset + 1] << 1; + }; + itemEncode = function fontItemEncode(data, offset, value) { + data[offset] = value >> 9 & 0xff; + data[offset + 1] = value >> 1 & 0xff; + }; + } + const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs; + const locaDataSize = itemSize * (1 + numGlyphsOut); + const locaData = new Uint8Array(locaDataSize); + locaData.set(loca.data.subarray(0, locaDataSize)); + loca.data = locaData; + const oldGlyfData = glyf.data; + const oldGlyfDataLength = oldGlyfData.length; + const newGlyfData = new Uint8Array(oldGlyfDataLength); + let i, j; + const locaEntries = []; + for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) { + let offset = itemDecode(locaData, j); + if (offset > oldGlyfDataLength) { + offset = oldGlyfDataLength; + } + locaEntries.push({ + index: i, + offset, + endOffset: 0 + }); + } + locaEntries.sort((a, b) => a.offset - b.offset); + for (i = 0; i < numGlyphs; i++) { + locaEntries[i].endOffset = locaEntries[i + 1].offset; + } + locaEntries.sort((a, b) => a.index - b.index); + for (i = 0; i < numGlyphs; i++) { + const { + offset, + endOffset + } = locaEntries[i]; + if (offset !== 0 || endOffset !== 0) { + break; + } + const nextOffset = locaEntries[i + 1].offset; + if (nextOffset === 0) { + continue; + } + locaEntries[i].endOffset = nextOffset; + break; + } + const last = locaEntries.at(-2); + if (last.offset !== 0 && last.endOffset === 0) { + last.endOffset = oldGlyfDataLength; + } + const missingGlyphs = Object.create(null); + let writeOffset = 0; + itemEncode(locaData, 0, writeOffset); + for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { + const glyphProfile = sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].endOffset, newGlyfData, writeOffset, hintsValid); + const newLength = glyphProfile.length; + if (newLength === 0) { + missingGlyphs[i] = true; + } + if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) { + maxSizeOfInstructions = glyphProfile.sizeOfInstructions; + } + writeOffset += newLength; + itemEncode(locaData, j, writeOffset); + } + if (writeOffset === 0) { + const simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); + for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) { + itemEncode(locaData, j, simpleGlyph.length); + } + glyf.data = simpleGlyph; + } else if (dupFirstEntry) { + const firstEntryLength = itemDecode(locaData, itemSize); + if (newGlyfData.length > firstEntryLength + writeOffset) { + glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset); + } else { + glyf.data = new Uint8Array(firstEntryLength + writeOffset); + glyf.data.set(newGlyfData.subarray(0, writeOffset)); + } + glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset); + itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength); + } else { + glyf.data = newGlyfData.subarray(0, writeOffset); + } + return { + missingGlyphs, + maxSizeOfInstructions + }; + } + function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) { + const start = (font.start || 0) + post.offset; + font.pos = start; + const length = post.length, + end = start + length; + const version = font.getInt32(); + font.skip(28); + let glyphNames; + let valid = true; + let i; + switch (version) { + case 0x00010000: + glyphNames = MacStandardGlyphOrdering; + break; + case 0x00020000: + const numGlyphs = font.getUint16(); + if (numGlyphs !== maxpNumGlyphs) { + valid = false; + break; + } + const glyphNameIndexes = []; + for (i = 0; i < numGlyphs; ++i) { + const index = font.getUint16(); + if (index >= 32768) { + valid = false; + break; + } + glyphNameIndexes.push(index); + } + if (!valid) { + break; + } + const customNames = [], + strBuf = []; + while (font.pos < end) { + const stringLength = font.getByte(); + strBuf.length = stringLength; + for (i = 0; i < stringLength; ++i) { + strBuf[i] = String.fromCharCode(font.getByte()); + } + customNames.push(strBuf.join("")); + } + glyphNames = []; + for (i = 0; i < numGlyphs; ++i) { + const j = glyphNameIndexes[i]; + if (j < 258) { + glyphNames.push(MacStandardGlyphOrdering[j]); + continue; + } + glyphNames.push(customNames[j - 258]); + } + break; + case 0x00030000: + break; + default: + warn("Unknown/unsupported post table version " + version); + valid = false; + if (propertiesObj.defaultEncoding) { + glyphNames = propertiesObj.defaultEncoding; + } + break; + } + propertiesObj.glyphNames = glyphNames; + return valid; + } + function readNameTable(nameTable) { + const start = (font.start || 0) + nameTable.offset; + font.pos = start; + const names = [[], []], + records = []; + const length = nameTable.length, + end = start + length; + const format = font.getUint16(); + const FORMAT_0_HEADER_LENGTH = 6; + if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) { + return [names, records]; + } + const numRecords = font.getUint16(); + const stringsStart = font.getUint16(); + const NAME_RECORD_LENGTH = 12; + let i, ii; + for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) { + const r = { + platform: font.getUint16(), + encoding: font.getUint16(), + language: font.getUint16(), + name: font.getUint16(), + length: font.getUint16(), + offset: font.getUint16() + }; + if (isMacNameRecord(r) || isWinNameRecord(r)) { + records.push(r); + } + } + for (i = 0, ii = records.length; i < ii; i++) { + const record = records[i]; + if (record.length <= 0) { + continue; + } + const pos = start + stringsStart + record.offset; + if (pos + record.length > end) { + continue; + } + font.pos = pos; + const nameIndex = record.name; + if (record.encoding) { + let str = ""; + for (let j = 0, jj = record.length; j < jj; j += 2) { + str += String.fromCharCode(font.getUint16()); + } + names[1][nameIndex] = str; + } else { + names[0][nameIndex] = font.getString(record.length); + } + } + return [names, records]; + } + const TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2]; + function sanitizeTTProgram(table, ttContext) { + let data = table.data; + let i = 0, + j, + n, + b, + funcId, + pc, + lastEndf = 0, + lastDeff = 0; + const stack = []; + const callstack = []; + const functionsCalled = []; + let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions; + let inFDEF = false, + ifLevel = 0, + inELSE = 0; + for (let ii = data.length; i < ii;) { + const op = data[i++]; + if (op === 0x40) { + n = data[i++]; + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if (op === 0x41) { + n = data[i++]; + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(b << 8 | data[i++]); + } + } + } else if ((op & 0xf8) === 0xb0) { + n = op - 0xb0 + 1; + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if ((op & 0xf8) === 0xb8) { + n = op - 0xb8 + 1; + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(signedInt16(b, data[i++])); + } + } + } else if (op === 0x2b && !tooComplexToFollowFunctions) { + if (!inFDEF && !inELSE) { + funcId = stack.at(-1); + if (isNaN(funcId)) { + info("TT: CALL empty stack (or invalid entry)."); + } else { + ttContext.functionsUsed[funcId] = true; + if (funcId in ttContext.functionsStackDeltas) { + const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId]; + if (newStackLength < 0) { + warn("TT: CALL invalid functions stack delta."); + ttContext.hintsValid = false; + return; + } + stack.length = newStackLength; + } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) { + callstack.push({ + data, + i, + stackTop: stack.length - 1 + }); + functionsCalled.push(funcId); + pc = ttContext.functionsDefined[funcId]; + if (!pc) { + warn("TT: CALL non-existent function"); + ttContext.hintsValid = false; + return; + } + data = pc.data; + i = pc.i; + } + } + } + } else if (op === 0x2c && !tooComplexToFollowFunctions) { + if (inFDEF || inELSE) { + warn("TT: nested FDEFs not allowed"); + tooComplexToFollowFunctions = true; + } + inFDEF = true; + lastDeff = i; + funcId = stack.pop(); + ttContext.functionsDefined[funcId] = { + data, + i + }; + } else if (op === 0x2d) { + if (inFDEF) { + inFDEF = false; + lastEndf = i; + } else { + pc = callstack.pop(); + if (!pc) { + warn("TT: ENDF bad stack"); + ttContext.hintsValid = false; + return; + } + funcId = functionsCalled.pop(); + data = pc.data; + i = pc.i; + ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop; + } + } else if (op === 0x89) { + if (inFDEF || inELSE) { + warn("TT: nested IDEFs not allowed"); + tooComplexToFollowFunctions = true; + } + inFDEF = true; + lastDeff = i; + } else if (op === 0x58) { + ++ifLevel; + } else if (op === 0x1b) { + inELSE = ifLevel; + } else if (op === 0x59) { + if (inELSE === ifLevel) { + inELSE = 0; + } + --ifLevel; + } else if (op === 0x1c) { + if (!inFDEF && !inELSE) { + const offset = stack.at(-1); + if (offset > 0) { + i += offset - 1; + } + } + } + if (!inFDEF && !inELSE) { + let stackDelta = 0; + if (op <= 0x8e) { + stackDelta = TTOpsStackDeltas[op]; + } else if (op >= 0xc0 && op <= 0xdf) { + stackDelta = -1; + } else if (op >= 0xe0) { + stackDelta = -2; + } + if (op >= 0x71 && op <= 0x75) { + n = stack.pop(); + if (!isNaN(n)) { + stackDelta = -n * 2; + } + } + while (stackDelta < 0 && stack.length > 0) { + stack.pop(); + stackDelta++; + } + while (stackDelta > 0) { + stack.push(NaN); + stackDelta--; + } + } + } + ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions; + const content = [data]; + if (i > data.length) { + content.push(new Uint8Array(i - data.length)); + } + if (lastDeff > lastEndf) { + warn("TT: complementing a missing function tail"); + content.push(new Uint8Array([0x22, 0x2d])); + } + foldTTTable(table, content); + } + function checkInvalidFunctions(ttContext, maxFunctionDefs) { + if (ttContext.tooComplexToFollowFunctions) { + return; + } + if (ttContext.functionsDefined.length > maxFunctionDefs) { + warn("TT: more functions defined than expected"); + ttContext.hintsValid = false; + return; + } + for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) { + if (j > maxFunctionDefs) { + warn("TT: invalid function id: " + j); + ttContext.hintsValid = false; + return; + } + if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) { + warn("TT: undefined function: " + j); + ttContext.hintsValid = false; + return; + } + } + } + function foldTTTable(table, content) { + if (content.length > 1) { + let newLength = 0; + let j, jj; + for (j = 0, jj = content.length; j < jj; j++) { + newLength += content[j].length; + } + newLength = newLength + 3 & ~3; + const result = new Uint8Array(newLength); + let pos = 0; + for (j = 0, jj = content.length; j < jj; j++) { + result.set(content[j], pos); + pos += content[j].length; + } + table.data = result; + table.length = newLength; + } + } + function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) { + const ttContext = { + functionsDefined: [], + functionsUsed: [], + functionsStackDeltas: [], + tooComplexToFollowFunctions: false, + hintsValid: true + }; + if (fpgm) { + sanitizeTTProgram(fpgm, ttContext); + } + if (prep) { + sanitizeTTProgram(prep, ttContext); + } + if (fpgm) { + checkInvalidFunctions(ttContext, maxFunctionDefs); + } + if (cvt && cvt.length & 1) { + const cvtData = new Uint8Array(cvt.length + 1); + cvtData.set(cvt.data); + cvt.data = cvtData; + } + return ttContext.hintsValid; + } + font = new Stream(new Uint8Array(font.getBytes())); + let header, tables; + if (isTrueTypeCollectionFile(font)) { + const ttcData = readTrueTypeCollectionData(font, this.name); + header = ttcData.header; + tables = ttcData.tables; + } else { + header = readOpenTypeHeader(font); + tables = readTables(font, header.numTables); + } + let cff, cffFile; + const isTrueType = !tables["CFF "]; + if (!isTrueType) { + const isComposite = properties.composite && (properties.cidToGidMap?.length > 0 || !(properties.cMap instanceof IdentityCMap)); + if (header.version === "OTTO" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) { + cffFile = new Stream(tables["CFF "].data); + cff = new CFFFont(cffFile, properties); + return this.convert(name, cff, properties); + } + delete tables.glyf; + delete tables.loca; + delete tables.fpgm; + delete tables.prep; + delete tables["cvt "]; + this.isOpenType = true; + } else { + if (!tables.loca) { + throw new FormatError('Required "loca" table is not found'); + } + if (!tables.glyf) { + warn('Required "glyf" table is not found -- trying to recover.'); + tables.glyf = { + tag: "glyf", + data: new Uint8Array(0) + }; + } + this.isOpenType = false; + } + if (!tables.maxp) { + throw new FormatError('Required "maxp" table is not found'); + } + font.pos = (font.start || 0) + tables.maxp.offset; + let version = font.getInt32(); + const numGlyphs = font.getUint16(); + if (version !== 0x00010000 && version !== 0x00005000) { + if (tables.maxp.length === 6) { + version = 0x0005000; + } else if (tables.maxp.length >= 32) { + version = 0x00010000; + } else { + throw new FormatError(`"maxp" table has a wrong version number`); + } + writeUint32(tables.maxp.data, 0, version); + } + if (properties.scaleFactors?.length === numGlyphs && isTrueType) { + const { + scaleFactors + } = properties; + const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]); + const glyphs = new GlyfTable({ + glyfTable: tables.glyf.data, + isGlyphLocationsLong, + locaTable: tables.loca.data, + numGlyphs + }); + glyphs.scale(scaleFactors); + const { + glyf, + loca, + isLocationLong + } = glyphs.write(); + tables.glyf.data = glyf; + tables.loca.data = loca; + if (isLocationLong !== !!isGlyphLocationsLong) { + tables.head.data[50] = 0; + tables.head.data[51] = isLocationLong ? 1 : 0; + } + const metrics = tables.hmtx.data; + for (let i = 0; i < numGlyphs; i++) { + const j = 4 * i; + const advanceWidth = Math.round(scaleFactors[i] * int16(metrics[j], metrics[j + 1])); + metrics[j] = advanceWidth >> 8 & 0xff; + metrics[j + 1] = advanceWidth & 0xff; + const lsb = Math.round(scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])); + writeSignedInt16(metrics, j + 2, lsb); + } + } + let numGlyphsOut = numGlyphs + 1; + let dupFirstEntry = true; + if (numGlyphsOut > 0xffff) { + dupFirstEntry = false; + numGlyphsOut = numGlyphs; + warn("Not enough space in glyfs to duplicate first glyph."); + } + let maxFunctionDefs = 0; + let maxSizeOfInstructions = 0; + if (version >= 0x00010000 && tables.maxp.length >= 32) { + font.pos += 8; + const maxZones = font.getUint16(); + if (maxZones > 2) { + tables.maxp.data[14] = 0; + tables.maxp.data[15] = 2; + } + font.pos += 4; + maxFunctionDefs = font.getUint16(); + font.pos += 4; + maxSizeOfInstructions = font.getUint16(); + } + tables.maxp.data[4] = numGlyphsOut >> 8; + tables.maxp.data[5] = numGlyphsOut & 255; + const hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables["cvt "], maxFunctionDefs); + if (!hintsValid) { + delete tables.fpgm; + delete tables.prep; + delete tables["cvt "]; + } + sanitizeMetrics(font, tables.hhea, tables.hmtx, tables.head, numGlyphsOut, dupFirstEntry); + if (!tables.head) { + throw new FormatError('Required "head" table is not found'); + } + sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0); + let missingGlyphs = Object.create(null); + if (isTrueType) { + const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]); + const glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions); + missingGlyphs = glyphsInfo.missingGlyphs; + if (version >= 0x00010000 && tables.maxp.length >= 32) { + tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8; + tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255; + } + } + if (!tables.hhea) { + throw new FormatError('Required "hhea" table is not found'); + } + if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) { + tables.hhea.data[10] = 0xff; + tables.hhea.data[11] = 0xff; + } + const metricsOverride = { + unitsPerEm: int16(tables.head.data[18], tables.head.data[19]), + yMax: signedInt16(tables.head.data[42], tables.head.data[43]), + yMin: signedInt16(tables.head.data[38], tables.head.data[39]), + ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]), + descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]), + lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]) + }; + this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm; + this.descent = metricsOverride.descent / metricsOverride.unitsPerEm; + this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm; + if (this.cssFontInfo?.lineHeight) { + this.lineHeight = this.cssFontInfo.metrics.lineHeight; + this.lineGap = this.cssFontInfo.metrics.lineGap; + } else { + this.lineHeight = this.ascent - this.descent + this.lineGap; + } + if (tables.post) { + readPostScriptTable(tables.post, properties, numGlyphs); + } + tables.post = { + tag: "post", + data: createPostTable(properties) + }; + const charCodeToGlyphId = Object.create(null); + function hasGlyph(glyphId) { + return !missingGlyphs[glyphId]; + } + if (properties.composite) { + const cidToGidMap = properties.cidToGidMap || []; + const isCidToGidMapEmpty = cidToGidMap.length === 0; + properties.cMap.forEach(function (charCode, cid) { + if (typeof cid === "string") { + cid = convertCidString(charCode, cid, true); + } + if (cid > 0xffff) { + throw new FormatError("Max size of CID is 65,535"); + } + let glyphId = -1; + if (isCidToGidMapEmpty) { + glyphId = cid; + } else if (cidToGidMap[cid] !== undefined) { + glyphId = cidToGidMap[cid]; + } + if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) { + charCodeToGlyphId[charCode] = glyphId; + } + }); + } else { + const cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding); + const cmapPlatformId = cmapTable.platformId; + const cmapEncodingId = cmapTable.encodingId; + const cmapMappings = cmapTable.mappings; + let baseEncoding = [], + forcePostTable = false; + if (properties.hasEncoding && (properties.baseEncodingName === "MacRomanEncoding" || properties.baseEncodingName === "WinAnsiEncoding")) { + baseEncoding = getEncoding(properties.baseEncodingName); + } + if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) { + const glyphsUnicodeMap = getGlyphsUnicode(); + for (let charCode = 0; charCode < 256; charCode++) { + let glyphName; + if (this.differences[charCode] !== undefined) { + glyphName = this.differences[charCode]; + } else if (baseEncoding.length && baseEncoding[charCode] !== "") { + glyphName = baseEncoding[charCode]; + } else { + glyphName = StandardEncoding[charCode]; + } + if (!glyphName) { + continue; + } + const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + let unicodeOrCharCode; + if (cmapPlatformId === 3 && cmapEncodingId === 1) { + unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName]; + } else if (cmapPlatformId === 1 && cmapEncodingId === 0) { + unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName); + } + if (unicodeOrCharCode === undefined) { + if (!properties.glyphNames && properties.hasIncludedToUnicodeMap && !(this.toUnicode instanceof IdentityToUnicodeMap)) { + const unicode = this.toUnicode.get(charCode); + if (unicode) { + unicodeOrCharCode = unicode.codePointAt(0); + } + } + if (unicodeOrCharCode === undefined) { + continue; + } + } + for (const mapping of cmapMappings) { + if (mapping.charCode !== unicodeOrCharCode) { + continue; + } + charCodeToGlyphId[charCode] = mapping.glyphId; + break; + } + } + } else if (cmapPlatformId === 0) { + for (const mapping of cmapMappings) { + charCodeToGlyphId[mapping.charCode] = mapping.glyphId; + } + forcePostTable = true; + } else if (cmapPlatformId === 3 && cmapEncodingId === 0) { + for (const mapping of cmapMappings) { + let charCode = mapping.charCode; + if (charCode >= 0xf000 && charCode <= 0xf0ff) { + charCode &= 0xff; + } + charCodeToGlyphId[charCode] = mapping.glyphId; + } + } else { + for (const mapping of cmapMappings) { + charCodeToGlyphId[mapping.charCode] = mapping.glyphId; + } + } + if (properties.glyphNames && (baseEncoding.length || this.differences.length)) { + for (let i = 0; i < 256; ++i) { + if (!forcePostTable && charCodeToGlyphId[i] !== undefined) { + continue; + } + const glyphName = this.differences[i] || baseEncoding[i]; + if (!glyphName) { + continue; + } + const glyphId = properties.glyphNames.indexOf(glyphName); + if (glyphId > 0 && hasGlyph(glyphId)) { + charCodeToGlyphId[i] = glyphId; + } + } + } + } + if (charCodeToGlyphId.length === 0) { + charCodeToGlyphId[0] = 0; + } + let glyphZeroId = numGlyphsOut - 1; + if (!dupFirstEntry) { + glyphZeroId = 0; + } + if (!properties.cssFontInfo) { + const newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId, this.toUnicode); + this.toFontChar = newMapping.toFontChar; + tables.cmap = { + tag: "cmap", + data: createCmapTable(newMapping.charCodeToGlyphId, newMapping.toUnicodeExtraMap, numGlyphsOut) + }; + if (!tables["OS/2"] || !validateOS2Table(tables["OS/2"], font)) { + tables["OS/2"] = { + tag: "OS/2", + data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride) + }; + } + } + if (!isTrueType) { + try { + cffFile = new Stream(tables["CFF "].data); + const parser = new CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED); + cff = parser.parse(); + cff.duplicateFirstGlyph(); + const compiler = new CFFCompiler(cff); + tables["CFF "].data = compiler.compile(); + } catch { + warn("Failed to compile font " + properties.loadedName); + } + } + if (!tables.name) { + tables.name = { + tag: "name", + data: createNameTable(this.name) + }; + } else { + const [namePrototype, nameRecords] = readNameTable(tables.name); + tables.name.data = createNameTable(name, namePrototype); + this.psName = namePrototype[0][6] || null; + if (!properties.composite) { + adjustTrueTypeToUnicode(properties, this.isSymbolicFont, nameRecords); + } + } + const builder = new OpenTypeFileBuilder(header.version); + for (const tableTag in tables) { + builder.addTable(tableTag, tables[tableTag].data); + } + return builder.toArray(); + } + convert(fontName, font, properties) { + properties.fixedPitch = false; + if (properties.builtInEncoding) { + adjustType1ToUnicode(properties, properties.builtInEncoding); + } + let glyphZeroId = 1; + if (font instanceof CFFFont) { + glyphZeroId = font.numGlyphs - 1; + } + const mapping = font.getGlyphMapping(properties); + let newMapping = null; + let newCharCodeToGlyphId = mapping; + let toUnicodeExtraMap = null; + if (!properties.cssFontInfo) { + newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId, this.toUnicode); + this.toFontChar = newMapping.toFontChar; + newCharCodeToGlyphId = newMapping.charCodeToGlyphId; + toUnicodeExtraMap = newMapping.toUnicodeExtraMap; + } + const numGlyphs = font.numGlyphs; + function getCharCodes(charCodeToGlyphId, glyphId) { + let charCodes = null; + for (const charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + (charCodes ||= []).push(charCode | 0); + } + } + return charCodes; + } + function createCharCode(charCodeToGlyphId, glyphId) { + for (const charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + return charCode | 0; + } + } + newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId; + return newMapping.nextAvailableFontCharCode++; + } + const seacs = font.seacs; + if (newMapping && SEAC_ANALYSIS_ENABLED && seacs?.length) { + const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX; + const charset = font.getCharset(); + const seacMap = Object.create(null); + for (let glyphId in seacs) { + glyphId |= 0; + const seac = seacs[glyphId]; + const baseGlyphName = StandardEncoding[seac[2]]; + const accentGlyphName = StandardEncoding[seac[3]]; + const baseGlyphId = charset.indexOf(baseGlyphName); + const accentGlyphId = charset.indexOf(accentGlyphName); + if (baseGlyphId < 0 || accentGlyphId < 0) { + continue; + } + const accentOffset = { + x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4], + y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5] + }; + const charCodes = getCharCodes(mapping, glyphId); + if (!charCodes) { + continue; + } + for (const charCode of charCodes) { + const charCodeToGlyphId = newMapping.charCodeToGlyphId; + const baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId); + const accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId); + seacMap[charCode] = { + baseFontCharCode, + accentFontCharCode, + accentOffset + }; + } + } + properties.seacMap = seacMap; + } + const unitsPerEm = properties.fontMatrix ? 1 / Math.max(...properties.fontMatrix.slice(0, 4).map(Math.abs)) : 1000; + const builder = new OpenTypeFileBuilder("\x4F\x54\x54\x4F"); + builder.addTable("CFF ", font.data); + builder.addTable("OS/2", createOS2Table(properties, newCharCodeToGlyphId)); + builder.addTable("cmap", createCmapTable(newCharCodeToGlyphId, toUnicodeExtraMap, numGlyphs)); + builder.addTable("head", "\x00\x01\x00\x00" + "\x00\x00\x10\x00" + "\x00\x00\x00\x00" + "\x5F\x0F\x3C\xF5" + "\x00\x00" + safeString16(unitsPerEm) + "\x00\x00\x00\x00\x9e\x0b\x7e\x27" + "\x00\x00\x00\x00\x9e\x0b\x7e\x27" + "\x00\x00" + safeString16(properties.descent) + "\x0F\xFF" + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + "\x00\x11" + "\x00\x00" + "\x00\x00" + "\x00\x00"); + builder.addTable("hhea", "\x00\x01\x00\x00" + safeString16(properties.ascent) + safeString16(properties.descent) + "\x00\x00" + "\xFF\xFF" + "\x00\x00" + "\x00\x00" + "\x00\x00" + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + "\x00\x00" + "\x00\x00" + "\x00\x00" + "\x00\x00" + "\x00\x00" + "\x00\x00" + string16(numGlyphs)); + builder.addTable("hmtx", function fontFieldsHmtx() { + const charstrings = font.charstrings; + const cffWidths = font.cff ? font.cff.widths : null; + let hmtx = "\x00\x00\x00\x00"; + for (let i = 1, ii = numGlyphs; i < ii; i++) { + let width = 0; + if (charstrings) { + const charstring = charstrings[i - 1]; + width = "width" in charstring ? charstring.width : 0; + } else if (cffWidths) { + width = Math.ceil(cffWidths[i] || 0); + } + hmtx += string16(width) + string16(0); + } + return hmtx; + }()); + builder.addTable("maxp", "\x00\x00\x50\x00" + string16(numGlyphs)); + builder.addTable("name", createNameTable(fontName)); + builder.addTable("post", createPostTable(properties)); + return builder.toArray(); + } + get _spaceWidth() { + const possibleSpaceReplacements = ["space", "minus", "one", "i", "I"]; + let width; + for (const glyphName of possibleSpaceReplacements) { + if (glyphName in this.widths) { + width = this.widths[glyphName]; + break; + } + const glyphsUnicodeMap = getGlyphsUnicode(); + const glyphUnicode = glyphsUnicodeMap[glyphName]; + let charcode = 0; + if (this.composite && this.cMap.contains(glyphUnicode)) { + charcode = this.cMap.lookup(glyphUnicode); + if (typeof charcode === "string") { + charcode = convertCidString(glyphUnicode, charcode); + } + } + if (!charcode && this.toUnicode) { + charcode = this.toUnicode.charCodeOf(glyphUnicode); + } + if (charcode <= 0) { + charcode = glyphUnicode; + } + width = this.widths[charcode]; + if (width) { + break; + } + } + return shadow(this, "_spaceWidth", width || this.defaultWidth); + } + _charToGlyph(charcode, isSpace = false) { + let glyph = this._glyphCache[charcode]; + if (glyph?.isSpace === isSpace) { + return glyph; + } + let fontCharCode, width, operatorListId; + let widthCode = charcode; + if (this.cMap?.contains(charcode)) { + widthCode = this.cMap.lookup(charcode); + if (typeof widthCode === "string") { + widthCode = convertCidString(charcode, widthCode); + } + } + width = this.widths[widthCode]; + if (typeof width !== "number") { + width = this.defaultWidth; + } + const vmetric = this.vmetrics?.[widthCode]; + let unicode = this.toUnicode.get(charcode) || charcode; + if (typeof unicode === "number") { + unicode = String.fromCharCode(unicode); + } + let isInFont = this.toFontChar[charcode] !== undefined; + fontCharCode = this.toFontChar[charcode] || charcode; + if (this.missingFile) { + const glyphName = this.differences[charcode] || this.defaultEncoding[charcode]; + if ((glyphName === ".notdef" || glyphName === "") && this.type === "Type1") { + fontCharCode = 0x20; + if (glyphName === "") { + width ||= this._spaceWidth; + unicode = String.fromCharCode(fontCharCode); + } + } + fontCharCode = mapSpecialUnicodeValues(fontCharCode); + } + if (this.isType3Font) { + operatorListId = fontCharCode; + } + let accent = null; + if (this.seacMap?.[charcode]) { + isInFont = true; + const seac = this.seacMap[charcode]; + fontCharCode = seac.baseFontCharCode; + accent = { + fontChar: String.fromCodePoint(seac.accentFontCharCode), + offset: seac.accentOffset + }; + } + let fontChar = ""; + if (typeof fontCharCode === "number") { + if (fontCharCode <= 0x10ffff) { + fontChar = String.fromCodePoint(fontCharCode); + } else { + warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`); + } + } + if (this.missingFile && this.vertical && fontChar.length === 1) { + const vertical = getVerticalPresentationForm()[fontChar.charCodeAt(0)]; + if (vertical) { + fontChar = unicode = String.fromCharCode(vertical); + } + } + glyph = new fonts_Glyph(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont); + return this._glyphCache[charcode] = glyph; + } + charsToGlyphs(chars) { + let glyphs = this._charsCache[chars]; + if (glyphs) { + return glyphs; + } + glyphs = []; + if (this.cMap) { + const c = Object.create(null), + ii = chars.length; + let i = 0; + while (i < ii) { + this.cMap.readCharCode(chars, i, c); + const { + charcode, + length + } = c; + i += length; + const glyph = this._charToGlyph(charcode, length === 1 && chars.charCodeAt(i - 1) === 0x20); + glyphs.push(glyph); + } + } else { + for (let i = 0, ii = chars.length; i < ii; ++i) { + const charcode = chars.charCodeAt(i); + const glyph = this._charToGlyph(charcode, charcode === 0x20); + glyphs.push(glyph); + } + } + return this._charsCache[chars] = glyphs; + } + getCharPositions(chars) { + const positions = []; + if (this.cMap) { + const c = Object.create(null); + let i = 0; + while (i < chars.length) { + this.cMap.readCharCode(chars, i, c); + const length = c.length; + positions.push([i, i + length]); + i += length; + } + } else { + for (let i = 0, ii = chars.length; i < ii; ++i) { + positions.push([i, i + 1]); + } + } + return positions; + } + get glyphCacheValues() { + return Object.values(this._glyphCache); + } + encodeString(str) { + const buffers = []; + const currentBuf = []; + const hasCurrentBufErrors = () => buffers.length % 2 === 1; + const getCharCode = this.toUnicode instanceof IdentityToUnicodeMap ? unicode => this.toUnicode.charCodeOf(unicode) : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode)); + for (let i = 0, ii = str.length; i < ii; i++) { + const unicode = str.codePointAt(i); + if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) { + i++; + } + if (this.toUnicode) { + const charCode = getCharCode(unicode); + if (charCode !== -1) { + if (hasCurrentBufErrors()) { + buffers.push(currentBuf.join("")); + currentBuf.length = 0; + } + const charCodeLength = this.cMap ? this.cMap.getCharCodeLength(charCode) : 1; + for (let j = charCodeLength - 1; j >= 0; j--) { + currentBuf.push(String.fromCharCode(charCode >> 8 * j & 0xff)); + } + continue; + } + } + if (!hasCurrentBufErrors()) { + buffers.push(currentBuf.join("")); + currentBuf.length = 0; + } + currentBuf.push(String.fromCodePoint(unicode)); + } + buffers.push(currentBuf.join("")); + return buffers; + } +} +class ErrorFont { + constructor(error) { + this.error = error; + this.loadedName = "g_font_error"; + this.missingFile = true; + } + charsToGlyphs() { + return []; + } + encodeString(chars) { + return [chars]; + } + exportData() { + return { + error: this.error + }; + } +} + +;// ./src/core/pattern.js + + + + +const ShadingType = { + FUNCTION_BASED: 1, + AXIAL: 2, + RADIAL: 3, + FREE_FORM_MESH: 4, + LATTICE_FORM_MESH: 5, + COONS_PATCH_MESH: 6, + TENSOR_PATCH_MESH: 7 +}; +class Pattern { + constructor() { + unreachable("Cannot initialize Pattern."); + } + static parseShading(shading, xref, res, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache) { + const dict = shading instanceof BaseStream ? shading.dict : shading; + const type = dict.get("ShadingType"); + try { + switch (type) { + case ShadingType.AXIAL: + case ShadingType.RADIAL: + return new RadialAxialShading(dict, xref, res, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache); + case ShadingType.FREE_FORM_MESH: + case ShadingType.LATTICE_FORM_MESH: + case ShadingType.COONS_PATCH_MESH: + case ShadingType.TENSOR_PATCH_MESH: + return new MeshShading(shading, xref, res, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache); + default: + throw new FormatError("Unsupported ShadingType: " + type); + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(ex); + return new DummyShading(); + } + } +} +class BaseShading { + static SMALL_NUMBER = 1e-6; + getIR() { + unreachable("Abstract method `getIR` called."); + } +} +class RadialAxialShading extends BaseShading { + constructor(dict, xref, resources, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache) { + super(); + this.shadingType = dict.get("ShadingType"); + let coordsLen = 0; + if (this.shadingType === ShadingType.AXIAL) { + coordsLen = 4; + } else if (this.shadingType === ShadingType.RADIAL) { + coordsLen = 6; + } + this.coordsArr = dict.getArray("Coords"); + if (!isNumberArray(this.coordsArr, coordsLen)) { + throw new FormatError("RadialAxialShading: Invalid /Coords array."); + } + const cs = ColorSpaceUtils.parse({ + cs: dict.getRaw("CS") || dict.getRaw("ColorSpace"), + xref, + resources, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }); + this.bbox = lookupNormalRect(dict.getArray("BBox"), null); + let t0 = 0.0, + t1 = 1.0; + const domainArr = dict.getArray("Domain"); + if (isNumberArray(domainArr, 2)) { + [t0, t1] = domainArr; + } + let extendStart = false, + extendEnd = false; + const extendArr = dict.getArray("Extend"); + if (isBooleanArray(extendArr, 2)) { + [extendStart, extendEnd] = extendArr; + } + if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) { + const [x1, y1, r1, x2, y2, r2] = this.coordsArr; + const distance = Math.hypot(x1 - x2, y1 - y2); + if (r1 <= r2 + distance && r2 <= r1 + distance) { + warn("Unsupported radial gradient."); + } + } + this.extendStart = extendStart; + this.extendEnd = extendEnd; + const fnObj = dict.getRaw("Function"); + const fn = pdfFunctionFactory.create(fnObj, true); + const NUMBER_OF_SAMPLES = 840; + const step = (t1 - t0) / NUMBER_OF_SAMPLES; + const colorStops = this.colorStops = []; + if (t0 >= t1 || step <= 0) { + info("Bad shading domain."); + return; + } + const color = new Float32Array(cs.numComps), + ratio = new Float32Array(1); + let iBase = 0; + ratio[0] = t0; + fn(ratio, 0, color, 0); + const rgbBuffer = new Uint8ClampedArray(3); + cs.getRgb(color, 0, rgbBuffer); + let [rBase, gBase, bBase] = rgbBuffer; + colorStops.push([0, Util.makeHexColor(rBase, gBase, bBase)]); + let iPrev = 1; + ratio[0] = t0 + step; + fn(ratio, 0, color, 0); + cs.getRgb(color, 0, rgbBuffer); + let [rPrev, gPrev, bPrev] = rgbBuffer; + let maxSlopeR = rPrev - rBase + 1; + let maxSlopeG = gPrev - gBase + 1; + let maxSlopeB = bPrev - bBase + 1; + let minSlopeR = rPrev - rBase - 1; + let minSlopeG = gPrev - gBase - 1; + let minSlopeB = bPrev - bBase - 1; + for (let i = 2; i < NUMBER_OF_SAMPLES; i++) { + ratio[0] = t0 + i * step; + fn(ratio, 0, color, 0); + cs.getRgb(color, 0, rgbBuffer); + const [r, g, b] = rgbBuffer; + const run = i - iBase; + maxSlopeR = Math.min(maxSlopeR, (r - rBase + 1) / run); + maxSlopeG = Math.min(maxSlopeG, (g - gBase + 1) / run); + maxSlopeB = Math.min(maxSlopeB, (b - bBase + 1) / run); + minSlopeR = Math.max(minSlopeR, (r - rBase - 1) / run); + minSlopeG = Math.max(minSlopeG, (g - gBase - 1) / run); + minSlopeB = Math.max(minSlopeB, (b - bBase - 1) / run); + const slopesExist = minSlopeR <= maxSlopeR && minSlopeG <= maxSlopeG && minSlopeB <= maxSlopeB; + if (!slopesExist) { + const cssColor = Util.makeHexColor(rPrev, gPrev, bPrev); + colorStops.push([iPrev / NUMBER_OF_SAMPLES, cssColor]); + maxSlopeR = r - rPrev + 1; + maxSlopeG = g - gPrev + 1; + maxSlopeB = b - bPrev + 1; + minSlopeR = r - rPrev - 1; + minSlopeG = g - gPrev - 1; + minSlopeB = b - bPrev - 1; + iBase = iPrev; + rBase = rPrev; + gBase = gPrev; + bBase = bPrev; + } + iPrev = i; + rPrev = r; + gPrev = g; + bPrev = b; + } + colorStops.push([1, Util.makeHexColor(rPrev, gPrev, bPrev)]); + let background = "transparent"; + if (dict.has("Background")) { + background = cs.getRgbHex(dict.get("Background"), 0); + } + if (!extendStart) { + colorStops.unshift([0, background]); + colorStops[1][0] += BaseShading.SMALL_NUMBER; + } + if (!extendEnd) { + colorStops.at(-1)[0] -= BaseShading.SMALL_NUMBER; + colorStops.push([1, background]); + } + this.colorStops = colorStops; + } + getIR() { + const { + coordsArr, + shadingType + } = this; + let type, p0, p1, r0, r1; + if (shadingType === ShadingType.AXIAL) { + p0 = [coordsArr[0], coordsArr[1]]; + p1 = [coordsArr[2], coordsArr[3]]; + r0 = null; + r1 = null; + type = "axial"; + } else if (shadingType === ShadingType.RADIAL) { + p0 = [coordsArr[0], coordsArr[1]]; + p1 = [coordsArr[3], coordsArr[4]]; + r0 = coordsArr[2]; + r1 = coordsArr[5]; + type = "radial"; + } else { + unreachable(`getPattern type unknown: ${shadingType}`); + } + return ["RadialAxial", type, this.bbox, this.colorStops, p0, p1, r0, r1]; + } +} +class MeshStreamReader { + constructor(stream, context) { + this.stream = stream; + this.context = context; + this.buffer = 0; + this.bufferLength = 0; + const numComps = context.numComps; + this.tmpCompsBuf = new Float32Array(numComps); + const csNumComps = context.colorSpace.numComps; + this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf; + } + get hasData() { + if (this.stream.end) { + return this.stream.pos < this.stream.end; + } + if (this.bufferLength > 0) { + return true; + } + const nextByte = this.stream.getByte(); + if (nextByte < 0) { + return false; + } + this.buffer = nextByte; + this.bufferLength = 8; + return true; + } + readBits(n) { + const { + stream + } = this; + let { + buffer, + bufferLength + } = this; + if (n === 32) { + if (bufferLength === 0) { + return stream.getInt32() >>> 0; + } + buffer = buffer << 24 | stream.getByte() << 16 | stream.getByte() << 8 | stream.getByte(); + const nextByte = stream.getByte(); + this.buffer = nextByte & (1 << bufferLength) - 1; + return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0; + } + if (n === 8 && bufferLength === 0) { + return stream.getByte(); + } + while (bufferLength < n) { + buffer = buffer << 8 | stream.getByte(); + bufferLength += 8; + } + bufferLength -= n; + this.bufferLength = bufferLength; + this.buffer = buffer & (1 << bufferLength) - 1; + return buffer >> bufferLength; + } + align() { + this.buffer = 0; + this.bufferLength = 0; + } + readFlag() { + return this.readBits(this.context.bitsPerFlag); + } + readCoordinate() { + const { + bitsPerCoordinate, + decode + } = this.context; + const xi = this.readBits(bitsPerCoordinate); + const yi = this.readBits(bitsPerCoordinate); + const scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10; + return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]]; + } + readComponents() { + const { + bitsPerComponent, + colorFn, + colorSpace, + decode, + numComps + } = this.context; + const scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10; + const components = this.tmpCompsBuf; + for (let i = 0, j = 4; i < numComps; i++, j += 2) { + const ci = this.readBits(bitsPerComponent); + components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j]; + } + const color = this.tmpCsCompsBuf; + colorFn?.(components, 0, color, 0); + return colorSpace.getRgb(color, 0); + } +} +let bCache = Object.create(null); +function buildB(count) { + const lut = []; + for (let i = 0; i <= count; i++) { + const t = i / count, + t_ = 1 - t; + lut.push(new Float32Array([t_ ** 3, 3 * t * t_ ** 2, 3 * t ** 2 * t_, t ** 3])); + } + return lut; +} +function getB(count) { + return bCache[count] ||= buildB(count); +} +function clearPatternCaches() { + bCache = Object.create(null); +} +class MeshShading extends BaseShading { + static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; + static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; + static TRIANGLE_DENSITY = 20; + constructor(stream, xref, resources, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache) { + super(); + if (!(stream instanceof BaseStream)) { + throw new FormatError("Mesh data is not a stream"); + } + const dict = stream.dict; + this.shadingType = dict.get("ShadingType"); + this.bbox = lookupNormalRect(dict.getArray("BBox"), null); + const cs = ColorSpaceUtils.parse({ + cs: dict.getRaw("CS") || dict.getRaw("ColorSpace"), + xref, + resources, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }); + this.background = dict.has("Background") ? cs.getRgb(dict.get("Background"), 0) : null; + const fnObj = dict.getRaw("Function"); + const fn = fnObj ? pdfFunctionFactory.create(fnObj, true) : null; + this.coords = []; + this.colors = []; + this.figures = []; + const decodeContext = { + bitsPerCoordinate: dict.get("BitsPerCoordinate"), + bitsPerComponent: dict.get("BitsPerComponent"), + bitsPerFlag: dict.get("BitsPerFlag"), + decode: dict.getArray("Decode"), + colorFn: fn, + colorSpace: cs, + numComps: fn ? 1 : cs.numComps + }; + const reader = new MeshStreamReader(stream, decodeContext); + let patchMesh = false; + switch (this.shadingType) { + case ShadingType.FREE_FORM_MESH: + this._decodeType4Shading(reader); + break; + case ShadingType.LATTICE_FORM_MESH: + const verticesPerRow = dict.get("VerticesPerRow") | 0; + if (verticesPerRow < 2) { + throw new FormatError("Invalid VerticesPerRow"); + } + this._decodeType5Shading(reader, verticesPerRow); + break; + case ShadingType.COONS_PATCH_MESH: + this._decodeType6Shading(reader); + patchMesh = true; + break; + case ShadingType.TENSOR_PATCH_MESH: + this._decodeType7Shading(reader); + patchMesh = true; + break; + default: + unreachable("Unsupported mesh type."); + break; + } + if (patchMesh) { + this._updateBounds(); + for (let i = 0, ii = this.figures.length; i < ii; i++) { + this._buildFigureFromPatch(i); + } + } + this._updateBounds(); + this._packData(); + } + _decodeType4Shading(reader) { + const coords = this.coords; + const colors = this.colors; + const operators = []; + const ps = []; + let verticesLeft = 0; + while (reader.hasData) { + const f = reader.readFlag(); + const coord = reader.readCoordinate(); + const color = reader.readComponents(); + if (verticesLeft === 0) { + if (!(0 <= f && f <= 2)) { + throw new FormatError("Unknown type4 flag"); + } + switch (f) { + case 0: + verticesLeft = 3; + break; + case 1: + ps.push(ps.at(-2), ps.at(-1)); + verticesLeft = 1; + break; + case 2: + ps.push(ps.at(-3), ps.at(-1)); + verticesLeft = 1; + break; + } + operators.push(f); + } + ps.push(coords.length); + coords.push(coord); + colors.push(color); + verticesLeft--; + reader.align(); + } + this.figures.push({ + type: "triangles", + coords: new Int32Array(ps), + colors: new Int32Array(ps) + }); + } + _decodeType5Shading(reader, verticesPerRow) { + const coords = this.coords; + const colors = this.colors; + const ps = []; + while (reader.hasData) { + const coord = reader.readCoordinate(); + const color = reader.readComponents(); + ps.push(coords.length); + coords.push(coord); + colors.push(color); + } + this.figures.push({ + type: "lattice", + coords: new Int32Array(ps), + colors: new Int32Array(ps), + verticesPerRow + }); + } + _decodeType6Shading(reader) { + const coords = this.coords; + const colors = this.colors; + const ps = new Int32Array(16); + const cs = new Int32Array(4); + while (reader.hasData) { + const f = reader.readFlag(); + if (!(0 <= f && f <= 3)) { + throw new FormatError("Unknown type6 flag"); + } + const pi = coords.length; + for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + const ci = colors.length; + for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + let tmp1, tmp2, tmp3, tmp4; + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + ps[5] = coords.length; + coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]); + ps[6] = coords.length; + coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]); + ps[9] = coords.length; + coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]); + ps[10] = coords.length; + coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]); + this.figures.push({ + type: "patch", + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + _decodeType7Shading(reader) { + const coords = this.coords; + const colors = this.colors; + const ps = new Int32Array(16); + const cs = new Int32Array(4); + while (reader.hasData) { + const f = reader.readFlag(); + if (!(0 <= f && f <= 3)) { + throw new FormatError("Unknown type7 flag"); + } + const pi = coords.length; + for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + const ci = colors.length; + for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + let tmp1, tmp2, tmp3, tmp4; + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[9] = pi + 13; + ps[10] = pi + 14; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[5] = pi + 12; + ps[6] = pi + 15; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + this.figures.push({ + type: "patch", + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + _buildFigureFromPatch(index) { + const figure = this.figures[index]; + assert(figure.type === "patch", "Unexpected patch mesh figure"); + const coords = this.coords, + colors = this.colors; + const pi = figure.coords; + const ci = figure.colors; + const figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + const figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + const figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + const figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + let splitXBy = Math.ceil((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY / (this.bounds[2] - this.bounds[0])); + splitXBy = MathClamp(splitXBy, MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT); + let splitYBy = Math.ceil((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY / (this.bounds[3] - this.bounds[1])); + splitYBy = MathClamp(splitYBy, MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT); + const verticesPerRow = splitXBy + 1; + const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow); + const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow); + let k = 0; + const cl = new Uint8Array(3), + cr = new Uint8Array(3); + const c0 = colors[ci[0]], + c1 = colors[ci[1]], + c2 = colors[ci[2]], + c3 = colors[ci[3]]; + const bRow = getB(splitYBy), + bCol = getB(splitXBy); + for (let row = 0; row <= splitYBy; row++) { + cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0; + cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0; + cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0; + cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0; + cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0; + cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0; + for (let col = 0; col <= splitXBy; col++, k++) { + if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) { + continue; + } + let x = 0, + y = 0; + let q = 0; + for (let i = 0; i <= 3; i++) { + for (let j = 0; j <= 3; j++, q++) { + const m = bRow[row][i] * bCol[col][j]; + x += coords[pi[q]][0] * m; + y += coords[pi[q]][1] * m; + } + } + figureCoords[k] = coords.length; + coords.push([x, y]); + figureColors[k] = colors.length; + const newColor = new Uint8Array(3); + newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0; + newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0; + newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0; + colors.push(newColor); + } + } + figureCoords[0] = pi[0]; + figureColors[0] = ci[0]; + figureCoords[splitXBy] = pi[3]; + figureColors[splitXBy] = ci[1]; + figureCoords[verticesPerRow * splitYBy] = pi[12]; + figureColors[verticesPerRow * splitYBy] = ci[2]; + figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15]; + figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3]; + this.figures[index] = { + type: "lattice", + coords: figureCoords, + colors: figureColors, + verticesPerRow + }; + } + _updateBounds() { + let minX = this.coords[0][0], + minY = this.coords[0][1], + maxX = minX, + maxY = minY; + for (let i = 1, ii = this.coords.length; i < ii; i++) { + const x = this.coords[i][0], + y = this.coords[i][1]; + minX = minX > x ? x : minX; + minY = minY > y ? y : minY; + maxX = maxX < x ? x : maxX; + maxY = maxY < y ? y : maxY; + } + this.bounds = [minX, minY, maxX, maxY]; + } + _packData() { + let i, ii, j, jj; + const coords = this.coords; + const coordsPacked = new Float32Array(coords.length * 2); + for (i = 0, j = 0, ii = coords.length; i < ii; i++) { + const xy = coords[i]; + coordsPacked[j++] = xy[0]; + coordsPacked[j++] = xy[1]; + } + this.coords = coordsPacked; + const colors = this.colors; + const colorsPacked = new Uint8Array(colors.length * 3); + for (i = 0, j = 0, ii = colors.length; i < ii; i++) { + const c = colors[i]; + colorsPacked[j++] = c[0]; + colorsPacked[j++] = c[1]; + colorsPacked[j++] = c[2]; + } + this.colors = colorsPacked; + const figures = this.figures; + for (i = 0, ii = figures.length; i < ii; i++) { + const figure = figures[i], + ps = figure.coords, + cs = figure.colors; + for (j = 0, jj = ps.length; j < jj; j++) { + ps[j] *= 2; + cs[j] *= 3; + } + } + } + getIR() { + const { + bounds + } = this; + if (bounds[2] - bounds[0] === 0 || bounds[3] - bounds[1] === 0) { + throw new FormatError(`Invalid MeshShading bounds: [${bounds}].`); + } + return ["Mesh", this.shadingType, this.coords, this.colors, this.figures, bounds, this.bbox, this.background]; + } +} +class DummyShading extends BaseShading { + getIR() { + return ["Dummy"]; + } +} +function getTilingPatternIR(operatorList, dict, color) { + const matrix = lookupMatrix(dict.getArray("Matrix"), IDENTITY_MATRIX); + const bbox = lookupNormalRect(dict.getArray("BBox"), null); + if (!bbox || bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) { + throw new FormatError(`Invalid getTilingPatternIR /BBox array.`); + } + const xstep = dict.get("XStep"); + if (typeof xstep !== "number") { + throw new FormatError(`Invalid getTilingPatternIR /XStep value.`); + } + const ystep = dict.get("YStep"); + if (typeof ystep !== "number") { + throw new FormatError(`Invalid getTilingPatternIR /YStep value.`); + } + const paintType = dict.get("PaintType"); + if (!Number.isInteger(paintType)) { + throw new FormatError(`Invalid getTilingPatternIR /PaintType value.`); + } + const tilingType = dict.get("TilingType"); + if (!Number.isInteger(tilingType)) { + throw new FormatError(`Invalid getTilingPatternIR /TilingType value.`); + } + return ["TilingPattern", color, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType]; +} + +;// ./src/core/calibri_factors.js +const CalibriBoldFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795, 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577, 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176, 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785, 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785, 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823, 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785, 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958, 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029, 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257, 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211, 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813, 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638, 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926, 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1, 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriBoldMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; +const CalibriBoldItalicFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795, 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577, 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908, 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411, 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958, 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908, 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387, 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346, 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466, 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733, 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988, 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581, 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527, 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriBoldItalicMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; +const CalibriItalicFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306, 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245, 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118, 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245, 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875, 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249, 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824, 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206, 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249, 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782, 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248, 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055, 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriItalicMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; +const CalibriRegularFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306, 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128, 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469, 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429, 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122, 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692, 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128, 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254, 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275, 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018, 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442, 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181, 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055, 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriRegularMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; + +;// ./src/core/helvetica_factors.js +const HelveticaBoldFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973, 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995, 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056, 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006, 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944, 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057, 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994, 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973, 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026, 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaBoldMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const HelveticaBoldItalicFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998, 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064, 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014, 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064, 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948, 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001, 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977, 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999, 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995, 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973, 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975, 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaBoldItalicMetrics = { + lineHeight: 1.35, + lineGap: 0.2 +}; +const HelveticaItalicFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013, 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022, 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036, 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036, 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006, 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001, 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954, 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089, 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973, 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1, 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023, 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaItalicMetrics = { + lineHeight: 1.35, + lineGap: 0.2 +}; +const HelveticaRegularFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941, 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022, 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023, 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023, 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006, 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962, 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035, 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043, 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073, 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1, 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1, 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaRegularMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; + +;// ./src/core/liberationsans_widths.js +const LiberationSansBoldWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722, 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278, 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278, 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753, 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556, 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556, 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875, 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487, 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333]; +const LiberationSansBoldMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 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, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 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, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; +const LiberationSansBoldItalicWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722, 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278, 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278, 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773, 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556, 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556, 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885, 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575, 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600, 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333]; +const LiberationSansBoldItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 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, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 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, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; +const LiberationSansItalicWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556, 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667, 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278, 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222, 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728, 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500, 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556, 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835, 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492, 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285]; +const LiberationSansItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 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, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 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, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; +const LiberationSansRegularWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556, 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667, 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278, 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222, 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713, 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500, 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556, 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823, 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489, 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285]; +const LiberationSansRegularMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 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, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 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, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; + +;// ./src/core/myriadpro_factors.js +const MyriadProBoldFactors = [1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884, 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582, 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179, 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903, 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793, 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438, 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039, 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1, 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446, 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713, 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083, 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261, 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156, 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704, 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933, 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083, 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582, 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProBoldMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const MyriadProBoldItalicFactors = [1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222, 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582, 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222, 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605, 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058, 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796, 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074, 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043, 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729, 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216, 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364, 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523, 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222, 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513, 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651, 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655, 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699, 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProBoldItalicMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const MyriadProItalicFactors = [1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307, 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945, 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125, 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588, 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832, 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012, 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075, 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537, 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353, 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864, 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882, 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1, 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865, 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867, 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866, 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901, 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947, 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588, 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701, 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787, 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859, 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027, 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProItalicMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const MyriadProRegularFactors = [1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706, 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051, 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761, 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231, 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938, 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332, 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023, 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611, 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755, 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284, 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991, 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856, 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936, 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023, 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297, 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088, 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1, 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903, 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241, 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1, 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProRegularMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; + +;// ./src/core/segoeui_factors.js +const SegoeuiBoldFactors = [1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647, 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489, 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361, 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527, 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862, 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795, 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1, 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251, 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931, 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752, 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912, 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167, 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889, 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008, 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511, 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1, 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiBoldMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; +const SegoeuiBoldItalicFactors = [1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953, 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128, 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042, 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236, 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107, 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135, 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922, 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363, 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042, 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552, 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385, 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205, 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815, 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514, 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777, 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279, 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416, 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiBoldItalicMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; +const SegoeuiItalicFactors = [1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373, 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383, 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989, 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143, 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627, 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454, 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225, 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781, 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971, 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836, 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782, 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146, 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351, 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729, 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454, 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231, 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989, 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1, 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043, 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498, 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965, 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2, 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284, 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205, 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679, 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675, 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973, 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945, 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621, 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622, 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiItalicMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; +const SegoeuiRegularFactors = [1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985, 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831, 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968, 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484, 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043, 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032, 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782, 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714, 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527, 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923, 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093, 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011, 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298, 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444, 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066, 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771, 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571, 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771, 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572, 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366, 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491, 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424, 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087, 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205, 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196, 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1, 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiRegularMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; + +;// ./src/core/xfa_fonts.js + + + + + + + + +const getXFAFontMap = getLookupTableFactory(function (t) { + t["MyriadPro-Regular"] = t["PdfJS-Fallback-Regular"] = { + name: "LiberationSans-Regular", + factors: MyriadProRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: MyriadProRegularMetrics + }; + t["MyriadPro-Bold"] = t["PdfJS-Fallback-Bold"] = { + name: "LiberationSans-Bold", + factors: MyriadProBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: MyriadProBoldMetrics + }; + t["MyriadPro-It"] = t["MyriadPro-Italic"] = t["PdfJS-Fallback-Italic"] = { + name: "LiberationSans-Italic", + factors: MyriadProItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: MyriadProItalicMetrics + }; + t["MyriadPro-BoldIt"] = t["MyriadPro-BoldItalic"] = t["PdfJS-Fallback-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: MyriadProBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: MyriadProBoldItalicMetrics + }; + t.ArialMT = t.Arial = t["Arial-Regular"] = { + name: "LiberationSans-Regular", + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping + }; + t["Arial-BoldMT"] = t["Arial-Bold"] = { + name: "LiberationSans-Bold", + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping + }; + t["Arial-ItalicMT"] = t["Arial-Italic"] = { + name: "LiberationSans-Italic", + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping + }; + t["Arial-BoldItalicMT"] = t["Arial-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping + }; + t["Calibri-Regular"] = { + name: "LiberationSans-Regular", + factors: CalibriRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: CalibriRegularMetrics + }; + t["Calibri-Bold"] = { + name: "LiberationSans-Bold", + factors: CalibriBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: CalibriBoldMetrics + }; + t["Calibri-Italic"] = { + name: "LiberationSans-Italic", + factors: CalibriItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: CalibriItalicMetrics + }; + t["Calibri-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: CalibriBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: CalibriBoldItalicMetrics + }; + t["Segoeui-Regular"] = { + name: "LiberationSans-Regular", + factors: SegoeuiRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: SegoeuiRegularMetrics + }; + t["Segoeui-Bold"] = { + name: "LiberationSans-Bold", + factors: SegoeuiBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: SegoeuiBoldMetrics + }; + t["Segoeui-Italic"] = { + name: "LiberationSans-Italic", + factors: SegoeuiItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: SegoeuiItalicMetrics + }; + t["Segoeui-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: SegoeuiBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: SegoeuiBoldItalicMetrics + }; + t["Helvetica-Regular"] = t.Helvetica = { + name: "LiberationSans-Regular", + factors: HelveticaRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: HelveticaRegularMetrics + }; + t["Helvetica-Bold"] = { + name: "LiberationSans-Bold", + factors: HelveticaBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: HelveticaBoldMetrics + }; + t["Helvetica-Italic"] = { + name: "LiberationSans-Italic", + factors: HelveticaItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: HelveticaItalicMetrics + }; + t["Helvetica-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: HelveticaBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: HelveticaBoldItalicMetrics + }; +}); +function getXfaFontName(name) { + const fontName = normalizeFontName(name); + const fontMap = getXFAFontMap(); + return fontMap[fontName]; +} +function getXfaFontWidths(name) { + const info = getXfaFontName(name); + if (!info) { + return null; + } + const { + baseWidths, + baseMapping, + factors + } = info; + const rescaledBaseWidths = !factors ? baseWidths : baseWidths.map((w, i) => w * factors[i]); + let currentCode = -2; + let currentArray; + const newWidths = []; + for (const [unicode, glyphIndex] of baseMapping.map((charUnicode, index) => [charUnicode, index]).sort(([unicode1], [unicode2]) => unicode1 - unicode2)) { + if (unicode === -1) { + continue; + } + if (unicode === currentCode + 1) { + currentArray.push(rescaledBaseWidths[glyphIndex]); + currentCode += 1; + } else { + currentCode = unicode; + currentArray = [rescaledBaseWidths[glyphIndex]]; + newWidths.push(unicode, currentArray); + } + } + return newWidths; +} +function getXfaFontDict(name) { + const widths = getXfaFontWidths(name); + const dict = new Dict(null); + dict.set("BaseFont", Name.get(name)); + dict.set("Type", Name.get("Font")); + dict.set("Subtype", Name.get("CIDFontType2")); + dict.set("Encoding", Name.get("Identity-H")); + dict.set("CIDToGIDMap", Name.get("Identity")); + dict.set("W", widths); + dict.set("FirstChar", widths[0]); + dict.set("LastChar", widths.at(-2) + widths.at(-1).length - 1); + const descriptor = new Dict(null); + dict.set("FontDescriptor", descriptor); + const systemInfo = new Dict(null); + systemInfo.set("Ordering", "Identity"); + systemInfo.set("Registry", "Adobe"); + systemInfo.set("Supplement", 0); + dict.set("CIDSystemInfo", systemInfo); + return dict; +} + +;// ./src/core/ps_parser.js + + + +class PostScriptParser { + constructor(lexer) { + this.lexer = lexer; + this.operators = []; + this.token = null; + this.prev = null; + } + nextToken() { + this.prev = this.token; + this.token = this.lexer.getToken(); + } + accept(type) { + if (this.token.type === type) { + this.nextToken(); + return true; + } + return false; + } + expect(type) { + if (this.accept(type)) { + return true; + } + throw new FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`); + } + parse() { + this.nextToken(); + this.expect(PostScriptTokenTypes.LBRACE); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + return this.operators; + } + parseBlock() { + while (true) { + if (this.accept(PostScriptTokenTypes.NUMBER)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.OPERATOR)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + this.parseCondition(); + } else { + return; + } + } + } + parseCondition() { + const conditionLocation = this.operators.length; + this.operators.push(null, null); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + if (this.accept(PostScriptTokenTypes.IF)) { + this.operators[conditionLocation] = this.operators.length; + this.operators[conditionLocation + 1] = "jz"; + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + const jumpLocation = this.operators.length; + this.operators.push(null, null); + const endOfTrue = this.operators.length; + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + this.expect(PostScriptTokenTypes.IFELSE); + this.operators[jumpLocation] = this.operators.length; + this.operators[jumpLocation + 1] = "j"; + this.operators[conditionLocation] = endOfTrue; + this.operators[conditionLocation + 1] = "jz"; + } else { + throw new FormatError("PS Function: error parsing conditional."); + } + } +} +const PostScriptTokenTypes = { + LBRACE: 0, + RBRACE: 1, + NUMBER: 2, + OPERATOR: 3, + IF: 4, + IFELSE: 5 +}; +class PostScriptToken { + static get opCache() { + return shadow(this, "opCache", Object.create(null)); + } + constructor(type, value) { + this.type = type; + this.value = value; + } + static getOperator(op) { + return PostScriptToken.opCache[op] ||= new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); + } + static get LBRACE() { + return shadow(this, "LBRACE", new PostScriptToken(PostScriptTokenTypes.LBRACE, "{")); + } + static get RBRACE() { + return shadow(this, "RBRACE", new PostScriptToken(PostScriptTokenTypes.RBRACE, "}")); + } + static get IF() { + return shadow(this, "IF", new PostScriptToken(PostScriptTokenTypes.IF, "IF")); + } + static get IFELSE() { + return shadow(this, "IFELSE", new PostScriptToken(PostScriptTokenTypes.IFELSE, "IFELSE")); + } +} +class PostScriptLexer { + constructor(stream) { + this.stream = stream; + this.nextChar(); + this.strBuf = []; + } + nextChar() { + return this.currentChar = this.stream.getByte(); + } + getToken() { + let comment = false; + let ch = this.currentChar; + while (true) { + if (ch < 0) { + return EOF; + } + if (comment) { + if (ch === 0x0a || ch === 0x0d) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!isWhiteSpace(ch)) { + break; + } + ch = this.nextChar(); + } + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2b: + case 0x2d: + case 0x2e: + return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber()); + case 0x7b: + this.nextChar(); + return PostScriptToken.LBRACE; + case 0x7d: + this.nextChar(); + return PostScriptToken.RBRACE; + } + const strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) { + strBuf.push(String.fromCharCode(ch)); + } + const str = strBuf.join(""); + switch (str.toLowerCase()) { + case "if": + return PostScriptToken.IF; + case "ifelse": + return PostScriptToken.IFELSE; + default: + return PostScriptToken.getOperator(str); + } + } + getNumber() { + let ch = this.currentChar; + const strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + while ((ch = this.nextChar()) >= 0) { + if (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) { + strBuf.push(String.fromCharCode(ch)); + } else { + break; + } + } + const value = parseFloat(strBuf.join("")); + if (isNaN(value)) { + throw new FormatError(`Invalid floating point number: ${value}`); + } + return value; + } +} + +;// ./src/core/image_utils.js + + +class BaseLocalCache { + constructor(options) { + this._onlyRefs = options?.onlyRefs === true; + if (!this._onlyRefs) { + this._nameRefMap = new Map(); + this._imageMap = new Map(); + } + this._imageCache = new RefSetCache(); + } + getByName(name) { + if (this._onlyRefs) { + unreachable("Should not call `getByName` method."); + } + const ref = this._nameRefMap.get(name); + if (ref) { + return this.getByRef(ref); + } + return this._imageMap.get(name) || null; + } + getByRef(ref) { + return this._imageCache.get(ref) || null; + } + set(name, ref, data) { + unreachable("Abstract method `set` called."); + } +} +class LocalImageCache extends BaseLocalCache { + set(name, ref = null, data) { + if (typeof name !== "string") { + throw new Error('LocalImageCache.set - expected "name" argument.'); + } + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + this._nameRefMap.set(name, ref); + this._imageCache.put(ref, data); + return; + } + if (this._imageMap.has(name)) { + return; + } + this._imageMap.set(name, data); + } +} +class LocalColorSpaceCache extends BaseLocalCache { + set(name = null, ref = null, data) { + if (typeof name !== "string" && !ref) { + throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.'); + } + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + if (name !== null) { + this._nameRefMap.set(name, ref); + } + this._imageCache.put(ref, data); + return; + } + if (this._imageMap.has(name)) { + return; + } + this._imageMap.set(name, data); + } +} +class LocalFunctionCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + set(name = null, ref, data) { + if (!ref) { + throw new Error('LocalFunctionCache.set - expected "ref" argument.'); + } + if (this._imageCache.has(ref)) { + return; + } + this._imageCache.put(ref, data); + } +} +class LocalGStateCache extends BaseLocalCache { + set(name, ref = null, data) { + if (typeof name !== "string") { + throw new Error('LocalGStateCache.set - expected "name" argument.'); + } + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + this._nameRefMap.set(name, ref); + this._imageCache.put(ref, data); + return; + } + if (this._imageMap.has(name)) { + return; + } + this._imageMap.set(name, data); + } +} +class LocalTilingPatternCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + set(name = null, ref, data) { + if (!ref) { + throw new Error('LocalTilingPatternCache.set - expected "ref" argument.'); + } + if (this._imageCache.has(ref)) { + return; + } + this._imageCache.put(ref, data); + } +} +class RegionalImageCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + set(name = null, ref, data) { + if (!ref) { + throw new Error('RegionalImageCache.set - expected "ref" argument.'); + } + if (this._imageCache.has(ref)) { + return; + } + this._imageCache.put(ref, data); + } +} +class GlobalColorSpaceCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + set(name = null, ref, data) { + if (!ref) { + throw new Error('GlobalColorSpaceCache.set - expected "ref" argument.'); + } + if (this._imageCache.has(ref)) { + return; + } + this._imageCache.put(ref, data); + } + clear() { + this._imageCache.clear(); + } +} +class GlobalImageCache { + static NUM_PAGES_THRESHOLD = 2; + static MIN_IMAGES_TO_CACHE = 10; + static MAX_BYTE_SIZE = 5e7; + #decodeFailedSet = new RefSet(); + constructor() { + this._refCache = new RefSetCache(); + this._imageCache = new RefSetCache(); + } + get #byteSize() { + let byteSize = 0; + for (const imageData of this._imageCache) { + byteSize += imageData.byteSize; + } + return byteSize; + } + get #cacheLimitReached() { + if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) { + return false; + } + if (this.#byteSize < GlobalImageCache.MAX_BYTE_SIZE) { + return false; + } + return true; + } + shouldCache(ref, pageIndex) { + let pageIndexSet = this._refCache.get(ref); + if (!pageIndexSet) { + pageIndexSet = new Set(); + this._refCache.put(ref, pageIndexSet); + } + pageIndexSet.add(pageIndex); + if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) { + return false; + } + if (!this._imageCache.has(ref) && this.#cacheLimitReached) { + return false; + } + return true; + } + addDecodeFailed(ref) { + this.#decodeFailedSet.put(ref); + } + hasDecodeFailed(ref) { + return this.#decodeFailedSet.has(ref); + } + addByteSize(ref, byteSize) { + const imageData = this._imageCache.get(ref); + if (!imageData) { + return; + } + if (imageData.byteSize) { + return; + } + imageData.byteSize = byteSize; + } + getData(ref, pageIndex) { + const pageIndexSet = this._refCache.get(ref); + if (!pageIndexSet) { + return null; + } + if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) { + return null; + } + const imageData = this._imageCache.get(ref); + if (!imageData) { + return null; + } + pageIndexSet.add(pageIndex); + return imageData; + } + setData(ref, data) { + if (!this._refCache.has(ref)) { + throw new Error('GlobalImageCache.setData - expected "shouldCache" to have been called.'); + } + if (this._imageCache.has(ref)) { + return; + } + if (this.#cacheLimitReached) { + warn("GlobalImageCache.setData - cache limit reached."); + return; + } + this._imageCache.put(ref, data); + } + clear(onlyData = false) { + if (!onlyData) { + this.#decodeFailedSet.clear(); + this._refCache.clear(); + } + this._imageCache.clear(); + } +} + +;// ./src/core/function.js + + + + + + +class PDFFunctionFactory { + constructor({ + xref, + isEvalSupported = true + }) { + this.xref = xref; + this.isEvalSupported = isEvalSupported !== false; + } + create(fn, parseArray = false) { + let fnRef, parsedFn; + if (fn instanceof Ref) { + fnRef = fn; + } else if (fn instanceof Dict) { + fnRef = fn.objId; + } else if (fn instanceof BaseStream) { + fnRef = fn.dict?.objId; + } + if (fnRef) { + const cachedFn = this._localFunctionCache.getByRef(fnRef); + if (cachedFn) { + return cachedFn; + } + } + const fnObj = this.xref.fetchIfRef(fn); + if (Array.isArray(fnObj)) { + if (!parseArray) { + throw new Error('PDFFunctionFactory.create - expected "parseArray" argument.'); + } + parsedFn = PDFFunction.parseArray(this, fnObj); + } else { + parsedFn = PDFFunction.parse(this, fnObj); + } + if (fnRef) { + this._localFunctionCache.set(null, fnRef, parsedFn); + } + return parsedFn; + } + get _localFunctionCache() { + return shadow(this, "_localFunctionCache", new LocalFunctionCache()); + } +} +function toNumberArray(arr) { + if (!Array.isArray(arr)) { + return null; + } + if (!isNumberArray(arr, null)) { + return arr.map(x => +x); + } + return arr; +} +class PDFFunction { + static getSampleArray(size, outputSize, bps, stream) { + let i, ii; + let length = 1; + for (i = 0, ii = size.length; i < ii; i++) { + length *= size[i]; + } + length *= outputSize; + const array = new Array(length); + let codeSize = 0; + let codeBuf = 0; + const sampleMul = 1.0 / (2.0 ** bps - 1); + const strBytes = stream.getBytes((length * bps + 7) / 8); + let strIdx = 0; + for (i = 0; i < length; i++) { + while (codeSize < bps) { + codeBuf <<= 8; + codeBuf |= strBytes[strIdx++]; + codeSize += 8; + } + codeSize -= bps; + array[i] = (codeBuf >> codeSize) * sampleMul; + codeBuf &= (1 << codeSize) - 1; + } + return array; + } + static parse(factory, fn) { + const dict = fn.dict || fn; + const typeNum = dict.get("FunctionType"); + switch (typeNum) { + case 0: + return this.constructSampled(factory, fn, dict); + case 1: + break; + case 2: + return this.constructInterpolated(factory, dict); + case 3: + return this.constructStiched(factory, dict); + case 4: + return this.constructPostScript(factory, fn, dict); + } + throw new FormatError("Unknown type of function"); + } + static parseArray(factory, fnObj) { + const { + xref + } = factory; + const fnArray = []; + for (const fn of fnObj) { + fnArray.push(this.parse(factory, xref.fetchIfRef(fn))); + } + return function (src, srcOffset, dest, destOffset) { + for (let i = 0, ii = fnArray.length; i < ii; i++) { + fnArray[i](src, srcOffset, dest, destOffset + i); + } + }; + } + static constructSampled(factory, fn, dict) { + function toMultiArray(arr) { + const inputLength = arr.length; + const out = []; + let index = 0; + for (let i = 0; i < inputLength; i += 2) { + out[index++] = [arr[i], arr[i + 1]]; + } + return out; + } + function interpolate(x, xmin, xmax, ymin, ymax) { + return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin)); + } + let domain = toNumberArray(dict.getArray("Domain")); + let range = toNumberArray(dict.getArray("Range")); + if (!domain || !range) { + throw new FormatError("No domain or range"); + } + const inputSize = domain.length / 2; + const outputSize = range.length / 2; + domain = toMultiArray(domain); + range = toMultiArray(range); + const size = toNumberArray(dict.getArray("Size")); + const bps = dict.get("BitsPerSample"); + const order = dict.get("Order") || 1; + if (order !== 1) { + info("No support for cubic spline interpolation: " + order); + } + let encode = toNumberArray(dict.getArray("Encode")); + if (!encode) { + encode = []; + for (let i = 0; i < inputSize; ++i) { + encode.push([0, size[i] - 1]); + } + } else { + encode = toMultiArray(encode); + } + let decode = toNumberArray(dict.getArray("Decode")); + decode = !decode ? range : toMultiArray(decode); + const samples = this.getSampleArray(size, outputSize, bps, fn); + return function constructSampledFn(src, srcOffset, dest, destOffset) { + const cubeVertices = 1 << inputSize; + const cubeN = new Float64Array(cubeVertices).fill(1); + const cubeVertex = new Uint32Array(cubeVertices); + let i, j; + let k = outputSize, + pos = 1; + for (i = 0; i < inputSize; ++i) { + const domain_2i = domain[i][0]; + const domain_2i_1 = domain[i][1]; + const xi = MathClamp(src[srcOffset + i], domain_2i, domain_2i_1); + let e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]); + const size_i = size[i]; + e = MathClamp(e, 0, size_i - 1); + const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; + const n0 = e0 + 1 - e; + const n1 = e - e0; + const offset0 = e0 * k; + const offset1 = offset0 + k; + for (j = 0; j < cubeVertices; j++) { + if (j & pos) { + cubeN[j] *= n1; + cubeVertex[j] += offset1; + } else { + cubeN[j] *= n0; + cubeVertex[j] += offset0; + } + } + k *= size_i; + pos <<= 1; + } + for (j = 0; j < outputSize; ++j) { + let rj = 0; + for (i = 0; i < cubeVertices; i++) { + rj += samples[cubeVertex[i] + j] * cubeN[i]; + } + rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); + dest[destOffset + j] = MathClamp(rj, range[j][0], range[j][1]); + } + }; + } + static constructInterpolated(factory, dict) { + const c0 = toNumberArray(dict.getArray("C0")) || [0]; + const c1 = toNumberArray(dict.getArray("C1")) || [1]; + const n = dict.get("N"); + const diff = []; + for (let i = 0, ii = c0.length; i < ii; ++i) { + diff.push(c1[i] - c0[i]); + } + const length = diff.length; + return function constructInterpolatedFn(src, srcOffset, dest, destOffset) { + const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n; + for (let j = 0; j < length; ++j) { + dest[destOffset + j] = c0[j] + x * diff[j]; + } + }; + } + static constructStiched(factory, dict) { + const domain = toNumberArray(dict.getArray("Domain")); + if (!domain) { + throw new FormatError("No domain"); + } + const inputSize = domain.length / 2; + if (inputSize !== 1) { + throw new FormatError("Bad domain for stiched function"); + } + const { + xref + } = factory; + const fns = []; + for (const fn of dict.get("Functions")) { + fns.push(this.parse(factory, xref.fetchIfRef(fn))); + } + const bounds = toNumberArray(dict.getArray("Bounds")); + const encode = toNumberArray(dict.getArray("Encode")); + const tmpBuf = new Float32Array(1); + return function constructStichedFn(src, srcOffset, dest, destOffset) { + const v = MathClamp(src[srcOffset], domain[0], domain[1]); + const length = bounds.length; + let i; + for (i = 0; i < length; ++i) { + if (v < bounds[i]) { + break; + } + } + let dmin = domain[0]; + if (i > 0) { + dmin = bounds[i - 1]; + } + let dmax = domain[1]; + if (i < bounds.length) { + dmax = bounds[i]; + } + const rmin = encode[2 * i]; + const rmax = encode[2 * i + 1]; + tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); + fns[i](tmpBuf, 0, dest, destOffset); + }; + } + static constructPostScript(factory, fn, dict) { + const domain = toNumberArray(dict.getArray("Domain")); + const range = toNumberArray(dict.getArray("Range")); + if (!domain) { + throw new FormatError("No domain."); + } + if (!range) { + throw new FormatError("No range."); + } + const lexer = new PostScriptLexer(fn); + const parser = new PostScriptParser(lexer); + const code = parser.parse(); + if (factory.isEvalSupported && FeatureTest.isEvalSupported) { + const compiled = new PostScriptCompiler().compile(code, domain, range); + if (compiled) { + return new Function("src", "srcOffset", "dest", "destOffset", compiled); + } + } + info("Unable to compile PS function"); + const numOutputs = range.length >> 1; + const numInputs = domain.length >> 1; + const evaluator = new PostScriptEvaluator(code); + const cache = Object.create(null); + const MAX_CACHE_SIZE = 2048 * 4; + let cache_available = MAX_CACHE_SIZE; + const tmpBuf = new Float32Array(numInputs); + return function constructPostScriptFn(src, srcOffset, dest, destOffset) { + let i, value; + let key = ""; + const input = tmpBuf; + for (i = 0; i < numInputs; i++) { + value = src[srcOffset + i]; + input[i] = value; + key += value + "_"; + } + const cachedValue = cache[key]; + if (cachedValue !== undefined) { + dest.set(cachedValue, destOffset); + return; + } + const output = new Float32Array(numOutputs); + const stack = evaluator.execute(input); + const stackIndex = stack.length - numOutputs; + for (i = 0; i < numOutputs; i++) { + value = stack[stackIndex + i]; + let bound = range[i * 2]; + if (value < bound) { + value = bound; + } else { + bound = range[i * 2 + 1]; + if (value > bound) { + value = bound; + } + } + output[i] = value; + } + if (cache_available > 0) { + cache_available--; + cache[key] = output; + } + dest.set(output, destOffset); + }; + } +} +function isPDFFunction(v) { + let fnDict; + if (v instanceof Dict) { + fnDict = v; + } else if (v instanceof BaseStream) { + fnDict = v.dict; + } else { + return false; + } + return fnDict.has("FunctionType"); +} +class PostScriptStack { + static MAX_STACK_SIZE = 100; + constructor(initialStack) { + this.stack = initialStack ? Array.from(initialStack) : []; + } + push(value) { + if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) { + throw new Error("PostScript function stack overflow."); + } + this.stack.push(value); + } + pop() { + if (this.stack.length <= 0) { + throw new Error("PostScript function stack underflow."); + } + return this.stack.pop(); + } + copy(n) { + if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) { + throw new Error("PostScript function stack overflow."); + } + const stack = this.stack; + for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) { + stack.push(stack[i]); + } + } + index(n) { + this.push(this.stack[this.stack.length - n - 1]); + } + roll(n, p) { + const stack = this.stack; + const l = stack.length - n; + const r = stack.length - 1; + const c = l + (p - Math.floor(p / n) * n); + for (let i = l, j = r; i < j; i++, j--) { + const t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + for (let i = l, j = c - 1; i < j; i++, j--) { + const t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + for (let i = c, j = r; i < j; i++, j--) { + const t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + } +} +class PostScriptEvaluator { + constructor(operators) { + this.operators = operators; + } + execute(initialStack) { + const stack = new PostScriptStack(initialStack); + let counter = 0; + const operators = this.operators; + const length = operators.length; + let operator, a, b; + while (counter < length) { + operator = operators[counter++]; + if (typeof operator === "number") { + stack.push(operator); + continue; + } + switch (operator) { + case "jz": + b = stack.pop(); + a = stack.pop(); + if (!a) { + counter = b; + } + break; + case "j": + a = stack.pop(); + counter = a; + break; + case "abs": + a = stack.pop(); + stack.push(Math.abs(a)); + break; + case "add": + b = stack.pop(); + a = stack.pop(); + stack.push(a + b); + break; + case "and": + b = stack.pop(); + a = stack.pop(); + if (typeof a === "boolean" && typeof b === "boolean") { + stack.push(a && b); + } else { + stack.push(a & b); + } + break; + case "atan": + b = stack.pop(); + a = stack.pop(); + a = Math.atan2(a, b) / Math.PI * 180; + if (a < 0) { + a += 360; + } + stack.push(a); + break; + case "bitshift": + b = stack.pop(); + a = stack.pop(); + if (a > 0) { + stack.push(a << b); + } else { + stack.push(a >> b); + } + break; + case "ceiling": + a = stack.pop(); + stack.push(Math.ceil(a)); + break; + case "copy": + a = stack.pop(); + stack.copy(a); + break; + case "cos": + a = stack.pop(); + stack.push(Math.cos(a % 360 / 180 * Math.PI)); + break; + case "cvi": + a = stack.pop() | 0; + stack.push(a); + break; + case "cvr": + break; + case "div": + b = stack.pop(); + a = stack.pop(); + stack.push(a / b); + break; + case "dup": + stack.copy(1); + break; + case "eq": + b = stack.pop(); + a = stack.pop(); + stack.push(a === b); + break; + case "exch": + stack.roll(2, 1); + break; + case "exp": + b = stack.pop(); + a = stack.pop(); + stack.push(a ** b); + break; + case "false": + stack.push(false); + break; + case "floor": + a = stack.pop(); + stack.push(Math.floor(a)); + break; + case "ge": + b = stack.pop(); + a = stack.pop(); + stack.push(a >= b); + break; + case "gt": + b = stack.pop(); + a = stack.pop(); + stack.push(a > b); + break; + case "idiv": + b = stack.pop(); + a = stack.pop(); + stack.push(a / b | 0); + break; + case "index": + a = stack.pop(); + stack.index(a); + break; + case "le": + b = stack.pop(); + a = stack.pop(); + stack.push(a <= b); + break; + case "ln": + a = stack.pop(); + stack.push(Math.log(a)); + break; + case "log": + a = stack.pop(); + stack.push(Math.log10(a)); + break; + case "lt": + b = stack.pop(); + a = stack.pop(); + stack.push(a < b); + break; + case "mod": + b = stack.pop(); + a = stack.pop(); + stack.push(a % b); + break; + case "mul": + b = stack.pop(); + a = stack.pop(); + stack.push(a * b); + break; + case "ne": + b = stack.pop(); + a = stack.pop(); + stack.push(a !== b); + break; + case "neg": + a = stack.pop(); + stack.push(-a); + break; + case "not": + a = stack.pop(); + if (typeof a === "boolean") { + stack.push(!a); + } else { + stack.push(~a); + } + break; + case "or": + b = stack.pop(); + a = stack.pop(); + if (typeof a === "boolean" && typeof b === "boolean") { + stack.push(a || b); + } else { + stack.push(a | b); + } + break; + case "pop": + stack.pop(); + break; + case "roll": + b = stack.pop(); + a = stack.pop(); + stack.roll(a, b); + break; + case "round": + a = stack.pop(); + stack.push(Math.round(a)); + break; + case "sin": + a = stack.pop(); + stack.push(Math.sin(a % 360 / 180 * Math.PI)); + break; + case "sqrt": + a = stack.pop(); + stack.push(Math.sqrt(a)); + break; + case "sub": + b = stack.pop(); + a = stack.pop(); + stack.push(a - b); + break; + case "true": + stack.push(true); + break; + case "truncate": + a = stack.pop(); + a = a < 0 ? Math.ceil(a) : Math.floor(a); + stack.push(a); + break; + case "xor": + b = stack.pop(); + a = stack.pop(); + if (typeof a === "boolean" && typeof b === "boolean") { + stack.push(a !== b); + } else { + stack.push(a ^ b); + } + break; + default: + throw new FormatError(`Unknown operator ${operator}`); + } + } + return stack.stack; + } +} +class AstNode { + constructor(type) { + this.type = type; + } + visit(visitor) { + unreachable("abstract method"); + } +} +class AstArgument extends AstNode { + constructor(index, min, max) { + super("args"); + this.index = index; + this.min = min; + this.max = max; + } + visit(visitor) { + visitor.visitArgument(this); + } +} +class AstLiteral extends AstNode { + constructor(number) { + super("literal"); + this.number = number; + this.min = number; + this.max = number; + } + visit(visitor) { + visitor.visitLiteral(this); + } +} +class AstBinaryOperation extends AstNode { + constructor(op, arg1, arg2, min, max) { + super("binary"); + this.op = op; + this.arg1 = arg1; + this.arg2 = arg2; + this.min = min; + this.max = max; + } + visit(visitor) { + visitor.visitBinaryOperation(this); + } +} +class AstMin extends AstNode { + constructor(arg, max) { + super("max"); + this.arg = arg; + this.min = arg.min; + this.max = max; + } + visit(visitor) { + visitor.visitMin(this); + } +} +class AstVariable extends AstNode { + constructor(index, min, max) { + super("var"); + this.index = index; + this.min = min; + this.max = max; + } + visit(visitor) { + visitor.visitVariable(this); + } +} +class AstVariableDefinition extends AstNode { + constructor(variable, arg) { + super("definition"); + this.variable = variable; + this.arg = arg; + } + visit(visitor) { + visitor.visitVariableDefinition(this); + } +} +class ExpressionBuilderVisitor { + constructor() { + this.parts = []; + } + visitArgument(arg) { + this.parts.push("Math.max(", arg.min, ", Math.min(", arg.max, ", src[srcOffset + ", arg.index, "]))"); + } + visitVariable(variable) { + this.parts.push("v", variable.index); + } + visitLiteral(literal) { + this.parts.push(literal.number); + } + visitBinaryOperation(operation) { + this.parts.push("("); + operation.arg1.visit(this); + this.parts.push(" ", operation.op, " "); + operation.arg2.visit(this); + this.parts.push(")"); + } + visitVariableDefinition(definition) { + this.parts.push("var "); + definition.variable.visit(this); + this.parts.push(" = "); + definition.arg.visit(this); + this.parts.push(";"); + } + visitMin(max) { + this.parts.push("Math.min("); + max.arg.visit(this); + this.parts.push(", ", max.max, ")"); + } + toString() { + return this.parts.join(""); + } +} +function buildAddOperation(num1, num2) { + if (num2.type === "literal" && num2.number === 0) { + return num1; + } + if (num1.type === "literal" && num1.number === 0) { + return num2; + } + if (num2.type === "literal" && num1.type === "literal") { + return new AstLiteral(num1.number + num2.number); + } + return new AstBinaryOperation("+", num1, num2, num1.min + num2.min, num1.max + num2.max); +} +function buildMulOperation(num1, num2) { + if (num2.type === "literal") { + if (num2.number === 0) { + return new AstLiteral(0); + } else if (num2.number === 1) { + return num1; + } else if (num1.type === "literal") { + return new AstLiteral(num1.number * num2.number); + } + } + if (num1.type === "literal") { + if (num1.number === 0) { + return new AstLiteral(0); + } else if (num1.number === 1) { + return num2; + } + } + const min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + const max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + return new AstBinaryOperation("*", num1, num2, min, max); +} +function buildSubOperation(num1, num2) { + if (num2.type === "literal") { + if (num2.number === 0) { + return num1; + } else if (num1.type === "literal") { + return new AstLiteral(num1.number - num2.number); + } + } + if (num2.type === "binary" && num2.op === "-" && num1.type === "literal" && num1.number === 1 && num2.arg1.type === "literal" && num2.arg1.number === 1) { + return num2.arg2; + } + return new AstBinaryOperation("-", num1, num2, num1.min - num2.max, num1.max - num2.min); +} +function buildMinOperation(num1, max) { + if (num1.min >= max) { + return new AstLiteral(max); + } else if (num1.max <= max) { + return num1; + } + return new AstMin(num1, max); +} +class PostScriptCompiler { + compile(code, domain, range) { + const stack = []; + const instructions = []; + const inputSize = domain.length >> 1, + outputSize = range.length >> 1; + let lastRegister = 0; + let n, j; + let num1, num2, ast1, ast2, tmpVar, item; + for (let i = 0; i < inputSize; i++) { + stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1])); + } + for (let i = 0, ii = code.length; i < ii; i++) { + item = code[i]; + if (typeof item === "number") { + stack.push(new AstLiteral(item)); + continue; + } + switch (item) { + case "add": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildAddOperation(num1, num2)); + break; + case "cvr": + if (stack.length < 1) { + return null; + } + break; + case "mul": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildMulOperation(num1, num2)); + break; + case "sub": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildSubOperation(num1, num2)); + break; + case "exch": + if (stack.length < 2) { + return null; + } + ast1 = stack.pop(); + ast2 = stack.pop(); + stack.push(ast1, ast2); + break; + case "pop": + if (stack.length < 1) { + return null; + } + stack.pop(); + break; + case "index": + if (stack.length < 1) { + return null; + } + num1 = stack.pop(); + if (num1.type !== "literal") { + return null; + } + n = num1.number; + if (n < 0 || !Number.isInteger(n) || stack.length < n) { + return null; + } + ast1 = stack[stack.length - n - 1]; + if (ast1.type === "literal" || ast1.type === "var") { + stack.push(ast1); + break; + } + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - n - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + case "dup": + if (stack.length < 1) { + return null; + } + if (typeof code[i + 1] === "number" && code[i + 2] === "gt" && code[i + 3] === i + 7 && code[i + 4] === "jz" && code[i + 5] === "pop" && code[i + 6] === code[i + 1]) { + num1 = stack.pop(); + stack.push(buildMinOperation(num1, code[i + 1])); + i += 6; + break; + } + ast1 = stack.at(-1); + if (ast1.type === "literal" || ast1.type === "var") { + stack.push(ast1); + break; + } + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + case "roll": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + if (num2.type !== "literal" || num1.type !== "literal") { + return null; + } + j = num2.number; + n = num1.number; + if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) { + return null; + } + j = (j % n + n) % n; + if (j === 0) { + break; + } + stack.push(...stack.splice(stack.length - n, n - j)); + break; + default: + return null; + } + } + if (stack.length !== outputSize) { + return null; + } + const result = []; + for (const instruction of instructions) { + const statementBuilder = new ExpressionBuilderVisitor(); + instruction.visit(statementBuilder); + result.push(statementBuilder.toString()); + } + for (let i = 0, ii = stack.length; i < ii; i++) { + const expr = stack[i], + statementBuilder = new ExpressionBuilderVisitor(); + expr.visit(statementBuilder); + const min = range[i * 2], + max = range[i * 2 + 1]; + const out = [statementBuilder.toString()]; + if (min > expr.min) { + out.unshift("Math.max(", min, ", "); + out.push(")"); + } + if (max < expr.max) { + out.unshift("Math.min(", max, ", "); + out.push(")"); + } + out.unshift("dest[destOffset + ", i, "] = "); + out.push(";"); + result.push(out.join("")); + } + return result.join("\n"); + } +} + +;// ./src/core/bidi.js + +const baseTypes = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "ON", "ON", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "ON", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "ON", "ET", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "L", "ON", "ON", "BN", "ON", "ON", "ET", "ET", "EN", "EN", "ON", "L", "ON", "ON", "ON", "EN", "L", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L"]; +const arabicTypes = ["AN", "AN", "AN", "AN", "AN", "AN", "ON", "ON", "AL", "ET", "ET", "AL", "CS", "AL", "ON", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "ON", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL"]; +function isOdd(i) { + return (i & 1) !== 0; +} +function isEven(i) { + return (i & 1) === 0; +} +function findUnequal(arr, start, value) { + let j, jj; + for (j = start, jj = arr.length; j < jj; ++j) { + if (arr[j] !== value) { + return j; + } + } + return j; +} +function reverseValues(arr, start, end) { + for (let i = start, j = end - 1; i < j; ++i, --j) { + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } +} +function createBidiText(str, isLTR, vertical = false) { + let dir = "ltr"; + if (vertical) { + dir = "ttb"; + } else if (!isLTR) { + dir = "rtl"; + } + return { + str, + dir + }; +} +const chars = []; +const types = []; +function bidi(str, startLevel = -1, vertical = false) { + let isLTR = true; + const strLength = str.length; + if (strLength === 0 || vertical) { + return createBidiText(str, isLTR, vertical); + } + chars.length = strLength; + types.length = strLength; + let numBidi = 0; + let i, ii; + for (i = 0; i < strLength; ++i) { + chars[i] = str.charAt(i); + const charCode = str.charCodeAt(i); + let charType = "L"; + if (charCode <= 0x00ff) { + charType = baseTypes[charCode]; + } else if (0x0590 <= charCode && charCode <= 0x05f4) { + charType = "R"; + } else if (0x0600 <= charCode && charCode <= 0x06ff) { + charType = arabicTypes[charCode & 0xff]; + if (!charType) { + warn("Bidi: invalid Unicode character " + charCode.toString(16)); + } + } else if (0x0700 <= charCode && charCode <= 0x08ac || 0xfb50 <= charCode && charCode <= 0xfdff || 0xfe70 <= charCode && charCode <= 0xfeff) { + charType = "AL"; + } + if (charType === "R" || charType === "AL" || charType === "AN") { + numBidi++; + } + types[i] = charType; + } + if (numBidi === 0) { + isLTR = true; + return createBidiText(str, isLTR); + } + if (startLevel === -1) { + if (numBidi / strLength < 0.3 && strLength > 4) { + isLTR = true; + startLevel = 0; + } else { + isLTR = false; + startLevel = 1; + } + } + const levels = []; + for (i = 0; i < strLength; ++i) { + levels[i] = startLevel; + } + const e = isOdd(startLevel) ? "R" : "L"; + const sor = e; + const eor = sor; + let lastType = sor; + for (i = 0; i < strLength; ++i) { + if (types[i] === "NSM") { + types[i] = lastType; + } else { + lastType = types[i]; + } + } + lastType = sor; + let t; + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "EN") { + types[i] = lastType === "AL" ? "AN" : "EN"; + } else if (t === "R" || t === "L" || t === "AL") { + lastType = t; + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "AL") { + types[i] = "R"; + } + } + for (i = 1; i < strLength - 1; ++i) { + if (types[i] === "ES" && types[i - 1] === "EN" && types[i + 1] === "EN") { + types[i] = "EN"; + } + if (types[i] === "CS" && (types[i - 1] === "EN" || types[i - 1] === "AN") && types[i + 1] === types[i - 1]) { + types[i] = types[i - 1]; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === "EN") { + for (let j = i - 1; j >= 0; --j) { + if (types[j] !== "ET") { + break; + } + types[j] = "EN"; + } + for (let j = i + 1; j < strLength; ++j) { + if (types[j] !== "ET") { + break; + } + types[j] = "EN"; + } + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "WS" || t === "ES" || t === "ET" || t === "CS") { + types[i] = "ON"; + } + } + lastType = sor; + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "EN") { + types[i] = lastType === "L" ? "L" : "EN"; + } else if (t === "R" || t === "L") { + lastType = t; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === "ON") { + const end = findUnequal(types, i + 1, "ON"); + let before = sor; + if (i > 0) { + before = types[i - 1]; + } + let after = eor; + if (end + 1 < strLength) { + after = types[end + 1]; + } + if (before !== "L") { + before = "R"; + } + if (after !== "L") { + after = "R"; + } + if (before === after) { + types.fill(before, i, end); + } + i = end - 1; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === "ON") { + types[i] = e; + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (isEven(levels[i])) { + if (t === "R") { + levels[i] += 1; + } else if (t === "AN" || t === "EN") { + levels[i] += 2; + } + } else if (t === "L" || t === "AN" || t === "EN") { + levels[i] += 1; + } + } + let highestLevel = -1; + let lowestOddLevel = 99; + let level; + for (i = 0, ii = levels.length; i < ii; ++i) { + level = levels[i]; + if (highestLevel < level) { + highestLevel = level; + } + if (lowestOddLevel > level && isOdd(level)) { + lowestOddLevel = level; + } + } + for (level = highestLevel; level >= lowestOddLevel; --level) { + let start = -1; + for (i = 0, ii = levels.length; i < ii; ++i) { + if (levels[i] < level) { + if (start >= 0) { + reverseValues(chars, start, i); + start = -1; + } + } else if (start < 0) { + start = i; + } + } + if (start >= 0) { + reverseValues(chars, start, levels.length); + } + } + for (i = 0, ii = chars.length; i < ii; ++i) { + const ch = chars[i]; + if (ch === "<" || ch === ">") { + chars[i] = ""; + } + } + return createBidiText(chars.join(""), isLTR); +} + +;// ./src/core/font_substitutions.js + + + +const NORMAL = { + style: "normal", + weight: "normal" +}; +const BOLD = { + style: "normal", + weight: "bold" +}; +const ITALIC = { + style: "italic", + weight: "normal" +}; +const BOLDITALIC = { + style: "italic", + weight: "bold" +}; +const substitutionMap = new Map([["Times-Roman", { + local: ["Times New Roman", "Times-Roman", "Times", "Liberation Serif", "Nimbus Roman", "Nimbus Roman L", "Tinos", "Thorndale", "TeX Gyre Termes", "FreeSerif", "Linux Libertine O", "Libertinus Serif", "DejaVu Serif", "Bitstream Vera Serif", "Ubuntu"], + style: NORMAL, + ultimate: "serif" +}], ["Times-Bold", { + alias: "Times-Roman", + style: BOLD, + ultimate: "serif" +}], ["Times-Italic", { + alias: "Times-Roman", + style: ITALIC, + ultimate: "serif" +}], ["Times-BoldItalic", { + alias: "Times-Roman", + style: BOLDITALIC, + ultimate: "serif" +}], ["Helvetica", { + local: ["Helvetica", "Helvetica Neue", "Arial", "Arial Nova", "Liberation Sans", "Arimo", "Nimbus Sans", "Nimbus Sans L", "A030", "TeX Gyre Heros", "FreeSans", "DejaVu Sans", "Albany", "Bitstream Vera Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Apple Symbols", "Cantarell"], + path: "LiberationSans-Regular.ttf", + style: NORMAL, + ultimate: "sans-serif" +}], ["Helvetica-Bold", { + alias: "Helvetica", + path: "LiberationSans-Bold.ttf", + style: BOLD, + ultimate: "sans-serif" +}], ["Helvetica-Oblique", { + alias: "Helvetica", + path: "LiberationSans-Italic.ttf", + style: ITALIC, + ultimate: "sans-serif" +}], ["Helvetica-BoldOblique", { + alias: "Helvetica", + path: "LiberationSans-BoldItalic.ttf", + style: BOLDITALIC, + ultimate: "sans-serif" +}], ["Courier", { + local: ["Courier", "Courier New", "Liberation Mono", "Nimbus Mono", "Nimbus Mono L", "Cousine", "Cumberland", "TeX Gyre Cursor", "FreeMono", "Linux Libertine Mono O", "Libertinus Mono"], + style: NORMAL, + ultimate: "monospace" +}], ["Courier-Bold", { + alias: "Courier", + style: BOLD, + ultimate: "monospace" +}], ["Courier-Oblique", { + alias: "Courier", + style: ITALIC, + ultimate: "monospace" +}], ["Courier-BoldOblique", { + alias: "Courier", + style: BOLDITALIC, + ultimate: "monospace" +}], ["ArialBlack", { + local: ["Arial Black"], + style: { + style: "normal", + weight: "900" + }, + fallback: "Helvetica-Bold" +}], ["ArialBlack-Bold", { + alias: "ArialBlack" +}], ["ArialBlack-Italic", { + alias: "ArialBlack", + style: { + style: "italic", + weight: "900" + }, + fallback: "Helvetica-BoldOblique" +}], ["ArialBlack-BoldItalic", { + alias: "ArialBlack-Italic" +}], ["ArialNarrow", { + local: ["Arial Narrow", "Liberation Sans Narrow", "Helvetica Condensed", "Nimbus Sans Narrow", "TeX Gyre Heros Cn"], + style: NORMAL, + fallback: "Helvetica" +}], ["ArialNarrow-Bold", { + alias: "ArialNarrow", + style: BOLD, + fallback: "Helvetica-Bold" +}], ["ArialNarrow-Italic", { + alias: "ArialNarrow", + style: ITALIC, + fallback: "Helvetica-Oblique" +}], ["ArialNarrow-BoldItalic", { + alias: "ArialNarrow", + style: BOLDITALIC, + fallback: "Helvetica-BoldOblique" +}], ["Calibri", { + local: ["Calibri", "Carlito"], + style: NORMAL, + fallback: "Helvetica" +}], ["Calibri-Bold", { + alias: "Calibri", + style: BOLD, + fallback: "Helvetica-Bold" +}], ["Calibri-Italic", { + alias: "Calibri", + style: ITALIC, + fallback: "Helvetica-Oblique" +}], ["Calibri-BoldItalic", { + alias: "Calibri", + style: BOLDITALIC, + fallback: "Helvetica-BoldOblique" +}], ["Wingdings", { + local: ["Wingdings", "URW Dingbats"], + style: NORMAL +}], ["Wingdings-Regular", { + alias: "Wingdings" +}], ["Wingdings-Bold", { + alias: "Wingdings" +}]]); +const fontAliases = new Map([["Arial-Black", "ArialBlack"]]); +function getStyleToAppend(style) { + switch (style) { + case BOLD: + return "Bold"; + case ITALIC: + return "Italic"; + case BOLDITALIC: + return "Bold Italic"; + default: + if (style?.weight === "bold") { + return "Bold"; + } + if (style?.style === "italic") { + return "Italic"; + } + } + return ""; +} +function getFamilyName(str) { + const keywords = new Set(["thin", "extralight", "ultralight", "demilight", "semilight", "light", "book", "regular", "normal", "medium", "demibold", "semibold", "bold", "extrabold", "ultrabold", "black", "heavy", "extrablack", "ultrablack", "roman", "italic", "oblique", "ultracondensed", "extracondensed", "condensed", "semicondensed", "normal", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded", "bolditalic"]); + return str.split(/[- ,+]+/g).filter(tok => !keywords.has(tok.toLowerCase())).join(" "); +} +function generateFont({ + alias, + local, + path, + fallback, + style, + ultimate +}, src, localFontPath, useFallback = true, usePath = true, append = "") { + const result = { + style: null, + ultimate: null + }; + if (local) { + const extra = append ? ` ${append}` : ""; + for (const name of local) { + src.push(`local(${name}${extra})`); + } + } + if (alias) { + const substitution = substitutionMap.get(alias); + const aliasAppend = append || getStyleToAppend(style); + Object.assign(result, generateFont(substitution, src, localFontPath, useFallback && !fallback, usePath && !path, aliasAppend)); + } + if (style) { + result.style = style; + } + if (ultimate) { + result.ultimate = ultimate; + } + if (useFallback && fallback) { + const fallbackInfo = substitutionMap.get(fallback); + const { + ultimate: fallbackUltimate + } = generateFont(fallbackInfo, src, localFontPath, useFallback, usePath && !path, append); + result.ultimate ||= fallbackUltimate; + } + if (usePath && path && localFontPath) { + src.push(`url(${localFontPath}${path})`); + } + return result; +} +function getFontSubstitution(systemFontCache, idFactory, localFontPath, baseFontName, standardFontName, type) { + if (baseFontName.startsWith("InvalidPDFjsFont_")) { + return null; + } + if ((type === "TrueType" || type === "Type1") && /^[A-Z]{6}\+/.test(baseFontName)) { + baseFontName = baseFontName.slice(7); + } + baseFontName = normalizeFontName(baseFontName); + const key = baseFontName; + let substitutionInfo = systemFontCache.get(key); + if (substitutionInfo) { + return substitutionInfo; + } + let substitution = substitutionMap.get(baseFontName); + if (!substitution) { + for (const [alias, subst] of fontAliases) { + if (baseFontName.startsWith(alias)) { + baseFontName = `${subst}${baseFontName.substring(alias.length)}`; + substitution = substitutionMap.get(baseFontName); + break; + } + } + } + let mustAddBaseFont = false; + if (!substitution) { + substitution = substitutionMap.get(standardFontName); + mustAddBaseFont = true; + } + const loadedName = `${idFactory.getDocId()}_s${idFactory.createFontId()}`; + if (!substitution) { + if (!validateFontName(baseFontName)) { + warn(`Cannot substitute the font because of its name: ${baseFontName}`); + systemFontCache.set(key, null); + return null; + } + const bold = /bold/gi.test(baseFontName); + const italic = /oblique|italic/gi.test(baseFontName); + const style = bold && italic && BOLDITALIC || bold && BOLD || italic && ITALIC || NORMAL; + substitutionInfo = { + css: `"${getFamilyName(baseFontName)}",${loadedName}`, + guessFallback: true, + loadedName, + baseFontName, + src: `local(${baseFontName})`, + style + }; + systemFontCache.set(key, substitutionInfo); + return substitutionInfo; + } + const src = []; + if (mustAddBaseFont && validateFontName(baseFontName)) { + src.push(`local(${baseFontName})`); + } + const { + style, + ultimate + } = generateFont(substitution, src, localFontPath); + const guessFallback = ultimate === null; + const fallback = guessFallback ? "" : `,${ultimate}`; + substitutionInfo = { + css: `"${getFamilyName(baseFontName)}",${loadedName}${fallback}`, + guessFallback, + loadedName, + baseFontName, + src: src.join(","), + style + }; + systemFontCache.set(key, substitutionInfo); + return substitutionInfo; +} + +;// ./src/shared/murmurhash3.js +const SEED = 0xc3d2e1f0; +const MASK_HIGH = 0xffff0000; +const MASK_LOW = 0xffff; +class MurmurHash3_64 { + constructor(seed) { + this.h1 = seed ? seed & 0xffffffff : SEED; + this.h2 = seed ? seed & 0xffffffff : SEED; + } + update(input) { + let data, length; + if (typeof input === "string") { + data = new Uint8Array(input.length * 2); + length = 0; + for (let i = 0, ii = input.length; i < ii; i++) { + const code = input.charCodeAt(i); + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; + } + } + } else if (ArrayBuffer.isView(input)) { + data = input.slice(); + length = data.byteLength; + } else { + throw new Error("Invalid data format, must be a string or TypedArray."); + } + const blockCounts = length >> 2; + const tailLength = length - blockCounts * 4; + const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); + let k1 = 0, + k2 = 0; + let h1 = this.h1, + h2 = this.h2; + const C1 = 0xcc9e2d51, + C2 = 0x1b873593; + const C1_LOW = C1 & MASK_LOW, + C2_LOW = C2 & MASK_LOW; + for (let i = 0; i < blockCounts; i++) { + if (i & 1) { + k1 = dataUint32[i]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = h1 * 5 + 0xe6546b64; + } else { + k2 = dataUint32[i]; + k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; + k2 = k2 << 15 | k2 >>> 17; + k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; + h2 ^= k2; + h2 = h2 << 13 | h2 >>> 19; + h2 = h2 * 5 + 0xe6546b64; + } + } + k1 = 0; + switch (tailLength) { + case 3: + k1 ^= data[blockCounts * 4 + 2] << 16; + case 2: + k1 ^= data[blockCounts * 4 + 1] << 8; + case 1: + k1 ^= data[blockCounts * 4]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + if (blockCounts & 1) { + h1 ^= k1; + } else { + h2 ^= k1; + } + } + this.h1 = h1; + this.h2 = h2; + } + hexdigest() { + let h1 = this.h1, + h2 = this.h2; + h1 ^= h2 >>> 1; + h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; + h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; + h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + return (h1 >>> 0).toString(16).padStart(8, "0") + (h2 >>> 0).toString(16).padStart(8, "0"); + } +} + +;// ./src/core/image.js + + + + + + + + + + +function resizeImageMask(src, bpc, w1, h1, w2, h2) { + const length = w2 * h2; + let dest; + if (bpc <= 8) { + dest = new Uint8Array(length); + } else if (bpc <= 16) { + dest = new Uint16Array(length); + } else { + dest = new Uint32Array(length); + } + const xRatio = w1 / w2; + const yRatio = h1 / h2; + let i, + j, + py, + newIndex = 0, + oldIndex; + const xScaled = new Uint16Array(w2); + const w1Scanline = w1; + for (i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio); + } + for (i = 0; i < h2; i++) { + py = Math.floor(i * yRatio) * w1Scanline; + for (j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex]; + } + } + return dest; +} +class PDFImage { + constructor({ + xref, + res, + image, + isInline = false, + smask = null, + mask = null, + isMask = false, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }) { + this.image = image; + const dict = image.dict; + const filter = dict.get("F", "Filter"); + let filterName; + if (filter instanceof Name) { + filterName = filter.name; + } else if (Array.isArray(filter)) { + const filterZero = xref.fetchIfRef(filter[0]); + if (filterZero instanceof Name) { + filterName = filterZero.name; + } + } + switch (filterName) { + case "JPXDecode": + ({ + width: image.width, + height: image.height, + componentsCount: image.numComps, + bitsPerComponent: image.bitsPerComponent + } = JpxImage.parseImageProperties(image.stream)); + image.stream.reset(); + const reducePower = ImageResizer.getReducePowerForJPX(image.width, image.height, image.numComps); + this.jpxDecoderOptions = { + numComponents: 0, + isIndexedColormap: false, + smaskInData: dict.has("SMaskInData"), + reducePower + }; + if (reducePower) { + const factor = 2 ** reducePower; + image.width = Math.ceil(image.width / factor); + image.height = Math.ceil(image.height / factor); + } + break; + case "JBIG2Decode": + image.bitsPerComponent = 1; + image.numComps = 1; + break; + } + let width = dict.get("W", "Width"); + let height = dict.get("H", "Height"); + if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) { + warn("PDFImage - using the Width/Height of the image data, " + "rather than the image dictionary."); + width = image.width; + height = image.height; + } else { + const validWidth = typeof width === "number" && width > 0, + validHeight = typeof height === "number" && height > 0; + if (!validWidth || !validHeight) { + if (!image.fallbackDims) { + throw new FormatError(`Invalid image width: ${width} or height: ${height}`); + } + warn("PDFImage - using the Width/Height of the parent image, for SMask/Mask data."); + if (!validWidth) { + width = image.fallbackDims.width; + } + if (!validHeight) { + height = image.fallbackDims.height; + } + } + } + this.width = width; + this.height = height; + this.interpolate = dict.get("I", "Interpolate"); + this.imageMask = dict.get("IM", "ImageMask") || false; + this.matte = dict.get("Matte") || false; + let bitsPerComponent = image.bitsPerComponent; + if (!bitsPerComponent) { + bitsPerComponent = dict.get("BPC", "BitsPerComponent"); + if (!bitsPerComponent) { + if (this.imageMask) { + bitsPerComponent = 1; + } else { + throw new FormatError(`Bits per component missing in image: ${this.imageMask}`); + } + } + } + this.bpc = bitsPerComponent; + if (!this.imageMask) { + let colorSpace = dict.getRaw("CS") || dict.getRaw("ColorSpace"); + const hasColorSpace = !!colorSpace; + if (!hasColorSpace) { + if (this.jpxDecoderOptions) { + colorSpace = Name.get("DeviceRGBA"); + } else { + switch (image.numComps) { + case 1: + colorSpace = Name.get("DeviceGray"); + break; + case 3: + colorSpace = Name.get("DeviceRGB"); + break; + case 4: + colorSpace = Name.get("DeviceCMYK"); + break; + default: + throw new Error(`Images with ${image.numComps} color components not supported.`); + } + } + } else if (this.jpxDecoderOptions?.smaskInData) { + colorSpace = Name.get("DeviceRGBA"); + } + this.colorSpace = ColorSpaceUtils.parse({ + cs: colorSpace, + xref, + resources: isInline ? res : null, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }); + this.numComps = this.colorSpace.numComps; + if (this.jpxDecoderOptions) { + this.jpxDecoderOptions.numComponents = hasColorSpace ? this.numComps : 0; + this.jpxDecoderOptions.isIndexedColormap = this.colorSpace.name === "Indexed"; + } + } + this.decode = dict.getArray("D", "Decode"); + this.needsDecode = false; + if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !ColorSpace.isDefaultDecode(this.decode, 1))) { + this.needsDecode = true; + const max = (1 << bitsPerComponent) - 1; + this.decodeCoefficients = []; + this.decodeAddends = []; + const isIndexed = this.colorSpace?.name === "Indexed"; + for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) { + const dmin = this.decode[i]; + const dmax = this.decode[i + 1]; + this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin; + this.decodeAddends[j] = isIndexed ? dmin : max * dmin; + } + } + if (smask) { + smask.fallbackDims ??= { + width, + height + }; + this.smask = new PDFImage({ + xref, + res, + image: smask, + isInline, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }); + } else if (mask) { + if (mask instanceof BaseStream) { + const maskDict = mask.dict, + imageMask = maskDict.get("IM", "ImageMask"); + if (!imageMask) { + warn("Ignoring /Mask in image without /ImageMask."); + } else { + mask.fallbackDims ??= { + width, + height + }; + this.mask = new PDFImage({ + xref, + res, + image: mask, + isInline, + isMask: true, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }); + } + } else { + this.mask = mask; + } + } + } + static async buildImage({ + xref, + res, + image, + isInline = false, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }) { + const imageData = image; + let smaskData = null; + let maskData = null; + const smask = image.dict.get("SMask"); + const mask = image.dict.get("Mask"); + if (smask) { + if (smask instanceof BaseStream) { + smaskData = smask; + } else { + warn("Unsupported /SMask format."); + } + } else if (mask) { + if (mask instanceof BaseStream || Array.isArray(mask)) { + maskData = mask; + } else { + warn("Unsupported /Mask format."); + } + } + return new PDFImage({ + xref, + res, + image: imageData, + isInline, + smask: smaskData, + mask: maskData, + pdfFunctionFactory, + globalColorSpaceCache, + localColorSpaceCache + }); + } + static async createMask({ + image, + isOffscreenCanvasSupported = false + }) { + const { + dict + } = image; + const width = dict.get("W", "Width"); + const height = dict.get("H", "Height"); + const interpolate = dict.get("I", "Interpolate"); + const decode = dict.getArray("D", "Decode"); + const inverseDecode = decode?.[0] > 0; + const computedLength = (width + 7 >> 3) * height; + const imgArray = image.getBytes(computedLength); + const isSingleOpaquePixel = width === 1 && height === 1 && inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128)); + if (isSingleOpaquePixel) { + return { + isSingleOpaquePixel + }; + } + if (isOffscreenCanvasSupported) { + if (ImageResizer.needsToBeResized(width, height)) { + const data = new Uint8ClampedArray(width * height * 4); + convertBlackAndWhiteToRGBA({ + src: imgArray, + dest: data, + width, + height, + nonBlackColor: 0, + inverseDecode + }); + return ImageResizer.createImage({ + kind: ImageKind.RGBA_32BPP, + data, + width, + height, + interpolate + }); + } + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d"); + const imgData = ctx.createImageData(width, height); + convertBlackAndWhiteToRGBA({ + src: imgArray, + dest: imgData.data, + width, + height, + nonBlackColor: 0, + inverseDecode + }); + ctx.putImageData(imgData, 0, 0); + const bitmap = canvas.transferToImageBitmap(); + return { + data: null, + width, + height, + interpolate, + bitmap + }; + } + const actualLength = imgArray.byteLength; + const haveFullData = computedLength === actualLength; + let data; + if (image instanceof DecodeStream && (!inverseDecode || haveFullData)) { + data = imgArray; + } else if (!inverseDecode) { + data = new Uint8Array(imgArray); + } else { + data = new Uint8Array(computedLength); + data.set(imgArray); + data.fill(0xff, actualLength); + } + if (inverseDecode) { + for (let i = 0; i < actualLength; i++) { + data[i] ^= 0xff; + } + } + return { + data, + width, + height, + interpolate + }; + } + get drawWidth() { + return Math.max(this.width, this.smask?.width || 0, this.mask?.width || 0); + } + get drawHeight() { + return Math.max(this.height, this.smask?.height || 0, this.mask?.height || 0); + } + decodeBuffer(buffer) { + const bpc = this.bpc; + const numComps = this.numComps; + const decodeAddends = this.decodeAddends; + const decodeCoefficients = this.decodeCoefficients; + const max = (1 << bpc) - 1; + let i, ii; + if (bpc === 1) { + for (i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = +!buffer[i]; + } + return; + } + let index = 0; + for (i = 0, ii = this.width * this.height; i < ii; i++) { + for (let j = 0; j < numComps; j++) { + buffer[index] = MathClamp(decodeAddends[j] + buffer[index] * decodeCoefficients[j], 0, max); + index++; + } + } + } + getComponents(buffer) { + const bpc = this.bpc; + if (bpc === 8) { + return buffer; + } + const width = this.width; + const height = this.height; + const numComps = this.numComps; + const length = width * height * numComps; + let bufferPos = 0; + let output; + if (bpc <= 8) { + output = new Uint8Array(length); + } else if (bpc <= 16) { + output = new Uint16Array(length); + } else { + output = new Uint32Array(length); + } + const rowComps = width * numComps; + const max = (1 << bpc) - 1; + let i = 0, + ii, + buf; + if (bpc === 1) { + let mask, loop1End, loop2End; + for (let j = 0; j < height; j++) { + loop1End = i + (rowComps & ~7); + loop2End = i + rowComps; + while (i < loop1End) { + buf = buffer[bufferPos++]; + output[i] = buf >> 7 & 1; + output[i + 1] = buf >> 6 & 1; + output[i + 2] = buf >> 5 & 1; + output[i + 3] = buf >> 4 & 1; + output[i + 4] = buf >> 3 & 1; + output[i + 5] = buf >> 2 & 1; + output[i + 6] = buf >> 1 & 1; + output[i + 7] = buf & 1; + i += 8; + } + if (i < loop2End) { + buf = buffer[bufferPos++]; + mask = 128; + while (i < loop2End) { + output[i++] = +!!(buf & mask); + mask >>= 1; + } + } + } + } else { + let bits = 0; + buf = 0; + for (i = 0, ii = length; i < ii; ++i) { + if (i % rowComps === 0) { + buf = 0; + bits = 0; + } + while (bits < bpc) { + buf = buf << 8 | buffer[bufferPos++]; + bits += 8; + } + const remainingBits = bits - bpc; + let value = buf >> remainingBits; + if (value < 0) { + value = 0; + } else if (value > max) { + value = max; + } + output[i] = value; + buf &= (1 << remainingBits) - 1; + bits = remainingBits; + } + } + return output; + } + async fillOpacity(rgbaBuf, width, height, actualHeight, image) { + const smask = this.smask; + const mask = this.mask; + let alphaBuf, sw, sh, i, ii, j; + if (smask) { + sw = smask.width; + sh = smask.height; + alphaBuf = new Uint8ClampedArray(sw * sh); + await smask.fillGrayBuffer(alphaBuf); + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height); + } + } else if (mask) { + if (mask instanceof PDFImage) { + sw = mask.width; + sh = mask.height; + alphaBuf = new Uint8ClampedArray(sw * sh); + mask.numComps = 1; + await mask.fillGrayBuffer(alphaBuf); + for (i = 0, ii = sw * sh; i < ii; ++i) { + alphaBuf[i] = 255 - alphaBuf[i]; + } + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height); + } + } else if (Array.isArray(mask)) { + alphaBuf = new Uint8ClampedArray(width * height); + const numComps = this.numComps; + for (i = 0, ii = width * height; i < ii; ++i) { + let opacity = 0; + const imageOffset = i * numComps; + for (j = 0; j < numComps; ++j) { + const color = image[imageOffset + j]; + const maskOffset = j * 2; + if (color < mask[maskOffset] || color > mask[maskOffset + 1]) { + opacity = 255; + break; + } + } + alphaBuf[i] = opacity; + } + } else { + throw new FormatError("Unknown mask format."); + } + } + if (alphaBuf) { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = alphaBuf[i]; + } + } else { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = 255; + } + } + } + undoPreblend(buffer, width, height) { + const matte = this.smask?.matte; + if (!matte) { + return; + } + const matteRgb = this.colorSpace.getRgb(matte, 0); + const matteR = matteRgb[0]; + const matteG = matteRgb[1]; + const matteB = matteRgb[2]; + const length = width * height * 4; + for (let i = 0; i < length; i += 4) { + const alpha = buffer[i + 3]; + if (alpha === 0) { + buffer[i] = 255; + buffer[i + 1] = 255; + buffer[i + 2] = 255; + continue; + } + const k = 255 / alpha; + buffer[i] = (buffer[i] - matteR) * k + matteR; + buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG; + buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB; + } + } + async createImageData(forceRGBA = false, isOffscreenCanvasSupported = false) { + const drawWidth = this.drawWidth; + const drawHeight = this.drawHeight; + const imgData = { + width: drawWidth, + height: drawHeight, + interpolate: this.interpolate, + kind: 0, + data: null + }; + const numComps = this.numComps; + const originalWidth = this.width; + const originalHeight = this.height; + const bpc = this.bpc; + const rowBytes = originalWidth * numComps * bpc + 7 >> 3; + const mustBeResized = isOffscreenCanvasSupported && ImageResizer.needsToBeResized(drawWidth, drawHeight); + if (!this.smask && !this.mask && this.colorSpace.name === "DeviceRGBA") { + imgData.kind = ImageKind.RGBA_32BPP; + const imgArray = imgData.data = await this.getImageBytes(originalHeight * originalWidth * 4, {}); + if (isOffscreenCanvasSupported) { + if (!mustBeResized) { + return this.createBitmap(ImageKind.RGBA_32BPP, drawWidth, drawHeight, imgArray); + } + return ImageResizer.createImage(imgData, false); + } + return imgData; + } + if (!forceRGBA) { + let kind; + if (this.colorSpace.name === "DeviceGray" && bpc === 1) { + kind = ImageKind.GRAYSCALE_1BPP; + } else if (this.colorSpace.name === "DeviceRGB" && bpc === 8 && !this.needsDecode) { + kind = ImageKind.RGB_24BPP; + } + if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) { + const image = await this.#getImage(originalWidth, originalHeight); + if (image) { + return image; + } + const data = await this.getImageBytes(originalHeight * rowBytes, {}); + if (isOffscreenCanvasSupported) { + if (mustBeResized) { + return ImageResizer.createImage({ + data, + kind, + width: drawWidth, + height: drawHeight, + interpolate: this.interpolate + }, this.needsDecode); + } + return this.createBitmap(kind, originalWidth, originalHeight, data); + } + imgData.kind = kind; + imgData.data = data; + if (this.needsDecode) { + assert(kind === ImageKind.GRAYSCALE_1BPP, "PDFImage.createImageData: The image must be grayscale."); + const buffer = imgData.data; + for (let i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] ^= 0xff; + } + } + return imgData; + } + if (this.image instanceof JpegStream && !this.smask && !this.mask && !this.needsDecode) { + let imageLength = originalHeight * rowBytes; + if (isOffscreenCanvasSupported && !mustBeResized) { + let isHandled = false; + switch (this.colorSpace.name) { + case "DeviceGray": + imageLength *= 4; + isHandled = true; + break; + case "DeviceRGB": + imageLength = imageLength / 3 * 4; + isHandled = true; + break; + case "DeviceCMYK": + isHandled = true; + break; + } + if (isHandled) { + const image = await this.#getImage(drawWidth, drawHeight); + if (image) { + return image; + } + const rgba = await this.getImageBytes(imageLength, { + drawWidth, + drawHeight, + forceRGBA: true + }); + return this.createBitmap(ImageKind.RGBA_32BPP, drawWidth, drawHeight, rgba); + } + } else { + switch (this.colorSpace.name) { + case "DeviceGray": + imageLength *= 3; + case "DeviceRGB": + case "DeviceCMYK": + imgData.kind = ImageKind.RGB_24BPP; + imgData.data = await this.getImageBytes(imageLength, { + drawWidth, + drawHeight, + forceRGB: true + }); + if (mustBeResized) { + return ImageResizer.createImage(imgData); + } + return imgData; + } + } + } + } + const imgArray = await this.getImageBytes(originalHeight * rowBytes, { + internal: true + }); + const actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight; + const comps = this.getComponents(imgArray); + let alpha01, maybeUndoPreblend; + let canvas, ctx, canvasImgData, data; + if (isOffscreenCanvasSupported && !mustBeResized) { + canvas = new OffscreenCanvas(drawWidth, drawHeight); + ctx = canvas.getContext("2d"); + canvasImgData = ctx.createImageData(drawWidth, drawHeight); + data = canvasImgData.data; + } + imgData.kind = ImageKind.RGBA_32BPP; + if (!forceRGBA && !this.smask && !this.mask) { + if (!isOffscreenCanvasSupported || mustBeResized) { + imgData.kind = ImageKind.RGB_24BPP; + data = new Uint8ClampedArray(drawWidth * drawHeight * 3); + alpha01 = 0; + } else { + const arr = new Uint32Array(data.buffer); + arr.fill(FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff); + alpha01 = 1; + } + maybeUndoPreblend = false; + } else { + if (!isOffscreenCanvasSupported || mustBeResized) { + data = new Uint8ClampedArray(drawWidth * drawHeight * 4); + } + alpha01 = 1; + maybeUndoPreblend = true; + await this.fillOpacity(data, drawWidth, drawHeight, actualHeight, comps); + } + if (this.needsDecode) { + this.decodeBuffer(comps); + } + this.colorSpace.fillRgb(data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01); + if (maybeUndoPreblend) { + this.undoPreblend(data, drawWidth, actualHeight); + } + if (isOffscreenCanvasSupported && !mustBeResized) { + ctx.putImageData(canvasImgData, 0, 0); + const bitmap = canvas.transferToImageBitmap(); + return { + data: null, + width: drawWidth, + height: drawHeight, + bitmap, + interpolate: this.interpolate + }; + } + imgData.data = data; + if (mustBeResized) { + return ImageResizer.createImage(imgData); + } + return imgData; + } + async fillGrayBuffer(buffer) { + const numComps = this.numComps; + if (numComps !== 1) { + throw new FormatError(`Reading gray scale from a color image: ${numComps}`); + } + const width = this.width; + const height = this.height; + const bpc = this.bpc; + const rowBytes = width * numComps * bpc + 7 >> 3; + const imgArray = await this.getImageBytes(height * rowBytes, { + internal: true + }); + const comps = this.getComponents(imgArray); + let i, length; + if (bpc === 1) { + length = width * height; + if (this.needsDecode) { + for (i = 0; i < length; ++i) { + buffer[i] = comps[i] - 1 & 255; + } + } else { + for (i = 0; i < length; ++i) { + buffer[i] = -comps[i] & 255; + } + } + return; + } + if (this.needsDecode) { + this.decodeBuffer(comps); + } + length = width * height; + const scale = 255 / ((1 << bpc) - 1); + for (i = 0; i < length; ++i) { + buffer[i] = scale * comps[i]; + } + } + createBitmap(kind, width, height, src) { + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d"); + let imgData; + if (kind === ImageKind.RGBA_32BPP) { + imgData = new ImageData(src, width, height); + } else { + imgData = ctx.createImageData(width, height); + convertToRGBA({ + kind, + src, + dest: new Uint32Array(imgData.data.buffer), + width, + height, + inverseDecode: this.needsDecode + }); + } + ctx.putImageData(imgData, 0, 0); + const bitmap = canvas.transferToImageBitmap(); + return { + data: null, + width, + height, + bitmap, + interpolate: this.interpolate + }; + } + async #getImage(width, height) { + const bitmap = await this.image.getTransferableImage(); + if (!bitmap) { + return null; + } + return { + data: null, + width, + height, + bitmap, + interpolate: this.interpolate + }; + } + async getImageBytes(length, { + drawWidth, + drawHeight, + forceRGBA = false, + forceRGB = false, + internal = false + }) { + this.image.reset(); + this.image.drawWidth = drawWidth || this.width; + this.image.drawHeight = drawHeight || this.height; + this.image.forceRGBA = !!forceRGBA; + this.image.forceRGB = !!forceRGB; + const imageBytes = await this.image.getImageData(length, this.jpxDecoderOptions); + if (internal || this.image instanceof DecodeStream) { + return imageBytes; + } + assert(imageBytes instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported "imageBytes" type.'); + return new Uint8Array(imageBytes); + } +} + +;// ./src/core/evaluator.js + + + + + + + + + + + + + + + + + + + + + + + + + + +const DefaultPartialEvaluatorOptions = Object.freeze({ + maxImageSize: -1, + disableFontFace: false, + ignoreErrors: false, + isEvalSupported: true, + isOffscreenCanvasSupported: false, + isImageDecoderSupported: false, + canvasMaxAreaInBytes: -1, + fontExtraProperties: false, + useSystemFonts: true, + useWasm: true, + useWorkerFetch: true, + cMapUrl: null, + iccUrl: null, + standardFontDataUrl: null, + wasmUrl: null +}); +const PatternType = { + TILING: 1, + SHADING: 2 +}; +const TEXT_CHUNK_BATCH_SIZE = 10; +const deferred = Promise.resolve(); +function normalizeBlendMode(value, parsingArray = false) { + if (Array.isArray(value)) { + for (const val of value) { + const maybeBM = normalizeBlendMode(val, true); + if (maybeBM) { + return maybeBM; + } + } + warn(`Unsupported blend mode Array: ${value}`); + return "source-over"; + } + if (!(value instanceof Name)) { + if (parsingArray) { + return null; + } + return "source-over"; + } + switch (value.name) { + case "Normal": + case "Compatible": + return "source-over"; + case "Multiply": + return "multiply"; + case "Screen": + return "screen"; + case "Overlay": + return "overlay"; + case "Darken": + return "darken"; + case "Lighten": + return "lighten"; + case "ColorDodge": + return "color-dodge"; + case "ColorBurn": + return "color-burn"; + case "HardLight": + return "hard-light"; + case "SoftLight": + return "soft-light"; + case "Difference": + return "difference"; + case "Exclusion": + return "exclusion"; + case "Hue": + return "hue"; + case "Saturation": + return "saturation"; + case "Color": + return "color"; + case "Luminosity": + return "luminosity"; + } + if (parsingArray) { + return null; + } + warn(`Unsupported blend mode: ${value.name}`); + return "source-over"; +} +function addCachedImageOps(opList, { + objId, + fn, + args, + optionalContent, + hasMask +}) { + if (objId) { + opList.addDependency(objId); + } + opList.addImageOps(fn, args, optionalContent, hasMask); + if (fn === OPS.paintImageMaskXObject && args[0]?.count > 0) { + args[0].count++; + } +} +class TimeSlotManager { + static TIME_SLOT_DURATION_MS = 20; + static CHECK_TIME_EVERY = 100; + constructor() { + this.reset(); + } + check() { + if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) { + return false; + } + this.checked = 0; + return this.endTime <= Date.now(); + } + reset() { + this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS; + this.checked = 0; + } +} +class PartialEvaluator { + constructor({ + xref, + handler, + pageIndex, + idFactory, + fontCache, + builtInCMapCache, + standardFontDataCache, + globalColorSpaceCache, + globalImageCache, + systemFontCache, + options = null + }) { + this.xref = xref; + this.handler = handler; + this.pageIndex = pageIndex; + this.idFactory = idFactory; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.standardFontDataCache = standardFontDataCache; + this.globalColorSpaceCache = globalColorSpaceCache; + this.globalImageCache = globalImageCache; + this.systemFontCache = systemFontCache; + this.options = options || DefaultPartialEvaluatorOptions; + this.type3FontRefs = null; + this._regionalImageCache = new RegionalImageCache(); + this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this); + } + get _pdfFunctionFactory() { + const pdfFunctionFactory = new PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: this.options.isEvalSupported + }); + return shadow(this, "_pdfFunctionFactory", pdfFunctionFactory); + } + get parsingType3Font() { + return !!this.type3FontRefs; + } + clone(newOptions = null) { + const newEvaluator = Object.create(this); + newEvaluator.options = Object.assign(Object.create(null), this.options, newOptions); + return newEvaluator; + } + hasBlendModes(resources, nonBlendModesSet) { + if (!(resources instanceof Dict)) { + return false; + } + if (resources.objId && nonBlendModesSet.has(resources.objId)) { + return false; + } + const processed = new RefSet(nonBlendModesSet); + if (resources.objId) { + processed.put(resources.objId); + } + const nodes = [resources], + xref = this.xref; + while (nodes.length) { + const node = nodes.shift(); + const graphicStates = node.get("ExtGState"); + if (graphicStates instanceof Dict) { + for (let graphicState of graphicStates.getRawValues()) { + if (graphicState instanceof Ref) { + if (processed.has(graphicState)) { + continue; + } + try { + graphicState = xref.fetch(graphicState); + } catch (ex) { + processed.put(graphicState); + info(`hasBlendModes - ignoring ExtGState: "${ex}".`); + continue; + } + } + if (!(graphicState instanceof Dict)) { + continue; + } + if (graphicState.objId) { + processed.put(graphicState.objId); + } + const bm = graphicState.get("BM"); + if (bm instanceof Name) { + if (bm.name !== "Normal") { + return true; + } + continue; + } + if (bm !== undefined && Array.isArray(bm)) { + for (const element of bm) { + if (element instanceof Name && element.name !== "Normal") { + return true; + } + } + } + } + } + const xObjects = node.get("XObject"); + if (!(xObjects instanceof Dict)) { + continue; + } + for (let xObject of xObjects.getRawValues()) { + if (xObject instanceof Ref) { + if (processed.has(xObject)) { + continue; + } + try { + xObject = xref.fetch(xObject); + } catch (ex) { + processed.put(xObject); + info(`hasBlendModes - ignoring XObject: "${ex}".`); + continue; + } + } + if (!(xObject instanceof BaseStream)) { + continue; + } + if (xObject.dict.objId) { + processed.put(xObject.dict.objId); + } + const xResources = xObject.dict.get("Resources"); + if (!(xResources instanceof Dict)) { + continue; + } + if (xResources.objId && processed.has(xResources.objId)) { + continue; + } + nodes.push(xResources); + if (xResources.objId) { + processed.put(xResources.objId); + } + } + } + for (const ref of processed) { + nonBlendModesSet.put(ref); + } + return false; + } + async fetchBuiltInCMap(name) { + const cachedData = this.builtInCMapCache.get(name); + if (cachedData) { + return cachedData; + } + let data; + if (this.options.useWorkerFetch) { + data = { + cMapData: await fetchBinaryData(`${this.options.cMapUrl}${name}.bcmap`), + isCompressed: true + }; + } else { + data = await this.handler.sendWithPromise("FetchBinaryData", { + type: "cMapReaderFactory", + name + }); + } + this.builtInCMapCache.set(name, data); + return data; + } + async fetchStandardFontData(name) { + const cachedData = this.standardFontDataCache.get(name); + if (cachedData) { + return new Stream(cachedData); + } + if (this.options.useSystemFonts && name !== "Symbol" && name !== "ZapfDingbats") { + return null; + } + const standardFontNameToFileName = getFontNameToFileMap(), + filename = standardFontNameToFileName[name]; + let data; + try { + if (this.options.useWorkerFetch) { + data = await fetchBinaryData(`${this.options.standardFontDataUrl}${filename}`); + } else { + data = await this.handler.sendWithPromise("FetchBinaryData", { + type: "standardFontDataFactory", + filename + }); + } + } catch (ex) { + warn(ex); + return null; + } + this.standardFontDataCache.set(name, data); + return new Stream(data); + } + async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache, seenRefs) { + const { + dict + } = xobj; + const matrix = lookupMatrix(dict.getArray("Matrix"), null); + const bbox = lookupNormalRect(dict.getArray("BBox"), null); + let optionalContent, groupOptions; + if (dict.has("OC")) { + optionalContent = await this.parseMarkedContentProps(dict.get("OC"), resources); + } + if (optionalContent !== undefined) { + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + const group = dict.get("Group"); + if (group) { + groupOptions = { + matrix, + bbox, + smask, + isolated: false, + knockout: false + }; + const groupSubtype = group.get("S"); + let colorSpace = null; + if (isName(groupSubtype, "Transparency")) { + groupOptions.isolated = group.get("I") || false; + groupOptions.knockout = group.get("K") || false; + if (group.has("CS")) { + const cs = this._getColorSpace(group.getRaw("CS"), resources, localColorSpaceCache); + colorSpace = cs instanceof ColorSpace ? cs : await this._handleColorSpace(cs); + } + } + if (smask?.backdrop) { + colorSpace ||= ColorSpaceUtils.rgb; + smask.backdrop = colorSpace.getRgbHex(smask.backdrop, 0); + } + operatorList.addOp(OPS.beginGroup, [groupOptions]); + } + const f32matrix = matrix && new Float32Array(matrix); + const f32bbox = !group && bbox && new Float32Array(bbox) || null; + const args = [f32matrix, f32bbox]; + operatorList.addOp(OPS.paintFormXObjectBegin, args); + const localResources = dict.get("Resources"); + await this.getOperatorList({ + stream: xobj, + task, + resources: localResources instanceof Dict ? localResources : resources, + operatorList, + initialState, + prevRefs: seenRefs + }); + operatorList.addOp(OPS.paintFormXObjectEnd, []); + if (group) { + operatorList.addOp(OPS.endGroup, [groupOptions]); + } + if (optionalContent !== undefined) { + operatorList.addOp(OPS.endMarkedContent, []); + } + } + _sendImgData(objId, imgData, cacheGlobally = false) { + const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null; + if (this.parsingType3Font || cacheGlobally) { + return this.handler.send("commonobj", [objId, "Image", imgData], transfers); + } + return this.handler.send("obj", [objId, this.pageIndex, "Image", imgData], transfers); + } + async buildPaintImageXObject({ + resources, + image, + isInline = false, + operatorList, + cacheKey, + localImageCache, + localColorSpaceCache + }) { + const { + maxImageSize, + ignoreErrors, + isOffscreenCanvasSupported + } = this.options; + const { + dict + } = image; + const imageRef = dict.objId; + const w = dict.get("W", "Width"); + const h = dict.get("H", "Height"); + if (!(w && typeof w === "number") || !(h && typeof h === "number")) { + warn("Image dimensions are missing, or not numbers."); + return; + } + if (maxImageSize !== -1 && w * h > maxImageSize) { + const msg = "Image exceeded maximum allowed size and was removed."; + if (!ignoreErrors) { + throw new Error(msg); + } + warn(msg); + return; + } + let optionalContent; + if (dict.has("OC")) { + optionalContent = await this.parseMarkedContentProps(dict.get("OC"), resources); + } + const imageMask = dict.get("IM", "ImageMask") || false; + let imgData, fn, args; + if (imageMask) { + imgData = await PDFImage.createMask({ + image, + isOffscreenCanvasSupported: isOffscreenCanvasSupported && !this.parsingType3Font + }); + if (imgData.isSingleOpaquePixel) { + fn = OPS.paintSolidColorImageMask; + args = []; + operatorList.addImageOps(fn, args, optionalContent); + if (cacheKey) { + const cacheData = { + fn, + args, + optionalContent + }; + localImageCache.set(cacheKey, imageRef, cacheData); + if (imageRef) { + this._regionalImageCache.set(null, imageRef, cacheData); + } + } + return; + } + if (this.parsingType3Font) { + args = compileType3Glyph(imgData); + if (args) { + operatorList.addImageOps(OPS.constructPath, args, optionalContent); + return; + } + warn("Cannot compile Type3 glyph."); + operatorList.addImageOps(OPS.paintImageMaskXObject, [imgData], optionalContent); + return; + } + const objId = `mask_${this.idFactory.createObjId()}`; + operatorList.addDependency(objId); + imgData.dataLen = imgData.bitmap ? imgData.width * imgData.height * 4 : imgData.data.length; + this._sendImgData(objId, imgData); + fn = OPS.paintImageMaskXObject; + args = [{ + data: objId, + width: imgData.width, + height: imgData.height, + interpolate: imgData.interpolate, + count: 1 + }]; + operatorList.addImageOps(fn, args, optionalContent); + if (cacheKey) { + const cacheData = { + objId, + fn, + args, + optionalContent + }; + localImageCache.set(cacheKey, imageRef, cacheData); + if (imageRef) { + this._regionalImageCache.set(null, imageRef, cacheData); + } + } + return; + } + const SMALL_IMAGE_DIMENSIONS = 200; + const hasMask = dict.has("SMask") || dict.has("Mask"); + if (isInline && w + h < SMALL_IMAGE_DIMENSIONS && !hasMask) { + try { + const imageObj = new PDFImage({ + xref: this.xref, + res: resources, + image, + isInline, + pdfFunctionFactory: this._pdfFunctionFactory, + globalColorSpaceCache: this.globalColorSpaceCache, + localColorSpaceCache + }); + imgData = await imageObj.createImageData(true, false); + operatorList.addImageOps(OPS.paintInlineImageXObject, [imgData], optionalContent); + } catch (reason) { + const msg = `Unable to decode inline image: "${reason}".`; + if (!ignoreErrors) { + throw new Error(msg); + } + warn(msg); + } + return; + } + let objId = `img_${this.idFactory.createObjId()}`, + cacheGlobally = false, + globalCacheData = null; + if (this.parsingType3Font) { + objId = `${this.idFactory.getDocId()}_type3_${objId}`; + } else if (cacheKey && imageRef) { + cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex); + if (cacheGlobally) { + assert(!isInline, "Cannot cache an inline image globally."); + objId = `${this.idFactory.getDocId()}_${objId}`; + } + } + operatorList.addDependency(objId); + fn = OPS.paintImageXObject; + args = [objId, w, h]; + operatorList.addImageOps(fn, args, optionalContent, hasMask); + if (cacheGlobally) { + globalCacheData = { + objId, + fn, + args, + optionalContent, + hasMask, + byteSize: 0 + }; + if (this.globalImageCache.hasDecodeFailed(imageRef)) { + this.globalImageCache.setData(imageRef, globalCacheData); + this._sendImgData(objId, null, cacheGlobally); + return; + } + if (w * h > 250000 || hasMask) { + const localLength = await this.handler.sendWithPromise("commonobj", [objId, "CopyLocalImage", { + imageRef + }]); + if (localLength) { + this.globalImageCache.setData(imageRef, globalCacheData); + this.globalImageCache.addByteSize(imageRef, localLength); + return; + } + } + } + PDFImage.buildImage({ + xref: this.xref, + res: resources, + image, + isInline, + pdfFunctionFactory: this._pdfFunctionFactory, + globalColorSpaceCache: this.globalColorSpaceCache, + localColorSpaceCache + }).then(async imageObj => { + imgData = await imageObj.createImageData(false, isOffscreenCanvasSupported); + imgData.dataLen = imgData.bitmap ? imgData.width * imgData.height * 4 : imgData.data.length; + imgData.ref = imageRef; + if (cacheGlobally) { + this.globalImageCache.addByteSize(imageRef, imgData.dataLen); + } + return this._sendImgData(objId, imgData, cacheGlobally); + }).catch(reason => { + warn(`Unable to decode image "${objId}": "${reason}".`); + if (imageRef) { + this.globalImageCache.addDecodeFailed(imageRef); + } + return this._sendImgData(objId, null, cacheGlobally); + }); + if (cacheKey) { + const cacheData = { + objId, + fn, + args, + optionalContent, + hasMask + }; + localImageCache.set(cacheKey, imageRef, cacheData); + if (imageRef) { + this._regionalImageCache.set(null, imageRef, cacheData); + if (cacheGlobally) { + assert(globalCacheData, "The global cache-data must be available."); + this.globalImageCache.setData(imageRef, globalCacheData); + } + } + } + } + handleSMask(smask, resources, operatorList, task, stateManager, localColorSpaceCache, seenRefs) { + const smaskContent = smask.get("G"); + const smaskOptions = { + subtype: smask.get("S").name, + backdrop: smask.get("BC") + }; + const transferObj = smask.get("TR"); + if (isPDFFunction(transferObj)) { + const transferFn = this._pdfFunctionFactory.create(transferObj); + const transferMap = new Uint8Array(256); + const tmp = new Float32Array(1); + for (let i = 0; i < 256; i++) { + tmp[0] = i / 255; + transferFn(tmp, 0, tmp, 0); + transferMap[i] = tmp[0] * 255 | 0; + } + smaskOptions.transferMap = transferMap; + } + return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone({ + newPath: true + }), localColorSpaceCache, seenRefs); + } + handleTransferFunction(tr) { + let transferArray; + if (Array.isArray(tr)) { + transferArray = tr; + } else if (isPDFFunction(tr)) { + transferArray = [tr]; + } else { + return null; + } + const transferMaps = []; + let numFns = 0, + numEffectfulFns = 0; + for (const entry of transferArray) { + const transferObj = this.xref.fetchIfRef(entry); + numFns++; + if (isName(transferObj, "Identity")) { + transferMaps.push(null); + continue; + } else if (!isPDFFunction(transferObj)) { + return null; + } + const transferFn = this._pdfFunctionFactory.create(transferObj); + const transferMap = new Uint8Array(256), + tmp = new Float32Array(1); + for (let j = 0; j < 256; j++) { + tmp[0] = j / 255; + transferFn(tmp, 0, tmp, 0); + transferMap[j] = tmp[0] * 255 | 0; + } + transferMaps.push(transferMap); + numEffectfulFns++; + } + if (!(numFns === 1 || numFns === 4)) { + return null; + } + if (numEffectfulFns === 0) { + return null; + } + return transferMaps; + } + handleTilingType(fn, color, resources, pattern, patternDict, operatorList, task, localTilingPatternCache) { + const tilingOpList = new OperatorList(); + const patternResources = Dict.merge({ + xref: this.xref, + dictArray: [patternDict.get("Resources"), resources] + }); + return this.getOperatorList({ + stream: pattern, + task, + resources: patternResources, + operatorList: tilingOpList + }).then(function () { + const operatorListIR = tilingOpList.getIR(); + const tilingPatternIR = getTilingPatternIR(operatorListIR, patternDict, color); + operatorList.addDependencies(tilingOpList.dependencies); + operatorList.addOp(fn, tilingPatternIR); + if (patternDict.objId) { + localTilingPatternCache.set(null, patternDict.objId, { + operatorListIR, + dict: patternDict + }); + } + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (this.options.ignoreErrors) { + warn(`handleTilingType - ignoring pattern: "${reason}".`); + return; + } + throw reason; + }); + } + async handleSetFont(resources, fontArgs, fontRef, operatorList, task, state, fallbackFontDict = null, cssFontInfo = null) { + const fontName = fontArgs?.[0] instanceof Name ? fontArgs[0].name : null; + const translated = await this.loadFont(fontName, fontRef, resources, task, fallbackFontDict, cssFontInfo); + if (translated.font.isType3Font) { + operatorList.addDependencies(translated.type3Dependencies); + } + state.font = translated.font; + translated.send(this.handler); + return translated.loadedName; + } + handleText(chars, state) { + const font = state.font; + const glyphs = font.charsToGlyphs(chars); + if (font.data) { + const isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG); + if (isAddToPathSet || state.fillColorSpace.name === "Pattern" || font.disableFontFace) { + PartialEvaluator.buildFontPaths(font, glyphs, this.handler, this.options); + } + } + return glyphs; + } + ensureStateFont(state) { + if (state.font) { + return; + } + const reason = new FormatError("Missing setFont (Tf) operator before text rendering operator."); + if (this.options.ignoreErrors) { + warn(`ensureStateFont: "${reason}".`); + return; + } + throw reason; + } + async setGState({ + resources, + gState, + operatorList, + cacheKey, + task, + stateManager, + localGStateCache, + localColorSpaceCache, + seenRefs + }) { + const gStateRef = gState.objId; + let isSimpleGState = true; + const gStateObj = []; + let promise = Promise.resolve(); + for (const [key, value] of gState) { + switch (key) { + case "Type": + break; + case "LW": + if (typeof value !== "number") { + warn(`Invalid LW (line width): ${value}`); + break; + } + gStateObj.push([key, Math.abs(value)]); + break; + case "LC": + case "LJ": + case "ML": + case "D": + case "RI": + case "FL": + case "CA": + case "ca": + gStateObj.push([key, value]); + break; + case "Font": + isSimpleGState = false; + promise = promise.then(() => this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { + operatorList.addDependency(loadedName); + gStateObj.push([key, [loadedName, value[1]]]); + })); + break; + case "BM": + gStateObj.push([key, normalizeBlendMode(value)]); + break; + case "SMask": + if (isName(value, "None")) { + gStateObj.push([key, false]); + break; + } + if (value instanceof Dict) { + isSimpleGState = false; + promise = promise.then(() => this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache, seenRefs)); + gStateObj.push([key, true]); + } else { + warn("Unsupported SMask type"); + } + break; + case "TR": + const transferMaps = this.handleTransferFunction(value); + gStateObj.push([key, transferMaps]); + break; + case "OP": + case "op": + case "OPM": + case "BG": + case "BG2": + case "UCR": + case "UCR2": + case "TR2": + case "HT": + case "SM": + case "SA": + case "AIS": + case "TK": + info("graphic state operator " + key); + break; + default: + info("Unknown graphic state operator " + key); + break; + } + } + await promise; + if (gStateObj.length > 0) { + operatorList.addOp(OPS.setGState, [gStateObj]); + } + if (isSimpleGState) { + localGStateCache.set(cacheKey, gStateRef, gStateObj); + } + } + loadFont(fontName, font, resources, task, fallbackFontDict = null, cssFontInfo = null) { + const errorFont = async () => new TranslatedFont({ + loadedName: "g_font_error", + font: new ErrorFont(`Font "${fontName}" is not available.`), + dict: font + }); + let fontRef; + if (font) { + if (font instanceof Ref) { + fontRef = font; + } + } else { + const fontRes = resources.get("Font"); + if (fontRes) { + fontRef = fontRes.getRaw(fontName); + } + } + if (fontRef) { + if (this.type3FontRefs?.has(fontRef)) { + return errorFont(); + } + if (this.fontCache.has(fontRef)) { + return this.fontCache.get(fontRef); + } + try { + font = this.xref.fetchIfRef(fontRef); + } catch (ex) { + warn(`loadFont - lookup failed: "${ex}".`); + } + } + if (!(font instanceof Dict)) { + if (!this.options.ignoreErrors && !this.parsingType3Font) { + warn(`Font "${fontName}" is not available.`); + return errorFont(); + } + warn(`Font "${fontName}" is not available -- attempting to fallback to a default font.`); + font = fallbackFontDict || PartialEvaluator.fallbackFontDict; + } + if (font.cacheKey && this.fontCache.has(font.cacheKey)) { + return this.fontCache.get(font.cacheKey); + } + const { + promise, + resolve + } = Promise.withResolvers(); + let preEvaluatedFont; + try { + preEvaluatedFont = this.preEvaluateFont(font); + preEvaluatedFont.cssFontInfo = cssFontInfo; + } catch (reason) { + warn(`loadFont - preEvaluateFont failed: "${reason}".`); + return errorFont(); + } + const { + descriptor, + hash + } = preEvaluatedFont; + const fontRefIsRef = fontRef instanceof Ref; + let fontID; + if (hash && descriptor instanceof Dict) { + const fontAliases = descriptor.fontAliases ||= Object.create(null); + if (fontAliases[hash]) { + const aliasFontRef = fontAliases[hash].aliasRef; + if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) { + this.fontCache.putAlias(fontRef, aliasFontRef); + return this.fontCache.get(fontRef); + } + } else { + fontAliases[hash] = { + fontID: this.idFactory.createFontId() + }; + } + if (fontRefIsRef) { + fontAliases[hash].aliasRef = fontRef; + } + fontID = fontAliases[hash].fontID; + } else { + fontID = this.idFactory.createFontId(); + } + assert(fontID?.startsWith("f"), 'The "fontID" must be (correctly) defined.'); + if (fontRefIsRef) { + this.fontCache.put(fontRef, promise); + } else { + font.cacheKey = `cacheKey_${fontID}`; + this.fontCache.put(font.cacheKey, promise); + } + font.loadedName = `${this.idFactory.getDocId()}_${fontID}`; + this.translateFont(preEvaluatedFont).then(async translatedFont => { + const translated = new TranslatedFont({ + loadedName: font.loadedName, + font: translatedFont, + dict: font + }); + if (translatedFont.isType3Font) { + try { + await translated.loadType3Data(this, resources, task); + } catch (reason) { + throw new Error(`Type3 font load error: ${reason}`); + } + } + resolve(translated); + }).catch(reason => { + warn(`loadFont - translateFont failed: "${reason}".`); + resolve(new TranslatedFont({ + loadedName: font.loadedName, + font: new ErrorFont(reason?.message), + dict: font + })); + }); + return promise; + } + buildPath(fn, args, state) { + const { + pathMinMax: minMax, + pathBuffer + } = state; + switch (fn | 0) { + case OPS.rectangle: + { + const x = state.currentPointX = args[0]; + const y = state.currentPointY = args[1]; + const width = args[2]; + const height = args[3]; + const xw = x + width; + const yh = y + height; + if (width === 0 || height === 0) { + pathBuffer.push(DrawOPS.moveTo, x, y, DrawOPS.lineTo, xw, yh, DrawOPS.closePath); + } else { + pathBuffer.push(DrawOPS.moveTo, x, y, DrawOPS.lineTo, xw, y, DrawOPS.lineTo, xw, yh, DrawOPS.lineTo, x, yh, DrawOPS.closePath); + } + Util.rectBoundingBox(x, y, xw, yh, minMax); + break; + } + case OPS.moveTo: + { + const x = state.currentPointX = args[0]; + const y = state.currentPointY = args[1]; + pathBuffer.push(DrawOPS.moveTo, x, y); + Util.pointBoundingBox(x, y, minMax); + break; + } + case OPS.lineTo: + { + const x = state.currentPointX = args[0]; + const y = state.currentPointY = args[1]; + pathBuffer.push(DrawOPS.lineTo, x, y); + Util.pointBoundingBox(x, y, minMax); + break; + } + case OPS.curveTo: + { + const startX = state.currentPointX; + const startY = state.currentPointY; + const [x1, y1, x2, y2, x, y] = args; + state.currentPointX = x; + state.currentPointY = y; + pathBuffer.push(DrawOPS.curveTo, x1, y1, x2, y2, x, y); + Util.bezierBoundingBox(startX, startY, x1, y1, x2, y2, x, y, minMax); + break; + } + case OPS.curveTo2: + { + const startX = state.currentPointX; + const startY = state.currentPointY; + const [x1, y1, x, y] = args; + state.currentPointX = x; + state.currentPointY = y; + pathBuffer.push(DrawOPS.curveTo, startX, startY, x1, y1, x, y); + Util.bezierBoundingBox(startX, startY, startX, startY, x1, y1, x, y, minMax); + break; + } + case OPS.curveTo3: + { + const startX = state.currentPointX; + const startY = state.currentPointY; + const [x1, y1, x, y] = args; + state.currentPointX = x; + state.currentPointY = y; + pathBuffer.push(DrawOPS.curveTo, x1, y1, x, y, x, y); + Util.bezierBoundingBox(startX, startY, x1, y1, x, y, x, y, minMax); + break; + } + case OPS.closePath: + pathBuffer.push(DrawOPS.closePath); + break; + } + } + _getColorSpace(cs, resources, localColorSpaceCache) { + return ColorSpaceUtils.parse({ + cs, + xref: this.xref, + resources, + pdfFunctionFactory: this._pdfFunctionFactory, + globalColorSpaceCache: this.globalColorSpaceCache, + localColorSpaceCache, + asyncIfNotCached: true + }); + } + async _handleColorSpace(csPromise) { + try { + return await csPromise; + } catch (ex) { + if (ex instanceof AbortException) { + return null; + } + if (this.options.ignoreErrors) { + warn(`_handleColorSpace - ignoring ColorSpace: "${ex}".`); + return null; + } + throw ex; + } + } + parseShading({ + shading, + resources, + localColorSpaceCache, + localShadingPatternCache + }) { + let id = localShadingPatternCache.get(shading); + if (id) { + return id; + } + let patternIR; + try { + const shadingFill = Pattern.parseShading(shading, this.xref, resources, this._pdfFunctionFactory, this.globalColorSpaceCache, localColorSpaceCache); + patternIR = shadingFill.getIR(); + } catch (reason) { + if (reason instanceof AbortException) { + return null; + } + if (this.options.ignoreErrors) { + warn(`parseShading - ignoring shading: "${reason}".`); + localShadingPatternCache.set(shading, null); + return null; + } + throw reason; + } + id = `pattern_${this.idFactory.createObjId()}`; + if (this.parsingType3Font) { + id = `${this.idFactory.getDocId()}_type3_${id}`; + } + localShadingPatternCache.set(shading, id); + if (this.parsingType3Font) { + this.handler.send("commonobj", [id, "Pattern", patternIR]); + } else { + this.handler.send("obj", [id, this.pageIndex, "Pattern", patternIR]); + } + return id; + } + handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache) { + const patternName = args.pop(); + if (patternName instanceof Name) { + const rawPattern = patterns.getRaw(patternName.name); + const localTilingPattern = rawPattern instanceof Ref && localTilingPatternCache.getByRef(rawPattern); + if (localTilingPattern) { + try { + const color = cs.base ? cs.base.getRgbHex(args, 0) : null; + const tilingPatternIR = getTilingPatternIR(localTilingPattern.operatorListIR, localTilingPattern.dict, color); + operatorList.addOp(fn, tilingPatternIR); + return undefined; + } catch {} + } + const pattern = this.xref.fetchIfRef(rawPattern); + if (pattern) { + const dict = pattern instanceof BaseStream ? pattern.dict : pattern; + const typeNum = dict.get("PatternType"); + if (typeNum === PatternType.TILING) { + const color = cs.base ? cs.base.getRgbHex(args, 0) : null; + return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task, localTilingPatternCache); + } else if (typeNum === PatternType.SHADING) { + const shading = dict.get("Shading"); + const objId = this.parseShading({ + shading, + resources, + localColorSpaceCache, + localShadingPatternCache + }); + if (objId) { + const matrix = lookupMatrix(dict.getArray("Matrix"), null); + operatorList.addOp(fn, ["Shading", objId, matrix]); + } + return undefined; + } + throw new FormatError(`Unknown PatternType: ${typeNum}`); + } + } + throw new FormatError(`Unknown PatternName: ${patternName}`); + } + _parseVisibilityExpression(array, nestingCounter, currentResult) { + const MAX_NESTING = 10; + if (++nestingCounter > MAX_NESTING) { + warn("Visibility expression is too deeply nested"); + return; + } + const length = array.length; + const operator = this.xref.fetchIfRef(array[0]); + if (length < 2 || !(operator instanceof Name)) { + warn("Invalid visibility expression"); + return; + } + switch (operator.name) { + case "And": + case "Or": + case "Not": + currentResult.push(operator.name); + break; + default: + warn(`Invalid operator ${operator.name} in visibility expression`); + return; + } + for (let i = 1; i < length; i++) { + const raw = array[i]; + const object = this.xref.fetchIfRef(raw); + if (Array.isArray(object)) { + const nestedResult = []; + currentResult.push(nestedResult); + this._parseVisibilityExpression(object, nestingCounter, nestedResult); + } else if (raw instanceof Ref) { + currentResult.push(raw.toString()); + } + } + } + async parseMarkedContentProps(contentProperties, resources) { + let optionalContent; + if (contentProperties instanceof Name) { + const properties = resources.get("Properties"); + optionalContent = properties.get(contentProperties.name); + } else if (contentProperties instanceof Dict) { + optionalContent = contentProperties; + } else { + throw new FormatError("Optional content properties malformed."); + } + const optionalContentType = optionalContent.get("Type")?.name; + if (optionalContentType === "OCG") { + return { + type: optionalContentType, + id: optionalContent.objId + }; + } else if (optionalContentType === "OCMD") { + const expression = optionalContent.get("VE"); + if (Array.isArray(expression)) { + const result = []; + this._parseVisibilityExpression(expression, 0, result); + if (result.length > 0) { + return { + type: "OCMD", + expression: result + }; + } + } + const optionalContentGroups = optionalContent.get("OCGs"); + if (Array.isArray(optionalContentGroups) || optionalContentGroups instanceof Dict) { + const groupIds = []; + if (Array.isArray(optionalContentGroups)) { + for (const ocg of optionalContentGroups) { + groupIds.push(ocg.toString()); + } + } else { + groupIds.push(optionalContentGroups.objId); + } + return { + type: optionalContentType, + ids: groupIds, + policy: optionalContent.get("P") instanceof Name ? optionalContent.get("P").name : null, + expression: null + }; + } else if (optionalContentGroups instanceof Ref) { + return { + type: optionalContentType, + id: optionalContentGroups.toString() + }; + } + } + return null; + } + getOperatorList({ + stream, + task, + resources, + operatorList, + initialState = null, + fallbackFontDict = null, + prevRefs = null + }) { + const objId = stream.dict?.objId; + const seenRefs = new RefSet(prevRefs); + if (objId) { + if (prevRefs?.has(objId)) { + throw new Error(`getOperatorList - ignoring circular reference: ${objId}`); + } + seenRefs.put(objId); + } + resources ||= Dict.empty; + initialState ||= new EvalState(); + if (!operatorList) { + throw new Error('getOperatorList: missing "operatorList" parameter'); + } + const self = this; + const xref = this.xref; + const localImageCache = new LocalImageCache(); + const localColorSpaceCache = new LocalColorSpaceCache(); + const localGStateCache = new LocalGStateCache(); + const localTilingPatternCache = new LocalTilingPatternCache(); + const localShadingPatternCache = new Map(); + const xobjs = resources.get("XObject") || Dict.empty; + const patterns = resources.get("Pattern") || Dict.empty; + const stateManager = new StateManager(initialState); + const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + const timeSlotManager = new TimeSlotManager(); + function closePendingRestoreOPS(argument) { + for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) { + operatorList.addOp(OPS.restore, []); + } + } + return new Promise(function promiseBody(resolve, reject) { + const next = function (promise) { + Promise.all([promise, operatorList.ready]).then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + task.ensureNotTerminated(); + timeSlotManager.reset(); + const operation = {}; + let stop, i, ii, cs, name, isValidName; + while (!(stop = timeSlotManager.check())) { + operation.args = null; + if (!preprocessor.read(operation)) { + break; + } + let args = operation.args; + let fn = operation.fn; + switch (fn | 0) { + case OPS.paintXObject: + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName) { + const localImage = localImageCache.getByName(name); + if (localImage) { + addCachedImageOps(operatorList, localImage); + args = null; + continue; + } + } + next(new Promise(function (resolveXObject, rejectXObject) { + if (!isValidName) { + throw new FormatError("XObject must be referred to by name."); + } + let xobj = xobjs.getRaw(name); + if (xobj instanceof Ref) { + const cachedImage = localImageCache.getByRef(xobj) || self._regionalImageCache.getByRef(xobj) || self.globalImageCache.getData(xobj, self.pageIndex); + if (cachedImage) { + addCachedImageOps(operatorList, cachedImage); + resolveXObject(); + return; + } + xobj = xref.fetch(xobj); + } + if (!(xobj instanceof BaseStream)) { + throw new FormatError("XObject should be a stream"); + } + const type = xobj.dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("XObject should have a Name subtype"); + } + if (type.name === "Form") { + stateManager.save(); + self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone({ + newPath: true + }), localColorSpaceCache, seenRefs).then(function () { + stateManager.restore(); + resolveXObject(); + }, rejectXObject); + return; + } else if (type.name === "Image") { + self.buildPaintImageXObject({ + resources, + image: xobj, + operatorList, + cacheKey: name, + localImageCache, + localColorSpaceCache + }).then(resolveXObject, rejectXObject); + return; + } else if (type.name === "PS") { + info("Ignored XObject subtype PS"); + } else { + throw new FormatError(`Unhandled XObject subtype ${type.name}`); + } + resolveXObject(); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring XObject: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.setFont: + const fontSize = args[1]; + next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state, fallbackFontDict).then(function (loadedName) { + operatorList.addDependency(loadedName); + operatorList.addOp(OPS.setFont, [loadedName, fontSize]); + })); + return; + case OPS.endInlineImage: + const cacheKey = args[0].cacheKey; + if (cacheKey) { + const localImage = localImageCache.getByName(cacheKey); + if (localImage) { + addCachedImageOps(operatorList, localImage); + args = null; + continue; + } + } + next(self.buildPaintImageXObject({ + resources, + image: args[0], + isInline: true, + operatorList, + cacheKey, + localImageCache, + localColorSpaceCache + })); + return; + case OPS.showText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + args[0] = self.handleText(args[0], stateManager.state); + break; + case OPS.showSpacedText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + const combinedGlyphs = [], + state = stateManager.state; + for (const arrItem of args[0]) { + if (typeof arrItem === "string") { + combinedGlyphs.push(...self.handleText(arrItem, state)); + } else if (typeof arrItem === "number") { + combinedGlyphs.push(arrItem); + } + } + args[0] = combinedGlyphs; + fn = OPS.showText; + break; + case OPS.nextLineShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + operatorList.addOp(OPS.nextLine); + args[0] = self.handleText(args[0], stateManager.state); + fn = OPS.showText; + break; + case OPS.nextLineSetSpacingShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + operatorList.addOp(OPS.nextLine); + operatorList.addOp(OPS.setWordSpacing, [args.shift()]); + operatorList.addOp(OPS.setCharSpacing, [args.shift()]); + args[0] = self.handleText(args[0], stateManager.state); + fn = OPS.showText; + break; + case OPS.setTextRenderingMode: + stateManager.state.textRenderingMode = args[0]; + break; + case OPS.setFillColorSpace: + { + const fillCS = self._getColorSpace(args[0], resources, localColorSpaceCache); + if (fillCS instanceof ColorSpace) { + stateManager.state.fillColorSpace = fillCS; + continue; + } + next(self._handleColorSpace(fillCS).then(colorSpace => { + stateManager.state.fillColorSpace = colorSpace || ColorSpaceUtils.gray; + })); + return; + } + case OPS.setStrokeColorSpace: + { + const strokeCS = self._getColorSpace(args[0], resources, localColorSpaceCache); + if (strokeCS instanceof ColorSpace) { + stateManager.state.strokeColorSpace = strokeCS; + continue; + } + next(self._handleColorSpace(strokeCS).then(colorSpace => { + stateManager.state.strokeColorSpace = colorSpace || ColorSpaceUtils.gray; + })); + return; + } + case OPS.setFillColor: + cs = stateManager.state.fillColorSpace; + args = [cs.getRgbHex(args, 0)]; + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeColor: + cs = stateManager.state.strokeColorSpace; + args = [cs.getRgbHex(args, 0)]; + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillGray: + stateManager.state.fillColorSpace = ColorSpaceUtils.gray; + args = [ColorSpaceUtils.gray.getRgbHex(args, 0)]; + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeGray: + stateManager.state.strokeColorSpace = ColorSpaceUtils.gray; + args = [ColorSpaceUtils.gray.getRgbHex(args, 0)]; + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillCMYKColor: + stateManager.state.fillColorSpace = ColorSpaceUtils.cmyk; + args = [ColorSpaceUtils.cmyk.getRgbHex(args, 0)]; + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeCMYKColor: + stateManager.state.strokeColorSpace = ColorSpaceUtils.cmyk; + args = [ColorSpaceUtils.cmyk.getRgbHex(args, 0)]; + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillRGBColor: + stateManager.state.fillColorSpace = ColorSpaceUtils.rgb; + args = [ColorSpaceUtils.rgb.getRgbHex(args, 0)]; + break; + case OPS.setStrokeRGBColor: + stateManager.state.strokeColorSpace = ColorSpaceUtils.rgb; + args = [ColorSpaceUtils.rgb.getRgbHex(args, 0)]; + break; + case OPS.setFillColorN: + cs = stateManager.state.patternFillColorSpace; + if (!cs) { + if (isNumberArray(args, null)) { + args = [ColorSpaceUtils.gray.getRgbHex(args, 0)]; + fn = OPS.setFillRGBColor; + break; + } + args = []; + fn = OPS.setFillTransparent; + break; + } + if (cs.name === "Pattern") { + next(self.handleColorN(operatorList, OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache)); + return; + } + args = [cs.getRgbHex(args, 0)]; + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeColorN: + cs = stateManager.state.patternStrokeColorSpace; + if (!cs) { + if (isNumberArray(args, null)) { + args = [ColorSpaceUtils.gray.getRgbHex(args, 0)]; + fn = OPS.setStrokeRGBColor; + break; + } + args = []; + fn = OPS.setStrokeTransparent; + break; + } + if (cs.name === "Pattern") { + next(self.handleColorN(operatorList, OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache)); + return; + } + args = [cs.getRgbHex(args, 0)]; + fn = OPS.setStrokeRGBColor; + break; + case OPS.shadingFill: + let shading; + try { + const shadingRes = resources.get("Shading"); + if (!shadingRes) { + throw new FormatError("No shading resource found"); + } + shading = shadingRes.get(args[0].name); + if (!shading) { + throw new FormatError("No shading object found"); + } + } catch (reason) { + if (reason instanceof AbortException) { + continue; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring Shading: "${reason}".`); + continue; + } + throw reason; + } + const patternId = self.parseShading({ + shading, + resources, + localColorSpaceCache, + localShadingPatternCache + }); + if (!patternId) { + continue; + } + args = [patternId]; + fn = OPS.shadingFill; + break; + case OPS.setGState: + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName) { + const localGStateObj = localGStateCache.getByName(name); + if (localGStateObj) { + if (localGStateObj.length > 0) { + operatorList.addOp(OPS.setGState, [localGStateObj]); + } + args = null; + continue; + } + } + next(new Promise(function (resolveGState, rejectGState) { + if (!isValidName) { + throw new FormatError("GState must be referred to by name."); + } + const extGState = resources.get("ExtGState"); + if (!(extGState instanceof Dict)) { + throw new FormatError("ExtGState should be a dictionary."); + } + const gState = extGState.get(name); + if (!(gState instanceof Dict)) { + throw new FormatError("GState should be a dictionary."); + } + self.setGState({ + resources, + gState, + operatorList, + cacheKey: name, + task, + stateManager, + localGStateCache, + localColorSpaceCache, + seenRefs + }).then(resolveGState, rejectGState); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring ExtGState: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.setLineWidth: + { + const [thickness] = args; + if (typeof thickness !== "number") { + warn(`Invalid setLineWidth: ${thickness}`); + continue; + } + args[0] = Math.abs(thickness); + break; + } + case OPS.moveTo: + case OPS.lineTo: + case OPS.curveTo: + case OPS.curveTo2: + case OPS.curveTo3: + case OPS.closePath: + case OPS.rectangle: + self.buildPath(fn, args, stateManager.state); + continue; + case OPS.stroke: + case OPS.closeStroke: + case OPS.fill: + case OPS.eoFill: + case OPS.fillStroke: + case OPS.eoFillStroke: + case OPS.closeFillStroke: + case OPS.closeEOFillStroke: + case OPS.endPath: + { + const { + state: { + pathBuffer, + pathMinMax + } + } = stateManager; + if (fn === OPS.closeStroke || fn === OPS.closeFillStroke || fn === OPS.closeEOFillStroke) { + pathBuffer.push(DrawOPS.closePath); + } + if (pathBuffer.length === 0) { + operatorList.addOp(OPS.constructPath, [fn, [null], null]); + } else { + operatorList.addOp(OPS.constructPath, [fn, [new Float32Array(pathBuffer)], pathMinMax.slice()]); + pathBuffer.length = 0; + pathMinMax.set([Infinity, Infinity, -Infinity, -Infinity], 0); + } + continue; + } + case OPS.setTextMatrix: + operatorList.addOp(fn, [new Float32Array(args)]); + continue; + case OPS.markPoint: + case OPS.markPointProps: + case OPS.beginCompat: + case OPS.endCompat: + continue; + case OPS.beginMarkedContentProps: + if (!(args[0] instanceof Name)) { + warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`); + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", null]); + continue; + } + if (args[0].name === "OC") { + next(self.parseMarkedContentProps(args[1], resources).then(data => { + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", data]); + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring beginMarkedContentProps: "${reason}".`); + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", null]); + return; + } + throw reason; + })); + return; + } + args = [args[0].name, args[1] instanceof Dict ? args[1].get("MCID") : null]; + break; + case OPS.beginMarkedContent: + case OPS.endMarkedContent: + default: + if (args !== null) { + for (i = 0, ii = args.length; i < ii; i++) { + if (args[i] instanceof Dict) { + break; + } + } + if (i < ii) { + warn("getOperatorList - ignoring operator: " + fn); + continue; + } + } + } + operatorList.addOp(fn, args); + } + if (stop) { + next(deferred); + return; + } + closePendingRestoreOPS(); + resolve(); + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (this.options.ignoreErrors) { + warn(`getOperatorList - ignoring errors during "${task.name}" ` + `task: "${reason}".`); + closePendingRestoreOPS(); + return; + } + throw reason; + }); + } + getTextContent({ + stream, + task, + resources, + stateManager = null, + includeMarkedContent = false, + sink, + seenStyles = new Set(), + viewBox, + lang = null, + markedContentData = null, + disableNormalization = false, + keepWhiteSpace = false, + prevRefs = null, + intersector = null + }) { + const objId = stream.dict?.objId; + const seenRefs = new RefSet(prevRefs); + if (objId) { + if (prevRefs?.has(objId)) { + throw new Error(`getTextContent - ignoring circular reference: ${objId}`); + } + seenRefs.put(objId); + } + resources ||= Dict.empty; + stateManager ||= new StateManager(new TextState()); + if (includeMarkedContent) { + markedContentData ||= { + level: 0 + }; + } + const textContent = { + items: [], + styles: Object.create(null), + lang + }; + const textContentItem = { + initialized: false, + str: [], + totalWidth: 0, + totalHeight: 0, + width: 0, + height: 0, + vertical: false, + prevTransform: null, + textAdvanceScale: 0, + spaceInFlowMin: 0, + spaceInFlowMax: 0, + trackingSpaceMin: Infinity, + negativeSpaceMax: -Infinity, + notASpace: -Infinity, + transform: null, + fontName: null, + hasEOL: false + }; + const twoLastChars = [" ", " "]; + let twoLastCharsPos = 0; + function saveLastChar(char) { + const nextPos = (twoLastCharsPos + 1) % 2; + const ret = twoLastChars[twoLastCharsPos] !== " " && twoLastChars[nextPos] === " "; + twoLastChars[twoLastCharsPos] = char; + twoLastCharsPos = nextPos; + return !keepWhiteSpace && ret; + } + function shouldAddWhitepsace() { + return !keepWhiteSpace && twoLastChars[twoLastCharsPos] !== " " && twoLastChars[(twoLastCharsPos + 1) % 2] === " "; + } + function resetLastChars() { + twoLastChars[0] = twoLastChars[1] = " "; + twoLastCharsPos = 0; + } + const TRACKING_SPACE_FACTOR = 0.102; + const NOT_A_SPACE_FACTOR = 0.03; + const NEGATIVE_SPACE_FACTOR = -0.2; + const SPACE_IN_FLOW_MIN_FACTOR = 0.102; + const SPACE_IN_FLOW_MAX_FACTOR = 0.6; + const VERTICAL_SHIFT_RATIO = 0.25; + const self = this; + const xref = this.xref; + const showSpacedTextBuffer = []; + let xobjs = null; + const emptyXObjectCache = new LocalImageCache(); + const emptyGStateCache = new LocalGStateCache(); + const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + let textState; + function pushWhitespace({ + width = 0, + height = 0, + transform = textContentItem.prevTransform, + fontName = textContentItem.fontName + }) { + intersector?.addExtraChar(" "); + textContent.items.push({ + str: " ", + dir: "ltr", + width, + height, + transform, + fontName, + hasEOL: false + }); + } + function getCurrentTextTransform() { + const font = textState.font; + const tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise]; + if (font.isType3Font && (textState.fontSize <= 1 || font.isCharBBox) && !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)) { + const glyphHeight = font.bbox[3] - font.bbox[1]; + if (glyphHeight > 0) { + tsm[3] *= glyphHeight * textState.fontMatrix[3]; + } + } + return Util.transform(textState.ctm, Util.transform(textState.textMatrix, tsm)); + } + function ensureTextContentItem() { + if (textContentItem.initialized) { + return textContentItem; + } + const { + font, + loadedName + } = textState; + if (!seenStyles.has(loadedName)) { + seenStyles.add(loadedName); + textContent.styles[loadedName] = { + fontFamily: font.fallbackName, + ascent: font.ascent, + descent: font.descent, + vertical: font.vertical + }; + if (self.options.fontExtraProperties && font.systemFontInfo) { + const style = textContent.styles[loadedName]; + style.fontSubstitution = font.systemFontInfo.css; + style.fontSubstitutionLoadedName = font.systemFontInfo.loadedName; + } + } + textContentItem.fontName = loadedName; + const trm = textContentItem.transform = getCurrentTextTransform(); + if (!font.vertical) { + textContentItem.width = textContentItem.totalWidth = 0; + textContentItem.height = textContentItem.totalHeight = Math.hypot(trm[2], trm[3]); + textContentItem.vertical = false; + } else { + textContentItem.width = textContentItem.totalWidth = Math.hypot(trm[0], trm[1]); + textContentItem.height = textContentItem.totalHeight = 0; + textContentItem.vertical = true; + } + const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]); + const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]); + textContentItem.textAdvanceScale = scaleCtmX * scaleLineX; + const { + fontSize + } = textState; + textContentItem.trackingSpaceMin = fontSize * TRACKING_SPACE_FACTOR; + textContentItem.notASpace = fontSize * NOT_A_SPACE_FACTOR; + textContentItem.negativeSpaceMax = fontSize * NEGATIVE_SPACE_FACTOR; + textContentItem.spaceInFlowMin = fontSize * SPACE_IN_FLOW_MIN_FACTOR; + textContentItem.spaceInFlowMax = fontSize * SPACE_IN_FLOW_MAX_FACTOR; + textContentItem.hasEOL = false; + textContentItem.initialized = true; + return textContentItem; + } + function updateAdvanceScale() { + if (!textContentItem.initialized) { + return; + } + const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]); + const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]); + const scaleFactor = scaleCtmX * scaleLineX; + if (scaleFactor === textContentItem.textAdvanceScale) { + return; + } + if (!textContentItem.vertical) { + textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale; + textContentItem.width = 0; + } else { + textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale; + textContentItem.height = 0; + } + textContentItem.textAdvanceScale = scaleFactor; + } + function runBidiTransform(textChunk) { + let text = textChunk.str.join(""); + if (!disableNormalization) { + text = normalizeUnicode(text); + } + const bidiResult = bidi(text, -1, textChunk.vertical); + return { + str: bidiResult.str, + dir: bidiResult.dir, + width: Math.abs(textChunk.totalWidth), + height: Math.abs(textChunk.totalHeight), + transform: textChunk.transform, + fontName: textChunk.fontName, + hasEOL: textChunk.hasEOL + }; + } + async function handleSetFont(fontName, fontRef) { + const translated = await self.loadFont(fontName, fontRef, resources, task); + textState.loadedName = translated.loadedName; + textState.font = translated.font; + textState.fontMatrix = translated.font.fontMatrix || FONT_IDENTITY_MATRIX; + } + function applyInverseRotation(x, y, matrix) { + const scale = Math.hypot(matrix[0], matrix[1]); + return [(matrix[0] * x + matrix[1] * y) / scale, (matrix[2] * x + matrix[3] * y) / scale]; + } + function compareWithLastPosition(glyphWidth) { + const currentTransform = getCurrentTextTransform(); + let posX = currentTransform[4]; + let posY = currentTransform[5]; + if (textState.font?.vertical) { + if (posX < viewBox[0] || posX > viewBox[2] || posY + glyphWidth < viewBox[1] || posY > viewBox[3]) { + return false; + } + } else if (posX + glyphWidth < viewBox[0] || posX > viewBox[2] || posY < viewBox[1] || posY > viewBox[3]) { + return false; + } + if (!textState.font || !textContentItem.prevTransform) { + return true; + } + let lastPosX = textContentItem.prevTransform[4]; + let lastPosY = textContentItem.prevTransform[5]; + if (lastPosX === posX && lastPosY === posY) { + return true; + } + let rotate = -1; + if (currentTransform[0] && currentTransform[1] === 0 && currentTransform[2] === 0) { + rotate = currentTransform[0] > 0 ? 0 : 180; + } else if (currentTransform[1] && currentTransform[0] === 0 && currentTransform[3] === 0) { + rotate = currentTransform[1] > 0 ? 90 : 270; + } + switch (rotate) { + case 0: + break; + case 90: + [posX, posY] = [posY, posX]; + [lastPosX, lastPosY] = [lastPosY, lastPosX]; + break; + case 180: + [posX, posY, lastPosX, lastPosY] = [-posX, -posY, -lastPosX, -lastPosY]; + break; + case 270: + [posX, posY] = [-posY, -posX]; + [lastPosX, lastPosY] = [-lastPosY, -lastPosX]; + break; + default: + [posX, posY] = applyInverseRotation(posX, posY, currentTransform); + [lastPosX, lastPosY] = applyInverseRotation(lastPosX, lastPosY, textContentItem.prevTransform); + } + if (textState.font.vertical) { + const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale; + const advanceX = posX - lastPosX; + const textOrientation = Math.sign(textContentItem.height); + if (advanceY < textOrientation * textContentItem.negativeSpaceMax) { + if (Math.abs(advanceX) > 0.5 * textContentItem.width) { + appendEOL(); + return true; + } + resetLastChars(); + flushTextContentItem(); + return true; + } + if (Math.abs(advanceX) > textContentItem.width) { + appendEOL(); + return true; + } + if (advanceY <= textOrientation * textContentItem.notASpace) { + resetLastChars(); + } + if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) { + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ + height: Math.abs(advanceY) + }); + } else { + textContentItem.height += advanceY; + } + } else if (!addFakeSpaces(advanceY, textContentItem.prevTransform, textOrientation)) { + if (textContentItem.str.length === 0) { + resetLastChars(); + pushWhitespace({ + height: Math.abs(advanceY) + }); + } else { + textContentItem.height += advanceY; + } + } + if (Math.abs(advanceX) > textContentItem.width * VERTICAL_SHIFT_RATIO) { + flushTextContentItem(); + } + return true; + } + const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale; + const advanceY = posY - lastPosY; + const textOrientation = Math.sign(textContentItem.width); + if (advanceX < textOrientation * textContentItem.negativeSpaceMax) { + if (Math.abs(advanceY) > 0.5 * textContentItem.height) { + appendEOL(); + return true; + } + resetLastChars(); + flushTextContentItem(); + return true; + } + if (Math.abs(advanceY) > textContentItem.height) { + appendEOL(); + return true; + } + if (advanceX <= textOrientation * textContentItem.notASpace) { + resetLastChars(); + } + if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) { + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ + width: Math.abs(advanceX) + }); + } else { + textContentItem.width += advanceX; + } + } else if (!addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)) { + if (textContentItem.str.length === 0) { + resetLastChars(); + pushWhitespace({ + width: Math.abs(advanceX) + }); + } else { + textContentItem.width += advanceX; + } + } + if (Math.abs(advanceY) > textContentItem.height * VERTICAL_SHIFT_RATIO) { + flushTextContentItem(); + } + return true; + } + function buildTextContentItem({ + chars, + extraSpacing + }) { + const font = textState.font; + if (!chars) { + const charSpacing = textState.charSpacing + extraSpacing; + if (charSpacing) { + if (!font.vertical) { + textState.translateTextMatrix(charSpacing * textState.textHScale, 0); + } else { + textState.translateTextMatrix(0, -charSpacing); + } + } + if (keepWhiteSpace) { + compareWithLastPosition(0); + } + return; + } + const glyphs = font.charsToGlyphs(chars); + const scale = textState.fontMatrix[0] * textState.fontSize; + for (let i = 0, ii = glyphs.length; i < ii; i++) { + const glyph = glyphs[i]; + const { + category + } = glyph; + if (category.isInvisibleFormatMark) { + continue; + } + let charSpacing = textState.charSpacing + (i + 1 === ii ? extraSpacing : 0); + let glyphWidth = glyph.width; + if (font.vertical) { + glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth; + } + let scaledDim = glyphWidth * scale; + if (!keepWhiteSpace && category.isWhitespace) { + if (!font.vertical) { + charSpacing += scaledDim + textState.wordSpacing; + textState.translateTextMatrix(charSpacing * textState.textHScale, 0); + } else { + charSpacing += -scaledDim + textState.wordSpacing; + textState.translateTextMatrix(0, -charSpacing); + } + saveLastChar(" "); + continue; + } + if (!category.isZeroWidthDiacritic && !compareWithLastPosition(scaledDim)) { + if (!font.vertical) { + textState.translateTextMatrix(scaledDim * textState.textHScale, 0); + } else { + textState.translateTextMatrix(0, scaledDim); + } + continue; + } + const textChunk = ensureTextContentItem(); + if (category.isZeroWidthDiacritic) { + scaledDim = 0; + } + if (!font.vertical) { + scaledDim *= textState.textHScale; + intersector?.addGlyph(getCurrentTextTransform(), scaledDim, 0, glyph.unicode); + textState.translateTextMatrix(scaledDim, 0); + textChunk.width += scaledDim; + } else { + intersector?.addGlyph(getCurrentTextTransform(), 0, scaledDim, glyph.unicode); + textState.translateTextMatrix(0, scaledDim); + scaledDim = Math.abs(scaledDim); + textChunk.height += scaledDim; + } + if (scaledDim) { + textChunk.prevTransform = getCurrentTextTransform(); + } + const glyphUnicode = glyph.unicode; + if (saveLastChar(glyphUnicode)) { + textChunk.str.push(" "); + intersector?.addExtraChar(" "); + } + if (!intersector) { + textChunk.str.push(glyphUnicode); + } + if (charSpacing) { + if (!font.vertical) { + textState.translateTextMatrix(charSpacing * textState.textHScale, 0); + } else { + textState.translateTextMatrix(0, -charSpacing); + } + } + } + } + function appendEOL() { + intersector?.addExtraChar("\n"); + resetLastChars(); + if (textContentItem.initialized) { + textContentItem.hasEOL = true; + flushTextContentItem(); + } else { + textContent.items.push({ + str: "", + dir: "ltr", + width: 0, + height: 0, + transform: getCurrentTextTransform(), + fontName: textState.loadedName, + hasEOL: true + }); + } + } + function addFakeSpaces(width, transf, textOrientation) { + if (textOrientation * textContentItem.spaceInFlowMin <= width && width <= textOrientation * textContentItem.spaceInFlowMax) { + if (textContentItem.initialized) { + resetLastChars(); + textContentItem.str.push(" "); + intersector?.addExtraChar(" "); + } + return false; + } + const fontName = textContentItem.fontName; + let height = 0; + if (textContentItem.vertical) { + height = width; + width = 0; + } + flushTextContentItem(); + resetLastChars(); + pushWhitespace({ + width: Math.abs(width), + height: Math.abs(height), + transform: transf || getCurrentTextTransform(), + fontName + }); + return true; + } + function flushTextContentItem() { + if (!textContentItem.initialized || !textContentItem.str) { + return; + } + if (!textContentItem.vertical) { + textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale; + } else { + textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale; + } + textContent.items.push(runBidiTransform(textContentItem)); + textContentItem.initialized = false; + textContentItem.str.length = 0; + } + function enqueueChunk(batch = false) { + const length = textContent.items.length; + if (length === 0) { + return; + } + if (batch && length < TEXT_CHUNK_BATCH_SIZE) { + return; + } + sink?.enqueue(textContent, length); + textContent.items = []; + textContent.styles = Object.create(null); + } + const timeSlotManager = new TimeSlotManager(); + return new Promise(function promiseBody(resolve, reject) { + const next = function (promise) { + enqueueChunk(true); + Promise.all([promise, sink?.ready]).then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + task.ensureNotTerminated(); + timeSlotManager.reset(); + const operation = {}; + let stop, + name, + isValidName, + args = []; + while (!(stop = timeSlotManager.check())) { + args.length = 0; + operation.args = args; + if (!preprocessor.read(operation)) { + break; + } + const previousState = textState; + textState = stateManager.state; + const fn = operation.fn; + args = operation.args; + switch (fn | 0) { + case OPS.setFont: + const fontNameArg = args[0].name, + fontSizeArg = args[1]; + if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) { + break; + } + flushTextContentItem(); + textState.fontName = fontNameArg; + textState.fontSize = fontSizeArg; + next(handleSetFont(fontNameArg, null)); + return; + case OPS.setTextRise: + textState.textRise = args[0]; + break; + case OPS.setHScale: + textState.textHScale = args[0] / 100; + break; + case OPS.setLeading: + textState.leading = args[0]; + break; + case OPS.moveText: + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + case OPS.setLeadingMoveText: + textState.leading = -args[1]; + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + case OPS.nextLine: + textState.carriageReturn(); + break; + case OPS.setTextMatrix: + textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + updateAdvanceScale(); + break; + case OPS.setCharSpacing: + textState.charSpacing = args[0]; + break; + case OPS.setWordSpacing: + textState.wordSpacing = args[0]; + break; + case OPS.beginText: + textState.textMatrix = IDENTITY_MATRIX.slice(); + textState.textLineMatrix = IDENTITY_MATRIX.slice(); + break; + case OPS.showSpacedText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + const spaceFactor = (textState.font.vertical ? 1 : -1) * textState.fontSize / 1000; + const elements = args[0]; + for (let i = 0, ii = elements.length; i < ii; i++) { + const item = elements[i]; + if (typeof item === "string") { + showSpacedTextBuffer.push(item); + } else if (typeof item === "number" && item !== 0) { + const str = showSpacedTextBuffer.join(""); + showSpacedTextBuffer.length = 0; + buildTextContentItem({ + chars: str, + extraSpacing: item * spaceFactor + }); + } + } + if (showSpacedTextBuffer.length > 0) { + const str = showSpacedTextBuffer.join(""); + showSpacedTextBuffer.length = 0; + buildTextContentItem({ + chars: str, + extraSpacing: 0 + }); + } + break; + case OPS.showText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + buildTextContentItem({ + chars: args[0], + extraSpacing: 0 + }); + break; + case OPS.nextLineShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + textState.carriageReturn(); + buildTextContentItem({ + chars: args[0], + extraSpacing: 0 + }); + break; + case OPS.nextLineSetSpacingShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + textState.wordSpacing = args[0]; + textState.charSpacing = args[1]; + textState.carriageReturn(); + buildTextContentItem({ + chars: args[2], + extraSpacing: 0 + }); + break; + case OPS.paintXObject: + flushTextContentItem(); + xobjs ??= resources.get("XObject") || Dict.empty; + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName && emptyXObjectCache.getByName(name)) { + break; + } + next(new Promise(function (resolveXObject, rejectXObject) { + if (!isValidName) { + throw new FormatError("XObject must be referred to by name."); + } + let xobj = xobjs.getRaw(name); + if (xobj instanceof Ref) { + if (emptyXObjectCache.getByRef(xobj)) { + resolveXObject(); + return; + } + const globalImage = self.globalImageCache.getData(xobj, self.pageIndex); + if (globalImage) { + resolveXObject(); + return; + } + xobj = xref.fetch(xobj); + } + if (!(xobj instanceof BaseStream)) { + throw new FormatError("XObject should be a stream"); + } + const { + dict + } = xobj; + const type = dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("XObject should have a Name subtype"); + } + if (type.name !== "Form") { + emptyXObjectCache.set(name, dict.objId, true); + resolveXObject(); + return; + } + const currentState = stateManager.state.clone(); + const xObjStateManager = new StateManager(currentState); + const matrix = lookupMatrix(dict.getArray("Matrix"), null); + if (matrix) { + xObjStateManager.transform(matrix); + } + const localResources = dict.get("Resources"); + enqueueChunk(); + const sinkWrapper = { + enqueueInvoked: false, + enqueue(chunk, size) { + this.enqueueInvoked = true; + sink.enqueue(chunk, size); + }, + get desiredSize() { + return sink.desiredSize ?? 0; + }, + get ready() { + return sink.ready; + } + }; + self.getTextContent({ + stream: xobj, + task, + resources: localResources instanceof Dict ? localResources : resources, + stateManager: xObjStateManager, + includeMarkedContent, + sink: sink && sinkWrapper, + seenStyles, + viewBox, + lang, + markedContentData, + disableNormalization, + keepWhiteSpace, + prevRefs: seenRefs + }).then(function () { + if (!sinkWrapper.enqueueInvoked) { + emptyXObjectCache.set(name, dict.objId, true); + } + resolveXObject(); + }, rejectXObject); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getTextContent - ignoring XObject: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.setGState: + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName && emptyGStateCache.getByName(name)) { + break; + } + next(new Promise(function (resolveGState, rejectGState) { + if (!isValidName) { + throw new FormatError("GState must be referred to by name."); + } + const extGState = resources.get("ExtGState"); + if (!(extGState instanceof Dict)) { + throw new FormatError("ExtGState should be a dictionary."); + } + const gState = extGState.get(name); + if (!(gState instanceof Dict)) { + throw new FormatError("GState should be a dictionary."); + } + const gStateFont = gState.get("Font"); + if (!gStateFont) { + emptyGStateCache.set(name, gState.objId, true); + resolveGState(); + return; + } + flushTextContentItem(); + textState.fontName = null; + textState.fontSize = gStateFont[1]; + handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getTextContent - ignoring ExtGState: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.beginMarkedContent: + flushTextContentItem(); + if (includeMarkedContent) { + markedContentData.level++; + textContent.items.push({ + type: "beginMarkedContent", + tag: args[0] instanceof Name ? args[0].name : null + }); + } + break; + case OPS.beginMarkedContentProps: + flushTextContentItem(); + if (includeMarkedContent) { + markedContentData.level++; + let mcid = null; + if (args[1] instanceof Dict) { + mcid = args[1].get("MCID"); + } + textContent.items.push({ + type: "beginMarkedContentProps", + id: Number.isInteger(mcid) ? `${self.idFactory.getPageObjId()}_mc${mcid}` : null, + tag: args[0] instanceof Name ? args[0].name : null + }); + } + break; + case OPS.endMarkedContent: + flushTextContentItem(); + if (includeMarkedContent) { + if (markedContentData.level === 0) { + break; + } + markedContentData.level--; + textContent.items.push({ + type: "endMarkedContent" + }); + } + break; + case OPS.restore: + if (previousState && (previousState.font !== textState.font || previousState.fontSize !== textState.fontSize || previousState.fontName !== textState.fontName)) { + flushTextContentItem(); + } + break; + } + if (textContent.items.length >= (sink?.desiredSize ?? 1)) { + stop = true; + break; + } + } + if (stop) { + next(deferred); + return; + } + flushTextContentItem(); + enqueueChunk(); + resolve(); + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (this.options.ignoreErrors) { + warn(`getTextContent - ignoring errors during "${task.name}" ` + `task: "${reason}".`); + flushTextContentItem(); + enqueueChunk(); + return; + } + throw reason; + }); + } + async extractDataStructures(dict, properties) { + const xref = this.xref; + let cidToGidBytes; + const toUnicodePromise = this.readToUnicode(properties.toUnicode); + if (properties.composite) { + const cidSystemInfo = dict.get("CIDSystemInfo"); + if (cidSystemInfo instanceof Dict) { + properties.cidSystemInfo = { + registry: stringToPDFString(cidSystemInfo.get("Registry")), + ordering: stringToPDFString(cidSystemInfo.get("Ordering")), + supplement: cidSystemInfo.get("Supplement") + }; + } + try { + const cidToGidMap = dict.get("CIDToGIDMap"); + if (cidToGidMap instanceof BaseStream) { + cidToGidBytes = cidToGidMap.getBytes(); + } + } catch (ex) { + if (!this.options.ignoreErrors) { + throw ex; + } + warn(`extractDataStructures - ignoring CIDToGIDMap data: "${ex}".`); + } + } + const differences = []; + let baseEncodingName = null; + let encoding; + if (dict.has("Encoding")) { + encoding = dict.get("Encoding"); + if (encoding instanceof Dict) { + baseEncodingName = encoding.get("BaseEncoding"); + baseEncodingName = baseEncodingName instanceof Name ? baseEncodingName.name : null; + if (encoding.has("Differences")) { + const diffEncoding = encoding.get("Differences"); + let index = 0; + for (const entry of diffEncoding) { + const data = xref.fetchIfRef(entry); + if (typeof data === "number") { + index = data; + } else if (data instanceof Name) { + differences[index++] = data.name; + } else { + throw new FormatError(`Invalid entry in 'Differences' array: ${data}`); + } + } + } + } else if (encoding instanceof Name) { + baseEncodingName = encoding.name; + } else { + const msg = "Encoding is not a Name nor a Dict"; + if (!this.options.ignoreErrors) { + throw new FormatError(msg); + } + warn(msg); + } + if (baseEncodingName !== "MacRomanEncoding" && baseEncodingName !== "MacExpertEncoding" && baseEncodingName !== "WinAnsiEncoding") { + baseEncodingName = null; + } + } + const nonEmbeddedFont = !properties.file || properties.isInternalFont, + isSymbolsFontName = getSymbolsFonts()[properties.name]; + if (baseEncodingName && nonEmbeddedFont && isSymbolsFontName) { + baseEncodingName = null; + } + if (baseEncodingName) { + properties.defaultEncoding = getEncoding(baseEncodingName); + } else { + const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic); + encoding = StandardEncoding; + if (properties.type === "TrueType" && !isNonsymbolicFont) { + encoding = WinAnsiEncoding; + } + if (isSymbolicFont || isSymbolsFontName) { + encoding = MacRomanEncoding; + if (nonEmbeddedFont) { + if (/Symbol/i.test(properties.name)) { + encoding = SymbolSetEncoding; + } else if (/Dingbats/i.test(properties.name)) { + encoding = ZapfDingbatsEncoding; + } else if (/Wingdings/i.test(properties.name)) { + encoding = WinAnsiEncoding; + } + } + } + properties.defaultEncoding = encoding; + } + properties.differences = differences; + properties.baseEncodingName = baseEncodingName; + properties.hasEncoding = !!baseEncodingName || differences.length > 0; + properties.dict = dict; + properties.toUnicode = await toUnicodePromise; + const builtToUnicode = await this.buildToUnicode(properties); + properties.toUnicode = builtToUnicode; + if (cidToGidBytes) { + properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode); + } + return properties; + } + _simpleFontToUnicode(properties, forceGlyphs = false) { + assert(!properties.composite, "Must be a simple font."); + const toUnicode = []; + const encoding = properties.defaultEncoding.slice(); + const baseEncodingName = properties.baseEncodingName; + const differences = properties.differences; + for (const charcode in differences) { + const glyphName = differences[charcode]; + if (glyphName === ".notdef") { + continue; + } + encoding[charcode] = glyphName; + } + const glyphsUnicodeMap = getGlyphsUnicode(); + for (const charcode in encoding) { + let glyphName = encoding[charcode]; + if (glyphName === "") { + continue; + } + let unicode = glyphsUnicodeMap[glyphName]; + if (unicode !== undefined) { + toUnicode[charcode] = String.fromCharCode(unicode); + continue; + } + let code = 0; + switch (glyphName[0]) { + case "G": + if (glyphName.length === 3) { + code = parseInt(glyphName.substring(1), 16); + } + break; + case "g": + if (glyphName.length === 5) { + code = parseInt(glyphName.substring(1), 16); + } + break; + case "C": + case "c": + if (glyphName.length >= 3 && glyphName.length <= 4) { + const codeStr = glyphName.substring(1); + if (forceGlyphs) { + code = parseInt(codeStr, 16); + break; + } + code = +codeStr; + if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) { + return this._simpleFontToUnicode(properties, true); + } + } + break; + case "u": + unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + code = unicode; + } + break; + default: + switch (glyphName) { + case "f_h": + case "f_t": + case "T_h": + toUnicode[charcode] = glyphName.replaceAll("_", ""); + continue; + } + break; + } + if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) { + if (baseEncodingName && code === +charcode) { + const baseEncoding = getEncoding(baseEncodingName); + if (baseEncoding && (glyphName = baseEncoding[charcode])) { + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + continue; + } + } + toUnicode[charcode] = String.fromCodePoint(code); + } + } + return toUnicode; + } + async buildToUnicode(properties) { + properties.hasIncludedToUnicodeMap = properties.toUnicode?.length > 0; + if (properties.hasIncludedToUnicodeMap) { + if (!properties.composite && properties.hasEncoding) { + properties.fallbackToUnicode = this._simpleFontToUnicode(properties); + } + return properties.toUnicode; + } + if (!properties.composite) { + return new ToUnicodeMap(this._simpleFontToUnicode(properties)); + } + if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof IdentityCMap) || properties.cidSystemInfo?.registry === "Adobe" && (properties.cidSystemInfo.ordering === "GB1" || properties.cidSystemInfo.ordering === "CNS1" || properties.cidSystemInfo.ordering === "Japan1" || properties.cidSystemInfo.ordering === "Korea1"))) { + const { + registry, + ordering + } = properties.cidSystemInfo; + const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`); + const ucs2CMap = await CMapFactory.create({ + encoding: ucs2CMapName, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + const toUnicode = [], + buf = []; + properties.cMap.forEach(function (charcode, cid) { + if (cid > 0xffff) { + throw new FormatError("Max size of CID is 65,535"); + } + const ucs2 = ucs2CMap.lookup(cid); + if (ucs2) { + buf.length = 0; + for (let i = 0, ii = ucs2.length; i < ii; i += 2) { + buf.push((ucs2.charCodeAt(i) << 8) + ucs2.charCodeAt(i + 1)); + } + toUnicode[charcode] = String.fromCharCode(...buf); + } + }); + return new ToUnicodeMap(toUnicode); + } + return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar); + } + async readToUnicode(cmapObj) { + if (!cmapObj) { + return null; + } + if (cmapObj instanceof Name) { + const cmap = await CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + if (cmap instanceof IdentityCMap) { + return new IdentityToUnicodeMap(0, 0xffff); + } + return new ToUnicodeMap(cmap.getMap()); + } + if (cmapObj instanceof BaseStream) { + try { + const cmap = await CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + if (cmap instanceof IdentityCMap) { + return new IdentityToUnicodeMap(0, 0xffff); + } + const map = new Array(cmap.length); + cmap.forEach(function (charCode, token) { + if (typeof token === "number") { + map[charCode] = String.fromCodePoint(token); + return; + } + if (token.length % 2 !== 0) { + token = "\u0000" + token; + } + const str = []; + for (let k = 0; k < token.length; k += 2) { + const w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + if ((w1 & 0xf800) !== 0xd800) { + str.push(w1); + continue; + } + k += 2; + const w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000); + } + map[charCode] = String.fromCodePoint(...str); + }); + return new ToUnicodeMap(map); + } catch (reason) { + if (reason instanceof AbortException) { + return null; + } + if (this.options.ignoreErrors) { + warn(`readToUnicode - ignoring ToUnicode data: "${reason}".`); + return null; + } + throw reason; + } + } + return null; + } + readCidToGidMap(glyphsData, toUnicode) { + const result = []; + for (let j = 0, jj = glyphsData.length; j < jj; j++) { + const glyphID = glyphsData[j++] << 8 | glyphsData[j]; + const code = j >> 1; + if (glyphID === 0 && !toUnicode.has(code)) { + continue; + } + result[code] = glyphID; + } + return result; + } + extractWidths(dict, descriptor, properties) { + const xref = this.xref; + let glyphsWidths = []; + let defaultWidth = 0; + const glyphsVMetrics = []; + let defaultVMetrics; + if (properties.composite) { + const dw = dict.get("DW"); + defaultWidth = typeof dw === "number" ? Math.ceil(dw) : 1000; + const widths = dict.get("W"); + if (Array.isArray(widths)) { + for (let i = 0, ii = widths.length; i < ii; i++) { + let start = xref.fetchIfRef(widths[i++]); + if (!Number.isInteger(start)) { + break; + } + const code = xref.fetchIfRef(widths[i]); + if (Array.isArray(code)) { + for (const c of code) { + const width = xref.fetchIfRef(c); + if (typeof width === "number") { + glyphsWidths[start] = width; + } + start++; + } + } else if (Number.isInteger(code)) { + const width = xref.fetchIfRef(widths[++i]); + if (typeof width !== "number") { + continue; + } + for (let j = start; j <= code; j++) { + glyphsWidths[j] = width; + } + } else { + break; + } + } + } + if (properties.vertical) { + const dw2 = dict.getArray("DW2"); + let vmetrics = isNumberArray(dw2, 2) ? dw2 : [880, -1000]; + defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]]; + vmetrics = dict.get("W2"); + if (Array.isArray(vmetrics)) { + for (let i = 0, ii = vmetrics.length; i < ii; i++) { + let start = xref.fetchIfRef(vmetrics[i++]); + if (!Number.isInteger(start)) { + break; + } + const code = xref.fetchIfRef(vmetrics[i]); + if (Array.isArray(code)) { + for (let j = 0, jj = code.length; j < jj; j++) { + const vmetric = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])]; + if (isNumberArray(vmetric, null)) { + glyphsVMetrics[start] = vmetric; + } + start++; + } + } else if (Number.isInteger(code)) { + const vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])]; + if (!isNumberArray(vmetric, null)) { + continue; + } + for (let j = start; j <= code; j++) { + glyphsVMetrics[j] = vmetric; + } + } else { + break; + } + } + } + } + } else { + const widths = dict.get("Widths"); + if (Array.isArray(widths)) { + let j = properties.firstChar; + for (const w of widths) { + const width = xref.fetchIfRef(w); + if (typeof width === "number") { + glyphsWidths[j] = width; + } + j++; + } + const missingWidth = descriptor.get("MissingWidth"); + defaultWidth = typeof missingWidth === "number" ? missingWidth : 0; + } else { + const baseFontName = dict.get("BaseFont"); + if (baseFontName instanceof Name) { + const metrics = this.getBaseFontMetrics(baseFontName.name); + glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties); + defaultWidth = metrics.defaultWidth; + } + } + } + let isMonospace = true; + let firstWidth = defaultWidth; + for (const glyph in glyphsWidths) { + const glyphWidth = glyphsWidths[glyph]; + if (!glyphWidth) { + continue; + } + if (!firstWidth) { + firstWidth = glyphWidth; + continue; + } + if (firstWidth !== glyphWidth) { + isMonospace = false; + break; + } + } + if (isMonospace) { + properties.flags |= FontFlags.FixedPitch; + } else { + properties.flags &= ~FontFlags.FixedPitch; + } + properties.defaultWidth = defaultWidth; + properties.widths = glyphsWidths; + properties.defaultVMetrics = defaultVMetrics; + properties.vmetrics = glyphsVMetrics; + } + isSerifFont(baseFontName) { + const fontNameWoStyle = baseFontName.split("-", 1)[0]; + return fontNameWoStyle in getSerifFonts() || /serif/gi.test(fontNameWoStyle); + } + getBaseFontMetrics(name) { + let defaultWidth = 0; + let widths = Object.create(null); + let monospace = false; + const stdFontMap = getStdFontMap(); + let lookupName = stdFontMap[name] || name; + const Metrics = getMetrics(); + if (!(lookupName in Metrics)) { + lookupName = this.isSerifFont(name) ? "Times-Roman" : "Helvetica"; + } + const glyphWidths = Metrics[lookupName]; + if (typeof glyphWidths === "number") { + defaultWidth = glyphWidths; + monospace = true; + } else { + widths = glyphWidths(); + } + return { + defaultWidth, + monospace, + widths + }; + } + buildCharCodeToWidth(widthsByGlyphName, properties) { + const widths = Object.create(null); + const differences = properties.differences; + const encoding = properties.defaultEncoding; + for (let charCode = 0; charCode < 256; charCode++) { + if (charCode in differences && widthsByGlyphName[differences[charCode]]) { + widths[charCode] = widthsByGlyphName[differences[charCode]]; + continue; + } + if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) { + widths[charCode] = widthsByGlyphName[encoding[charCode]]; + continue; + } + } + return widths; + } + preEvaluateFont(dict) { + const baseDict = dict; + let type = dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("invalid font Subtype"); + } + let composite = false; + let hash; + if (type.name === "Type0") { + const df = dict.get("DescendantFonts"); + if (!df) { + throw new FormatError("Descendant fonts are not specified"); + } + dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df; + if (!(dict instanceof Dict)) { + throw new FormatError("Descendant font is not a dictionary."); + } + type = dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("invalid font Subtype"); + } + composite = true; + } + let firstChar = dict.get("FirstChar"); + if (!Number.isInteger(firstChar)) { + firstChar = 0; + } + let lastChar = dict.get("LastChar"); + if (!Number.isInteger(lastChar)) { + lastChar = composite ? 0xffff : 0xff; + } + const descriptor = dict.get("FontDescriptor"); + const toUnicode = dict.get("ToUnicode") || baseDict.get("ToUnicode"); + if (descriptor) { + hash = new MurmurHash3_64(); + const encoding = baseDict.getRaw("Encoding"); + if (encoding instanceof Name) { + hash.update(encoding.name); + } else if (encoding instanceof Ref) { + hash.update(encoding.toString()); + } else if (encoding instanceof Dict) { + for (const entry of encoding.getRawValues()) { + if (entry instanceof Name) { + hash.update(entry.name); + } else if (entry instanceof Ref) { + hash.update(entry.toString()); + } else if (Array.isArray(entry)) { + const diffLength = entry.length, + diffBuf = new Array(diffLength); + for (let j = 0; j < diffLength; j++) { + const diffEntry = entry[j]; + if (diffEntry instanceof Name) { + diffBuf[j] = diffEntry.name; + } else if (typeof diffEntry === "number" || diffEntry instanceof Ref) { + diffBuf[j] = diffEntry.toString(); + } + } + hash.update(diffBuf.join()); + } + } + } + hash.update(`${firstChar}-${lastChar}`); + if (toUnicode instanceof BaseStream) { + const stream = toUnicode.str || toUnicode; + const uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start); + hash.update(uint8array); + } else if (toUnicode instanceof Name) { + hash.update(toUnicode.name); + } + const widths = dict.get("Widths") || baseDict.get("Widths"); + if (Array.isArray(widths)) { + const widthsBuf = []; + for (const entry of widths) { + if (typeof entry === "number" || entry instanceof Ref) { + widthsBuf.push(entry.toString()); + } + } + hash.update(widthsBuf.join()); + } + if (composite) { + hash.update("compositeFont"); + const compositeWidths = dict.get("W") || baseDict.get("W"); + if (Array.isArray(compositeWidths)) { + const widthsBuf = []; + for (const entry of compositeWidths) { + if (typeof entry === "number" || entry instanceof Ref) { + widthsBuf.push(entry.toString()); + } else if (Array.isArray(entry)) { + const subWidthsBuf = []; + for (const element of entry) { + if (typeof element === "number" || element instanceof Ref) { + subWidthsBuf.push(element.toString()); + } + } + widthsBuf.push(`[${subWidthsBuf.join()}]`); + } + } + hash.update(widthsBuf.join()); + } + const cidToGidMap = dict.getRaw("CIDToGIDMap") || baseDict.getRaw("CIDToGIDMap"); + if (cidToGidMap instanceof Name) { + hash.update(cidToGidMap.name); + } else if (cidToGidMap instanceof Ref) { + hash.update(cidToGidMap.toString()); + } else if (cidToGidMap instanceof BaseStream) { + hash.update(cidToGidMap.peekBytes()); + } + } + } + return { + descriptor, + dict, + baseDict, + composite, + type: type.name, + firstChar, + lastChar, + toUnicode, + hash: hash ? hash.hexdigest() : "" + }; + } + async translateFont({ + descriptor, + dict, + baseDict, + composite, + type, + firstChar, + lastChar, + toUnicode, + cssFontInfo + }) { + const isType3Font = type === "Type3"; + if (!descriptor) { + if (isType3Font) { + descriptor = Dict.empty; + } else { + let baseFontName = dict.get("BaseFont"); + if (!(baseFontName instanceof Name)) { + throw new FormatError("Base font is not specified"); + } + baseFontName = baseFontName.name.replaceAll(/[,_]/g, "-"); + const metrics = this.getBaseFontMetrics(baseFontName); + const fontNameWoStyle = baseFontName.split("-", 1)[0]; + const flags = (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) | (metrics.monospace ? FontFlags.FixedPitch : 0) | (getSymbolsFonts()[fontNameWoStyle] ? FontFlags.Symbolic : FontFlags.Nonsymbolic); + const properties = { + type, + name: baseFontName, + loadedName: baseDict.loadedName, + systemFontInfo: null, + widths: metrics.widths, + defaultWidth: metrics.defaultWidth, + isSimulatedFlags: true, + flags, + firstChar, + lastChar, + toUnicode, + xHeight: 0, + capHeight: 0, + italicAngle: 0, + isType3Font + }; + const widths = dict.get("Widths"); + const standardFontName = getStandardFontName(baseFontName); + let file = null; + if (standardFontName) { + file = await this.fetchStandardFontData(standardFontName); + properties.isInternalFont = !!file; + } + if (!properties.isInternalFont && this.options.useSystemFonts) { + properties.systemFontInfo = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, baseFontName, standardFontName, type); + } + const newProperties = await this.extractDataStructures(dict, properties); + if (Array.isArray(widths)) { + const glyphWidths = []; + let j = firstChar; + for (const w of widths) { + const width = this.xref.fetchIfRef(w); + if (typeof width === "number") { + glyphWidths[j] = width; + } + j++; + } + newProperties.widths = glyphWidths; + } else { + newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties); + } + return new Font(baseFontName, file, newProperties, this.options); + } + } + let fontName = descriptor.get("FontName"); + let baseFont = dict.get("BaseFont"); + if (typeof fontName === "string") { + fontName = Name.get(fontName); + } + if (typeof baseFont === "string") { + baseFont = Name.get(baseFont); + } + const fontNameStr = fontName?.name; + const baseFontStr = baseFont?.name; + if (isType3Font) { + if (!fontNameStr) { + fontName = Name.get(type); + } + } else if (fontNameStr !== baseFontStr) { + info(`The FontDescriptor's FontName is "${fontNameStr}" but ` + `should be the same as the Font's BaseFont "${baseFontStr}".`); + if (fontNameStr && baseFontStr && (baseFontStr.startsWith(fontNameStr) || !isKnownFontName(fontNameStr) && isKnownFontName(baseFontStr))) { + fontName = null; + } + fontName ||= baseFont; + } + if (!(fontName instanceof Name)) { + throw new FormatError("invalid font name"); + } + let fontFile, subtype, length1, length2, length3; + try { + fontFile = descriptor.get("FontFile", "FontFile2", "FontFile3"); + if (fontFile) { + if (!(fontFile instanceof BaseStream)) { + throw new FormatError("FontFile should be a stream"); + } else if (fontFile.isEmpty) { + throw new FormatError("FontFile is empty"); + } + } + } catch (ex) { + if (!this.options.ignoreErrors) { + throw ex; + } + warn(`translateFont - fetching "${fontName.name}" font file: "${ex}".`); + fontFile = null; + } + let isInternalFont = false; + let glyphScaleFactors = null; + let systemFontInfo = null; + if (fontFile) { + if (fontFile.dict) { + const subtypeEntry = fontFile.dict.get("Subtype"); + if (subtypeEntry instanceof Name) { + subtype = subtypeEntry.name; + } + length1 = fontFile.dict.get("Length1"); + length2 = fontFile.dict.get("Length2"); + length3 = fontFile.dict.get("Length3"); + } + } else if (cssFontInfo) { + const standardFontName = getXfaFontName(fontName.name); + if (standardFontName) { + cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`; + cssFontInfo.metrics = standardFontName.metrics || null; + glyphScaleFactors = standardFontName.factors || null; + fontFile = await this.fetchStandardFontData(standardFontName.name); + isInternalFont = !!fontFile; + baseDict = dict = getXfaFontDict(fontName.name); + composite = true; + } + } else if (!isType3Font) { + const standardFontName = getStandardFontName(fontName.name); + if (standardFontName) { + fontFile = await this.fetchStandardFontData(standardFontName); + isInternalFont = !!fontFile; + } + if (!isInternalFont && this.options.useSystemFonts) { + systemFontInfo = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, fontName.name, standardFontName, type); + } + } + const fontMatrix = lookupMatrix(dict.getArray("FontMatrix"), FONT_IDENTITY_MATRIX); + const bbox = lookupNormalRect(descriptor.getArray("FontBBox") || dict.getArray("FontBBox"), isType3Font ? [0, 0, 0, 0] : undefined); + let ascent = descriptor.get("Ascent"); + if (typeof ascent !== "number") { + ascent = undefined; + } + let descent = descriptor.get("Descent"); + if (typeof descent !== "number") { + descent = undefined; + } + let xHeight = descriptor.get("XHeight"); + if (typeof xHeight !== "number") { + xHeight = 0; + } + let capHeight = descriptor.get("CapHeight"); + if (typeof capHeight !== "number") { + capHeight = 0; + } + let flags = descriptor.get("Flags"); + if (!Number.isInteger(flags)) { + flags = 0; + } + let italicAngle = descriptor.get("ItalicAngle"); + if (typeof italicAngle !== "number") { + italicAngle = 0; + } + const properties = { + type, + name: fontName.name, + subtype, + file: fontFile, + length1, + length2, + length3, + isInternalFont, + loadedName: baseDict.loadedName, + composite, + fixedPitch: false, + fontMatrix, + firstChar, + lastChar, + toUnicode, + bbox, + ascent, + descent, + xHeight, + capHeight, + flags, + italicAngle, + isType3Font, + cssFontInfo, + scaleFactors: glyphScaleFactors, + systemFontInfo + }; + if (composite) { + const cidEncoding = baseDict.get("Encoding"); + if (cidEncoding instanceof Name) { + properties.cidEncoding = cidEncoding.name; + } + const cMap = await CMapFactory.create({ + encoding: cidEncoding, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + properties.cMap = cMap; + properties.vertical = properties.cMap.vertical; + } + const newProperties = await this.extractDataStructures(dict, properties); + this.extractWidths(dict, descriptor, newProperties); + return new Font(fontName.name, fontFile, newProperties, this.options); + } + static buildFontPaths(font, glyphs, handler, evaluatorOptions) { + function buildPath(fontChar) { + const glyphName = `${font.loadedName}_path_${fontChar}`; + try { + if (font.renderer.hasBuiltPath(fontChar)) { + return; + } + handler.send("commonobj", [glyphName, "FontPath", font.renderer.getPathJs(fontChar)]); + } catch (reason) { + if (evaluatorOptions.ignoreErrors) { + warn(`buildFontPaths - ignoring ${glyphName} glyph: "${reason}".`); + return; + } + throw reason; + } + } + for (const glyph of glyphs) { + buildPath(glyph.fontChar); + const accent = glyph.accent; + if (accent?.fontChar) { + buildPath(accent.fontChar); + } + } + } + static get fallbackFontDict() { + const dict = new Dict(); + dict.set("BaseFont", Name.get("Helvetica")); + dict.set("Type", Name.get("FallbackType")); + dict.set("Subtype", Name.get("FallbackType")); + dict.set("Encoding", Name.get("WinAnsiEncoding")); + return shadow(this, "fallbackFontDict", dict); + } +} +class TranslatedFont { + #sent = false; + #type3Loaded = null; + constructor({ + loadedName, + font, + dict + }) { + this.loadedName = loadedName; + this.font = font; + this.dict = dict; + this.type3Dependencies = font.isType3Font ? new Set() : null; + } + send(handler) { + if (this.#sent) { + return; + } + this.#sent = true; + handler.send("commonobj", [this.loadedName, "Font", this.font.exportData()]); + } + fallback(handler, evaluatorOptions) { + if (!this.font.data) { + return; + } + this.font.disableFontFace = true; + PartialEvaluator.buildFontPaths(this.font, this.font.glyphCacheValues, handler, evaluatorOptions); + } + loadType3Data(evaluator, resources, task) { + if (this.#type3Loaded) { + return this.#type3Loaded; + } + const { + font, + type3Dependencies + } = this; + assert(font.isType3Font, "Must be a Type3 font."); + const type3Evaluator = evaluator.clone({ + ignoreErrors: false + }); + const type3FontRefs = new RefSet(evaluator.type3FontRefs); + if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) { + type3FontRefs.put(this.dict.objId); + } + type3Evaluator.type3FontRefs = type3FontRefs; + let loadCharProcsPromise = Promise.resolve(); + const charProcs = this.dict.get("CharProcs"); + const fontResources = this.dict.get("Resources") || resources; + const charProcOperatorList = Object.create(null); + const [x0, y0, x1, y1] = font.bbox, + width = x1 - x0, + height = y1 - y0; + const fontBBoxSize = Math.hypot(width, height); + for (const key of charProcs.getKeys()) { + loadCharProcsPromise = loadCharProcsPromise.then(() => { + const glyphStream = charProcs.get(key); + const operatorList = new OperatorList(); + return type3Evaluator.getOperatorList({ + stream: glyphStream, + task, + resources: fontResources, + operatorList + }).then(() => { + switch (operatorList.fnArray[0]) { + case OPS.setCharWidthAndBounds: + this.#removeType3ColorOperators(operatorList, fontBBoxSize); + break; + case OPS.setCharWidth: + if (!fontBBoxSize) { + this.#guessType3FontBBox(operatorList); + } + break; + } + charProcOperatorList[key] = operatorList.getIR(); + for (const dependency of operatorList.dependencies) { + type3Dependencies.add(dependency); + } + }).catch(function (reason) { + warn(`Type3 font resource "${key}" is not available.`); + const dummyOperatorList = new OperatorList(); + charProcOperatorList[key] = dummyOperatorList.getIR(); + }); + }); + } + this.#type3Loaded = loadCharProcsPromise.then(() => { + font.charProcOperatorList = charProcOperatorList; + if (this._bbox) { + font.isCharBBox = true; + font.bbox = this._bbox; + } + }); + return this.#type3Loaded; + } + #removeType3ColorOperators(operatorList, fontBBoxSize = NaN) { + const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2)), + width = charBBox[2] - charBBox[0], + height = charBBox[3] - charBBox[1]; + const charBBoxSize = Math.hypot(width, height); + if (width === 0 || height === 0) { + operatorList.fnArray.splice(0, 1); + operatorList.argsArray.splice(0, 1); + } else if (fontBBoxSize === 0 || Math.round(charBBoxSize / fontBBoxSize) >= 10) { + this._bbox ??= [Infinity, Infinity, -Infinity, -Infinity]; + Util.rectBoundingBox(...charBBox, this._bbox); + } + let i = 0, + ii = operatorList.length; + while (i < ii) { + switch (operatorList.fnArray[i]) { + case OPS.setCharWidthAndBounds: + break; + case OPS.setStrokeColorSpace: + case OPS.setFillColorSpace: + case OPS.setStrokeColor: + case OPS.setStrokeColorN: + case OPS.setFillColor: + case OPS.setFillColorN: + case OPS.setStrokeGray: + case OPS.setFillGray: + case OPS.setStrokeRGBColor: + case OPS.setFillRGBColor: + case OPS.setStrokeCMYKColor: + case OPS.setFillCMYKColor: + case OPS.shadingFill: + case OPS.setRenderingIntent: + operatorList.fnArray.splice(i, 1); + operatorList.argsArray.splice(i, 1); + ii--; + continue; + case OPS.setGState: + const [gStateObj] = operatorList.argsArray[i]; + let j = 0, + jj = gStateObj.length; + while (j < jj) { + const [gStateKey] = gStateObj[j]; + switch (gStateKey) { + case "TR": + case "TR2": + case "HT": + case "BG": + case "BG2": + case "UCR": + case "UCR2": + gStateObj.splice(j, 1); + jj--; + continue; + } + j++; + } + break; + } + i++; + } + } + #guessType3FontBBox(operatorList) { + let i = 1; + const ii = operatorList.length; + while (i < ii) { + switch (operatorList.fnArray[i]) { + case OPS.constructPath: + const minMax = operatorList.argsArray[i][2]; + this._bbox ??= [Infinity, Infinity, -Infinity, -Infinity]; + Util.rectBoundingBox(...minMax, this._bbox); + break; + } + i++; + } + } +} +class StateManager { + constructor(initialState = new EvalState()) { + this.state = initialState; + this.stateStack = []; + } + save() { + const old = this.state; + this.stateStack.push(this.state); + this.state = old.clone(); + } + restore() { + const prev = this.stateStack.pop(); + if (prev) { + this.state = prev; + } + } + transform(args) { + this.state.ctm = Util.transform(this.state.ctm, args); + } +} +class TextState { + constructor() { + this.ctm = new Float32Array(IDENTITY_MATRIX); + this.fontName = null; + this.fontSize = 0; + this.loadedName = null; + this.font = null; + this.fontMatrix = FONT_IDENTITY_MATRIX; + this.textMatrix = IDENTITY_MATRIX.slice(); + this.textLineMatrix = IDENTITY_MATRIX.slice(); + this.charSpacing = 0; + this.wordSpacing = 0; + this.leading = 0; + this.textHScale = 1; + this.textRise = 0; + } + setTextMatrix(a, b, c, d, e, f) { + const m = this.textMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + } + setTextLineMatrix(a, b, c, d, e, f) { + const m = this.textLineMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + } + translateTextMatrix(x, y) { + const m = this.textMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + } + translateTextLineMatrix(x, y) { + const m = this.textLineMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + } + carriageReturn() { + this.translateTextLineMatrix(0, -this.leading); + this.textMatrix = this.textLineMatrix.slice(); + } + clone() { + const clone = Object.create(this); + clone.textMatrix = this.textMatrix.slice(); + clone.textLineMatrix = this.textLineMatrix.slice(); + clone.fontMatrix = this.fontMatrix.slice(); + return clone; + } +} +class EvalState { + constructor() { + this.ctm = new Float32Array(IDENTITY_MATRIX); + this.font = null; + this.textRenderingMode = TextRenderingMode.FILL; + this._fillColorSpace = this._strokeColorSpace = ColorSpaceUtils.gray; + this.patternFillColorSpace = null; + this.patternStrokeColorSpace = null; + this.currentPointX = this.currentPointY = 0; + this.pathMinMax = new Float32Array([Infinity, Infinity, -Infinity, -Infinity]); + this.pathBuffer = []; + } + get fillColorSpace() { + return this._fillColorSpace; + } + set fillColorSpace(colorSpace) { + this._fillColorSpace = this.patternFillColorSpace = colorSpace; + } + get strokeColorSpace() { + return this._strokeColorSpace; + } + set strokeColorSpace(colorSpace) { + this._strokeColorSpace = this.patternStrokeColorSpace = colorSpace; + } + clone({ + newPath = false + } = {}) { + const clone = Object.create(this); + if (newPath) { + clone.pathBuffer = []; + clone.pathMinMax = new Float32Array([Infinity, Infinity, -Infinity, -Infinity]); + } + return clone; + } +} +class EvaluatorPreprocessor { + static get opMap() { + return shadow(this, "opMap", Object.assign(Object.create(null), { + w: { + id: OPS.setLineWidth, + numArgs: 1, + variableArgs: false + }, + J: { + id: OPS.setLineCap, + numArgs: 1, + variableArgs: false + }, + j: { + id: OPS.setLineJoin, + numArgs: 1, + variableArgs: false + }, + M: { + id: OPS.setMiterLimit, + numArgs: 1, + variableArgs: false + }, + d: { + id: OPS.setDash, + numArgs: 2, + variableArgs: false + }, + ri: { + id: OPS.setRenderingIntent, + numArgs: 1, + variableArgs: false + }, + i: { + id: OPS.setFlatness, + numArgs: 1, + variableArgs: false + }, + gs: { + id: OPS.setGState, + numArgs: 1, + variableArgs: false + }, + q: { + id: OPS.save, + numArgs: 0, + variableArgs: false + }, + Q: { + id: OPS.restore, + numArgs: 0, + variableArgs: false + }, + cm: { + id: OPS.transform, + numArgs: 6, + variableArgs: false + }, + m: { + id: OPS.moveTo, + numArgs: 2, + variableArgs: false + }, + l: { + id: OPS.lineTo, + numArgs: 2, + variableArgs: false + }, + c: { + id: OPS.curveTo, + numArgs: 6, + variableArgs: false + }, + v: { + id: OPS.curveTo2, + numArgs: 4, + variableArgs: false + }, + y: { + id: OPS.curveTo3, + numArgs: 4, + variableArgs: false + }, + h: { + id: OPS.closePath, + numArgs: 0, + variableArgs: false + }, + re: { + id: OPS.rectangle, + numArgs: 4, + variableArgs: false + }, + S: { + id: OPS.stroke, + numArgs: 0, + variableArgs: false + }, + s: { + id: OPS.closeStroke, + numArgs: 0, + variableArgs: false + }, + f: { + id: OPS.fill, + numArgs: 0, + variableArgs: false + }, + F: { + id: OPS.fill, + numArgs: 0, + variableArgs: false + }, + "f*": { + id: OPS.eoFill, + numArgs: 0, + variableArgs: false + }, + B: { + id: OPS.fillStroke, + numArgs: 0, + variableArgs: false + }, + "B*": { + id: OPS.eoFillStroke, + numArgs: 0, + variableArgs: false + }, + b: { + id: OPS.closeFillStroke, + numArgs: 0, + variableArgs: false + }, + "b*": { + id: OPS.closeEOFillStroke, + numArgs: 0, + variableArgs: false + }, + n: { + id: OPS.endPath, + numArgs: 0, + variableArgs: false + }, + W: { + id: OPS.clip, + numArgs: 0, + variableArgs: false + }, + "W*": { + id: OPS.eoClip, + numArgs: 0, + variableArgs: false + }, + BT: { + id: OPS.beginText, + numArgs: 0, + variableArgs: false + }, + ET: { + id: OPS.endText, + numArgs: 0, + variableArgs: false + }, + Tc: { + id: OPS.setCharSpacing, + numArgs: 1, + variableArgs: false + }, + Tw: { + id: OPS.setWordSpacing, + numArgs: 1, + variableArgs: false + }, + Tz: { + id: OPS.setHScale, + numArgs: 1, + variableArgs: false + }, + TL: { + id: OPS.setLeading, + numArgs: 1, + variableArgs: false + }, + Tf: { + id: OPS.setFont, + numArgs: 2, + variableArgs: false + }, + Tr: { + id: OPS.setTextRenderingMode, + numArgs: 1, + variableArgs: false + }, + Ts: { + id: OPS.setTextRise, + numArgs: 1, + variableArgs: false + }, + Td: { + id: OPS.moveText, + numArgs: 2, + variableArgs: false + }, + TD: { + id: OPS.setLeadingMoveText, + numArgs: 2, + variableArgs: false + }, + Tm: { + id: OPS.setTextMatrix, + numArgs: 6, + variableArgs: false + }, + "T*": { + id: OPS.nextLine, + numArgs: 0, + variableArgs: false + }, + Tj: { + id: OPS.showText, + numArgs: 1, + variableArgs: false + }, + TJ: { + id: OPS.showSpacedText, + numArgs: 1, + variableArgs: false + }, + "'": { + id: OPS.nextLineShowText, + numArgs: 1, + variableArgs: false + }, + '"': { + id: OPS.nextLineSetSpacingShowText, + numArgs: 3, + variableArgs: false + }, + d0: { + id: OPS.setCharWidth, + numArgs: 2, + variableArgs: false + }, + d1: { + id: OPS.setCharWidthAndBounds, + numArgs: 6, + variableArgs: false + }, + CS: { + id: OPS.setStrokeColorSpace, + numArgs: 1, + variableArgs: false + }, + cs: { + id: OPS.setFillColorSpace, + numArgs: 1, + variableArgs: false + }, + SC: { + id: OPS.setStrokeColor, + numArgs: 4, + variableArgs: true + }, + SCN: { + id: OPS.setStrokeColorN, + numArgs: 33, + variableArgs: true + }, + sc: { + id: OPS.setFillColor, + numArgs: 4, + variableArgs: true + }, + scn: { + id: OPS.setFillColorN, + numArgs: 33, + variableArgs: true + }, + G: { + id: OPS.setStrokeGray, + numArgs: 1, + variableArgs: false + }, + g: { + id: OPS.setFillGray, + numArgs: 1, + variableArgs: false + }, + RG: { + id: OPS.setStrokeRGBColor, + numArgs: 3, + variableArgs: false + }, + rg: { + id: OPS.setFillRGBColor, + numArgs: 3, + variableArgs: false + }, + K: { + id: OPS.setStrokeCMYKColor, + numArgs: 4, + variableArgs: false + }, + k: { + id: OPS.setFillCMYKColor, + numArgs: 4, + variableArgs: false + }, + sh: { + id: OPS.shadingFill, + numArgs: 1, + variableArgs: false + }, + BI: { + id: OPS.beginInlineImage, + numArgs: 0, + variableArgs: false + }, + ID: { + id: OPS.beginImageData, + numArgs: 0, + variableArgs: false + }, + EI: { + id: OPS.endInlineImage, + numArgs: 1, + variableArgs: false + }, + Do: { + id: OPS.paintXObject, + numArgs: 1, + variableArgs: false + }, + MP: { + id: OPS.markPoint, + numArgs: 1, + variableArgs: false + }, + DP: { + id: OPS.markPointProps, + numArgs: 2, + variableArgs: false + }, + BMC: { + id: OPS.beginMarkedContent, + numArgs: 1, + variableArgs: false + }, + BDC: { + id: OPS.beginMarkedContentProps, + numArgs: 2, + variableArgs: false + }, + EMC: { + id: OPS.endMarkedContent, + numArgs: 0, + variableArgs: false + }, + BX: { + id: OPS.beginCompat, + numArgs: 0, + variableArgs: false + }, + EX: { + id: OPS.endCompat, + numArgs: 0, + variableArgs: false + }, + BM: null, + BD: null, + true: null, + fa: null, + fal: null, + fals: null, + false: null, + nu: null, + nul: null, + null: null + })); + } + static MAX_INVALID_PATH_OPS = 10; + constructor(stream, xref, stateManager = new StateManager()) { + this.parser = new Parser({ + lexer: new Lexer(stream, EvaluatorPreprocessor.opMap), + xref + }); + this.stateManager = stateManager; + this.nonProcessedArgs = []; + this._isPathOp = false; + this._numInvalidPathOPS = 0; + } + get savedStatesDepth() { + return this.stateManager.stateStack.length; + } + read(operation) { + let args = operation.args; + while (true) { + const obj = this.parser.getObj(); + if (obj instanceof Cmd) { + const cmd = obj.cmd; + const opSpec = EvaluatorPreprocessor.opMap[cmd]; + if (!opSpec) { + warn(`Unknown command "${cmd}".`); + continue; + } + const fn = opSpec.id; + const numArgs = opSpec.numArgs; + let argsLength = args !== null ? args.length : 0; + if (!this._isPathOp) { + this._numInvalidPathOPS = 0; + } + this._isPathOp = fn >= OPS.moveTo && fn <= OPS.endPath; + if (!opSpec.variableArgs) { + if (argsLength !== numArgs) { + const nonProcessedArgs = this.nonProcessedArgs; + while (argsLength > numArgs) { + nonProcessedArgs.push(args.shift()); + argsLength--; + } + while (argsLength < numArgs && nonProcessedArgs.length !== 0) { + if (args === null) { + args = []; + } + args.unshift(nonProcessedArgs.pop()); + argsLength++; + } + } + if (argsLength < numArgs) { + const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`; + if (this._isPathOp && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) { + throw new FormatError(`Invalid ${partialMsg}`); + } + warn(`Skipping ${partialMsg}`); + if (args !== null) { + args.length = 0; + } + continue; + } + } else if (argsLength > numArgs) { + info(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`); + } + this.preprocessCommand(fn, args); + operation.fn = fn; + operation.args = args; + return true; + } + if (obj === EOF) { + return false; + } + if (obj !== null) { + if (args === null) { + args = []; + } + args.push(obj); + if (args.length > 33) { + throw new FormatError("Too many arguments"); + } + } + } + } + preprocessCommand(fn, args) { + switch (fn | 0) { + case OPS.save: + this.stateManager.save(); + break; + case OPS.restore: + this.stateManager.restore(); + break; + case OPS.transform: + this.stateManager.transform(args); + break; + } + } +} + +;// ./src/core/default_appearance.js + + + + + + + + +class DefaultAppearanceEvaluator extends EvaluatorPreprocessor { + constructor(str) { + super(new StringStream(str)); + } + parse() { + const operation = { + fn: 0, + args: [] + }; + const result = { + fontSize: 0, + fontName: "", + fontColor: new Uint8ClampedArray(3) + }; + try { + while (true) { + operation.args.length = 0; + if (!this.read(operation)) { + break; + } + if (this.savedStatesDepth !== 0) { + continue; + } + const { + fn, + args + } = operation; + switch (fn | 0) { + case OPS.setFont: + const [fontName, fontSize] = args; + if (fontName instanceof Name) { + result.fontName = fontName.name; + } + if (typeof fontSize === "number" && fontSize > 0) { + result.fontSize = fontSize; + } + break; + case OPS.setFillRGBColor: + ColorSpaceUtils.rgb.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillGray: + ColorSpaceUtils.gray.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillCMYKColor: + ColorSpaceUtils.cmyk.getRgbItem(args, 0, result.fontColor, 0); + break; + } + } + } catch (reason) { + warn(`parseDefaultAppearance - ignoring errors: "${reason}".`); + } + return result; + } +} +function parseDefaultAppearance(str) { + return new DefaultAppearanceEvaluator(str).parse(); +} +class AppearanceStreamEvaluator extends EvaluatorPreprocessor { + constructor(stream, evaluatorOptions, xref, globalColorSpaceCache) { + super(stream); + this.stream = stream; + this.evaluatorOptions = evaluatorOptions; + this.xref = xref; + this.globalColorSpaceCache = globalColorSpaceCache; + this.resources = stream.dict?.get("Resources"); + } + parse() { + const operation = { + fn: 0, + args: [] + }; + let result = { + scaleFactor: 1, + fontSize: 0, + fontName: "", + fontColor: new Uint8ClampedArray(3), + fillColorSpace: ColorSpaceUtils.gray + }; + let breakLoop = false; + const stack = []; + try { + while (true) { + operation.args.length = 0; + if (breakLoop || !this.read(operation)) { + break; + } + const { + fn, + args + } = operation; + switch (fn | 0) { + case OPS.save: + stack.push({ + scaleFactor: result.scaleFactor, + fontSize: result.fontSize, + fontName: result.fontName, + fontColor: result.fontColor.slice(), + fillColorSpace: result.fillColorSpace + }); + break; + case OPS.restore: + result = stack.pop() || result; + break; + case OPS.setTextMatrix: + result.scaleFactor *= Math.hypot(args[0], args[1]); + break; + case OPS.setFont: + const [fontName, fontSize] = args; + if (fontName instanceof Name) { + result.fontName = fontName.name; + } + if (typeof fontSize === "number" && fontSize > 0) { + result.fontSize = fontSize * result.scaleFactor; + } + break; + case OPS.setFillColorSpace: + result.fillColorSpace = ColorSpaceUtils.parse({ + cs: args[0], + xref: this.xref, + resources: this.resources, + pdfFunctionFactory: this._pdfFunctionFactory, + globalColorSpaceCache: this.globalColorSpaceCache, + localColorSpaceCache: this._localColorSpaceCache + }); + break; + case OPS.setFillColor: + const cs = result.fillColorSpace; + cs.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillRGBColor: + ColorSpaceUtils.rgb.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillGray: + ColorSpaceUtils.gray.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillCMYKColor: + ColorSpaceUtils.cmyk.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.showText: + case OPS.showSpacedText: + case OPS.nextLineShowText: + case OPS.nextLineSetSpacingShowText: + breakLoop = true; + break; + } + } + } catch (reason) { + warn(`parseAppearanceStream - ignoring errors: "${reason}".`); + } + this.stream.reset(); + delete result.scaleFactor; + delete result.fillColorSpace; + return result; + } + get _localColorSpaceCache() { + return shadow(this, "_localColorSpaceCache", new LocalColorSpaceCache()); + } + get _pdfFunctionFactory() { + const pdfFunctionFactory = new PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: this.evaluatorOptions.isEvalSupported + }); + return shadow(this, "_pdfFunctionFactory", pdfFunctionFactory); + } +} +function parseAppearanceStream(stream, evaluatorOptions, xref, globalColorSpaceCache) { + return new AppearanceStreamEvaluator(stream, evaluatorOptions, xref, globalColorSpaceCache).parse(); +} +function getPdfColor(color, isFill) { + if (color[0] === color[1] && color[1] === color[2]) { + const gray = color[0] / 255; + return `${numberToString(gray)} ${isFill ? "g" : "G"}`; + } + return Array.from(color, c => numberToString(c / 255)).join(" ") + ` ${isFill ? "rg" : "RG"}`; +} +function createDefaultAppearance({ + fontSize, + fontName, + fontColor +}) { + return `/${escapePDFName(fontName)} ${fontSize} Tf ${getPdfColor(fontColor, true)}`; +} +class FakeUnicodeFont { + constructor(xref, fontFamily) { + this.xref = xref; + this.widths = null; + this.firstChar = Infinity; + this.lastChar = -Infinity; + this.fontFamily = fontFamily; + const canvas = new OffscreenCanvas(1, 1); + this.ctxMeasure = canvas.getContext("2d", { + willReadFrequently: true + }); + if (!FakeUnicodeFont._fontNameId) { + FakeUnicodeFont._fontNameId = 1; + } + this.fontName = Name.get(`InvalidPDFjsFont_${fontFamily}_${FakeUnicodeFont._fontNameId++}`); + } + get fontDescriptorRef() { + if (!FakeUnicodeFont._fontDescriptorRef) { + const fontDescriptor = new Dict(this.xref); + fontDescriptor.setIfName("Type", "FontDescriptor"); + fontDescriptor.set("FontName", this.fontName); + fontDescriptor.set("FontFamily", "MyriadPro Regular"); + fontDescriptor.set("FontBBox", [0, 0, 0, 0]); + fontDescriptor.setIfName("FontStretch", "Normal"); + fontDescriptor.set("FontWeight", 400); + fontDescriptor.set("ItalicAngle", 0); + FakeUnicodeFont._fontDescriptorRef = this.xref.getNewPersistentRef(fontDescriptor); + } + return FakeUnicodeFont._fontDescriptorRef; + } + get descendantFontRef() { + const descendantFont = new Dict(this.xref); + descendantFont.set("BaseFont", this.fontName); + descendantFont.setIfName("Type", "Font"); + descendantFont.setIfName("Subtype", "CIDFontType0"); + descendantFont.setIfName("CIDToGIDMap", "Identity"); + descendantFont.set("FirstChar", this.firstChar); + descendantFont.set("LastChar", this.lastChar); + descendantFont.set("FontDescriptor", this.fontDescriptorRef); + descendantFont.set("DW", 1000); + const widths = []; + const chars = [...this.widths.entries()].sort(); + let currentChar = null; + let currentWidths = null; + for (const [char, width] of chars) { + if (!currentChar) { + currentChar = char; + currentWidths = [width]; + continue; + } + if (char === currentChar + currentWidths.length) { + currentWidths.push(width); + } else { + widths.push(currentChar, currentWidths); + currentChar = char; + currentWidths = [width]; + } + } + if (currentChar) { + widths.push(currentChar, currentWidths); + } + descendantFont.set("W", widths); + const cidSystemInfo = new Dict(this.xref); + cidSystemInfo.set("Ordering", "Identity"); + cidSystemInfo.set("Registry", "Adobe"); + cidSystemInfo.set("Supplement", 0); + descendantFont.set("CIDSystemInfo", cidSystemInfo); + return this.xref.getNewPersistentRef(descendantFont); + } + get baseFontRef() { + const baseFont = new Dict(this.xref); + baseFont.set("BaseFont", this.fontName); + baseFont.setIfName("Type", "Font"); + baseFont.setIfName("Subtype", "Type0"); + baseFont.setIfName("Encoding", "Identity-H"); + baseFont.set("DescendantFonts", [this.descendantFontRef]); + baseFont.setIfName("ToUnicode", "Identity-H"); + return this.xref.getNewPersistentRef(baseFont); + } + get resources() { + const resources = new Dict(this.xref); + const font = new Dict(this.xref); + font.set(this.fontName.name, this.baseFontRef); + resources.set("Font", font); + return resources; + } + _createContext() { + this.widths = new Map(); + this.ctxMeasure.font = `1000px ${this.fontFamily}`; + return this.ctxMeasure; + } + createFontResources(text) { + const ctx = this._createContext(); + for (const line of text.split(/\r\n?|\n/)) { + for (const char of line.split("")) { + const code = char.charCodeAt(0); + if (this.widths.has(code)) { + continue; + } + const metrics = ctx.measureText(char); + const width = Math.ceil(metrics.width); + this.widths.set(code, width); + this.firstChar = Math.min(code, this.firstChar); + this.lastChar = Math.max(code, this.lastChar); + } + } + return this.resources; + } + static getFirstPositionInfo(rect, rotation, fontSize) { + const [x1, y1, x2, y2] = rect; + let w = x2 - x1; + let h = y2 - y1; + if (rotation % 180 !== 0) { + [w, h] = [h, w]; + } + const lineHeight = LINE_FACTOR * fontSize; + const lineDescent = LINE_DESCENT_FACTOR * fontSize; + return { + coords: [0, h + lineDescent - lineHeight], + bbox: [0, 0, w, h], + matrix: rotation !== 0 ? getRotationMatrix(rotation, h, lineHeight) : undefined + }; + } + createAppearance(text, rect, rotation, fontSize, bgColor, strokeAlpha) { + const ctx = this._createContext(); + const lines = []; + let maxWidth = -Infinity; + for (const line of text.split(/\r\n?|\n/)) { + lines.push(line); + const lineWidth = ctx.measureText(line).width; + maxWidth = Math.max(maxWidth, lineWidth); + for (const code of codePointIter(line)) { + const char = String.fromCodePoint(code); + let width = this.widths.get(code); + if (width === undefined) { + const metrics = ctx.measureText(char); + width = Math.ceil(metrics.width); + this.widths.set(code, width); + this.firstChar = Math.min(code, this.firstChar); + this.lastChar = Math.max(code, this.lastChar); + } + } + } + maxWidth *= fontSize / 1000; + const [x1, y1, x2, y2] = rect; + let w = x2 - x1; + let h = y2 - y1; + if (rotation % 180 !== 0) { + [w, h] = [h, w]; + } + let hscale = 1; + if (maxWidth > w) { + hscale = w / maxWidth; + } + let vscale = 1; + const lineHeight = LINE_FACTOR * fontSize; + const lineDescent = LINE_DESCENT_FACTOR * fontSize; + const maxHeight = lineHeight * lines.length; + if (maxHeight > h) { + vscale = h / maxHeight; + } + const fscale = Math.min(hscale, vscale); + const newFontSize = fontSize * fscale; + const buffer = ["q", `0 0 ${numberToString(w)} ${numberToString(h)} re W n`, `BT`, `1 0 0 1 0 ${numberToString(h + lineDescent)} Tm 0 Tc ${getPdfColor(bgColor, true)}`, `/${this.fontName.name} ${numberToString(newFontSize)} Tf`]; + const { + resources + } = this; + strokeAlpha = typeof strokeAlpha === "number" && strokeAlpha >= 0 && strokeAlpha <= 1 ? strokeAlpha : 1; + if (strokeAlpha !== 1) { + buffer.push("/R0 gs"); + const extGState = new Dict(this.xref); + const r0 = new Dict(this.xref); + r0.set("ca", strokeAlpha); + r0.set("CA", strokeAlpha); + r0.setIfName("Type", "ExtGState"); + extGState.set("R0", r0); + resources.set("ExtGState", extGState); + } + const vShift = numberToString(lineHeight); + for (const line of lines) { + buffer.push(`0 -${vShift} Td <${stringToUTF16HexString(line)}> Tj`); + } + buffer.push("ET", "Q"); + const appearance = buffer.join("\n"); + const appearanceStreamDict = new Dict(this.xref); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", [0, 0, w, h]); + appearanceStreamDict.set("Length", appearance.length); + appearanceStreamDict.set("Resources", resources); + if (rotation) { + const matrix = getRotationMatrix(rotation, w, h); + appearanceStreamDict.set("Matrix", matrix); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} + +;// ./src/shared/scripting_utils.js +function makeColorComp(n) { + return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0"); +} +function scaleAndClamp(x) { + return Math.max(0, Math.min(255, 255 * x)); +} +class ColorConverters { + static CMYK_G([c, y, m, k]) { + return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)]; + } + static G_CMYK([g]) { + return ["CMYK", 0, 0, 0, 1 - g]; + } + static G_RGB([g]) { + return ["RGB", g, g, g]; + } + static G_rgb([g]) { + g = scaleAndClamp(g); + return [g, g, g]; + } + static G_HTML([g]) { + const G = makeColorComp(g); + return `#${G}${G}${G}`; + } + static RGB_G([r, g, b]) { + return ["G", 0.3 * r + 0.59 * g + 0.11 * b]; + } + static RGB_rgb(color) { + return color.map(scaleAndClamp); + } + static RGB_HTML(color) { + return `#${color.map(makeColorComp).join("")}`; + } + static T_HTML() { + return "#00000000"; + } + static T_rgb() { + return [null]; + } + static CMYK_RGB([c, y, m, k]) { + return ["RGB", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)]; + } + static CMYK_rgb([c, y, m, k]) { + return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))]; + } + static CMYK_HTML(components) { + const rgb = this.CMYK_RGB(components).slice(1); + return this.RGB_HTML(rgb); + } + static RGB_CMYK([r, g, b]) { + const c = 1 - r; + const m = 1 - g; + const y = 1 - b; + const k = Math.min(c, m, y); + return ["CMYK", c, m, y, k]; + } +} +const DateFormats = ["m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yy-mm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM"]; +const TimeFormats = ["HH:MM", "h:MM tt", "HH:MM:ss", "h:MM:ss tt"]; + +;// ./src/core/name_number_tree.js + + +class NameOrNumberTree { + constructor(root, xref, type) { + this.root = root; + this.xref = xref; + this._type = type; + } + getAll() { + const map = new Map(); + if (!this.root) { + return map; + } + const xref = this.xref; + const processed = new RefSet(); + processed.put(this.root); + const queue = [this.root]; + while (queue.length > 0) { + const obj = xref.fetchIfRef(queue.shift()); + if (!(obj instanceof Dict)) { + continue; + } + if (obj.has("Kids")) { + const kids = obj.get("Kids"); + if (!Array.isArray(kids)) { + continue; + } + for (const kid of kids) { + if (processed.has(kid)) { + throw new FormatError(`Duplicate entry in "${this._type}" tree.`); + } + queue.push(kid); + processed.put(kid); + } + continue; + } + const entries = obj.get(this._type); + if (!Array.isArray(entries)) { + continue; + } + for (let i = 0, ii = entries.length; i < ii; i += 2) { + map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1])); + } + } + return map; + } + getRaw(key) { + if (!this.root) { + return null; + } + const xref = this.xref; + let kidsOrEntries = xref.fetchIfRef(this.root); + let loopCount = 0; + const MAX_LEVELS = 10; + while (kidsOrEntries.has("Kids")) { + if (++loopCount > MAX_LEVELS) { + warn(`Search depth limit reached for "${this._type}" tree.`); + return null; + } + const kids = kidsOrEntries.get("Kids"); + if (!Array.isArray(kids)) { + return null; + } + let l = 0, + r = kids.length - 1; + while (l <= r) { + const m = l + r >> 1; + const kid = xref.fetchIfRef(kids[m]); + const limits = kid.get("Limits"); + if (key < xref.fetchIfRef(limits[0])) { + r = m - 1; + } else if (key > xref.fetchIfRef(limits[1])) { + l = m + 1; + } else { + kidsOrEntries = kid; + break; + } + } + if (l > r) { + return null; + } + } + const entries = kidsOrEntries.get(this._type); + if (Array.isArray(entries)) { + let l = 0, + r = entries.length - 2; + while (l <= r) { + const tmp = l + r >> 1, + m = tmp + (tmp & 1); + const currentKey = xref.fetchIfRef(entries[m]); + if (key < currentKey) { + r = m - 2; + } else if (key > currentKey) { + l = m + 2; + } else { + return entries[m + 1]; + } + } + } + return null; + } + get(key) { + return this.xref.fetchIfRef(this.getRaw(key)); + } +} +class NameTree extends NameOrNumberTree { + constructor(root, xref) { + super(root, xref, "Names"); + } +} +class NumberTree extends NameOrNumberTree { + constructor(root, xref) { + super(root, xref, "Nums"); + } +} + +;// ./src/core/cleanup_helper.js + + + + +function clearGlobalCaches() { + clearPatternCaches(); + clearPrimitiveCaches(); + clearUnicodeCaches(); + JpxImage.cleanup(); +} + +;// ./src/core/file_spec.js + + + +function pickPlatformItem(dict) { + if (!(dict instanceof Dict)) { + return null; + } + if (dict.has("UF")) { + return dict.get("UF"); + } else if (dict.has("F")) { + return dict.get("F"); + } else if (dict.has("Unix")) { + return dict.get("Unix"); + } else if (dict.has("Mac")) { + return dict.get("Mac"); + } else if (dict.has("DOS")) { + return dict.get("DOS"); + } + return null; +} +function stripPath(str) { + return str.substring(str.lastIndexOf("/") + 1); +} +class FileSpec { + #contentAvailable = false; + constructor(root, xref, skipContent = false) { + if (!(root instanceof Dict)) { + return; + } + this.xref = xref; + this.root = root; + if (root.has("FS")) { + this.fs = root.get("FS"); + } + if (root.has("RF")) { + warn("Related file specifications are not supported"); + } + if (!skipContent) { + if (root.has("EF")) { + this.#contentAvailable = true; + } else { + warn("Non-embedded file specifications are not supported"); + } + } + } + get filename() { + let filename = ""; + const item = pickPlatformItem(this.root); + if (item && typeof item === "string") { + filename = stringToPDFString(item, true).replaceAll("\\\\", "\\").replaceAll("\\/", "/").replaceAll("\\", "/"); + } + return shadow(this, "filename", filename || "unnamed"); + } + get content() { + if (!this.#contentAvailable) { + return null; + } + this._contentRef ||= pickPlatformItem(this.root?.get("EF")); + let content = null; + if (this._contentRef) { + const fileObj = this.xref.fetchIfRef(this._contentRef); + if (fileObj instanceof BaseStream) { + content = fileObj.getBytes(); + } else { + warn("Embedded file specification points to non-existing/invalid content"); + } + } else { + warn("Embedded file specification does not have any content"); + } + return content; + } + get description() { + let description = ""; + const desc = this.root?.get("Desc"); + if (desc && typeof desc === "string") { + description = stringToPDFString(desc); + } + return shadow(this, "description", description); + } + get serializable() { + return { + rawFilename: this.filename, + filename: stripPath(this.filename), + content: this.content, + description: this.description + }; + } +} + +;// ./src/core/xml_parser.js + +const XMLParserErrorCode = { + NoError: 0, + EndOfDocument: -1, + UnterminatedCdat: -2, + UnterminatedXmlDeclaration: -3, + UnterminatedDoctypeDeclaration: -4, + UnterminatedComment: -5, + MalformedElement: -6, + OutOfMemory: -7, + UnterminatedAttributeValue: -8, + UnterminatedElement: -9, + ElementNeverBegun: -10 +}; +function isWhitespace(s, index) { + const ch = s[index]; + return ch === " " || ch === "\n" || ch === "\r" || ch === "\t"; +} +function isWhitespaceString(s) { + for (let i = 0, ii = s.length; i < ii; i++) { + if (!isWhitespace(s, i)) { + return false; + } + } + return true; +} +class XMLParserBase { + _resolveEntities(s) { + return s.replaceAll(/&([^;]+);/g, (all, entity) => { + if (entity.substring(0, 2) === "#x") { + return String.fromCodePoint(parseInt(entity.substring(2), 16)); + } else if (entity.substring(0, 1) === "#") { + return String.fromCodePoint(parseInt(entity.substring(1), 10)); + } + switch (entity) { + case "lt": + return "<"; + case "gt": + return ">"; + case "amp": + return "&"; + case "quot": + return '"'; + case "apos": + return "'"; + } + return this.onResolveEntity(entity); + }); + } + _parseContent(s, start) { + const attributes = []; + let pos = start; + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { + ++pos; + } + } + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") { + ++pos; + } + const name = s.substring(start, pos); + skipWs(); + while (pos < s.length && s[pos] !== ">" && s[pos] !== "/" && s[pos] !== "?") { + skipWs(); + let attrName = "", + attrValue = ""; + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== "=") { + attrName += s[pos]; + ++pos; + } + skipWs(); + if (s[pos] !== "=") { + return null; + } + ++pos; + skipWs(); + const attrEndChar = s[pos]; + if (attrEndChar !== '"' && attrEndChar !== "'") { + return null; + } + const attrEndIndex = s.indexOf(attrEndChar, ++pos); + if (attrEndIndex < 0) { + return null; + } + attrValue = s.substring(pos, attrEndIndex); + attributes.push({ + name: attrName, + value: this._resolveEntities(attrValue) + }); + pos = attrEndIndex + 1; + skipWs(); + } + return { + name, + attributes, + parsed: pos - start + }; + } + _parseProcessingInstruction(s, start) { + let pos = start; + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { + ++pos; + } + } + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "?" && s[pos] !== "/") { + ++pos; + } + const name = s.substring(start, pos); + skipWs(); + const attrStart = pos; + while (pos < s.length && (s[pos] !== "?" || s[pos + 1] !== ">")) { + ++pos; + } + const value = s.substring(attrStart, pos); + return { + name, + value, + parsed: pos - start + }; + } + parseXml(s) { + let i = 0; + while (i < s.length) { + const ch = s[i]; + let j = i; + if (ch === "<") { + ++j; + const ch2 = s[j]; + let q; + switch (ch2) { + case "/": + ++j; + q = s.indexOf(">", j); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } + this.onEndElement(s.substring(j, q)); + j = q + 1; + break; + case "?": + ++j; + const pi = this._parseProcessingInstruction(s, j); + if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== "?>") { + this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); + return; + } + this.onPi(pi.name, pi.value); + j += pi.parsed + 2; + break; + case "!": + if (s.substring(j + 1, j + 3) === "--") { + q = s.indexOf("-->", j + 3); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedComment); + return; + } + this.onComment(s.substring(j + 3, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === "[CDATA[") { + q = s.indexOf("]]>", j + 8); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedCdat); + return; + } + this.onCdata(s.substring(j + 8, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === "DOCTYPE") { + const q2 = s.indexOf("[", j + 8); + let complexDoctype = false; + q = s.indexOf(">", j + 8); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); + return; + } + if (q2 > 0 && q > q2) { + q = s.indexOf("]>", j + 8); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); + return; + } + complexDoctype = true; + } + const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); + this.onDoctype(doctypeContent); + j = q + (complexDoctype ? 2 : 1); + } else { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } + break; + default: + const content = this._parseContent(s, j); + if (content === null) { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } + let isClosed = false; + if (s.substring(j + content.parsed, j + content.parsed + 2) === "/>") { + isClosed = true; + } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== ">") { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } + this.onBeginElement(content.name, content.attributes, isClosed); + j += content.parsed + (isClosed ? 2 : 1); + break; + } + } else { + while (j < s.length && s[j] !== "<") { + j++; + } + const text = s.substring(i, j); + this.onText(this._resolveEntities(text)); + } + i = j; + } + } + onResolveEntity(name) { + return `&${name};`; + } + onPi(name, value) {} + onComment(text) {} + onCdata(text) {} + onDoctype(doctypeContent) {} + onText(text) {} + onBeginElement(name, attributes, isEmpty) {} + onEndElement(name) {} + onError(code) {} +} +class SimpleDOMNode { + constructor(nodeName, nodeValue) { + this.nodeName = nodeName; + this.nodeValue = nodeValue; + Object.defineProperty(this, "parentNode", { + value: null, + writable: true + }); + } + get firstChild() { + return this.childNodes?.[0]; + } + get nextSibling() { + const childNodes = this.parentNode.childNodes; + if (!childNodes) { + return undefined; + } + const index = childNodes.indexOf(this); + if (index === -1) { + return undefined; + } + return childNodes[index + 1]; + } + get textContent() { + if (!this.childNodes) { + return this.nodeValue || ""; + } + return this.childNodes.map(child => child.textContent).join(""); + } + get children() { + return this.childNodes || []; + } + hasChildNodes() { + return this.childNodes?.length > 0; + } + searchNode(paths, pos) { + if (pos >= paths.length) { + return this; + } + const component = paths[pos]; + if (component.name.startsWith("#") && pos < paths.length - 1) { + return this.searchNode(paths, pos + 1); + } + const stack = []; + let node = this; + while (true) { + if (component.name === node.nodeName) { + if (component.pos === 0) { + const res = node.searchNode(paths, pos + 1); + if (res !== null) { + return res; + } + } else if (stack.length === 0) { + return null; + } else { + const [parent] = stack.pop(); + let siblingPos = 0; + for (const child of parent.childNodes) { + if (component.name === child.nodeName) { + if (siblingPos === component.pos) { + return child.searchNode(paths, pos + 1); + } + siblingPos++; + } + } + return node.searchNode(paths, pos + 1); + } + } + if (node.childNodes?.length > 0) { + stack.push([node, 0]); + node = node.childNodes[0]; + } else if (stack.length === 0) { + return null; + } else { + while (stack.length !== 0) { + const [parent, currentPos] = stack.pop(); + const newPos = currentPos + 1; + if (newPos < parent.childNodes.length) { + stack.push([parent, newPos]); + node = parent.childNodes[newPos]; + break; + } + } + if (stack.length === 0) { + return null; + } + } + } + } + dump(buffer) { + if (this.nodeName === "#text") { + buffer.push(encodeToXmlString(this.nodeValue)); + return; + } + buffer.push(`<${this.nodeName}`); + if (this.attributes) { + for (const attribute of this.attributes) { + buffer.push(` ${attribute.name}="${encodeToXmlString(attribute.value)}"`); + } + } + if (this.hasChildNodes()) { + buffer.push(">"); + for (const child of this.childNodes) { + child.dump(buffer); + } + buffer.push(``); + } else if (this.nodeValue) { + buffer.push(`>${encodeToXmlString(this.nodeValue)}`); + } else { + buffer.push("/>"); + } + } +} +class SimpleXMLParser extends XMLParserBase { + constructor({ + hasAttributes = false, + lowerCaseName = false + }) { + super(); + this._currentFragment = null; + this._stack = null; + this._errorCode = XMLParserErrorCode.NoError; + this._hasAttributes = hasAttributes; + this._lowerCaseName = lowerCaseName; + } + parseFromString(data) { + this._currentFragment = []; + this._stack = []; + this._errorCode = XMLParserErrorCode.NoError; + this.parseXml(data); + if (this._errorCode !== XMLParserErrorCode.NoError) { + return undefined; + } + const [documentElement] = this._currentFragment; + if (!documentElement) { + return undefined; + } + return { + documentElement + }; + } + onText(text) { + if (isWhitespaceString(text)) { + return; + } + const node = new SimpleDOMNode("#text", text); + this._currentFragment.push(node); + } + onCdata(text) { + const node = new SimpleDOMNode("#text", text); + this._currentFragment.push(node); + } + onBeginElement(name, attributes, isEmpty) { + if (this._lowerCaseName) { + name = name.toLowerCase(); + } + const node = new SimpleDOMNode(name); + node.childNodes = []; + if (this._hasAttributes) { + node.attributes = attributes; + } + this._currentFragment.push(node); + if (isEmpty) { + return; + } + this._stack.push(this._currentFragment); + this._currentFragment = node.childNodes; + } + onEndElement(name) { + this._currentFragment = this._stack.pop() || []; + const lastElement = this._currentFragment.at(-1); + if (!lastElement) { + return null; + } + for (const childNode of lastElement.childNodes) { + childNode.parentNode = lastElement; + } + return lastElement; + } + onError(code) { + this._errorCode = code; + } +} + +;// ./src/core/metadata_parser.js + +class MetadataParser { + constructor(data) { + data = this._repair(data); + const parser = new SimpleXMLParser({ + lowerCaseName: true + }); + const xmlDocument = parser.parseFromString(data); + this._metadataMap = new Map(); + this._data = data; + if (xmlDocument) { + this._parse(xmlDocument); + } + } + _repair(data) { + return data.replace(/^[^<]+/, "").replaceAll(/>\\376\\377([^<]+)/g, function (all, codes) { + const bytes = codes.replaceAll(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { + return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); + }).replaceAll(/&(amp|apos|gt|lt|quot);/g, function (str, name) { + switch (name) { + case "amp": + return "&"; + case "apos": + return "'"; + case "gt": + return ">"; + case "lt": + return "<"; + case "quot": + return '"'; + } + throw new Error(`_repair: ${name} isn't defined.`); + }); + const charBuf = [">"]; + for (let i = 0, ii = bytes.length; i < ii; i += 2) { + const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); + if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { + charBuf.push(String.fromCharCode(code)); + } else { + charBuf.push("&#x" + (0x10000 + code).toString(16).substring(1) + ";"); + } + } + return charBuf.join(""); + }); + } + _getSequence(entry) { + const name = entry.nodeName; + if (name !== "rdf:bag" && name !== "rdf:seq" && name !== "rdf:alt") { + return null; + } + return entry.childNodes.filter(node => node.nodeName === "rdf:li"); + } + _parseArray(entry) { + if (!entry.hasChildNodes()) { + return; + } + const [seqNode] = entry.childNodes; + const sequence = this._getSequence(seqNode) || []; + this._metadataMap.set(entry.nodeName, sequence.map(node => node.textContent.trim())); + } + _parse(xmlDocument) { + let rdf = xmlDocument.documentElement; + if (rdf.nodeName !== "rdf:rdf") { + rdf = rdf.firstChild; + while (rdf && rdf.nodeName !== "rdf:rdf") { + rdf = rdf.nextSibling; + } + } + if (!rdf || rdf.nodeName !== "rdf:rdf" || !rdf.hasChildNodes()) { + return; + } + for (const desc of rdf.childNodes) { + if (desc.nodeName !== "rdf:description") { + continue; + } + for (const entry of desc.childNodes) { + const name = entry.nodeName; + switch (name) { + case "#text": + continue; + case "dc:creator": + case "dc:subject": + this._parseArray(entry); + continue; + } + this._metadataMap.set(name, entry.textContent.trim()); + } + } + } + get serializable() { + return { + parsedData: this._metadataMap, + rawData: this._data + }; + } +} + +;// ./src/core/struct_tree.js + + + + +const MAX_DEPTH = 40; +const StructElementType = { + PAGE_CONTENT: 1, + STREAM_CONTENT: 2, + OBJECT: 3, + ANNOTATION: 4, + ELEMENT: 5 +}; +class StructTreeRoot { + constructor(xref, rootDict, rootRef) { + this.xref = xref; + this.dict = rootDict; + this.ref = rootRef instanceof Ref ? rootRef : null; + this.roleMap = new Map(); + this.structParentIds = null; + } + init() { + this.readRoleMap(); + } + #addIdToPage(pageRef, id, type) { + if (!(pageRef instanceof Ref) || id < 0) { + return; + } + this.structParentIds ||= new RefSetCache(); + let ids = this.structParentIds.get(pageRef); + if (!ids) { + ids = []; + this.structParentIds.put(pageRef, ids); + } + ids.push([id, type]); + } + addAnnotationIdToPage(pageRef, id) { + this.#addIdToPage(pageRef, id, StructElementType.ANNOTATION); + } + readRoleMap() { + const roleMapDict = this.dict.get("RoleMap"); + if (!(roleMapDict instanceof Dict)) { + return; + } + for (const [key, value] of roleMapDict) { + if (value instanceof Name) { + this.roleMap.set(key, value.name); + } + } + } + static async canCreateStructureTree({ + catalogRef, + pdfManager, + newAnnotationsByPage + }) { + if (!(catalogRef instanceof Ref)) { + warn("Cannot save the struct tree: no catalog reference."); + return false; + } + let nextKey = 0; + let hasNothingToUpdate = true; + for (const [pageIndex, elements] of newAnnotationsByPage) { + const { + ref: pageRef + } = await pdfManager.getPage(pageIndex); + if (!(pageRef instanceof Ref)) { + warn(`Cannot save the struct tree: page ${pageIndex} has no ref.`); + hasNothingToUpdate = true; + break; + } + for (const element of elements) { + if (element.accessibilityData?.type) { + element.parentTreeId = nextKey++; + hasNothingToUpdate = false; + } + } + } + if (hasNothingToUpdate) { + for (const elements of newAnnotationsByPage.values()) { + for (const element of elements) { + delete element.parentTreeId; + } + } + return false; + } + return true; + } + static async createStructureTree({ + newAnnotationsByPage, + xref, + catalogRef, + pdfManager, + changes + }) { + const root = await pdfManager.ensureCatalog("cloneDict"); + const cache = new RefSetCache(); + cache.put(catalogRef, root); + const structTreeRootRef = xref.getNewTemporaryRef(); + root.set("StructTreeRoot", structTreeRootRef); + const structTreeRoot = new Dict(xref); + structTreeRoot.set("Type", Name.get("StructTreeRoot")); + const parentTreeRef = xref.getNewTemporaryRef(); + structTreeRoot.set("ParentTree", parentTreeRef); + const kids = []; + structTreeRoot.set("K", kids); + cache.put(structTreeRootRef, structTreeRoot); + const parentTree = new Dict(xref); + const nums = []; + parentTree.set("Nums", nums); + const nextKey = await this.#writeKids({ + newAnnotationsByPage, + structTreeRootRef, + structTreeRoot: null, + kids, + nums, + xref, + pdfManager, + changes, + cache + }); + structTreeRoot.set("ParentTreeNextKey", nextKey); + cache.put(parentTreeRef, parentTree); + for (const [ref, obj] of cache.items()) { + changes.put(ref, { + data: obj + }); + } + } + async canUpdateStructTree({ + pdfManager, + newAnnotationsByPage + }) { + if (!this.ref) { + warn("Cannot update the struct tree: no root reference."); + return false; + } + let nextKey = this.dict.get("ParentTreeNextKey"); + if (!Number.isInteger(nextKey) || nextKey < 0) { + warn("Cannot update the struct tree: invalid next key."); + return false; + } + const parentTree = this.dict.get("ParentTree"); + if (!(parentTree instanceof Dict)) { + warn("Cannot update the struct tree: ParentTree isn't a dict."); + return false; + } + const nums = parentTree.get("Nums"); + if (!Array.isArray(nums)) { + warn("Cannot update the struct tree: nums isn't an array."); + return false; + } + const numberTree = new NumberTree(parentTree, this.xref); + for (const pageIndex of newAnnotationsByPage.keys()) { + const { + pageDict + } = await pdfManager.getPage(pageIndex); + if (!pageDict.has("StructParents")) { + continue; + } + const id = pageDict.get("StructParents"); + if (!Number.isInteger(id) || !Array.isArray(numberTree.get(id))) { + warn(`Cannot save the struct tree: page ${pageIndex} has a wrong id.`); + return false; + } + } + let hasNothingToUpdate = true; + for (const [pageIndex, elements] of newAnnotationsByPage) { + const { + pageDict + } = await pdfManager.getPage(pageIndex); + StructTreeRoot.#collectParents({ + elements, + xref: this.xref, + pageDict, + numberTree + }); + for (const element of elements) { + if (element.accessibilityData?.type) { + if (!(element.accessibilityData.structParent >= 0)) { + element.parentTreeId = nextKey++; + } + hasNothingToUpdate = false; + } + } + } + if (hasNothingToUpdate) { + for (const elements of newAnnotationsByPage.values()) { + for (const element of elements) { + delete element.parentTreeId; + delete element.structTreeParent; + } + } + return false; + } + return true; + } + async updateStructureTree({ + newAnnotationsByPage, + pdfManager, + changes + }) { + const { + ref: structTreeRootRef, + xref + } = this; + const structTreeRoot = this.dict.clone(); + const cache = new RefSetCache(); + cache.put(structTreeRootRef, structTreeRoot); + let parentTreeRef = structTreeRoot.getRaw("ParentTree"); + let parentTree; + if (parentTreeRef instanceof Ref) { + parentTree = xref.fetch(parentTreeRef); + } else { + parentTree = parentTreeRef; + parentTreeRef = xref.getNewTemporaryRef(); + structTreeRoot.set("ParentTree", parentTreeRef); + } + parentTree = parentTree.clone(); + cache.put(parentTreeRef, parentTree); + let nums = parentTree.getRaw("Nums"); + let numsRef = null; + if (nums instanceof Ref) { + numsRef = nums; + nums = xref.fetch(numsRef); + } + nums = nums.slice(); + if (!numsRef) { + parentTree.set("Nums", nums); + } + const newNextKey = await StructTreeRoot.#writeKids({ + newAnnotationsByPage, + structTreeRootRef, + structTreeRoot: this, + kids: null, + nums, + xref, + pdfManager, + changes, + cache + }); + if (newNextKey === -1) { + return; + } + structTreeRoot.set("ParentTreeNextKey", newNextKey); + if (numsRef) { + cache.put(numsRef, nums); + } + for (const [ref, obj] of cache.items()) { + changes.put(ref, { + data: obj + }); + } + } + static async #writeKids({ + newAnnotationsByPage, + structTreeRootRef, + structTreeRoot, + kids, + nums, + xref, + pdfManager, + changes, + cache + }) { + const objr = Name.get("OBJR"); + let nextKey = -1; + let structTreePageObjs; + for (const [pageIndex, elements] of newAnnotationsByPage) { + const page = await pdfManager.getPage(pageIndex); + const { + ref: pageRef + } = page; + const isPageRef = pageRef instanceof Ref; + for (const { + accessibilityData, + ref, + parentTreeId, + structTreeParent + } of elements) { + if (!accessibilityData?.type) { + continue; + } + const { + structParent + } = accessibilityData; + if (structTreeRoot && Number.isInteger(structParent) && structParent >= 0) { + let objs = (structTreePageObjs ||= new Map()).get(pageIndex); + if (objs === undefined) { + const structTreePage = new StructTreePage(structTreeRoot, page.pageDict); + objs = structTreePage.collectObjects(pageRef); + structTreePageObjs.set(pageIndex, objs); + } + const objRef = objs?.get(structParent); + if (objRef) { + const tagDict = xref.fetch(objRef).clone(); + StructTreeRoot.#writeProperties(tagDict, accessibilityData); + changes.put(objRef, { + data: tagDict + }); + continue; + } + } + nextKey = Math.max(nextKey, parentTreeId); + const tagRef = xref.getNewTemporaryRef(); + const tagDict = new Dict(xref); + StructTreeRoot.#writeProperties(tagDict, accessibilityData); + await this.#updateParentTag({ + structTreeParent, + tagDict, + newTagRef: tagRef, + structTreeRootRef, + fallbackKids: kids, + xref, + cache + }); + const objDict = new Dict(xref); + tagDict.set("K", objDict); + objDict.set("Type", objr); + if (isPageRef) { + objDict.set("Pg", pageRef); + } + objDict.set("Obj", ref); + cache.put(tagRef, tagDict); + nums.push(parentTreeId, tagRef); + } + } + return nextKey + 1; + } + static #writeProperties(tagDict, { + type, + title, + lang, + alt, + expanded, + actualText + }) { + tagDict.set("S", Name.get(type)); + if (title) { + tagDict.set("T", stringToAsciiOrUTF16BE(title)); + } + if (lang) { + tagDict.set("Lang", stringToAsciiOrUTF16BE(lang)); + } + if (alt) { + tagDict.set("Alt", stringToAsciiOrUTF16BE(alt)); + } + if (expanded) { + tagDict.set("E", stringToAsciiOrUTF16BE(expanded)); + } + if (actualText) { + tagDict.set("ActualText", stringToAsciiOrUTF16BE(actualText)); + } + } + static #collectParents({ + elements, + xref, + pageDict, + numberTree + }) { + const idToElements = new Map(); + for (const element of elements) { + if (element.structTreeParentId) { + const id = parseInt(element.structTreeParentId.split("_mc")[1], 10); + let elems = idToElements.get(id); + if (!elems) { + elems = []; + idToElements.set(id, elems); + } + elems.push(element); + } + } + const id = pageDict.get("StructParents"); + if (!Number.isInteger(id)) { + return; + } + const parentArray = numberTree.get(id); + const updateElement = (kid, pageKid, kidRef) => { + const elems = idToElements.get(kid); + if (elems) { + const parentRef = pageKid.getRaw("P"); + const parentDict = xref.fetchIfRef(parentRef); + if (parentRef instanceof Ref && parentDict instanceof Dict) { + const params = { + ref: kidRef, + dict: pageKid + }; + for (const element of elems) { + element.structTreeParent = params; + } + } + return true; + } + return false; + }; + for (const kidRef of parentArray) { + if (!(kidRef instanceof Ref)) { + continue; + } + const pageKid = xref.fetch(kidRef); + const k = pageKid.get("K"); + if (Number.isInteger(k)) { + updateElement(k, pageKid, kidRef); + continue; + } + if (!Array.isArray(k)) { + continue; + } + for (let kid of k) { + kid = xref.fetchIfRef(kid); + if (Number.isInteger(kid) && updateElement(kid, pageKid, kidRef)) { + break; + } + if (!(kid instanceof Dict)) { + continue; + } + if (!isName(kid.get("Type"), "MCR")) { + break; + } + const mcid = kid.get("MCID"); + if (Number.isInteger(mcid) && updateElement(mcid, pageKid, kidRef)) { + break; + } + } + } + } + static async #updateParentTag({ + structTreeParent, + tagDict, + newTagRef, + structTreeRootRef, + fallbackKids, + xref, + cache + }) { + let ref = null; + let parentRef; + if (structTreeParent) { + ({ + ref + } = structTreeParent); + parentRef = structTreeParent.dict.getRaw("P") || structTreeRootRef; + } else { + parentRef = structTreeRootRef; + } + tagDict.set("P", parentRef); + const parentDict = xref.fetchIfRef(parentRef); + if (!parentDict) { + fallbackKids.push(newTagRef); + return; + } + let cachedParentDict = cache.get(parentRef); + if (!cachedParentDict) { + cachedParentDict = parentDict.clone(); + cache.put(parentRef, cachedParentDict); + } + const parentKidsRaw = cachedParentDict.getRaw("K"); + let cachedParentKids = parentKidsRaw instanceof Ref ? cache.get(parentKidsRaw) : null; + if (!cachedParentKids) { + cachedParentKids = xref.fetchIfRef(parentKidsRaw); + cachedParentKids = Array.isArray(cachedParentKids) ? cachedParentKids.slice() : [parentKidsRaw]; + const parentKidsRef = xref.getNewTemporaryRef(); + cachedParentDict.set("K", parentKidsRef); + cache.put(parentKidsRef, cachedParentKids); + } + const index = cachedParentKids.indexOf(ref); + cachedParentKids.splice(index >= 0 ? index + 1 : cachedParentKids.length, 0, newTagRef); + } +} +class StructElementNode { + constructor(tree, dict) { + this.tree = tree; + this.xref = tree.xref; + this.dict = dict; + this.kids = []; + this.parseKids(); + } + get role() { + const nameObj = this.dict.get("S"); + const name = nameObj instanceof Name ? nameObj.name : ""; + const { + root + } = this.tree; + return root.roleMap.get(name) ?? name; + } + parseKids() { + let pageObjId = null; + const objRef = this.dict.getRaw("Pg"); + if (objRef instanceof Ref) { + pageObjId = objRef.toString(); + } + const kids = this.dict.get("K"); + if (Array.isArray(kids)) { + for (const kid of kids) { + const element = this.parseKid(pageObjId, this.xref.fetchIfRef(kid)); + if (element) { + this.kids.push(element); + } + } + } else { + const element = this.parseKid(pageObjId, kids); + if (element) { + this.kids.push(element); + } + } + } + parseKid(pageObjId, kid) { + if (Number.isInteger(kid)) { + if (this.tree.pageDict.objId !== pageObjId) { + return null; + } + return new StructElement({ + type: StructElementType.PAGE_CONTENT, + mcid: kid, + pageObjId + }); + } + if (!(kid instanceof Dict)) { + return null; + } + const pageRef = kid.getRaw("Pg"); + if (pageRef instanceof Ref) { + pageObjId = pageRef.toString(); + } + const type = kid.get("Type") instanceof Name ? kid.get("Type").name : null; + if (type === "MCR") { + if (this.tree.pageDict.objId !== pageObjId) { + return null; + } + const kidRef = kid.getRaw("Stm"); + return new StructElement({ + type: StructElementType.STREAM_CONTENT, + refObjId: kidRef instanceof Ref ? kidRef.toString() : null, + pageObjId, + mcid: kid.get("MCID") + }); + } + if (type === "OBJR") { + if (this.tree.pageDict.objId !== pageObjId) { + return null; + } + const kidRef = kid.getRaw("Obj"); + return new StructElement({ + type: StructElementType.OBJECT, + refObjId: kidRef instanceof Ref ? kidRef.toString() : null, + pageObjId + }); + } + return new StructElement({ + type: StructElementType.ELEMENT, + dict: kid + }); + } +} +class StructElement { + constructor({ + type, + dict = null, + mcid = null, + pageObjId = null, + refObjId = null + }) { + this.type = type; + this.dict = dict; + this.mcid = mcid; + this.pageObjId = pageObjId; + this.refObjId = refObjId; + this.parentNode = null; + } +} +class StructTreePage { + constructor(structTreeRoot, pageDict) { + this.root = structTreeRoot; + this.xref = structTreeRoot?.xref ?? null; + this.rootDict = structTreeRoot?.dict ?? null; + this.pageDict = pageDict; + this.nodes = []; + } + collectObjects(pageRef) { + if (!this.root || !this.rootDict || !(pageRef instanceof Ref)) { + return null; + } + const parentTree = this.rootDict.get("ParentTree"); + if (!parentTree) { + return null; + } + const ids = this.root.structParentIds?.get(pageRef); + if (!ids) { + return null; + } + const map = new Map(); + const numberTree = new NumberTree(parentTree, this.xref); + for (const [elemId] of ids) { + const obj = numberTree.getRaw(elemId); + if (obj instanceof Ref) { + map.set(elemId, obj); + } + } + return map; + } + parse(pageRef) { + if (!this.root || !this.rootDict || !(pageRef instanceof Ref)) { + return; + } + const parentTree = this.rootDict.get("ParentTree"); + if (!parentTree) { + return; + } + const id = this.pageDict.get("StructParents"); + const ids = this.root.structParentIds?.get(pageRef); + if (!Number.isInteger(id) && !ids) { + return; + } + const map = new Map(); + const numberTree = new NumberTree(parentTree, this.xref); + if (Number.isInteger(id)) { + const parentArray = numberTree.get(id); + if (Array.isArray(parentArray)) { + for (const ref of parentArray) { + if (ref instanceof Ref) { + this.addNode(this.xref.fetch(ref), map); + } + } + } + } + if (!ids) { + return; + } + for (const [elemId, type] of ids) { + const obj = numberTree.get(elemId); + if (obj) { + const elem = this.addNode(this.xref.fetchIfRef(obj), map); + if (elem?.kids?.length === 1 && elem.kids[0].type === StructElementType.OBJECT) { + elem.kids[0].type = type; + } + } + } + } + addNode(dict, map, level = 0) { + if (level > MAX_DEPTH) { + warn("StructTree MAX_DEPTH reached."); + return null; + } + if (!(dict instanceof Dict)) { + return null; + } + if (map.has(dict)) { + return map.get(dict); + } + const element = new StructElementNode(this, dict); + map.set(dict, element); + const parent = dict.get("P"); + if (!(parent instanceof Dict) || isName(parent.get("Type"), "StructTreeRoot")) { + if (!this.addTopLevelNode(dict, element)) { + map.delete(dict); + } + return element; + } + const parentNode = this.addNode(parent, map, level + 1); + if (!parentNode) { + return element; + } + let save = false; + for (const kid of parentNode.kids) { + if (kid.type === StructElementType.ELEMENT && kid.dict === dict) { + kid.parentNode = element; + save = true; + } + } + if (!save) { + map.delete(dict); + } + return element; + } + addTopLevelNode(dict, element) { + const obj = this.rootDict.get("K"); + if (!obj) { + return false; + } + if (obj instanceof Dict) { + if (obj.objId !== dict.objId) { + return false; + } + this.nodes[0] = element; + return true; + } + if (!Array.isArray(obj)) { + return true; + } + let save = false; + for (let i = 0; i < obj.length; i++) { + const kidRef = obj[i]; + if (kidRef?.toString() === dict.objId) { + this.nodes[i] = element; + save = true; + } + } + return save; + } + get serializable() { + function nodeToSerializable(node, parent, level = 0) { + if (level > MAX_DEPTH) { + warn("StructTree too deep to be fully serialized."); + return; + } + const obj = Object.create(null); + obj.role = node.role; + obj.children = []; + parent.children.push(obj); + let alt = node.dict.get("Alt"); + if (typeof alt !== "string") { + alt = node.dict.get("ActualText"); + } + if (typeof alt === "string") { + obj.alt = stringToPDFString(alt); + } + const a = node.dict.get("A"); + if (a instanceof Dict) { + const bbox = lookupNormalRect(a.getArray("BBox"), null); + if (bbox) { + obj.bbox = bbox; + } else { + const width = a.get("Width"); + const height = a.get("Height"); + if (typeof width === "number" && width > 0 && typeof height === "number" && height > 0) { + obj.bbox = [0, 0, width, height]; + } + } + } + const lang = node.dict.get("Lang"); + if (typeof lang === "string") { + obj.lang = stringToPDFString(lang); + } + for (const kid of node.kids) { + const kidElement = kid.type === StructElementType.ELEMENT ? kid.parentNode : null; + if (kidElement) { + nodeToSerializable(kidElement, obj, level + 1); + continue; + } else if (kid.type === StructElementType.PAGE_CONTENT || kid.type === StructElementType.STREAM_CONTENT) { + obj.children.push({ + type: "content", + id: `p${kid.pageObjId}_mc${kid.mcid}` + }); + } else if (kid.type === StructElementType.OBJECT) { + obj.children.push({ + type: "object", + id: kid.refObjId + }); + } else if (kid.type === StructElementType.ANNOTATION) { + obj.children.push({ + type: "annotation", + id: `${AnnotationPrefix}${kid.refObjId}` + }); + } + } + } + const root = Object.create(null); + root.children = []; + root.role = "Root"; + for (const child of this.nodes) { + if (!child) { + continue; + } + nodeToSerializable(child, root); + } + return root; + } +} + +;// ./src/core/catalog.js + + + + + + + + + + + +const isRef = v => v instanceof Ref; +const isValidExplicitDest = _isValidExplicitDest.bind(null, isRef, isName); +function fetchDest(dest) { + if (dest instanceof Dict) { + dest = dest.get("D"); + } + return isValidExplicitDest(dest) ? dest : null; +} +function fetchRemoteDest(action) { + let dest = action.get("D"); + if (dest) { + if (dest instanceof Name) { + dest = dest.name; + } + if (typeof dest === "string") { + return stringToPDFString(dest, true); + } else if (isValidExplicitDest(dest)) { + return JSON.stringify(dest); + } + } + return null; +} +class Catalog { + #actualNumPages = null; + #catDict = null; + builtInCMapCache = new Map(); + fontCache = new RefSetCache(); + globalColorSpaceCache = new GlobalColorSpaceCache(); + globalImageCache = new GlobalImageCache(); + nonBlendModesSet = new RefSet(); + pageDictCache = new RefSetCache(); + pageIndexCache = new RefSetCache(); + pageKidsCountCache = new RefSetCache(); + standardFontDataCache = new Map(); + systemFontCache = new Map(); + constructor(pdfManager, xref) { + this.pdfManager = pdfManager; + this.xref = xref; + this.#catDict = xref.getCatalogObj(); + if (!(this.#catDict instanceof Dict)) { + throw new FormatError("Catalog object is not a dictionary."); + } + this.toplevelPagesDict; + } + cloneDict() { + return this.#catDict.clone(); + } + get version() { + const version = this.#catDict.get("Version"); + if (version instanceof Name) { + if (PDF_VERSION_REGEXP.test(version.name)) { + return shadow(this, "version", version.name); + } + warn(`Invalid PDF catalog version: ${version.name}`); + } + return shadow(this, "version", null); + } + get lang() { + const lang = this.#catDict.get("Lang"); + return shadow(this, "lang", lang && typeof lang === "string" ? stringToPDFString(lang) : null); + } + get needsRendering() { + const needsRendering = this.#catDict.get("NeedsRendering"); + return shadow(this, "needsRendering", typeof needsRendering === "boolean" ? needsRendering : false); + } + get collection() { + let collection = null; + try { + const obj = this.#catDict.get("Collection"); + if (obj instanceof Dict && obj.size > 0) { + collection = obj; + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + info("Cannot fetch Collection entry; assuming no collection is present."); + } + return shadow(this, "collection", collection); + } + get acroForm() { + let acroForm = null; + try { + const obj = this.#catDict.get("AcroForm"); + if (obj instanceof Dict && obj.size > 0) { + acroForm = obj; + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + info("Cannot fetch AcroForm entry; assuming no forms are present."); + } + return shadow(this, "acroForm", acroForm); + } + get acroFormRef() { + const value = this.#catDict.getRaw("AcroForm"); + return shadow(this, "acroFormRef", value instanceof Ref ? value : null); + } + get metadata() { + const streamRef = this.#catDict.getRaw("Metadata"); + if (!(streamRef instanceof Ref)) { + return shadow(this, "metadata", null); + } + let metadata = null; + try { + const stream = this.xref.fetch(streamRef, !this.xref.encrypt?.encryptMetadata); + if (stream instanceof BaseStream && stream.dict instanceof Dict) { + const type = stream.dict.get("Type"); + const subtype = stream.dict.get("Subtype"); + if (isName(type, "Metadata") && isName(subtype, "XML")) { + const data = stringToUTF8String(stream.getString()); + if (data) { + metadata = new MetadataParser(data).serializable; + } + } + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + info(`Skipping invalid Metadata: "${ex}".`); + } + return shadow(this, "metadata", metadata); + } + get markInfo() { + let markInfo = null; + try { + markInfo = this.#readMarkInfo(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read mark info."); + } + return shadow(this, "markInfo", markInfo); + } + #readMarkInfo() { + const obj = this.#catDict.get("MarkInfo"); + if (!(obj instanceof Dict)) { + return null; + } + const markInfo = { + Marked: false, + UserProperties: false, + Suspects: false + }; + for (const key in markInfo) { + const value = obj.get(key); + if (typeof value === "boolean") { + markInfo[key] = value; + } + } + return markInfo; + } + get structTreeRoot() { + let structTree = null; + try { + structTree = this.#readStructTreeRoot(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable read to structTreeRoot info."); + } + return shadow(this, "structTreeRoot", structTree); + } + #readStructTreeRoot() { + const rawObj = this.#catDict.getRaw("StructTreeRoot"); + const obj = this.xref.fetchIfRef(rawObj); + if (!(obj instanceof Dict)) { + return null; + } + const root = new StructTreeRoot(this.xref, obj, rawObj); + root.init(); + return root; + } + get toplevelPagesDict() { + const pagesObj = this.#catDict.get("Pages"); + if (!(pagesObj instanceof Dict)) { + throw new FormatError("Invalid top-level pages dictionary."); + } + return shadow(this, "toplevelPagesDict", pagesObj); + } + get documentOutline() { + let obj = null; + try { + obj = this.#readDocumentOutline(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read document outline."); + } + return shadow(this, "documentOutline", obj); + } + #readDocumentOutline() { + let obj = this.#catDict.get("Outlines"); + if (!(obj instanceof Dict)) { + return null; + } + obj = obj.getRaw("First"); + if (!(obj instanceof Ref)) { + return null; + } + const root = { + items: [] + }; + const queue = [{ + obj, + parent: root + }]; + const processed = new RefSet(); + processed.put(obj); + const xref = this.xref, + blackColor = new Uint8ClampedArray(3); + while (queue.length > 0) { + const i = queue.shift(); + const outlineDict = xref.fetchIfRef(i.obj); + if (outlineDict === null) { + continue; + } + if (!outlineDict.has("Title")) { + warn("Invalid outline item encountered."); + } + const data = { + url: null, + dest: null, + action: null + }; + Catalog.parseDestDictionary({ + destDict: outlineDict, + resultObj: data, + docBaseUrl: this.baseUrl, + docAttachments: this.attachments + }); + const title = outlineDict.get("Title"); + const flags = outlineDict.get("F") || 0; + const color = outlineDict.getArray("C"); + const count = outlineDict.get("Count"); + let rgbColor = blackColor; + if (isNumberArray(color, 3) && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) { + rgbColor = ColorSpaceUtils.rgb.getRgb(color, 0); + } + const outlineItem = { + action: data.action, + attachment: data.attachment, + dest: data.dest, + url: data.url, + unsafeUrl: data.unsafeUrl, + newWindow: data.newWindow, + setOCGState: data.setOCGState, + title: typeof title === "string" ? stringToPDFString(title) : "", + color: rgbColor, + count: Number.isInteger(count) ? count : undefined, + bold: !!(flags & 2), + italic: !!(flags & 1), + items: [] + }; + i.parent.items.push(outlineItem); + obj = outlineDict.getRaw("First"); + if (obj instanceof Ref && !processed.has(obj)) { + queue.push({ + obj, + parent: outlineItem + }); + processed.put(obj); + } + obj = outlineDict.getRaw("Next"); + if (obj instanceof Ref && !processed.has(obj)) { + queue.push({ + obj, + parent: i.parent + }); + processed.put(obj); + } + } + return root.items.length > 0 ? root.items : null; + } + get permissions() { + let permissions = null; + try { + permissions = this.#readPermissions(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read permissions."); + } + return shadow(this, "permissions", permissions); + } + #readPermissions() { + const encrypt = this.xref.trailer.get("Encrypt"); + if (!(encrypt instanceof Dict)) { + return null; + } + let flags = encrypt.get("P"); + if (typeof flags !== "number") { + return null; + } + flags += 2 ** 32; + const permissions = []; + for (const key in PermissionFlag) { + const value = PermissionFlag[key]; + if (flags & value) { + permissions.push(value); + } + } + return permissions; + } + get optionalContentConfig() { + let config = null; + try { + const properties = this.#catDict.get("OCProperties"); + if (!properties) { + return shadow(this, "optionalContentConfig", null); + } + const defaultConfig = properties.get("D"); + if (!defaultConfig) { + return shadow(this, "optionalContentConfig", null); + } + const groupsData = properties.get("OCGs"); + if (!Array.isArray(groupsData)) { + return shadow(this, "optionalContentConfig", null); + } + const groupRefCache = new RefSetCache(); + for (const groupRef of groupsData) { + if (!(groupRef instanceof Ref) || groupRefCache.has(groupRef)) { + continue; + } + groupRefCache.put(groupRef, this.#readOptionalContentGroup(groupRef)); + } + config = this.#readOptionalContentConfig(defaultConfig, groupRefCache); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`Unable to read optional content config: ${ex}`); + } + return shadow(this, "optionalContentConfig", config); + } + #readOptionalContentGroup(groupRef) { + const group = this.xref.fetch(groupRef); + const obj = { + id: groupRef.toString(), + name: null, + intent: null, + usage: { + print: null, + view: null + }, + rbGroups: [] + }; + const name = group.get("Name"); + if (typeof name === "string") { + obj.name = stringToPDFString(name); + } + let intent = group.getArray("Intent"); + if (!Array.isArray(intent)) { + intent = [intent]; + } + if (intent.every(i => i instanceof Name)) { + obj.intent = intent.map(i => i.name); + } + const usage = group.get("Usage"); + if (!(usage instanceof Dict)) { + return obj; + } + const usageObj = obj.usage; + const print = usage.get("Print"); + if (print instanceof Dict) { + const printState = print.get("PrintState"); + if (printState instanceof Name) { + switch (printState.name) { + case "ON": + case "OFF": + usageObj.print = { + printState: printState.name + }; + } + } + } + const view = usage.get("View"); + if (view instanceof Dict) { + const viewState = view.get("ViewState"); + if (viewState instanceof Name) { + switch (viewState.name) { + case "ON": + case "OFF": + usageObj.view = { + viewState: viewState.name + }; + } + } + } + return obj; + } + #readOptionalContentConfig(config, groupRefCache) { + function parseOnOff(refs) { + const onParsed = []; + if (Array.isArray(refs)) { + for (const value of refs) { + if (value instanceof Ref && groupRefCache.has(value)) { + onParsed.push(value.toString()); + } + } + } + return onParsed; + } + function parseOrder(refs, nestedLevels = 0) { + if (!Array.isArray(refs)) { + return null; + } + const order = []; + for (const value of refs) { + if (value instanceof Ref && groupRefCache.has(value)) { + parsedOrderRefs.put(value); + order.push(value.toString()); + continue; + } + const nestedOrder = parseNestedOrder(value, nestedLevels); + if (nestedOrder) { + order.push(nestedOrder); + } + } + if (nestedLevels > 0) { + return order; + } + const hiddenGroups = []; + for (const [groupRef] of groupRefCache.items()) { + if (parsedOrderRefs.has(groupRef)) { + continue; + } + hiddenGroups.push(groupRef.toString()); + } + if (hiddenGroups.length) { + order.push({ + name: null, + order: hiddenGroups + }); + } + return order; + } + function parseNestedOrder(ref, nestedLevels) { + if (++nestedLevels > MAX_NESTED_LEVELS) { + warn("parseNestedOrder - reached MAX_NESTED_LEVELS."); + return null; + } + const value = xref.fetchIfRef(ref); + if (!Array.isArray(value)) { + return null; + } + const nestedName = xref.fetchIfRef(value[0]); + if (typeof nestedName !== "string") { + return null; + } + const nestedOrder = parseOrder(value.slice(1), nestedLevels); + if (!nestedOrder?.length) { + return null; + } + return { + name: stringToPDFString(nestedName), + order: nestedOrder + }; + } + function parseRBGroups(rbGroups) { + if (!Array.isArray(rbGroups)) { + return; + } + for (const value of rbGroups) { + const rbGroup = xref.fetchIfRef(value); + if (!Array.isArray(rbGroup) || !rbGroup.length) { + continue; + } + const parsedRbGroup = new Set(); + for (const ref of rbGroup) { + if (ref instanceof Ref && groupRefCache.has(ref) && !parsedRbGroup.has(ref.toString())) { + parsedRbGroup.add(ref.toString()); + groupRefCache.get(ref).rbGroups.push(parsedRbGroup); + } + } + } + } + const xref = this.xref, + parsedOrderRefs = new RefSet(), + MAX_NESTED_LEVELS = 10; + parseRBGroups(config.get("RBGroups")); + return { + name: typeof config.get("Name") === "string" ? stringToPDFString(config.get("Name")) : null, + creator: typeof config.get("Creator") === "string" ? stringToPDFString(config.get("Creator")) : null, + baseState: config.get("BaseState") instanceof Name ? config.get("BaseState").name : null, + on: parseOnOff(config.get("ON")), + off: parseOnOff(config.get("OFF")), + order: parseOrder(config.get("Order")), + groups: [...groupRefCache] + }; + } + setActualNumPages(num = null) { + this.#actualNumPages = num; + } + get hasActualNumPages() { + return this.#actualNumPages !== null; + } + get _pagesCount() { + const obj = this.toplevelPagesDict.get("Count"); + if (!Number.isInteger(obj)) { + throw new FormatError("Page count in top-level pages dictionary is not an integer."); + } + return shadow(this, "_pagesCount", obj); + } + get numPages() { + return this.#actualNumPages ?? this._pagesCount; + } + get destinations() { + const rawDests = this.#readDests(), + dests = Object.create(null); + for (const obj of rawDests) { + if (obj instanceof NameTree) { + for (const [key, value] of obj.getAll()) { + const dest = fetchDest(value); + if (dest) { + dests[stringToPDFString(key, true)] = dest; + } + } + } else if (obj instanceof Dict) { + for (const [key, value] of obj) { + const dest = fetchDest(value); + if (dest) { + dests[stringToPDFString(key, true)] ||= dest; + } + } + } + } + return shadow(this, "destinations", dests); + } + getDestination(id) { + if (this.hasOwnProperty("destinations")) { + return this.destinations[id] ?? null; + } + const rawDests = this.#readDests(); + for (const obj of rawDests) { + if (obj instanceof NameTree || obj instanceof Dict) { + const dest = fetchDest(obj.get(id)); + if (dest) { + return dest; + } + } + } + if (rawDests.length) { + const dest = this.destinations[id]; + if (dest) { + return dest; + } + } + return null; + } + #readDests() { + const obj = this.#catDict.get("Names"); + const rawDests = []; + if (obj?.has("Dests")) { + rawDests.push(new NameTree(obj.getRaw("Dests"), this.xref)); + } + if (this.#catDict.has("Dests")) { + rawDests.push(this.#catDict.get("Dests")); + } + return rawDests; + } + get pageLabels() { + let obj = null; + try { + obj = this.#readPageLabels(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read page labels."); + } + return shadow(this, "pageLabels", obj); + } + #readPageLabels() { + const obj = this.#catDict.getRaw("PageLabels"); + if (!obj) { + return null; + } + const pageLabels = new Array(this.numPages); + let style = null, + prefix = ""; + const numberTree = new NumberTree(obj, this.xref); + const nums = numberTree.getAll(); + let currentLabel = "", + currentIndex = 1; + for (let i = 0, ii = this.numPages; i < ii; i++) { + const labelDict = nums.get(i); + if (labelDict !== undefined) { + if (!(labelDict instanceof Dict)) { + throw new FormatError("PageLabel is not a dictionary."); + } + if (labelDict.has("Type") && !isName(labelDict.get("Type"), "PageLabel")) { + throw new FormatError("Invalid type in PageLabel dictionary."); + } + if (labelDict.has("S")) { + const s = labelDict.get("S"); + if (!(s instanceof Name)) { + throw new FormatError("Invalid style in PageLabel dictionary."); + } + style = s.name; + } else { + style = null; + } + if (labelDict.has("P")) { + const p = labelDict.get("P"); + if (typeof p !== "string") { + throw new FormatError("Invalid prefix in PageLabel dictionary."); + } + prefix = stringToPDFString(p); + } else { + prefix = ""; + } + if (labelDict.has("St")) { + const st = labelDict.get("St"); + if (!(Number.isInteger(st) && st >= 1)) { + throw new FormatError("Invalid start in PageLabel dictionary."); + } + currentIndex = st; + } else { + currentIndex = 1; + } + } + switch (style) { + case "D": + currentLabel = currentIndex; + break; + case "R": + case "r": + currentLabel = toRomanNumerals(currentIndex, style === "r"); + break; + case "A": + case "a": + const LIMIT = 26; + const A_UPPER_CASE = 0x41, + A_LOWER_CASE = 0x61; + const baseCharCode = style === "a" ? A_LOWER_CASE : A_UPPER_CASE; + const letterIndex = currentIndex - 1; + const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT); + currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1); + break; + default: + if (style) { + throw new FormatError(`Invalid style "${style}" in PageLabel dictionary.`); + } + currentLabel = ""; + } + pageLabels[i] = prefix + currentLabel; + currentIndex++; + } + return pageLabels; + } + get pageLayout() { + const obj = this.#catDict.get("PageLayout"); + let pageLayout = ""; + if (obj instanceof Name) { + switch (obj.name) { + case "SinglePage": + case "OneColumn": + case "TwoColumnLeft": + case "TwoColumnRight": + case "TwoPageLeft": + case "TwoPageRight": + pageLayout = obj.name; + } + } + return shadow(this, "pageLayout", pageLayout); + } + get pageMode() { + const obj = this.#catDict.get("PageMode"); + let pageMode = "UseNone"; + if (obj instanceof Name) { + switch (obj.name) { + case "UseNone": + case "UseOutlines": + case "UseThumbs": + case "FullScreen": + case "UseOC": + case "UseAttachments": + pageMode = obj.name; + } + } + return shadow(this, "pageMode", pageMode); + } + get viewerPreferences() { + const obj = this.#catDict.get("ViewerPreferences"); + if (!(obj instanceof Dict)) { + return shadow(this, "viewerPreferences", null); + } + let prefs = null; + for (const [key, value] of obj) { + let prefValue; + switch (key) { + case "HideToolbar": + case "HideMenubar": + case "HideWindowUI": + case "FitWindow": + case "CenterWindow": + case "DisplayDocTitle": + case "PickTrayByPDFSize": + if (typeof value === "boolean") { + prefValue = value; + } + break; + case "NonFullScreenPageMode": + if (value instanceof Name) { + switch (value.name) { + case "UseNone": + case "UseOutlines": + case "UseThumbs": + case "UseOC": + prefValue = value.name; + break; + default: + prefValue = "UseNone"; + } + } + break; + case "Direction": + if (value instanceof Name) { + switch (value.name) { + case "L2R": + case "R2L": + prefValue = value.name; + break; + default: + prefValue = "L2R"; + } + } + break; + case "ViewArea": + case "ViewClip": + case "PrintArea": + case "PrintClip": + if (value instanceof Name) { + switch (value.name) { + case "MediaBox": + case "CropBox": + case "BleedBox": + case "TrimBox": + case "ArtBox": + prefValue = value.name; + break; + default: + prefValue = "CropBox"; + } + } + break; + case "PrintScaling": + if (value instanceof Name) { + switch (value.name) { + case "None": + case "AppDefault": + prefValue = value.name; + break; + default: + prefValue = "AppDefault"; + } + } + break; + case "Duplex": + if (value instanceof Name) { + switch (value.name) { + case "Simplex": + case "DuplexFlipShortEdge": + case "DuplexFlipLongEdge": + prefValue = value.name; + break; + default: + prefValue = "None"; + } + } + break; + case "PrintPageRange": + if (Array.isArray(value) && value.length % 2 === 0) { + const isValid = value.every((page, i, arr) => Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages); + if (isValid) { + prefValue = value; + } + } + break; + case "NumCopies": + if (Number.isInteger(value) && value > 0) { + prefValue = value; + } + break; + default: + warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`); + continue; + } + if (prefValue === undefined) { + warn(`Bad value, for key "${key}", in ViewerPreferences: ${value}.`); + continue; + } + prefs ??= Object.create(null); + prefs[key] = prefValue; + } + return shadow(this, "viewerPreferences", prefs); + } + get openAction() { + const obj = this.#catDict.get("OpenAction"); + const openAction = Object.create(null); + if (obj instanceof Dict) { + const destDict = new Dict(this.xref); + destDict.set("A", obj); + const resultObj = { + url: null, + dest: null, + action: null + }; + Catalog.parseDestDictionary({ + destDict, + resultObj + }); + if (Array.isArray(resultObj.dest)) { + openAction.dest = resultObj.dest; + } else if (resultObj.action) { + openAction.action = resultObj.action; + } + } else if (isValidExplicitDest(obj)) { + openAction.dest = obj; + } + return shadow(this, "openAction", objectSize(openAction) > 0 ? openAction : null); + } + get attachments() { + const obj = this.#catDict.get("Names"); + let attachments = null; + if (obj instanceof Dict && obj.has("EmbeddedFiles")) { + const nameTree = new NameTree(obj.getRaw("EmbeddedFiles"), this.xref); + for (const [key, value] of nameTree.getAll()) { + const fs = new FileSpec(value, this.xref); + attachments ??= Object.create(null); + attachments[stringToPDFString(key, true)] = fs.serializable; + } + } + return shadow(this, "attachments", attachments); + } + get xfaImages() { + const obj = this.#catDict.get("Names"); + let xfaImages = null; + if (obj instanceof Dict && obj.has("XFAImages")) { + const nameTree = new NameTree(obj.getRaw("XFAImages"), this.xref); + for (const [key, value] of nameTree.getAll()) { + if (value instanceof BaseStream) { + xfaImages ??= new Map(); + xfaImages.set(stringToPDFString(key, true), value.getBytes()); + } + } + } + return shadow(this, "xfaImages", xfaImages); + } + #collectJavaScript() { + const obj = this.#catDict.get("Names"); + let javaScript = null; + function appendIfJavaScriptDict(name, jsDict) { + if (!(jsDict instanceof Dict)) { + return; + } + if (!isName(jsDict.get("S"), "JavaScript")) { + return; + } + let js = jsDict.get("JS"); + if (js instanceof BaseStream) { + js = js.getString(); + } else if (typeof js !== "string") { + return; + } + js = stringToPDFString(js, true).replaceAll("\x00", ""); + if (js) { + (javaScript ||= new Map()).set(name, js); + } + } + if (obj instanceof Dict && obj.has("JavaScript")) { + const nameTree = new NameTree(obj.getRaw("JavaScript"), this.xref); + for (const [key, value] of nameTree.getAll()) { + appendIfJavaScriptDict(stringToPDFString(key, true), value); + } + } + const openAction = this.#catDict.get("OpenAction"); + if (openAction) { + appendIfJavaScriptDict("OpenAction", openAction); + } + return javaScript; + } + get jsActions() { + const javaScript = this.#collectJavaScript(); + let actions = collectActions(this.xref, this.#catDict, DocumentActionEventType); + if (javaScript) { + actions ||= Object.create(null); + for (const [key, val] of javaScript) { + if (key in actions) { + actions[key].push(val); + } else { + actions[key] = [val]; + } + } + } + return shadow(this, "jsActions", actions); + } + async cleanup(manuallyTriggered = false) { + clearGlobalCaches(); + this.globalColorSpaceCache.clear(); + this.globalImageCache.clear(manuallyTriggered); + this.pageKidsCountCache.clear(); + this.pageIndexCache.clear(); + this.pageDictCache.clear(); + this.nonBlendModesSet.clear(); + for (const { + dict + } of await Promise.all(this.fontCache)) { + delete dict.cacheKey; + } + this.fontCache.clear(); + this.builtInCMapCache.clear(); + this.standardFontDataCache.clear(); + this.systemFontCache.clear(); + } + async getPageDict(pageIndex) { + const nodesToVisit = [this.toplevelPagesDict]; + const visitedNodes = new RefSet(); + const pagesRef = this.#catDict.getRaw("Pages"); + if (pagesRef instanceof Ref) { + visitedNodes.put(pagesRef); + } + const xref = this.xref, + pageKidsCountCache = this.pageKidsCountCache, + pageIndexCache = this.pageIndexCache, + pageDictCache = this.pageDictCache; + let currentPageIndex = 0; + while (nodesToVisit.length) { + const currentNode = nodesToVisit.pop(); + if (currentNode instanceof Ref) { + const count = pageKidsCountCache.get(currentNode); + if (count >= 0 && currentPageIndex + count <= pageIndex) { + currentPageIndex += count; + continue; + } + if (visitedNodes.has(currentNode)) { + throw new FormatError("Pages tree contains circular reference."); + } + visitedNodes.put(currentNode); + const obj = await (pageDictCache.get(currentNode) || xref.fetchAsync(currentNode)); + if (obj instanceof Dict) { + let type = obj.getRaw("Type"); + if (type instanceof Ref) { + type = await xref.fetchAsync(type); + } + if (isName(type, "Page") || !obj.has("Kids")) { + if (!pageKidsCountCache.has(currentNode)) { + pageKidsCountCache.put(currentNode, 1); + } + if (!pageIndexCache.has(currentNode)) { + pageIndexCache.put(currentNode, currentPageIndex); + } + if (currentPageIndex === pageIndex) { + return [obj, currentNode]; + } + currentPageIndex++; + continue; + } + } + nodesToVisit.push(obj); + continue; + } + if (!(currentNode instanceof Dict)) { + throw new FormatError("Page dictionary kid reference points to wrong type of object."); + } + const { + objId + } = currentNode; + let count = currentNode.getRaw("Count"); + if (count instanceof Ref) { + count = await xref.fetchAsync(count); + } + if (Number.isInteger(count) && count >= 0) { + if (objId && !pageKidsCountCache.has(objId)) { + pageKidsCountCache.put(objId, count); + } + if (currentPageIndex + count <= pageIndex) { + currentPageIndex += count; + continue; + } + } + let kids = currentNode.getRaw("Kids"); + if (kids instanceof Ref) { + kids = await xref.fetchAsync(kids); + } + if (!Array.isArray(kids)) { + let type = currentNode.getRaw("Type"); + if (type instanceof Ref) { + type = await xref.fetchAsync(type); + } + if (isName(type, "Page") || !currentNode.has("Kids")) { + if (currentPageIndex === pageIndex) { + return [currentNode, null]; + } + currentPageIndex++; + continue; + } + throw new FormatError("Page dictionary kids object is not an array."); + } + for (let last = kids.length - 1; last >= 0; last--) { + const lastKid = kids[last]; + nodesToVisit.push(lastKid); + if (currentNode === this.toplevelPagesDict && lastKid instanceof Ref && !pageDictCache.has(lastKid)) { + pageDictCache.put(lastKid, xref.fetchAsync(lastKid)); + } + } + } + throw new Error(`Page index ${pageIndex} not found.`); + } + async getAllPageDicts(recoveryMode = false) { + const { + ignoreErrors + } = this.pdfManager.evaluatorOptions; + const queue = [{ + currentNode: this.toplevelPagesDict, + posInKids: 0 + }]; + const visitedNodes = new RefSet(); + const pagesRef = this.#catDict.getRaw("Pages"); + if (pagesRef instanceof Ref) { + visitedNodes.put(pagesRef); + } + const map = new Map(), + xref = this.xref, + pageIndexCache = this.pageIndexCache; + let pageIndex = 0; + function addPageDict(pageDict, pageRef) { + if (pageRef && !pageIndexCache.has(pageRef)) { + pageIndexCache.put(pageRef, pageIndex); + } + map.set(pageIndex++, [pageDict, pageRef]); + } + function addPageError(error) { + if (error instanceof XRefEntryException && !recoveryMode) { + throw error; + } + if (recoveryMode && ignoreErrors && pageIndex === 0) { + warn(`getAllPageDicts - Skipping invalid first page: "${error}".`); + error = Dict.empty; + } + map.set(pageIndex++, [error, null]); + } + while (queue.length > 0) { + const queueItem = queue.at(-1); + const { + currentNode, + posInKids + } = queueItem; + let kids = currentNode.getRaw("Kids"); + if (kids instanceof Ref) { + try { + kids = await xref.fetchAsync(kids); + } catch (ex) { + addPageError(ex); + break; + } + } + if (!Array.isArray(kids)) { + addPageError(new FormatError("Page dictionary kids object is not an array.")); + break; + } + if (posInKids >= kids.length) { + queue.pop(); + continue; + } + const kidObj = kids[posInKids]; + let obj; + if (kidObj instanceof Ref) { + if (visitedNodes.has(kidObj)) { + addPageError(new FormatError("Pages tree contains circular reference.")); + break; + } + visitedNodes.put(kidObj); + try { + obj = await xref.fetchAsync(kidObj); + } catch (ex) { + addPageError(ex); + break; + } + } else { + obj = kidObj; + } + if (!(obj instanceof Dict)) { + addPageError(new FormatError("Page dictionary kid reference points to wrong type of object.")); + break; + } + let type = obj.getRaw("Type"); + if (type instanceof Ref) { + try { + type = await xref.fetchAsync(type); + } catch (ex) { + addPageError(ex); + break; + } + } + if (isName(type, "Page") || !obj.has("Kids")) { + addPageDict(obj, kidObj instanceof Ref ? kidObj : null); + } else { + queue.push({ + currentNode: obj, + posInKids: 0 + }); + } + queueItem.posInKids++; + } + return map; + } + getPageIndex(pageRef) { + const cachedPageIndex = this.pageIndexCache.get(pageRef); + if (cachedPageIndex !== undefined) { + return Promise.resolve(cachedPageIndex); + } + const xref = this.xref; + function pagesBeforeRef(kidRef) { + let total = 0, + parentRef; + return xref.fetchAsync(kidRef).then(function (node) { + if (isRefsEqual(kidRef, pageRef) && !isDict(node, "Page") && !(node instanceof Dict && !node.has("Type") && node.has("Contents"))) { + throw new FormatError("The reference does not point to a /Page dictionary."); + } + if (!node) { + return null; + } + if (!(node instanceof Dict)) { + throw new FormatError("Node must be a dictionary."); + } + parentRef = node.getRaw("Parent"); + return node.getAsync("Parent"); + }).then(function (parent) { + if (!parent) { + return null; + } + if (!(parent instanceof Dict)) { + throw new FormatError("Parent must be a dictionary."); + } + return parent.getAsync("Kids"); + }).then(function (kids) { + if (!kids) { + return null; + } + const kidPromises = []; + let found = false; + for (const kid of kids) { + if (!(kid instanceof Ref)) { + throw new FormatError("Kid must be a reference."); + } + if (isRefsEqual(kid, kidRef)) { + found = true; + break; + } + kidPromises.push(xref.fetchAsync(kid).then(function (obj) { + if (!(obj instanceof Dict)) { + throw new FormatError("Kid node must be a dictionary."); + } + if (obj.has("Count")) { + total += obj.get("Count"); + } else { + total++; + } + })); + } + if (!found) { + throw new FormatError("Kid reference not found in parent's kids."); + } + return Promise.all(kidPromises).then(() => [total, parentRef]); + }); + } + let total = 0; + const next = ref => pagesBeforeRef(ref).then(args => { + if (!args) { + this.pageIndexCache.put(pageRef, total); + return total; + } + const [count, parentRef] = args; + total += count; + return next(parentRef); + }); + return next(pageRef); + } + get baseUrl() { + const uri = this.#catDict.get("URI"); + if (uri instanceof Dict) { + const base = uri.get("Base"); + if (typeof base === "string") { + const absoluteUrl = createValidAbsoluteUrl(base, null, { + tryConvertEncoding: true + }); + if (absoluteUrl) { + return shadow(this, "baseUrl", absoluteUrl.href); + } + } + } + return shadow(this, "baseUrl", this.pdfManager.docBaseUrl); + } + static parseDestDictionary({ + destDict, + resultObj, + docBaseUrl = null, + docAttachments = null + }) { + if (!(destDict instanceof Dict)) { + warn("parseDestDictionary: `destDict` must be a dictionary."); + return; + } + let action = destDict.get("A"), + url, + dest; + if (!(action instanceof Dict)) { + if (destDict.has("Dest")) { + action = destDict.get("Dest"); + } else { + action = destDict.get("AA"); + if (action instanceof Dict) { + if (action.has("D")) { + action = action.get("D"); + } else if (action.has("U")) { + action = action.get("U"); + } + } + } + } + if (action instanceof Dict) { + const actionType = action.get("S"); + if (!(actionType instanceof Name)) { + warn("parseDestDictionary: Invalid type in Action dictionary."); + return; + } + const actionName = actionType.name; + switch (actionName) { + case "ResetForm": + const flags = action.get("Flags"); + const include = ((typeof flags === "number" ? flags : 0) & 1) === 0; + const fields = []; + const refs = []; + for (const obj of action.get("Fields") || []) { + if (obj instanceof Ref) { + refs.push(obj.toString()); + } else if (typeof obj === "string") { + fields.push(stringToPDFString(obj)); + } + } + resultObj.resetForm = { + fields, + refs, + include + }; + break; + case "URI": + url = action.get("URI"); + if (url instanceof Name) { + url = "/" + url.name; + } + break; + case "GoTo": + dest = action.get("D"); + break; + case "Launch": + case "GoToR": + const urlDict = action.get("F"); + if (urlDict instanceof Dict) { + const fs = new FileSpec(urlDict, null, true); + const { + rawFilename + } = fs.serializable; + url = rawFilename; + } else if (typeof urlDict === "string") { + url = urlDict; + } + const remoteDest = fetchRemoteDest(action); + if (remoteDest && typeof url === "string") { + url = url.split("#", 1)[0] + "#" + remoteDest; + } + const newWindow = action.get("NewWindow"); + if (typeof newWindow === "boolean") { + resultObj.newWindow = newWindow; + } + break; + case "GoToE": + const target = action.get("T"); + let attachment; + if (docAttachments && target instanceof Dict) { + const relationship = target.get("R"); + const name = target.get("N"); + if (isName(relationship, "C") && typeof name === "string") { + attachment = docAttachments[stringToPDFString(name, true)]; + } + } + if (attachment) { + resultObj.attachment = attachment; + const attachmentDest = fetchRemoteDest(action); + if (attachmentDest) { + resultObj.attachmentDest = attachmentDest; + } + } else { + warn(`parseDestDictionary - unimplemented "GoToE" action.`); + } + break; + case "Named": + const namedAction = action.get("N"); + if (namedAction instanceof Name) { + resultObj.action = namedAction.name; + } + break; + case "SetOCGState": + const state = action.get("State"); + const preserveRB = action.get("PreserveRB"); + if (!Array.isArray(state) || state.length === 0) { + break; + } + const stateArr = []; + for (const elem of state) { + if (elem instanceof Name) { + switch (elem.name) { + case "ON": + case "OFF": + case "Toggle": + stateArr.push(elem.name); + break; + } + } else if (elem instanceof Ref) { + stateArr.push(elem.toString()); + } + } + if (stateArr.length !== state.length) { + break; + } + resultObj.setOCGState = { + state: stateArr, + preserveRB: typeof preserveRB === "boolean" ? preserveRB : true + }; + break; + case "JavaScript": + const jsAction = action.get("JS"); + let js; + if (jsAction instanceof BaseStream) { + js = jsAction.getString(); + } else if (typeof jsAction === "string") { + js = jsAction; + } + const jsURL = js && recoverJsURL(stringToPDFString(js, true)); + if (jsURL) { + url = jsURL.url; + resultObj.newWindow = jsURL.newWindow; + break; + } + default: + if (actionName === "JavaScript" || actionName === "SubmitForm") { + break; + } + warn(`parseDestDictionary - unsupported action: "${actionName}".`); + break; + } + } else if (destDict.has("Dest")) { + dest = destDict.get("Dest"); + } + if (typeof url === "string") { + const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, { + addDefaultProtocol: true, + tryConvertEncoding: true + }); + if (absoluteUrl) { + resultObj.url = absoluteUrl.href; + } + resultObj.unsafeUrl = url; + } + if (dest) { + if (dest instanceof Name) { + dest = dest.name; + } + if (typeof dest === "string") { + resultObj.dest = stringToPDFString(dest, true); + } else if (isValidExplicitDest(dest)) { + resultObj.dest = dest; + } + } + } +} + +;// ./src/core/object_loader.js + + + + +function mayHaveChildren(value) { + return value instanceof Ref || value instanceof Dict || value instanceof BaseStream || Array.isArray(value); +} +function addChildren(node, nodesToVisit) { + if (node instanceof Dict) { + node = node.getRawValues(); + } else if (node instanceof BaseStream) { + node = node.dict.getRawValues(); + } else if (!Array.isArray(node)) { + return; + } + for (const rawValue of node) { + if (mayHaveChildren(rawValue)) { + nodesToVisit.push(rawValue); + } + } +} +class ObjectLoader { + refSet = new RefSet(); + constructor(dict, keys, xref) { + this.dict = dict; + this.keys = keys; + this.xref = xref; + } + async load() { + const { + keys, + dict + } = this; + const nodesToVisit = []; + for (const key of keys) { + const rawValue = dict.getRaw(key); + if (rawValue !== undefined) { + nodesToVisit.push(rawValue); + } + } + await this.#walk(nodesToVisit); + this.refSet = null; + } + async #walk(nodesToVisit) { + const nodesToRevisit = []; + const pendingRequests = []; + while (nodesToVisit.length) { + let currentNode = nodesToVisit.pop(); + if (currentNode instanceof Ref) { + if (this.refSet.has(currentNode)) { + continue; + } + try { + this.refSet.put(currentNode); + currentNode = this.xref.fetch(currentNode); + } catch (ex) { + if (!(ex instanceof MissingDataException)) { + warn(`ObjectLoader.#walk - requesting all data: "${ex}".`); + await this.xref.stream.manager.requestAllChunks(); + return; + } + nodesToRevisit.push(currentNode); + pendingRequests.push({ + begin: ex.begin, + end: ex.end + }); + } + } + if (currentNode instanceof BaseStream) { + const baseStreams = currentNode.getBaseStreams(); + if (baseStreams) { + let foundMissingData = false; + for (const stream of baseStreams) { + if (stream.isDataLoaded) { + continue; + } + foundMissingData = true; + pendingRequests.push({ + begin: stream.start, + end: stream.end + }); + } + if (foundMissingData) { + nodesToRevisit.push(currentNode); + } + } + } + addChildren(currentNode, nodesToVisit); + } + if (pendingRequests.length) { + await this.xref.stream.manager.requestRanges(pendingRequests); + for (const node of nodesToRevisit) { + if (node instanceof Ref) { + this.refSet.remove(node); + } + } + await this.#walk(nodesToRevisit); + } + } + static async load(obj, keys, xref) { + if (xref.stream.isDataLoaded) { + return; + } + const objLoader = new ObjectLoader(obj, keys, xref); + await objLoader.load(); + } +} + +;// ./src/core/xfa/symbol_utils.js +const $acceptWhitespace = Symbol(); +const $addHTML = Symbol(); +const $appendChild = Symbol(); +const $childrenToHTML = Symbol(); +const $clean = Symbol(); +const $cleanPage = Symbol(); +const $cleanup = Symbol(); +const $clone = Symbol(); +const $consumed = Symbol(); +const $content = Symbol("content"); +const $data = Symbol("data"); +const $dump = Symbol(); +const $extra = Symbol("extra"); +const $finalize = Symbol(); +const $flushHTML = Symbol(); +const $getAttributeIt = Symbol(); +const $getAttributes = Symbol(); +const $getAvailableSpace = Symbol(); +const $getChildrenByClass = Symbol(); +const $getChildrenByName = Symbol(); +const $getChildrenByNameIt = Symbol(); +const $getDataValue = Symbol(); +const $getExtra = Symbol(); +const $getRealChildrenByNameIt = Symbol(); +const $getChildren = Symbol(); +const $getContainedChildren = Symbol(); +const $getNextPage = Symbol(); +const $getSubformParent = Symbol(); +const $getParent = Symbol(); +const $getTemplateRoot = Symbol(); +const $globalData = Symbol(); +const $hasSettableValue = Symbol(); +const $ids = Symbol(); +const $indexOf = Symbol(); +const $insertAt = Symbol(); +const $isCDATAXml = Symbol(); +const $isBindable = Symbol(); +const $isDataValue = Symbol(); +const $isDescendent = Symbol(); +const $isNsAgnostic = Symbol(); +const $isSplittable = Symbol(); +const $isThereMoreWidth = Symbol(); +const $isTransparent = Symbol(); +const $isUsable = Symbol(); +const $lastAttribute = Symbol(); +const $namespaceId = Symbol("namespaceId"); +const $nodeName = Symbol("nodeName"); +const $nsAttributes = Symbol(); +const $onChild = Symbol(); +const $onChildCheck = Symbol(); +const $onText = Symbol(); +const $pushGlyphs = Symbol(); +const $popPara = Symbol(); +const $pushPara = Symbol(); +const $removeChild = Symbol(); +const $root = Symbol("root"); +const $resolvePrototypes = Symbol(); +const $searchNode = Symbol(); +const $setId = Symbol(); +const $setSetAttributes = Symbol(); +const $setValue = Symbol(); +const $tabIndex = Symbol(); +const $text = Symbol(); +const $toPages = Symbol(); +const $toHTML = Symbol(); +const $toString = Symbol(); +const $toStyle = Symbol(); +const $uid = Symbol("uid"); + +;// ./src/core/xfa/namespaces.js +const $buildXFAObject = Symbol(); +const NamespaceIds = { + config: { + id: 0, + check: ns => ns.startsWith("http://www.xfa.org/schema/xci/") + }, + connectionSet: { + id: 1, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-connection-set/") + }, + datasets: { + id: 2, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-data/") + }, + form: { + id: 3, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-form/") + }, + localeSet: { + id: 4, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-locale-set/") + }, + pdf: { + id: 5, + check: ns => ns === "http://ns.adobe.com/xdp/pdf/" + }, + signature: { + id: 6, + check: ns => ns === "http://www.w3.org/2000/09/xmldsig#" + }, + sourceSet: { + id: 7, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-source-set/") + }, + stylesheet: { + id: 8, + check: ns => ns === "http://www.w3.org/1999/XSL/Transform" + }, + template: { + id: 9, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-template/") + }, + xdc: { + id: 10, + check: ns => ns.startsWith("http://www.xfa.org/schema/xdc/") + }, + xdp: { + id: 11, + check: ns => ns === "http://ns.adobe.com/xdp/" + }, + xfdf: { + id: 12, + check: ns => ns === "http://ns.adobe.com/xfdf/" + }, + xhtml: { + id: 13, + check: ns => ns === "http://www.w3.org/1999/xhtml" + }, + xmpmeta: { + id: 14, + check: ns => ns === "http://ns.adobe.com/xmpmeta/" + } +}; + +;// ./src/core/xfa/utils.js + +const dimConverters = { + pt: x => x, + cm: x => x / 2.54 * 72, + mm: x => x / (10 * 2.54) * 72, + in: x => x * 72, + px: x => x +}; +const measurementPattern = /([+-]?\d+\.?\d*)(.*)/; +function stripQuotes(str) { + if (str.startsWith("'") || str.startsWith('"')) { + return str.slice(1, -1); + } + return str; +} +function getInteger({ + data, + defaultValue, + validate +}) { + if (!data) { + return defaultValue; + } + data = data.trim(); + const n = parseInt(data, 10); + if (!isNaN(n) && validate(n)) { + return n; + } + return defaultValue; +} +function getFloat({ + data, + defaultValue, + validate +}) { + if (!data) { + return defaultValue; + } + data = data.trim(); + const n = parseFloat(data); + if (!isNaN(n) && validate(n)) { + return n; + } + return defaultValue; +} +function getKeyword({ + data, + defaultValue, + validate +}) { + if (!data) { + return defaultValue; + } + data = data.trim(); + if (validate(data)) { + return data; + } + return defaultValue; +} +function getStringOption(data, options) { + return getKeyword({ + data, + defaultValue: options[0], + validate: k => options.includes(k) + }); +} +function getMeasurement(str, def = "0") { + def ||= "0"; + if (!str) { + return getMeasurement(def); + } + const match = str.trim().match(measurementPattern); + if (!match) { + return getMeasurement(def); + } + const [, valueStr, unit] = match; + const value = parseFloat(valueStr); + if (isNaN(value)) { + return getMeasurement(def); + } + if (value === 0) { + return 0; + } + const conv = dimConverters[unit]; + if (conv) { + return conv(value); + } + return value; +} +function getRatio(data) { + if (!data) { + return { + num: 1, + den: 1 + }; + } + const ratio = data.split(":", 2).map(x => parseFloat(x.trim())).filter(x => !isNaN(x)); + if (ratio.length === 1) { + ratio.push(1); + } + if (ratio.length === 0) { + return { + num: 1, + den: 1 + }; + } + const [num, den] = ratio; + return { + num, + den + }; +} +function getRelevant(data) { + if (!data) { + return []; + } + return data.trim().split(/\s+/).map(e => ({ + excluded: e[0] === "-", + viewname: e.substring(1) + })); +} +function getColor(data, def = [0, 0, 0]) { + let [r, g, b] = def; + if (!data) { + return { + r, + g, + b + }; + } + const color = data.split(",", 3).map(c => MathClamp(parseInt(c.trim(), 10), 0, 255)).map(c => isNaN(c) ? 0 : c); + if (color.length < 3) { + return { + r, + g, + b + }; + } + [r, g, b] = color; + return { + r, + g, + b + }; +} +function getBBox(data) { + const def = -1; + if (!data) { + return { + x: def, + y: def, + width: def, + height: def + }; + } + const bbox = data.split(",", 4).map(m => getMeasurement(m.trim(), "-1")); + if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) { + return { + x: def, + y: def, + width: def, + height: def + }; + } + const [x, y, width, height] = bbox; + return { + x, + y, + width, + height + }; +} +class HTMLResult { + static get FAILURE() { + return shadow(this, "FAILURE", new HTMLResult(false, null, null, null)); + } + static get EMPTY() { + return shadow(this, "EMPTY", new HTMLResult(true, null, null, null)); + } + constructor(success, html, bbox, breakNode) { + this.success = success; + this.html = html; + this.bbox = bbox; + this.breakNode = breakNode; + } + isBreak() { + return !!this.breakNode; + } + static breakNode(node) { + return new HTMLResult(false, null, null, node); + } + static success(html, bbox = null) { + return new HTMLResult(true, html, bbox, null); + } +} + +;// ./src/core/xfa/fonts.js + + + +class FontFinder { + constructor(pdfFonts) { + this.fonts = new Map(); + this.cache = new Map(); + this.warned = new Set(); + this.defaultFont = null; + this.add(pdfFonts); + } + add(pdfFonts, reallyMissingFonts = null) { + for (const pdfFont of pdfFonts) { + this.addPdfFont(pdfFont); + } + for (const pdfFont of this.fonts.values()) { + if (!pdfFont.regular) { + pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic; + } + } + if (!reallyMissingFonts || reallyMissingFonts.size === 0) { + return; + } + const myriad = this.fonts.get("PdfJS-Fallback-PdfJS-XFA"); + for (const missing of reallyMissingFonts) { + this.fonts.set(missing, myriad); + } + } + addPdfFont(pdfFont) { + const cssFontInfo = pdfFont.cssFontInfo; + const name = cssFontInfo.fontFamily; + let font = this.fonts.get(name); + if (!font) { + font = Object.create(null); + this.fonts.set(name, font); + if (!this.defaultFont) { + this.defaultFont = font; + } + } + let property = ""; + const fontWeight = parseFloat(cssFontInfo.fontWeight); + if (parseFloat(cssFontInfo.italicAngle) !== 0) { + property = fontWeight >= 700 ? "bolditalic" : "italic"; + } else if (fontWeight >= 700) { + property = "bold"; + } + if (!property) { + if (pdfFont.name.includes("Bold") || pdfFont.psName?.includes("Bold")) { + property = "bold"; + } + if (pdfFont.name.includes("Italic") || pdfFont.name.endsWith("It") || pdfFont.psName?.includes("Italic") || pdfFont.psName?.endsWith("It")) { + property += "italic"; + } + } + if (!property) { + property = "regular"; + } + font[property] = pdfFont; + } + getDefault() { + return this.defaultFont; + } + find(fontName, mustWarn = true) { + let font = this.fonts.get(fontName) || this.cache.get(fontName); + if (font) { + return font; + } + const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi; + let name = fontName.replaceAll(pattern, ""); + font = this.fonts.get(name); + if (font) { + this.cache.set(fontName, font); + return font; + } + name = name.toLowerCase(); + const maybe = []; + for (const [family, pdfFont] of this.fonts.entries()) { + if (family.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + if (maybe.length === 0) { + for (const [, pdfFont] of this.fonts.entries()) { + if (pdfFont.regular.name?.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + } + if (maybe.length === 0) { + name = name.replaceAll(/psmt|mt/gi, ""); + for (const [family, pdfFont] of this.fonts.entries()) { + if (family.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + } + if (maybe.length === 0) { + for (const pdfFont of this.fonts.values()) { + if (pdfFont.regular.name?.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + } + if (maybe.length >= 1) { + if (maybe.length !== 1 && mustWarn) { + warn(`XFA - Too many choices to guess the correct font: ${fontName}`); + } + this.cache.set(fontName, maybe[0]); + return maybe[0]; + } + if (mustWarn && !this.warned.has(fontName)) { + this.warned.add(fontName); + warn(`XFA - Cannot find the font: ${fontName}`); + } + return null; + } +} +function selectFont(xfaFont, typeface) { + if (xfaFont.posture === "italic") { + if (xfaFont.weight === "bold") { + return typeface.bolditalic; + } + return typeface.italic; + } else if (xfaFont.weight === "bold") { + return typeface.bold; + } + return typeface.regular; +} +function fonts_getMetrics(xfaFont, real = false) { + let pdfFont = null; + if (xfaFont) { + const name = stripQuotes(xfaFont.typeface); + const typeface = xfaFont[$globalData].fontFinder.find(name); + pdfFont = selectFont(xfaFont, typeface); + } + if (!pdfFont) { + return { + lineHeight: 12, + lineGap: 2, + lineNoGap: 10 + }; + } + const size = xfaFont.size || 10; + const lineHeight = pdfFont.lineHeight ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight) : 1.2; + const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap; + return { + lineHeight: lineHeight * size, + lineGap: lineGap * size, + lineNoGap: Math.max(1, lineHeight - lineGap) * size + }; +} + +;// ./src/core/xfa/text.js + +const WIDTH_FACTOR = 1.02; +class FontInfo { + constructor(xfaFont, margin, lineHeight, fontFinder) { + this.lineHeight = lineHeight; + this.paraMargin = margin || { + top: 0, + bottom: 0, + left: 0, + right: 0 + }; + if (!xfaFont) { + [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder); + return; + } + this.xfaFont = { + typeface: xfaFont.typeface, + posture: xfaFont.posture, + weight: xfaFont.weight, + size: xfaFont.size, + letterSpacing: xfaFont.letterSpacing + }; + const typeface = fontFinder.find(xfaFont.typeface); + if (!typeface) { + [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder); + return; + } + this.pdfFont = selectFont(xfaFont, typeface); + if (!this.pdfFont) { + [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder); + } + } + defaultFont(fontFinder) { + const font = fontFinder.find("Helvetica", false) || fontFinder.find("Myriad Pro", false) || fontFinder.find("Arial", false) || fontFinder.getDefault(); + if (font?.regular) { + const pdfFont = font.regular; + const info = pdfFont.cssFontInfo; + const xfaFont = { + typeface: info.fontFamily, + posture: "normal", + weight: "normal", + size: 10, + letterSpacing: 0 + }; + return [pdfFont, xfaFont]; + } + const xfaFont = { + typeface: "Courier", + posture: "normal", + weight: "normal", + size: 10, + letterSpacing: 0 + }; + return [null, xfaFont]; + } +} +class FontSelector { + constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder) { + this.fontFinder = fontFinder; + this.stack = [new FontInfo(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder)]; + } + pushData(xfaFont, margin, lineHeight) { + const lastFont = this.stack.at(-1); + for (const name of ["typeface", "posture", "weight", "size", "letterSpacing"]) { + if (!xfaFont[name]) { + xfaFont[name] = lastFont.xfaFont[name]; + } + } + for (const name of ["top", "bottom", "left", "right"]) { + if (isNaN(margin[name])) { + margin[name] = lastFont.paraMargin[name]; + } + } + const fontInfo = new FontInfo(xfaFont, margin, lineHeight || lastFont.lineHeight, this.fontFinder); + if (!fontInfo.pdfFont) { + fontInfo.pdfFont = lastFont.pdfFont; + } + this.stack.push(fontInfo); + } + popFont() { + this.stack.pop(); + } + topFont() { + return this.stack.at(-1); + } +} +class TextMeasure { + constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) { + this.glyphs = []; + this.fontSelector = new FontSelector(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts); + this.extraHeight = 0; + } + pushData(xfaFont, margin, lineHeight) { + this.fontSelector.pushData(xfaFont, margin, lineHeight); + } + popFont(xfaFont) { + return this.fontSelector.popFont(); + } + addPara() { + const lastFont = this.fontSelector.topFont(); + this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom; + } + addString(str) { + if (!str) { + return; + } + const lastFont = this.fontSelector.topFont(); + const fontSize = lastFont.xfaFont.size; + if (lastFont.pdfFont) { + const letterSpacing = lastFont.xfaFont.letterSpacing; + const pdfFont = lastFont.pdfFont; + const fontLineHeight = pdfFont.lineHeight || 1.2; + const lineHeight = lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize; + const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap; + const noGap = fontLineHeight - lineGap; + const firstLineHeight = Math.max(1, noGap) * fontSize; + const scale = fontSize / 1000; + const fallbackWidth = pdfFont.defaultWidth || pdfFont.charsToGlyphs(" ")[0].width; + for (const line of str.split(/[\u2029\n]/)) { + const encodedLine = pdfFont.encodeString(line).join(""); + const glyphs = pdfFont.charsToGlyphs(encodedLine); + for (const glyph of glyphs) { + const width = glyph.width || fallbackWidth; + this.glyphs.push([width * scale + letterSpacing, lineHeight, firstLineHeight, glyph.unicode, false]); + } + this.glyphs.push([0, 0, 0, "\n", true]); + } + this.glyphs.pop(); + return; + } + for (const line of str.split(/[\u2029\n]/)) { + for (const char of line.split("")) { + this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]); + } + this.glyphs.push([0, 0, 0, "\n", true]); + } + this.glyphs.pop(); + } + compute(maxWidth) { + let lastSpacePos = -1, + lastSpaceWidth = 0, + width = 0, + height = 0, + currentLineWidth = 0, + currentLineHeight = 0; + let isBroken = false; + let isFirstLine = true; + for (let i = 0, ii = this.glyphs.length; i < ii; i++) { + const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] = this.glyphs[i]; + const isSpace = char === " "; + const glyphHeight = isFirstLine ? firstLineHeight : lineHeight; + if (isEOL) { + width = Math.max(width, currentLineWidth); + currentLineWidth = 0; + height += currentLineHeight; + currentLineHeight = glyphHeight; + lastSpacePos = -1; + lastSpaceWidth = 0; + isFirstLine = false; + continue; + } + if (isSpace) { + if (currentLineWidth + glyphWidth > maxWidth) { + width = Math.max(width, currentLineWidth); + currentLineWidth = 0; + height += currentLineHeight; + currentLineHeight = glyphHeight; + lastSpacePos = -1; + lastSpaceWidth = 0; + isBroken = true; + isFirstLine = false; + } else { + currentLineHeight = Math.max(glyphHeight, currentLineHeight); + lastSpaceWidth = currentLineWidth; + currentLineWidth += glyphWidth; + lastSpacePos = i; + } + continue; + } + if (currentLineWidth + glyphWidth > maxWidth) { + height += currentLineHeight; + currentLineHeight = glyphHeight; + if (lastSpacePos !== -1) { + i = lastSpacePos; + width = Math.max(width, lastSpaceWidth); + currentLineWidth = 0; + lastSpacePos = -1; + lastSpaceWidth = 0; + } else { + width = Math.max(width, currentLineWidth); + currentLineWidth = glyphWidth; + } + isBroken = true; + isFirstLine = false; + continue; + } + currentLineWidth += glyphWidth; + currentLineHeight = Math.max(glyphHeight, currentLineHeight); + } + width = Math.max(width, currentLineWidth); + height += currentLineHeight + this.extraHeight; + return { + width: WIDTH_FACTOR * width, + height, + isBroken + }; + } +} + +;// ./src/core/xfa/som.js + + +const namePattern = /^[^.[]+/; +const indexPattern = /^[^\]]+/; +const operators = { + dot: 0, + dotDot: 1, + dotHash: 2, + dotBracket: 3, + dotParen: 4 +}; +const shortcuts = new Map([["$data", (root, current) => root.datasets ? root.datasets.data : root], ["$record", (root, current) => (root.datasets ? root.datasets.data : root)[$getChildren]()[0]], ["$template", (root, current) => root.template], ["$connectionSet", (root, current) => root.connectionSet], ["$form", (root, current) => root.form], ["$layout", (root, current) => root.layout], ["$host", (root, current) => root.host], ["$dataWindow", (root, current) => root.dataWindow], ["$event", (root, current) => root.event], ["!", (root, current) => root.datasets], ["$xfa", (root, current) => root], ["xfa", (root, current) => root], ["$", (root, current) => current]]); +const somCache = new WeakMap(); +function parseIndex(index) { + index = index.trim(); + if (index === "*") { + return Infinity; + } + return parseInt(index, 10) || 0; +} +function parseExpression(expr, dotDotAllowed, noExpr = true) { + let match = expr.match(namePattern); + if (!match) { + return null; + } + let [name] = match; + const parsed = [{ + name, + cacheName: "." + name, + index: 0, + js: null, + formCalc: null, + operator: operators.dot + }]; + let pos = name.length; + while (pos < expr.length) { + const spos = pos; + const char = expr.charAt(pos++); + if (char === "[") { + match = expr.slice(pos).match(indexPattern); + if (!match) { + warn("XFA - Invalid index in SOM expression"); + return null; + } + parsed.at(-1).index = parseIndex(match[0]); + pos += match[0].length + 1; + continue; + } + let operator; + switch (expr.charAt(pos)) { + case ".": + if (!dotDotAllowed) { + return null; + } + pos++; + operator = operators.dotDot; + break; + case "#": + pos++; + operator = operators.dotHash; + break; + case "[": + if (noExpr) { + warn("XFA - SOM expression contains a FormCalc subexpression which is not supported for now."); + return null; + } + operator = operators.dotBracket; + break; + case "(": + if (noExpr) { + warn("XFA - SOM expression contains a JavaScript subexpression which is not supported for now."); + return null; + } + operator = operators.dotParen; + break; + default: + operator = operators.dot; + break; + } + match = expr.slice(pos).match(namePattern); + if (!match) { + break; + } + [name] = match; + pos += name.length; + parsed.push({ + name, + cacheName: expr.slice(spos, pos), + operator, + index: 0, + js: null, + formCalc: null + }); + } + return parsed; +} +function searchNode(root, container, expr, dotDotAllowed = true, useCache = true) { + const parsed = parseExpression(expr, dotDotAllowed); + if (!parsed) { + return null; + } + const fn = shortcuts.get(parsed[0].name); + let i = 0; + let isQualified; + if (fn) { + isQualified = true; + root = [fn(root, container)]; + i = 1; + } else { + isQualified = container === null; + root = [container || root]; + } + for (let ii = parsed.length; i < ii; i++) { + const { + name, + cacheName, + operator, + index + } = parsed[i]; + const nodes = []; + for (const node of root) { + if (!node.isXFAObject) { + continue; + } + let children, cached; + if (useCache) { + cached = somCache.get(node); + if (!cached) { + cached = new Map(); + somCache.set(node, cached); + } + children = cached.get(cacheName); + } + if (!children) { + switch (operator) { + case operators.dot: + children = node[$getChildrenByName](name, false); + break; + case operators.dotDot: + children = node[$getChildrenByName](name, true); + break; + case operators.dotHash: + children = node[$getChildrenByClass](name); + children = children.isXFAObjectArray ? children.children : [children]; + break; + default: + break; + } + if (useCache) { + cached.set(cacheName, children); + } + } + if (children.length > 0) { + nodes.push(children); + } + } + if (nodes.length === 0 && !isQualified && i === 0) { + const parent = container[$getParent](); + container = parent; + if (!container) { + return null; + } + i = -1; + root = [container]; + continue; + } + root = isFinite(index) ? nodes.filter(node => index < node.length).map(node => node[index]) : nodes.flat(); + } + if (root.length === 0) { + return null; + } + return root; +} +function createDataNode(root, container, expr) { + const parsed = parseExpression(expr); + if (!parsed) { + return null; + } + if (parsed.some(x => x.operator === operators.dotDot)) { + return null; + } + const fn = shortcuts.get(parsed[0].name); + let i = 0; + if (fn) { + root = fn(root, container); + i = 1; + } else { + root = container || root; + } + for (let ii = parsed.length; i < ii; i++) { + const { + name, + operator, + index + } = parsed[i]; + if (!isFinite(index)) { + parsed[i].index = 0; + return root.createNodes(parsed.slice(i)); + } + let children; + switch (operator) { + case operators.dot: + children = root[$getChildrenByName](name, false); + break; + case operators.dotDot: + children = root[$getChildrenByName](name, true); + break; + case operators.dotHash: + children = root[$getChildrenByClass](name); + children = children.isXFAObjectArray ? children.children : [children]; + break; + default: + break; + } + if (children.length === 0) { + return root.createNodes(parsed.slice(i)); + } + if (index < children.length) { + const child = children[index]; + if (!child.isXFAObject) { + warn(`XFA - Cannot create a node.`); + return null; + } + root = child; + } else { + parsed[i].index = index - children.length; + return root.createNodes(parsed.slice(i)); + } + } + return null; +} + +;// ./src/core/xfa/xfa_object.js + + + + + + +const _applyPrototype = Symbol(); +const _attributes = Symbol(); +const _attributeNames = Symbol(); +const _children = Symbol("_children"); +const _cloneAttribute = Symbol(); +const _dataValue = Symbol(); +const _defaultValue = Symbol(); +const _filteredChildrenGenerator = Symbol(); +const _getPrototype = Symbol(); +const _getUnsetAttributes = Symbol(); +const _hasChildren = Symbol(); +const _max = Symbol(); +const _options = Symbol(); +const _parent = Symbol("parent"); +const _resolvePrototypesHelper = Symbol(); +const _setAttributes = Symbol(); +const _validator = Symbol(); +let uid = 0; +const NS_DATASETS = NamespaceIds.datasets.id; +class XFAObject { + constructor(nsId, name, hasChildren = false) { + this[$namespaceId] = nsId; + this[$nodeName] = name; + this[_hasChildren] = hasChildren; + this[_parent] = null; + this[_children] = []; + this[$uid] = `${name}${uid++}`; + this[$globalData] = null; + } + get isXFAObject() { + return true; + } + get isXFAObjectArray() { + return false; + } + createNodes(path) { + let root = this, + node = null; + for (const { + name, + index + } of path) { + for (let i = 0, ii = isFinite(index) ? index : 0; i <= ii; i++) { + const nsId = root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId]; + node = new XmlObject(nsId, name); + root[$appendChild](node); + } + root = node; + } + return node; + } + [$onChild](child) { + if (!this[_hasChildren] || !this[$onChildCheck](child)) { + return false; + } + const name = child[$nodeName]; + const node = this[name]; + if (node instanceof XFAObjectArray) { + if (node.push(child)) { + this[$appendChild](child); + return true; + } + } else { + if (node !== null) { + this[$removeChild](node); + } + this[name] = child; + this[$appendChild](child); + return true; + } + let id = ""; + if (this.id) { + id = ` (id: ${this.id})`; + } else if (this.name) { + id = ` (name: ${this.name} ${this.h.value})`; + } + warn(`XFA - node "${this[$nodeName]}"${id} has already enough "${name}"!`); + return false; + } + [$onChildCheck](child) { + return this.hasOwnProperty(child[$nodeName]) && child[$namespaceId] === this[$namespaceId]; + } + [$isNsAgnostic]() { + return false; + } + [$acceptWhitespace]() { + return false; + } + [$isCDATAXml]() { + return false; + } + [$isBindable]() { + return false; + } + [$popPara]() { + if (this.para) { + this[$getTemplateRoot]()[$extra].paraStack.pop(); + } + } + [$pushPara]() { + this[$getTemplateRoot]()[$extra].paraStack.push(this.para); + } + [$setId](ids) { + if (this.id && this[$namespaceId] === NamespaceIds.template.id) { + ids.set(this.id, this); + } + } + [$getTemplateRoot]() { + return this[$globalData].template; + } + [$isSplittable]() { + return false; + } + [$isThereMoreWidth]() { + return false; + } + [$appendChild](child) { + child[_parent] = this; + this[_children].push(child); + if (!child[$globalData] && this[$globalData]) { + child[$globalData] = this[$globalData]; + } + } + [$removeChild](child) { + const i = this[_children].indexOf(child); + this[_children].splice(i, 1); + } + [$hasSettableValue]() { + return this.hasOwnProperty("value"); + } + [$setValue](_) {} + [$onText](_) {} + [$finalize]() {} + [$clean](builder) { + delete this[_hasChildren]; + if (this[$cleanup]) { + builder.clean(this[$cleanup]); + delete this[$cleanup]; + } + } + [$indexOf](child) { + return this[_children].indexOf(child); + } + [$insertAt](i, child) { + child[_parent] = this; + this[_children].splice(i, 0, child); + if (!child[$globalData] && this[$globalData]) { + child[$globalData] = this[$globalData]; + } + } + [$isTransparent]() { + return !this.name; + } + [$lastAttribute]() { + return ""; + } + [$text]() { + if (this[_children].length === 0) { + return this[$content]; + } + return this[_children].map(c => c[$text]()).join(""); + } + get [_attributeNames]() { + const proto = Object.getPrototypeOf(this); + if (!proto._attributes) { + const attributes = proto._attributes = new Set(); + for (const name of Object.getOwnPropertyNames(this)) { + if (this[name] === null || this[name] instanceof XFAObject || this[name] instanceof XFAObjectArray) { + break; + } + attributes.add(name); + } + } + return shadow(this, _attributeNames, proto._attributes); + } + [$isDescendent](parent) { + let node = this; + while (node) { + if (node === parent) { + return true; + } + node = node[$getParent](); + } + return false; + } + [$getParent]() { + return this[_parent]; + } + [$getSubformParent]() { + return this[$getParent](); + } + [$getChildren](name = null) { + if (!name) { + return this[_children]; + } + return this[name]; + } + [$dump]() { + const dumped = Object.create(null); + if (this[$content]) { + dumped.$content = this[$content]; + } + for (const name of Object.getOwnPropertyNames(this)) { + const value = this[name]; + if (value === null) { + continue; + } + if (value instanceof XFAObject) { + dumped[name] = value[$dump](); + } else if (value instanceof XFAObjectArray) { + if (!value.isEmpty()) { + dumped[name] = value.dump(); + } + } else { + dumped[name] = value; + } + } + return dumped; + } + [$toStyle]() { + return null; + } + [$toHTML]() { + return HTMLResult.EMPTY; + } + *[$getContainedChildren]() { + for (const node of this[$getChildren]()) { + yield node; + } + } + *[_filteredChildrenGenerator](filter, include) { + for (const node of this[$getContainedChildren]()) { + if (!filter || include === filter.has(node[$nodeName])) { + const availableSpace = this[$getAvailableSpace](); + const res = node[$toHTML](availableSpace); + if (!res.success) { + this[$extra].failingNode = node; + } + yield res; + } + } + } + [$flushHTML]() { + return null; + } + [$addHTML](html, bbox) { + this[$extra].children.push(html); + } + [$getAvailableSpace]() {} + [$childrenToHTML]({ + filter = null, + include = true + }) { + if (!this[$extra].generator) { + this[$extra].generator = this[_filteredChildrenGenerator](filter, include); + } else { + const availableSpace = this[$getAvailableSpace](); + const res = this[$extra].failingNode[$toHTML](availableSpace); + if (!res.success) { + return res; + } + if (res.html) { + this[$addHTML](res.html, res.bbox); + } + delete this[$extra].failingNode; + } + while (true) { + const gen = this[$extra].generator.next(); + if (gen.done) { + break; + } + const res = gen.value; + if (!res.success) { + return res; + } + if (res.html) { + this[$addHTML](res.html, res.bbox); + } + } + this[$extra].generator = null; + return HTMLResult.EMPTY; + } + [$setSetAttributes](attributes) { + this[_setAttributes] = new Set(Object.keys(attributes)); + } + [_getUnsetAttributes](protoAttributes) { + const allAttr = this[_attributeNames]; + const setAttr = this[_setAttributes]; + return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x)); + } + [$resolvePrototypes](ids, ancestors = new Set()) { + for (const child of this[_children]) { + child[_resolvePrototypesHelper](ids, ancestors); + } + } + [_resolvePrototypesHelper](ids, ancestors) { + const proto = this[_getPrototype](ids, ancestors); + if (proto) { + this[_applyPrototype](proto, ids, ancestors); + } else { + this[$resolvePrototypes](ids, ancestors); + } + } + [_getPrototype](ids, ancestors) { + const { + use, + usehref + } = this; + if (!use && !usehref) { + return null; + } + let proto = null; + let somExpression = null; + let id = null; + let ref = use; + if (usehref) { + ref = usehref; + if (usehref.startsWith("#som(") && usehref.endsWith(")")) { + somExpression = usehref.slice("#som(".length, -1); + } else if (usehref.startsWith(".#som(") && usehref.endsWith(")")) { + somExpression = usehref.slice(".#som(".length, -1); + } else if (usehref.startsWith("#")) { + id = usehref.slice(1); + } else if (usehref.startsWith(".#")) { + id = usehref.slice(2); + } + } else if (use.startsWith("#")) { + id = use.slice(1); + } else { + somExpression = use; + } + this.use = this.usehref = ""; + if (id) { + proto = ids.get(id); + } else { + proto = searchNode(ids.get($root), this, somExpression, true, false); + if (proto) { + proto = proto[0]; + } + } + if (!proto) { + warn(`XFA - Invalid prototype reference: ${ref}.`); + return null; + } + if (proto[$nodeName] !== this[$nodeName]) { + warn(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`); + return null; + } + if (ancestors.has(proto)) { + warn(`XFA - Cycle detected in prototypes use.`); + return null; + } + ancestors.add(proto); + const protoProto = proto[_getPrototype](ids, ancestors); + if (protoProto) { + proto[_applyPrototype](protoProto, ids, ancestors); + } + proto[$resolvePrototypes](ids, ancestors); + ancestors.delete(proto); + return proto; + } + [_applyPrototype](proto, ids, ancestors) { + if (ancestors.has(proto)) { + warn(`XFA - Cycle detected in prototypes use.`); + return; + } + if (!this[$content] && proto[$content]) { + this[$content] = proto[$content]; + } + const newAncestors = new Set(ancestors); + newAncestors.add(proto); + for (const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes])) { + this[unsetAttrName] = proto[unsetAttrName]; + if (this[_setAttributes]) { + this[_setAttributes].add(unsetAttrName); + } + } + for (const name of Object.getOwnPropertyNames(this)) { + if (this[_attributeNames].has(name)) { + continue; + } + const value = this[name]; + const protoValue = proto[name]; + if (value instanceof XFAObjectArray) { + for (const child of value[_children]) { + child[_resolvePrototypesHelper](ids, ancestors); + } + for (let i = value[_children].length, ii = protoValue[_children].length; i < ii; i++) { + const child = proto[_children][i][$clone](); + if (value.push(child)) { + child[_parent] = this; + this[_children].push(child); + child[_resolvePrototypesHelper](ids, ancestors); + } else { + break; + } + } + continue; + } + if (value !== null) { + value[$resolvePrototypes](ids, ancestors); + if (protoValue) { + value[_applyPrototype](protoValue, ids, ancestors); + } + continue; + } + if (protoValue !== null) { + const child = protoValue[$clone](); + child[_parent] = this; + this[name] = child; + this[_children].push(child); + child[_resolvePrototypesHelper](ids, ancestors); + } + } + } + static [_cloneAttribute](obj) { + if (Array.isArray(obj)) { + return obj.map(x => XFAObject[_cloneAttribute](x)); + } + if (typeof obj === "object" && obj !== null) { + return Object.assign({}, obj); + } + return obj; + } + [$clone]() { + const clone = Object.create(Object.getPrototypeOf(this)); + for (const $symbol of Object.getOwnPropertySymbols(this)) { + try { + clone[$symbol] = this[$symbol]; + } catch { + shadow(clone, $symbol, this[$symbol]); + } + } + clone[$uid] = `${clone[$nodeName]}${uid++}`; + clone[_children] = []; + for (const name of Object.getOwnPropertyNames(this)) { + if (this[_attributeNames].has(name)) { + clone[name] = XFAObject[_cloneAttribute](this[name]); + continue; + } + const value = this[name]; + clone[name] = value instanceof XFAObjectArray ? new XFAObjectArray(value[_max]) : null; + } + for (const child of this[_children]) { + const name = child[$nodeName]; + const clonedChild = child[$clone](); + clone[_children].push(clonedChild); + clonedChild[_parent] = clone; + if (clone[name] === null) { + clone[name] = clonedChild; + } else { + clone[name][_children].push(clonedChild); + } + } + return clone; + } + [$getChildren](name = null) { + if (!name) { + return this[_children]; + } + return this[_children].filter(c => c[$nodeName] === name); + } + [$getChildrenByClass](name) { + return this[name]; + } + [$getChildrenByName](name, allTransparent, first = true) { + return Array.from(this[$getChildrenByNameIt](name, allTransparent, first)); + } + *[$getChildrenByNameIt](name, allTransparent, first = true) { + if (name === "parent") { + yield this[_parent]; + return; + } + for (const child of this[_children]) { + if (child[$nodeName] === name) { + yield child; + } + if (child.name === name) { + yield child; + } + if (allTransparent || child[$isTransparent]()) { + yield* child[$getChildrenByNameIt](name, allTransparent, false); + } + } + if (first && this[_attributeNames].has(name)) { + yield new XFAAttribute(this, name, this[name]); + } + } +} +class XFAObjectArray { + constructor(max = Infinity) { + this[_max] = max; + this[_children] = []; + } + get isXFAObject() { + return false; + } + get isXFAObjectArray() { + return true; + } + push(child) { + const len = this[_children].length; + if (len <= this[_max]) { + this[_children].push(child); + return true; + } + warn(`XFA - node "${child[$nodeName]}" accepts no more than ${this[_max]} children`); + return false; + } + isEmpty() { + return this[_children].length === 0; + } + dump() { + return this[_children].length === 1 ? this[_children][0][$dump]() : this[_children].map(x => x[$dump]()); + } + [$clone]() { + const clone = new XFAObjectArray(this[_max]); + clone[_children] = this[_children].map(c => c[$clone]()); + return clone; + } + get children() { + return this[_children]; + } + clear() { + this[_children].length = 0; + } +} +class XFAAttribute { + constructor(node, name, value) { + this[_parent] = node; + this[$nodeName] = name; + this[$content] = value; + this[$consumed] = false; + this[$uid] = `attribute${uid++}`; + } + [$getParent]() { + return this[_parent]; + } + [$isDataValue]() { + return true; + } + [$getDataValue]() { + return this[$content].trim(); + } + [$setValue](value) { + value = value.value || ""; + this[$content] = value.toString(); + } + [$text]() { + return this[$content]; + } + [$isDescendent](parent) { + return this[_parent] === parent || this[_parent][$isDescendent](parent); + } +} +class XmlObject extends XFAObject { + constructor(nsId, name, attributes = {}) { + super(nsId, name); + this[$content] = ""; + this[_dataValue] = null; + if (name !== "#text") { + const map = new Map(); + this[_attributes] = map; + for (const [attrName, value] of Object.entries(attributes)) { + map.set(attrName, new XFAAttribute(this, attrName, value)); + } + if (attributes.hasOwnProperty($nsAttributes)) { + const dataNode = attributes[$nsAttributes].xfa.dataNode; + if (dataNode !== undefined) { + if (dataNode === "dataGroup") { + this[_dataValue] = false; + } else if (dataNode === "dataValue") { + this[_dataValue] = true; + } + } + } + } + this[$consumed] = false; + } + [$toString](buf) { + const tagName = this[$nodeName]; + if (tagName === "#text") { + buf.push(encodeToXmlString(this[$content])); + return; + } + const utf8TagName = utf8StringToString(tagName); + const prefix = this[$namespaceId] === NS_DATASETS ? "xfa:" : ""; + buf.push(`<${prefix}${utf8TagName}`); + for (const [name, value] of this[_attributes].entries()) { + const utf8Name = utf8StringToString(name); + buf.push(` ${utf8Name}="${encodeToXmlString(value[$content])}"`); + } + if (this[_dataValue] !== null) { + if (this[_dataValue]) { + buf.push(` xfa:dataNode="dataValue"`); + } else { + buf.push(` xfa:dataNode="dataGroup"`); + } + } + if (!this[$content] && this[_children].length === 0) { + buf.push("/>"); + return; + } + buf.push(">"); + if (this[$content]) { + if (typeof this[$content] === "string") { + buf.push(encodeToXmlString(this[$content])); + } else { + this[$content][$toString](buf); + } + } else { + for (const child of this[_children]) { + child[$toString](buf); + } + } + buf.push(``); + } + [$onChild](child) { + if (this[$content]) { + const node = new XmlObject(this[$namespaceId], "#text"); + this[$appendChild](node); + node[$content] = this[$content]; + this[$content] = ""; + } + this[$appendChild](child); + return true; + } + [$onText](str) { + this[$content] += str; + } + [$finalize]() { + if (this[$content] && this[_children].length > 0) { + const node = new XmlObject(this[$namespaceId], "#text"); + this[$appendChild](node); + node[$content] = this[$content]; + delete this[$content]; + } + } + [$toHTML]() { + if (this[$nodeName] === "#text") { + return HTMLResult.success({ + name: "#text", + value: this[$content] + }); + } + return HTMLResult.EMPTY; + } + [$getChildren](name = null) { + if (!name) { + return this[_children]; + } + return this[_children].filter(c => c[$nodeName] === name); + } + [$getAttributes]() { + return this[_attributes]; + } + [$getChildrenByClass](name) { + const value = this[_attributes].get(name); + if (value !== undefined) { + return value; + } + return this[$getChildren](name); + } + *[$getChildrenByNameIt](name, allTransparent) { + const value = this[_attributes].get(name); + if (value) { + yield value; + } + for (const child of this[_children]) { + if (child[$nodeName] === name) { + yield child; + } + if (allTransparent) { + yield* child[$getChildrenByNameIt](name, allTransparent); + } + } + } + *[$getAttributeIt](name, skipConsumed) { + const value = this[_attributes].get(name); + if (value && (!skipConsumed || !value[$consumed])) { + yield value; + } + for (const child of this[_children]) { + yield* child[$getAttributeIt](name, skipConsumed); + } + } + *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) { + for (const child of this[_children]) { + if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) { + yield child; + } + if (allTransparent) { + yield* child[$getRealChildrenByNameIt](name, allTransparent, skipConsumed); + } + } + } + [$isDataValue]() { + if (this[_dataValue] === null) { + return this[_children].length === 0 || this[_children][0][$namespaceId] === NamespaceIds.xhtml.id; + } + return this[_dataValue]; + } + [$getDataValue]() { + if (this[_dataValue] === null) { + if (this[_children].length === 0) { + return this[$content].trim(); + } + if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) { + return this[_children][0][$text]().trim(); + } + return null; + } + return this[$content].trim(); + } + [$setValue](value) { + value = value.value || ""; + this[$content] = value.toString(); + } + [$dump](hasNS = false) { + const dumped = Object.create(null); + if (hasNS) { + dumped.$ns = this[$namespaceId]; + } + if (this[$content]) { + dumped.$content = this[$content]; + } + dumped.$name = this[$nodeName]; + dumped.children = []; + for (const child of this[_children]) { + dumped.children.push(child[$dump](hasNS)); + } + dumped.attributes = Object.create(null); + for (const [name, value] of this[_attributes]) { + dumped.attributes[name] = value[$content]; + } + return dumped; + } +} +class ContentObject extends XFAObject { + constructor(nsId, name) { + super(nsId, name); + this[$content] = ""; + } + [$onText](text) { + this[$content] += text; + } + [$finalize]() {} +} +class OptionObject extends ContentObject { + constructor(nsId, name, options) { + super(nsId, name); + this[_options] = options; + } + [$finalize]() { + this[$content] = getKeyword({ + data: this[$content], + defaultValue: this[_options][0], + validate: k => this[_options].includes(k) + }); + } + [$clean](builder) { + super[$clean](builder); + delete this[_options]; + } +} +class StringObject extends ContentObject { + [$finalize]() { + this[$content] = this[$content].trim(); + } +} +class IntegerObject extends ContentObject { + constructor(nsId, name, defaultValue, validator) { + super(nsId, name); + this[_defaultValue] = defaultValue; + this[_validator] = validator; + } + [$finalize]() { + this[$content] = getInteger({ + data: this[$content], + defaultValue: this[_defaultValue], + validate: this[_validator] + }); + } + [$clean](builder) { + super[$clean](builder); + delete this[_defaultValue]; + delete this[_validator]; + } +} +class Option01 extends IntegerObject { + constructor(nsId, name) { + super(nsId, name, 0, n => n === 1); + } +} +class Option10 extends IntegerObject { + constructor(nsId, name) { + super(nsId, name, 1, n => n === 0); + } +} + +;// ./src/core/xfa/html_utils.js + + + + + + +function measureToString(m) { + if (typeof m === "string") { + return "0px"; + } + return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`; +} +const converters = { + anchorType(node, style) { + const parent = node[$getSubformParent](); + if (!parent || parent.layout && parent.layout !== "position") { + return; + } + if (!("transform" in style)) { + style.transform = ""; + } + switch (node.anchorType) { + case "bottomCenter": + style.transform += "translate(-50%, -100%)"; + break; + case "bottomLeft": + style.transform += "translate(0,-100%)"; + break; + case "bottomRight": + style.transform += "translate(-100%,-100%)"; + break; + case "middleCenter": + style.transform += "translate(-50%,-50%)"; + break; + case "middleLeft": + style.transform += "translate(0,-50%)"; + break; + case "middleRight": + style.transform += "translate(-100%,-50%)"; + break; + case "topCenter": + style.transform += "translate(-50%,0)"; + break; + case "topRight": + style.transform += "translate(-100%,0)"; + break; + } + }, + dimensions(node, style) { + const parent = node[$getSubformParent](); + let width = node.w; + const height = node.h; + if (parent.layout?.includes("row")) { + const extra = parent[$extra]; + const colSpan = node.colSpan; + let w; + if (colSpan === -1) { + w = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn)); + extra.currentColumn = 0; + } else { + w = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan)); + extra.currentColumn = (extra.currentColumn + node.colSpan) % extra.columnWidths.length; + } + if (!isNaN(w)) { + width = node.w = w; + } + } + style.width = width !== "" ? measureToString(width) : "auto"; + style.height = height !== "" ? measureToString(height) : "auto"; + }, + position(node, style) { + const parent = node[$getSubformParent](); + if (parent?.layout && parent.layout !== "position") { + return; + } + style.position = "absolute"; + style.left = measureToString(node.x); + style.top = measureToString(node.y); + }, + rotate(node, style) { + if (node.rotate) { + if (!("transform" in style)) { + style.transform = ""; + } + style.transform += `rotate(-${node.rotate}deg)`; + style.transformOrigin = "top left"; + } + }, + presence(node, style) { + switch (node.presence) { + case "invisible": + style.visibility = "hidden"; + break; + case "hidden": + case "inactive": + style.display = "none"; + break; + } + }, + hAlign(node, style) { + if (node[$nodeName] === "para") { + switch (node.hAlign) { + case "justifyAll": + style.textAlign = "justify-all"; + break; + case "radix": + style.textAlign = "left"; + break; + default: + style.textAlign = node.hAlign; + } + } else { + switch (node.hAlign) { + case "left": + style.alignSelf = "start"; + break; + case "center": + style.alignSelf = "center"; + break; + case "right": + style.alignSelf = "end"; + break; + } + } + }, + margin(node, style) { + if (node.margin) { + style.margin = node.margin[$toStyle]().margin; + } + } +}; +function setMinMaxDimensions(node, style) { + const parent = node[$getSubformParent](); + if (parent.layout === "position") { + if (node.minW > 0) { + style.minWidth = measureToString(node.minW); + } + if (node.maxW > 0) { + style.maxWidth = measureToString(node.maxW); + } + if (node.minH > 0) { + style.minHeight = measureToString(node.minH); + } + if (node.maxH > 0) { + style.maxHeight = measureToString(node.maxH); + } + } +} +function layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) { + const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder); + if (typeof text === "string") { + measure.addString(text); + } else { + text[$pushGlyphs](measure); + } + return measure.compute(width); +} +function layoutNode(node, availableSpace) { + let height = null; + let width = null; + let isBroken = false; + if ((!node.w || !node.h) && node.value) { + let marginH = 0; + let marginV = 0; + if (node.margin) { + marginH = node.margin.leftInset + node.margin.rightInset; + marginV = node.margin.topInset + node.margin.bottomInset; + } + let lineHeight = null; + let margin = null; + if (node.para) { + margin = Object.create(null); + lineHeight = node.para.lineHeight === "" ? null : node.para.lineHeight; + margin.top = node.para.spaceAbove === "" ? 0 : node.para.spaceAbove; + margin.bottom = node.para.spaceBelow === "" ? 0 : node.para.spaceBelow; + margin.left = node.para.marginLeft === "" ? 0 : node.para.marginLeft; + margin.right = node.para.marginRight === "" ? 0 : node.para.marginRight; + } + let font = node.font; + if (!font) { + const root = node[$getTemplateRoot](); + let parent = node[$getParent](); + while (parent && parent !== root) { + if (parent.font) { + font = parent.font; + break; + } + parent = parent[$getParent](); + } + } + const maxWidth = (node.w || availableSpace.width) - marginH; + const fontFinder = node[$globalData].fontFinder; + if (node.value.exData && node.value.exData[$content] && node.value.exData.contentType === "text/html") { + const res = layoutText(node.value.exData[$content], font, margin, lineHeight, fontFinder, maxWidth); + width = res.width; + height = res.height; + isBroken = res.isBroken; + } else { + const text = node.value[$text](); + if (text) { + const res = layoutText(text, font, margin, lineHeight, fontFinder, maxWidth); + width = res.width; + height = res.height; + isBroken = res.isBroken; + } + } + if (width !== null && !node.w) { + width += marginH; + } + if (height !== null && !node.h) { + height += marginV; + } + } + return { + w: width, + h: height, + isBroken + }; +} +function computeBbox(node, html, availableSpace) { + let bbox; + if (node.w !== "" && node.h !== "") { + bbox = [node.x, node.y, node.w, node.h]; + } else { + if (!availableSpace) { + return null; + } + let width = node.w; + if (width === "") { + if (node.maxW === 0) { + const parent = node[$getSubformParent](); + width = parent.layout === "position" && parent.w !== "" ? 0 : node.minW; + } else { + width = Math.min(node.maxW, availableSpace.width); + } + html.attributes.style.width = measureToString(width); + } + let height = node.h; + if (height === "") { + if (node.maxH === 0) { + const parent = node[$getSubformParent](); + height = parent.layout === "position" && parent.h !== "" ? 0 : node.minH; + } else { + height = Math.min(node.maxH, availableSpace.height); + } + html.attributes.style.height = measureToString(height); + } + bbox = [node.x, node.y, width, height]; + } + return bbox; +} +function fixDimensions(node) { + const parent = node[$getSubformParent](); + if (parent.layout?.includes("row")) { + const extra = parent[$extra]; + const colSpan = node.colSpan; + let width; + if (colSpan === -1) { + width = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn)); + } else { + width = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan)); + } + if (!isNaN(width)) { + node.w = width; + } + } + if (parent.layout && parent.layout !== "position") { + node.x = node.y = 0; + } + if (node.layout === "table") { + if (node.w === "" && Array.isArray(node.columnWidths)) { + node.w = Math.sumPrecise(node.columnWidths); + } + } +} +function layoutClass(node) { + switch (node.layout) { + case "position": + return "xfaPosition"; + case "lr-tb": + return "xfaLrTb"; + case "rl-row": + return "xfaRlRow"; + case "rl-tb": + return "xfaRlTb"; + case "row": + return "xfaRow"; + case "table": + return "xfaTable"; + case "tb": + return "xfaTb"; + default: + return "xfaPosition"; + } +} +function toStyle(node, ...names) { + const style = Object.create(null); + for (const name of names) { + const value = node[name]; + if (value === null) { + continue; + } + if (converters.hasOwnProperty(name)) { + converters[name](node, style); + continue; + } + if (value instanceof XFAObject) { + const newStyle = value[$toStyle](); + if (newStyle) { + Object.assign(style, newStyle); + } else { + warn(`(DEBUG) - XFA - style for ${name} not implemented yet`); + } + } + } + return style; +} +function createWrapper(node, html) { + const { + attributes + } = html; + const { + style + } = attributes; + const wrapper = { + name: "div", + attributes: { + class: ["xfaWrapper"], + style: Object.create(null) + }, + children: [] + }; + attributes.class.push("xfaWrapped"); + if (node.border) { + const { + widths, + insets + } = node.border[$extra]; + let width, height; + let top = insets[0]; + let left = insets[3]; + const insetsH = insets[0] + insets[2]; + const insetsW = insets[1] + insets[3]; + switch (node.border.hand) { + case "even": + top -= widths[0] / 2; + left -= widths[3] / 2; + width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`; + height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`; + break; + case "left": + top -= widths[0]; + left -= widths[3]; + width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`; + height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`; + break; + case "right": + width = insetsW ? `calc(100% - ${insetsW}px)` : "100%"; + height = insetsH ? `calc(100% - ${insetsH}px)` : "100%"; + break; + } + const classNames = ["xfaBorder"]; + if (isPrintOnly(node.border)) { + classNames.push("xfaPrintOnly"); + } + const border = { + name: "div", + attributes: { + class: classNames, + style: { + top: `${top}px`, + left: `${left}px`, + width, + height + } + }, + children: [] + }; + for (const key of ["border", "borderWidth", "borderColor", "borderRadius", "borderStyle"]) { + if (style[key] !== undefined) { + border.attributes.style[key] = style[key]; + delete style[key]; + } + } + wrapper.children.push(border, html); + } else { + wrapper.children.push(html); + } + for (const key of ["background", "backgroundClip", "top", "left", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "transform", "transformOrigin", "visibility"]) { + if (style[key] !== undefined) { + wrapper.attributes.style[key] = style[key]; + delete style[key]; + } + } + wrapper.attributes.style.position = style.position === "absolute" ? "absolute" : "relative"; + delete style.position; + if (style.alignSelf) { + wrapper.attributes.style.alignSelf = style.alignSelf; + delete style.alignSelf; + } + return wrapper; +} +function fixTextIndent(styles) { + const indent = getMeasurement(styles.textIndent, "0px"); + if (indent >= 0) { + return; + } + const align = styles.textAlign === "right" ? "right" : "left"; + const name = "padding" + (align === "left" ? "Left" : "Right"); + const padding = getMeasurement(styles[name], "0px"); + styles[name] = `${padding - indent}px`; +} +function setAccess(node, classNames) { + switch (node.access) { + case "nonInteractive": + classNames.push("xfaNonInteractive"); + break; + case "readOnly": + classNames.push("xfaReadOnly"); + break; + case "protected": + classNames.push("xfaDisabled"); + break; + } +} +function isPrintOnly(node) { + return node.relevant.length > 0 && !node.relevant[0].excluded && node.relevant[0].viewname === "print"; +} +function getCurrentPara(node) { + const stack = node[$getTemplateRoot]()[$extra].paraStack; + return stack.length ? stack.at(-1) : null; +} +function setPara(node, nodeStyle, value) { + if (value.attributes.class?.includes("xfaRich")) { + if (nodeStyle) { + if (node.h === "") { + nodeStyle.height = "auto"; + } + if (node.w === "") { + nodeStyle.width = "auto"; + } + } + const para = getCurrentPara(node); + if (para) { + const valueStyle = value.attributes.style; + valueStyle.display = "flex"; + valueStyle.flexDirection = "column"; + switch (para.vAlign) { + case "top": + valueStyle.justifyContent = "start"; + break; + case "bottom": + valueStyle.justifyContent = "end"; + break; + case "middle": + valueStyle.justifyContent = "center"; + break; + } + const paraStyle = para[$toStyle](); + for (const [key, val] of Object.entries(paraStyle)) { + if (!(key in valueStyle)) { + valueStyle[key] = val; + } + } + } + } +} +function setFontFamily(xfaFont, node, fontFinder, style) { + if (!fontFinder) { + delete style.fontFamily; + return; + } + const name = stripQuotes(xfaFont.typeface); + style.fontFamily = `"${name}"`; + const typeface = fontFinder.find(name); + if (typeface) { + const { + fontFamily + } = typeface.regular.cssFontInfo; + if (fontFamily !== name) { + style.fontFamily = `"${fontFamily}"`; + } + const para = getCurrentPara(node); + if (para && para.lineHeight !== "") { + return; + } + if (style.lineHeight) { + return; + } + const pdfFont = selectFont(xfaFont, typeface); + if (pdfFont) { + style.lineHeight = Math.max(1.2, pdfFont.lineHeight); + } + } +} +function fixURL(str) { + const absoluteUrl = createValidAbsoluteUrl(str, null, { + addDefaultProtocol: true, + tryConvertEncoding: true + }); + return absoluteUrl ? absoluteUrl.href : null; +} + +;// ./src/core/xfa/layout.js + + + +function createLine(node, children) { + return { + name: "div", + attributes: { + class: [node.layout === "lr-tb" ? "xfaLr" : "xfaRl"] + }, + children + }; +} +function flushHTML(node) { + if (!node[$extra]) { + return null; + } + const attributes = node[$extra].attributes; + const html = { + name: "div", + attributes, + children: node[$extra].children + }; + if (node[$extra].failingNode) { + const htmlFromFailing = node[$extra].failingNode[$flushHTML](); + if (htmlFromFailing) { + if (node.layout.endsWith("-tb")) { + html.children.push(createLine(node, [htmlFromFailing])); + } else { + html.children.push(htmlFromFailing); + } + } + } + if (html.children.length === 0) { + return null; + } + return html; +} +function addHTML(node, html, bbox) { + const extra = node[$extra]; + const availableSpace = extra.availableSpace; + const [x, y, w, h] = bbox; + switch (node.layout) { + case "position": + { + extra.width = Math.max(extra.width, x + w); + extra.height = Math.max(extra.height, y + h); + extra.children.push(html); + break; + } + case "lr-tb": + case "rl-tb": + if (!extra.line || extra.attempt === 1) { + extra.line = createLine(node, []); + extra.children.push(extra.line); + extra.numberInLine = 0; + } + extra.numberInLine += 1; + extra.line.children.push(html); + if (extra.attempt === 0) { + extra.currentWidth += w; + extra.height = Math.max(extra.height, extra.prevHeight + h); + } else { + extra.currentWidth = w; + extra.prevHeight = extra.height; + extra.height += h; + extra.attempt = 0; + } + extra.width = Math.max(extra.width, extra.currentWidth); + break; + case "rl-row": + case "row": + { + extra.children.push(html); + extra.width += w; + extra.height = Math.max(extra.height, h); + const height = measureToString(extra.height); + for (const child of extra.children) { + child.attributes.style.height = height; + } + break; + } + case "table": + { + extra.width = MathClamp(w, extra.width, availableSpace.width); + extra.height += h; + extra.children.push(html); + break; + } + case "tb": + { + extra.width = MathClamp(w, extra.width, availableSpace.width); + extra.height += h; + extra.children.push(html); + break; + } + } +} +function getAvailableSpace(node) { + const availableSpace = node[$extra].availableSpace; + const marginV = node.margin ? node.margin.topInset + node.margin.bottomInset : 0; + const marginH = node.margin ? node.margin.leftInset + node.margin.rightInset : 0; + switch (node.layout) { + case "lr-tb": + case "rl-tb": + if (node[$extra].attempt === 0) { + return { + width: availableSpace.width - marginH - node[$extra].currentWidth, + height: availableSpace.height - marginV - node[$extra].prevHeight + }; + } + return { + width: availableSpace.width - marginH, + height: availableSpace.height - marginV - node[$extra].height + }; + case "rl-row": + case "row": + const width = Math.sumPrecise(node[$extra].columnWidths.slice(node[$extra].currentColumn)); + return { + width, + height: availableSpace.height - marginH + }; + case "table": + case "tb": + return { + width: availableSpace.width - marginH, + height: availableSpace.height - marginV - node[$extra].height + }; + case "position": + default: + return availableSpace; + } +} +function getTransformedBBox(node) { + let w = node.w === "" ? NaN : node.w; + let h = node.h === "" ? NaN : node.h; + let [centerX, centerY] = [0, 0]; + switch (node.anchorType || "") { + case "bottomCenter": + [centerX, centerY] = [w / 2, h]; + break; + case "bottomLeft": + [centerX, centerY] = [0, h]; + break; + case "bottomRight": + [centerX, centerY] = [w, h]; + break; + case "middleCenter": + [centerX, centerY] = [w / 2, h / 2]; + break; + case "middleLeft": + [centerX, centerY] = [0, h / 2]; + break; + case "middleRight": + [centerX, centerY] = [w, h / 2]; + break; + case "topCenter": + [centerX, centerY] = [w / 2, 0]; + break; + case "topRight": + [centerX, centerY] = [w, 0]; + break; + } + let x, y; + switch (node.rotate || 0) { + case 0: + [x, y] = [-centerX, -centerY]; + break; + case 90: + [x, y] = [-centerY, centerX]; + [w, h] = [h, -w]; + break; + case 180: + [x, y] = [centerX, centerY]; + [w, h] = [-w, -h]; + break; + case 270: + [x, y] = [centerY, -centerX]; + [w, h] = [-h, w]; + break; + } + return [node.x + x + Math.min(0, w), node.y + y + Math.min(0, h), Math.abs(w), Math.abs(h)]; +} +function checkDimensions(node, space) { + if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) { + return true; + } + if (node.w === 0 || node.h === 0) { + return true; + } + const ERROR = 2; + const parent = node[$getSubformParent](); + const attempt = parent[$extra]?.attempt || 0; + const [, y, w, h] = getTransformedBBox(node); + switch (parent.layout) { + case "lr-tb": + case "rl-tb": + if (attempt === 0) { + if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) { + if (node.h !== "" && Math.round(h - space.height) > ERROR) { + return false; + } + if (node.w !== "") { + if (Math.round(w - space.width) <= ERROR) { + return true; + } + if (parent[$extra].numberInLine === 0) { + return space.height > ERROR; + } + return false; + } + return space.width > ERROR; + } + if (node.w !== "") { + return Math.round(w - space.width) <= ERROR; + } + return space.width > ERROR; + } + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h !== "" && Math.round(h - space.height) > ERROR) { + return false; + } + if (node.w === "" || Math.round(w - space.width) <= ERROR) { + return space.height > ERROR; + } + if (parent[$isThereMoreWidth]()) { + return false; + } + return space.height > ERROR; + case "table": + case "tb": + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h !== "" && !node[$isSplittable]()) { + return Math.round(h - space.height) <= ERROR; + } + if (node.w === "" || Math.round(w - space.width) <= ERROR) { + return space.height > ERROR; + } + if (parent[$isThereMoreWidth]()) { + return false; + } + return space.height > ERROR; + case "position": + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h === "" || Math.round(h + y - space.height) <= ERROR) { + return true; + } + const area = node[$getTemplateRoot]()[$extra].currentContentArea; + return h + y > area.h; + case "rl-row": + case "row": + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h !== "") { + return Math.round(h - space.height) <= ERROR; + } + return true; + default: + return true; + } +} + +;// ./src/core/xfa/template.js + + + + + + + + + + +const TEMPLATE_NS_ID = NamespaceIds.template.id; +const SVG_NS = "http://www.w3.org/2000/svg"; +const MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2; +const MAX_EMPTY_PAGES = 3; +const DEFAULT_TAB_INDEX = 5000; +const HEADING_PATTERN = /^H(\d+)$/; +const MIMES = new Set(["image/gif", "image/jpeg", "image/jpg", "image/pjpeg", "image/png", "image/apng", "image/x-png", "image/bmp", "image/x-ms-bmp", "image/tiff", "image/tif", "application/octet-stream"]); +const IMAGES_HEADERS = [[[0x42, 0x4d], "image/bmp"], [[0xff, 0xd8, 0xff], "image/jpeg"], [[0x49, 0x49, 0x2a, 0x00], "image/tiff"], [[0x4d, 0x4d, 0x00, 0x2a], "image/tiff"], [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], "image/gif"], [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], "image/png"]]; +function getBorderDims(node) { + if (!node || !node.border) { + return { + w: 0, + h: 0 + }; + } + const borderExtra = node.border[$getExtra](); + if (!borderExtra) { + return { + w: 0, + h: 0 + }; + } + return { + w: borderExtra.widths[0] + borderExtra.widths[2] + borderExtra.insets[0] + borderExtra.insets[2], + h: borderExtra.widths[1] + borderExtra.widths[3] + borderExtra.insets[1] + borderExtra.insets[3] + }; +} +function hasMargin(node) { + return node.margin && (node.margin.topInset || node.margin.rightInset || node.margin.bottomInset || node.margin.leftInset); +} +function _setValue(templateNode, value) { + if (!templateNode.value) { + const nodeValue = new Value({}); + templateNode[$appendChild](nodeValue); + templateNode.value = nodeValue; + } + templateNode.value[$setValue](value); +} +function* getContainedChildren(node) { + for (const child of node[$getChildren]()) { + if (child instanceof SubformSet) { + yield* child[$getContainedChildren](); + continue; + } + yield child; + } +} +function isRequired(node) { + return node.validate?.nullTest === "error"; +} +function setTabIndex(node) { + while (node) { + if (!node.traversal) { + node[$tabIndex] = node[$getParent]()[$tabIndex]; + return; + } + if (node[$tabIndex]) { + return; + } + let next = null; + for (const child of node.traversal[$getChildren]()) { + if (child.operation === "next") { + next = child; + break; + } + } + if (!next || !next.ref) { + node[$tabIndex] = node[$getParent]()[$tabIndex]; + return; + } + const root = node[$getTemplateRoot](); + node[$tabIndex] = ++root[$tabIndex]; + const ref = root[$searchNode](next.ref, node); + if (!ref) { + return; + } + node = ref[0]; + } +} +function applyAssist(obj, attributes) { + const assist = obj.assist; + if (assist) { + const assistTitle = assist[$toHTML](); + if (assistTitle) { + attributes.title = assistTitle; + } + const role = assist.role; + const match = role.match(HEADING_PATTERN); + if (match) { + const ariaRole = "heading"; + const ariaLevel = match[1]; + attributes.role = ariaRole; + attributes["aria-level"] = ariaLevel; + } + } + if (obj.layout === "table") { + attributes.role = "table"; + } else if (obj.layout === "row") { + attributes.role = "row"; + } else { + const parent = obj[$getParent](); + if (parent.layout === "row") { + attributes.role = parent.assist?.role === "TH" ? "columnheader" : "cell"; + } + } +} +function ariaLabel(obj) { + if (!obj.assist) { + return null; + } + const assist = obj.assist; + if (assist.speak && assist.speak[$content] !== "") { + return assist.speak[$content]; + } + if (assist.toolTip) { + return assist.toolTip[$content]; + } + return null; +} +function valueToHtml(value) { + return HTMLResult.success({ + name: "div", + attributes: { + class: ["xfaRich"], + style: Object.create(null) + }, + children: [{ + name: "span", + attributes: { + style: Object.create(null) + }, + value + }] + }); +} +function setFirstUnsplittable(node) { + const root = node[$getTemplateRoot](); + if (root[$extra].firstUnsplittable === null) { + root[$extra].firstUnsplittable = node; + root[$extra].noLayoutFailure = true; + } +} +function unsetFirstUnsplittable(node) { + const root = node[$getTemplateRoot](); + if (root[$extra].firstUnsplittable === node) { + root[$extra].noLayoutFailure = false; + } +} +function handleBreak(node) { + if (node[$extra]) { + return false; + } + node[$extra] = Object.create(null); + if (node.targetType === "auto") { + return false; + } + const root = node[$getTemplateRoot](); + let target = null; + if (node.target) { + target = root[$searchNode](node.target, node[$getParent]()); + if (!target) { + return false; + } + target = target[0]; + } + const { + currentPageArea, + currentContentArea + } = root[$extra]; + if (node.targetType === "pageArea") { + if (!(target instanceof PageArea)) { + target = null; + } + if (node.startNew) { + node[$extra].target = target || currentPageArea; + return true; + } else if (target && target !== currentPageArea) { + node[$extra].target = target; + return true; + } + return false; + } + if (!(target instanceof ContentArea)) { + target = null; + } + const pageArea = target && target[$getParent](); + let index; + let nextPageArea = pageArea; + if (node.startNew) { + if (target) { + const contentAreas = pageArea.contentArea.children; + const indexForCurrent = contentAreas.indexOf(currentContentArea); + const indexForTarget = contentAreas.indexOf(target); + if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) { + nextPageArea = null; + } + index = indexForTarget - 1; + } else { + index = currentPageArea.contentArea.children.indexOf(currentContentArea); + } + } else if (target && target !== currentContentArea) { + const contentAreas = pageArea.contentArea.children; + index = contentAreas.indexOf(target) - 1; + nextPageArea = pageArea === currentPageArea ? null : pageArea; + } else { + return false; + } + node[$extra].target = nextPageArea; + node[$extra].index = index; + return true; +} +function handleOverflow(node, extraNode, space) { + const root = node[$getTemplateRoot](); + const saved = root[$extra].noLayoutFailure; + const savedMethod = extraNode[$getSubformParent]; + extraNode[$getSubformParent] = () => node; + root[$extra].noLayoutFailure = true; + const res = extraNode[$toHTML](space); + node[$addHTML](res.html, res.bbox); + root[$extra].noLayoutFailure = saved; + extraNode[$getSubformParent] = savedMethod; +} +class AppearanceFilter extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "appearanceFilter"); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Arc extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "arc", true); + this.circular = getInteger({ + data: attributes.circular, + defaultValue: 0, + validate: x => x === 1 + }); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.startAngle = getFloat({ + data: attributes.startAngle, + defaultValue: 0, + validate: x => true + }); + this.sweepAngle = getFloat({ + data: attributes.sweepAngle, + defaultValue: 360, + validate: x => true + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.edge = null; + this.fill = null; + } + [$toHTML]() { + const edge = this.edge || new Edge({}); + const edgeStyle = edge[$toStyle](); + const style = Object.create(null); + if (this.fill?.presence === "visible") { + Object.assign(style, this.fill[$toStyle]()); + } else { + style.fill = "transparent"; + } + style.strokeWidth = measureToString(edge.presence === "visible" ? edge.thickness : 0); + style.stroke = edgeStyle.color; + let arc; + const attributes = { + xmlns: SVG_NS, + style: { + width: "100%", + height: "100%", + overflow: "visible" + } + }; + if (this.sweepAngle === 360) { + arc = { + name: "ellipse", + attributes: { + xmlns: SVG_NS, + cx: "50%", + cy: "50%", + rx: "50%", + ry: "50%", + style + } + }; + } else { + const startAngle = this.startAngle * Math.PI / 180; + const sweepAngle = this.sweepAngle * Math.PI / 180; + const largeArc = this.sweepAngle > 180 ? 1 : 0; + const [x1, y1, x2, y2] = [50 * (1 + Math.cos(startAngle)), 50 * (1 - Math.sin(startAngle)), 50 * (1 + Math.cos(startAngle + sweepAngle)), 50 * (1 - Math.sin(startAngle + sweepAngle))]; + arc = { + name: "path", + attributes: { + xmlns: SVG_NS, + d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`, + vectorEffect: "non-scaling-stroke", + style + } + }; + Object.assign(attributes, { + viewBox: "0 0 100 100", + preserveAspectRatio: "none" + }); + } + const svg = { + name: "svg", + children: [arc], + attributes + }; + const parent = this[$getParent]()[$getParent](); + if (hasMargin(parent)) { + return HTMLResult.success({ + name: "div", + attributes: { + style: { + display: "inline", + width: "100%", + height: "100%" + } + }, + children: [svg] + }); + } + svg.attributes.style.position = "absolute"; + return HTMLResult.success(svg); + } +} +class Area extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "area", true); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.desc = null; + this.extras = null; + this.area = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + } + *[$getContainedChildren]() { + yield* getContainedChildren(this); + } + [$isTransparent]() { + return true; + } + [$isBindable]() { + return true; + } + [$addHTML](html, bbox) { + const [x, y, w, h] = bbox; + this[$extra].width = Math.max(this[$extra].width, x + w); + this[$extra].height = Math.max(this[$extra].height, y + h); + this[$extra].children.push(html); + } + [$getAvailableSpace]() { + return this[$extra].availableSpace; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "position"); + const attributes = { + style, + id: this[$uid], + class: ["xfaArea"] + }; + if (isPrintOnly(this)) { + attributes.class.push("xfaPrintOnly"); + } + if (this.name) { + attributes.xfaName = this.name; + } + const children = []; + this[$extra] = { + children, + width: 0, + height: 0, + availableSpace + }; + const result = this[$childrenToHTML]({ + filter: new Set(["area", "draw", "field", "exclGroup", "subform", "subformSet"]), + include: true + }); + if (!result.success) { + if (result.isBreak()) { + return result; + } + delete this[$extra]; + return HTMLResult.FAILURE; + } + style.width = measureToString(this[$extra].width); + style.height = measureToString(this[$extra].height); + const html = { + name: "div", + attributes, + children + }; + const bbox = [this.x, this.y, this[$extra].width, this[$extra].height]; + delete this[$extra]; + return HTMLResult.success(html, bbox); + } +} +class Assist extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "assist", true); + this.id = attributes.id || ""; + this.role = attributes.role || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.speak = null; + this.toolTip = null; + } + [$toHTML]() { + return this.toolTip?.[$content] || null; + } +} +class Barcode extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "barcode", true); + this.charEncoding = getKeyword({ + data: attributes.charEncoding ? attributes.charEncoding.toLowerCase() : "", + defaultValue: "", + validate: k => ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(k) || k.match(/iso-8859-\d{2}/) + }); + this.checksum = getStringOption(attributes.checksum, ["none", "1mod10", "1mod10_1mod11", "2mod10", "auto"]); + this.dataColumnCount = getInteger({ + data: attributes.dataColumnCount, + defaultValue: -1, + validate: x => x >= 0 + }); + this.dataLength = getInteger({ + data: attributes.dataLength, + defaultValue: -1, + validate: x => x >= 0 + }); + this.dataPrep = getStringOption(attributes.dataPrep, ["none", "flateCompress"]); + this.dataRowCount = getInteger({ + data: attributes.dataRowCount, + defaultValue: -1, + validate: x => x >= 0 + }); + this.endChar = attributes.endChar || ""; + this.errorCorrectionLevel = getInteger({ + data: attributes.errorCorrectionLevel, + defaultValue: -1, + validate: x => x >= 0 && x <= 8 + }); + this.id = attributes.id || ""; + this.moduleHeight = getMeasurement(attributes.moduleHeight, "5mm"); + this.moduleWidth = getMeasurement(attributes.moduleWidth, "0.25mm"); + this.printCheckDigit = getInteger({ + data: attributes.printCheckDigit, + defaultValue: 0, + validate: x => x === 1 + }); + this.rowColumnRatio = getRatio(attributes.rowColumnRatio); + this.startChar = attributes.startChar || ""; + this.textLocation = getStringOption(attributes.textLocation, ["below", "above", "aboveEmbedded", "belowEmbedded", "none"]); + this.truncate = getInteger({ + data: attributes.truncate, + defaultValue: 0, + validate: x => x === 1 + }); + this.type = getStringOption(attributes.type ? attributes.type.toLowerCase() : "", ["aztec", "codabar", "code2of5industrial", "code2of5interleaved", "code2of5matrix", "code2of5standard", "code3of9", "code3of9extended", "code11", "code49", "code93", "code128", "code128a", "code128b", "code128c", "code128sscc", "datamatrix", "ean8", "ean8add2", "ean8add5", "ean13", "ean13add2", "ean13add5", "ean13pwcd", "fim", "logmars", "maxicode", "msi", "pdf417", "pdf417macro", "plessey", "postauscust2", "postauscust3", "postausreplypaid", "postausstandard", "postukrm4scc", "postusdpbc", "postusimb", "postusstandard", "postus5zip", "qrcode", "rfid", "rss14", "rss14expanded", "rss14limited", "rss14stacked", "rss14stackedomni", "rss14truncated", "telepen", "ucc128", "ucc128random", "ucc128sscc", "upca", "upcaadd2", "upcaadd5", "upcapwcd", "upce", "upceadd2", "upceadd5", "upcean2", "upcean5", "upsmaxicode"]); + this.upsMode = getStringOption(attributes.upsMode, ["usCarrier", "internationalCarrier", "secureSymbol", "standardSymbol"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio); + this.encrypt = null; + this.extras = null; + } +} +class Bind extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "bind", true); + this.match = getStringOption(attributes.match, ["once", "dataRef", "global", "none"]); + this.ref = attributes.ref || ""; + this.picture = null; + } +} +class BindItems extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "bindItems"); + this.connection = attributes.connection || ""; + this.labelRef = attributes.labelRef || ""; + this.ref = attributes.ref || ""; + this.valueRef = attributes.valueRef || ""; + } +} +class Bookend extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "bookend"); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class BooleanElement extends Option01 { + constructor(attributes) { + super(TEMPLATE_NS_ID, "boolean"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] === 1 ? "1" : "0"); + } +} +class Border extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "border", true); + this.break = getStringOption(attributes.break, ["close", "open"]); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.corner = new XFAObjectArray(4); + this.edge = new XFAObjectArray(4); + this.extras = null; + this.fill = null; + this.margin = null; + } + [$getExtra]() { + if (!this[$extra]) { + const edges = this.edge.children.slice(); + if (edges.length < 4) { + const defaultEdge = edges.at(-1) || new Edge({}); + for (let i = edges.length; i < 4; i++) { + edges.push(defaultEdge); + } + } + const widths = edges.map(edge => edge.thickness); + const insets = [0, 0, 0, 0]; + if (this.margin) { + insets[0] = this.margin.topInset; + insets[1] = this.margin.rightInset; + insets[2] = this.margin.bottomInset; + insets[3] = this.margin.leftInset; + } + this[$extra] = { + widths, + insets, + edges + }; + } + return this[$extra]; + } + [$toStyle]() { + const { + edges + } = this[$getExtra](); + const edgeStyles = edges.map(node => { + const style = node[$toStyle](); + style.color ||= "#000000"; + return style; + }); + const style = Object.create(null); + if (this.margin) { + Object.assign(style, this.margin[$toStyle]()); + } + if (this.fill?.presence === "visible") { + Object.assign(style, this.fill[$toStyle]()); + } + if (this.corner.children.some(node => node.radius !== 0)) { + const cornerStyles = this.corner.children.map(node => node[$toStyle]()); + if (cornerStyles.length === 2 || cornerStyles.length === 3) { + const last = cornerStyles.at(-1); + for (let i = cornerStyles.length; i < 4; i++) { + cornerStyles.push(last); + } + } + style.borderRadius = cornerStyles.map(s => s.radius).join(" "); + } + switch (this.presence) { + case "invisible": + case "hidden": + style.borderStyle = ""; + break; + case "inactive": + style.borderStyle = "none"; + break; + default: + style.borderStyle = edgeStyles.map(s => s.style).join(" "); + break; + } + style.borderWidth = edgeStyles.map(s => s.width).join(" "); + style.borderColor = edgeStyles.map(s => s.color).join(" "); + return style; + } +} +class Break extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "break", true); + this.after = getStringOption(attributes.after, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]); + this.afterTarget = attributes.afterTarget || ""; + this.before = getStringOption(attributes.before, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]); + this.beforeTarget = attributes.beforeTarget || ""; + this.bookendLeader = attributes.bookendLeader || ""; + this.bookendTrailer = attributes.bookendTrailer || ""; + this.id = attributes.id || ""; + this.overflowLeader = attributes.overflowLeader || ""; + this.overflowTarget = attributes.overflowTarget || ""; + this.overflowTrailer = attributes.overflowTrailer || ""; + this.startNew = getInteger({ + data: attributes.startNew, + defaultValue: 0, + validate: x => x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } +} +class BreakAfter extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "breakAfter", true); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.startNew = getInteger({ + data: attributes.startNew, + defaultValue: 0, + validate: x => x === 1 + }); + this.target = attributes.target || ""; + this.targetType = getStringOption(attributes.targetType, ["auto", "contentArea", "pageArea"]); + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.script = null; + } +} +class BreakBefore extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "breakBefore", true); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.startNew = getInteger({ + data: attributes.startNew, + defaultValue: 0, + validate: x => x === 1 + }); + this.target = attributes.target || ""; + this.targetType = getStringOption(attributes.targetType, ["auto", "contentArea", "pageArea"]); + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.script = null; + } + [$toHTML](availableSpace) { + this[$extra] = {}; + return HTMLResult.FAILURE; + } +} +class Button extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "button", true); + this.highlight = getStringOption(attributes.highlight, ["inverted", "none", "outline", "push"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$toHTML](availableSpace) { + const parent = this[$getParent](); + const grandpa = parent[$getParent](); + const htmlButton = { + name: "button", + attributes: { + id: this[$uid], + class: ["xfaButton"], + style: {} + }, + children: [] + }; + for (const event of grandpa.event.children) { + if (event.activity !== "click" || !event.script) { + continue; + } + const jsURL = recoverJsURL(event.script[$content]); + if (!jsURL) { + continue; + } + const href = fixURL(jsURL.url); + if (!href) { + continue; + } + htmlButton.children.push({ + name: "a", + attributes: { + id: "link" + this[$uid], + href, + newWindow: jsURL.newWindow, + class: ["xfaLink"], + style: {} + }, + children: [] + }); + } + return HTMLResult.success(htmlButton); + } +} +class Calculate extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "calculate", true); + this.id = attributes.id || ""; + this.override = getStringOption(attributes.override, ["disabled", "error", "ignore", "warning"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.message = null; + this.script = null; + } +} +class Caption extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "caption", true); + this.id = attributes.id || ""; + this.placement = getStringOption(attributes.placement, ["left", "bottom", "inline", "right", "top"]); + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.reserve = Math.ceil(getMeasurement(attributes.reserve)); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.font = null; + this.margin = null; + this.para = null; + this.value = null; + } + [$setValue](value) { + _setValue(this, value); + } + [$getExtra](availableSpace) { + if (!this[$extra]) { + let { + width, + height + } = availableSpace; + switch (this.placement) { + case "left": + case "right": + case "inline": + width = this.reserve <= 0 ? width : this.reserve; + break; + case "top": + case "bottom": + height = this.reserve <= 0 ? height : this.reserve; + break; + } + this[$extra] = layoutNode(this, { + width, + height + }); + } + return this[$extra]; + } + [$toHTML](availableSpace) { + if (!this.value) { + return HTMLResult.EMPTY; + } + this[$pushPara](); + const value = this.value[$toHTML](availableSpace).html; + if (!value) { + this[$popPara](); + return HTMLResult.EMPTY; + } + const savedReserve = this.reserve; + if (this.reserve <= 0) { + const { + w, + h + } = this[$getExtra](availableSpace); + switch (this.placement) { + case "left": + case "right": + case "inline": + this.reserve = w; + break; + case "top": + case "bottom": + this.reserve = h; + break; + } + } + const children = []; + if (typeof value === "string") { + children.push({ + name: "#text", + value + }); + } else { + children.push(value); + } + const style = toStyle(this, "font", "margin", "visibility"); + switch (this.placement) { + case "left": + case "right": + if (this.reserve > 0) { + style.width = measureToString(this.reserve); + } + break; + case "top": + case "bottom": + if (this.reserve > 0) { + style.height = measureToString(this.reserve); + } + break; + } + setPara(this, null, value); + this[$popPara](); + this.reserve = savedReserve; + return HTMLResult.success({ + name: "div", + attributes: { + style, + class: ["xfaCaption"] + }, + children + }); + } +} +class Certificate extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "certificate"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Certificates extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "certificates", true); + this.credentialServerPolicy = getStringOption(attributes.credentialServerPolicy, ["optional", "required"]); + this.id = attributes.id || ""; + this.url = attributes.url || ""; + this.urlPolicy = attributes.urlPolicy || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.encryption = null; + this.issuers = null; + this.keyUsage = null; + this.oids = null; + this.signing = null; + this.subjectDNs = null; + } +} +class CheckButton extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "checkButton", true); + this.id = attributes.id || ""; + this.mark = getStringOption(attributes.mark, ["default", "check", "circle", "cross", "diamond", "square", "star"]); + this.shape = getStringOption(attributes.shape, ["square", "round"]); + this.size = getMeasurement(attributes.size, "10pt"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "margin"); + const size = measureToString(this.size); + style.width = style.height = size; + let type; + let className; + let groupId; + const field = this[$getParent]()[$getParent](); + const items = field.items.children.length && field.items.children[0][$toHTML]().html || []; + const exportedValue = { + on: (items[0] !== undefined ? items[0] : "on").toString(), + off: (items[1] !== undefined ? items[1] : "off").toString() + }; + const value = field.value?.[$text]() || "off"; + const checked = value === exportedValue.on || undefined; + const container = field[$getSubformParent](); + const fieldId = field[$uid]; + let dataId; + if (container instanceof ExclGroup) { + groupId = container[$uid]; + type = "radio"; + className = "xfaRadio"; + dataId = container[$data]?.[$uid] || container[$uid]; + } else { + type = "checkbox"; + className = "xfaCheckbox"; + dataId = field[$data]?.[$uid] || field[$uid]; + } + const input = { + name: "input", + attributes: { + class: [className], + style, + fieldId, + dataId, + type, + checked, + xfaOn: exportedValue.on, + xfaOff: exportedValue.off, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + if (groupId) { + input.attributes.name = groupId; + } + if (isRequired(field)) { + input.attributes["aria-required"] = true; + input.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [input] + }); + } +} +class ChoiceList extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "choiceList", true); + this.commitOn = getStringOption(attributes.commitOn, ["select", "exit"]); + this.id = attributes.id || ""; + this.open = getStringOption(attributes.open, ["userControl", "always", "multiSelect", "onEntry"]); + this.textEntry = getInteger({ + data: attributes.textEntry, + defaultValue: 0, + validate: x => x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "margin"); + const ui = this[$getParent](); + const field = ui[$getParent](); + const fontSize = field.font?.size || 10; + const optionStyle = { + fontSize: `calc(${fontSize}px * var(--total-scale-factor))` + }; + const children = []; + if (field.items.children.length > 0) { + const items = field.items; + let displayedIndex = 0; + let saveIndex = 0; + if (items.children.length === 2) { + displayedIndex = items.children[0].save; + saveIndex = 1 - displayedIndex; + } + const displayed = items.children[displayedIndex][$toHTML]().html; + const values = items.children[saveIndex][$toHTML]().html; + let selected = false; + const value = field.value?.[$text]() || ""; + for (let i = 0, ii = displayed.length; i < ii; i++) { + const option = { + name: "option", + attributes: { + value: values[i] || displayed[i], + style: optionStyle + }, + value: displayed[i] + }; + if (values[i] === value) { + option.attributes.selected = selected = true; + } + children.push(option); + } + if (!selected) { + children.splice(0, 0, { + name: "option", + attributes: { + hidden: true, + selected: true + }, + value: " " + }); + } + } + const selectAttributes = { + class: ["xfaSelect"], + fieldId: field[$uid], + dataId: field[$data]?.[$uid] || field[$uid], + style, + "aria-label": ariaLabel(field), + "aria-required": false + }; + if (isRequired(field)) { + selectAttributes["aria-required"] = true; + selectAttributes.required = true; + } + if (this.open === "multiSelect") { + selectAttributes.multiple = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [{ + name: "select", + children, + attributes: selectAttributes + }] + }); + } +} +class Color extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "color", true); + this.cSpace = getStringOption(attributes.cSpace, ["SRGB"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.value = attributes.value ? getColor(attributes.value) : ""; + this.extras = null; + } + [$hasSettableValue]() { + return false; + } + [$toStyle]() { + return this.value ? Util.makeHexColor(this.value.r, this.value.g, this.value.b) : null; + } +} +class Comb extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "comb"); + this.id = attributes.id || ""; + this.numberOfCells = getInteger({ + data: attributes.numberOfCells, + defaultValue: 0, + validate: x => x >= 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Connect extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "connect", true); + this.connection = attributes.connection || ""; + this.id = attributes.id || ""; + this.ref = attributes.ref || ""; + this.usage = getStringOption(attributes.usage, ["exportAndImport", "exportOnly", "importOnly"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.picture = null; + } +} +class ContentArea extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "contentArea", true); + this.h = getMeasurement(attributes.h); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = getMeasurement(attributes.w); + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.desc = null; + this.extras = null; + } + [$toHTML](availableSpace) { + const left = measureToString(this.x); + const top = measureToString(this.y); + const style = { + left, + top, + width: measureToString(this.w), + height: measureToString(this.h) + }; + const classNames = ["xfaContentarea"]; + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + return HTMLResult.success({ + name: "div", + children: [], + attributes: { + style, + class: classNames, + id: this[$uid] + } + }); + } +} +class Corner extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "corner", true); + this.id = attributes.id || ""; + this.inverted = getInteger({ + data: attributes.inverted, + defaultValue: 0, + validate: x => x === 1 + }); + this.join = getStringOption(attributes.join, ["square", "round"]); + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.radius = getMeasurement(attributes.radius); + this.stroke = getStringOption(attributes.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]); + this.thickness = getMeasurement(attributes.thickness, "0.5pt"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle]() { + const style = toStyle(this, "visibility"); + style.radius = measureToString(this.join === "square" ? 0 : this.radius); + return style; + } +} +class DateElement extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "date"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const date = this[$content].trim(); + this[$content] = date ? new Date(date) : null; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] ? this[$content].toString() : ""); + } +} +class DateTime extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "dateTime"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const date = this[$content].trim(); + this[$content] = date ? new Date(date) : null; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] ? this[$content].toString() : ""); + } +} +class DateTimeEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "dateTimeEdit", true); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.picker = getStringOption(attributes.picker, ["host", "none"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "font", "margin"); + const field = this[$getParent]()[$getParent](); + const html = { + name: "input", + attributes: { + type: "text", + fieldId: field[$uid], + dataId: field[$data]?.[$uid] || field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + if (isRequired(field)) { + html.attributes["aria-required"] = true; + html.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [html] + }); + } +} +class Decimal extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "decimal"); + this.fracDigits = getInteger({ + data: attributes.fracDigits, + defaultValue: 2, + validate: x => true + }); + this.id = attributes.id || ""; + this.leadDigits = getInteger({ + data: attributes.leadDigits, + defaultValue: -1, + validate: x => true + }); + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const number = parseFloat(this[$content].trim()); + this[$content] = isNaN(number) ? null : number; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] !== null ? this[$content].toString() : ""); + } +} +class DefaultUi extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "defaultUi", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } +} +class Desc extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "desc", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } +} +class DigestMethod extends OptionObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "digestMethod", ["", "SHA1", "SHA256", "SHA512", "RIPEMD160"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class DigestMethods extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "digestMethods", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.digestMethod = new XFAObjectArray(); + } +} +class Draw extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "draw", true); + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.locale = attributes.locale || ""; + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.rotate = getInteger({ + data: attributes.rotate, + defaultValue: 0, + validate: x => x % 90 === 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.border = null; + this.caption = null; + this.desc = null; + this.extras = null; + this.font = null; + this.keep = null; + this.margin = null; + this.para = null; + this.traversal = null; + this.ui = null; + this.value = null; + this.setProperty = new XFAObjectArray(); + } + [$setValue](value) { + _setValue(this, value); + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (this.presence === "hidden" || this.presence === "inactive") { + return HTMLResult.EMPTY; + } + fixDimensions(this); + this[$pushPara](); + const savedW = this.w; + const savedH = this.h; + const { + w, + h, + isBroken + } = layoutNode(this, availableSpace); + if (w && this.w === "") { + if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) { + this[$popPara](); + return HTMLResult.FAILURE; + } + this.w = w; + } + if (h && this.h === "") { + this.h = h; + } + setFirstUnsplittable(this); + if (!checkDimensions(this, availableSpace)) { + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const style = toStyle(this, "font", "hAlign", "dimensions", "position", "presence", "rotate", "anchorType", "border", "margin"); + setMinMaxDimensions(this, style); + if (style.margin) { + style.padding = style.margin; + delete style.margin; + } + const classNames = ["xfaDraw"]; + if (this.font) { + classNames.push("xfaFont"); + } + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + const attributes = { + style, + id: this[$uid], + class: classNames + }; + if (this.name) { + attributes.xfaName = this.name; + } + const html = { + name: "div", + attributes, + children: [] + }; + applyAssist(this, attributes); + const bbox = computeBbox(this, html, availableSpace); + const value = this.value ? this.value[$toHTML](availableSpace).html : null; + if (value === null) { + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.success(createWrapper(this, html), bbox); + } + html.children.push(value); + setPara(this, style, value); + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.success(createWrapper(this, html), bbox); + } +} +class Edge extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "edge", true); + this.cap = getStringOption(attributes.cap, ["square", "butt", "round"]); + this.id = attributes.id || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.stroke = getStringOption(attributes.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]); + this.thickness = getMeasurement(attributes.thickness, "0.5pt"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle]() { + const style = toStyle(this, "visibility"); + Object.assign(style, { + linecap: this.cap, + width: measureToString(this.thickness), + color: this.color ? this.color[$toStyle]() : "#000000", + style: "" + }); + if (this.presence !== "visible") { + style.style = "none"; + } else { + switch (this.stroke) { + case "solid": + style.style = "solid"; + break; + case "dashDot": + style.style = "dashed"; + break; + case "dashDotDot": + style.style = "dashed"; + break; + case "dashed": + style.style = "dashed"; + break; + case "dotted": + style.style = "dotted"; + break; + case "embossed": + style.style = "ridge"; + break; + case "etched": + style.style = "groove"; + break; + case "lowered": + style.style = "inset"; + break; + case "raised": + style.style = "outset"; + break; + } + } + return style; + } +} +class Encoding extends OptionObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encoding", ["adbe.x509.rsa_sha1", "adbe.pkcs7.detached", "adbe.pkcs7.sha1"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Encodings extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encodings", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.encoding = new XFAObjectArray(); + } +} +class Encrypt extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encrypt", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = null; + } +} +class EncryptData extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryptData", true); + this.id = attributes.id || ""; + this.operation = getStringOption(attributes.operation, ["encrypt", "decrypt"]); + this.target = attributes.target || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.filter = null; + this.manifest = null; + } +} +class Encryption extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryption", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = new XFAObjectArray(); + } +} +class EncryptionMethod extends OptionObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryptionMethod", ["", "AES256-CBC", "TRIPLEDES-CBC", "AES128-CBC", "AES192-CBC"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class EncryptionMethods extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryptionMethods", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.encryptionMethod = new XFAObjectArray(); + } +} +class Event extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "event", true); + this.activity = getStringOption(attributes.activity, ["click", "change", "docClose", "docReady", "enter", "exit", "full", "indexChange", "initialize", "mouseDown", "mouseEnter", "mouseExit", "mouseUp", "postExecute", "postOpen", "postPrint", "postSave", "postSign", "postSubmit", "preExecute", "preOpen", "prePrint", "preSave", "preSign", "preSubmit", "ready", "validationState"]); + this.id = attributes.id || ""; + this.listen = getStringOption(attributes.listen, ["refOnly", "refAndDescendents"]); + this.name = attributes.name || ""; + this.ref = attributes.ref || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.encryptData = null; + this.execute = null; + this.script = null; + this.signData = null; + this.submit = null; + } +} +class ExData extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "exData"); + this.contentType = attributes.contentType || ""; + this.href = attributes.href || ""; + this.id = attributes.id || ""; + this.maxLength = getInteger({ + data: attributes.maxLength, + defaultValue: -1, + validate: x => x >= -1 + }); + this.name = attributes.name || ""; + this.rid = attributes.rid || ""; + this.transferEncoding = getStringOption(attributes.transferEncoding, ["none", "base64", "package"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$isCDATAXml]() { + return this.contentType === "text/html"; + } + [$onChild](child) { + if (this.contentType === "text/html" && child[$namespaceId] === NamespaceIds.xhtml.id) { + this[$content] = child; + return true; + } + if (this.contentType === "text/xml") { + this[$content] = child; + return true; + } + return false; + } + [$toHTML](availableSpace) { + if (this.contentType !== "text/html" || !this[$content]) { + return HTMLResult.EMPTY; + } + return this[$content][$toHTML](availableSpace); + } +} +class ExObject extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "exObject", true); + this.archive = attributes.archive || ""; + this.classId = attributes.classId || ""; + this.codeBase = attributes.codeBase || ""; + this.codeType = attributes.codeType || ""; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } +} +class ExclGroup extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "exclGroup", true); + this.access = getStringOption(attributes.access, ["open", "nonInteractive", "protected", "readOnly"]); + this.accessKey = attributes.accessKey || ""; + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.layout = getStringOption(attributes.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]); + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.bind = null; + this.border = null; + this.calculate = null; + this.caption = null; + this.desc = null; + this.extras = null; + this.margin = null; + this.para = null; + this.traversal = null; + this.validate = null; + this.connect = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + } + [$isBindable]() { + return true; + } + [$hasSettableValue]() { + return true; + } + [$setValue](value) { + for (const field of this.field.children) { + if (!field.value) { + const nodeValue = new Value({}); + field[$appendChild](nodeValue); + field.value = nodeValue; + } + field.value[$setValue](value); + } + } + [$isThereMoreWidth]() { + return this.layout.endsWith("-tb") && this[$extra].attempt === 0 && this[$extra].numberInLine > 0 || this[$getParent]()[$isThereMoreWidth](); + } + [$isSplittable]() { + const parent = this[$getSubformParent](); + if (!parent[$isSplittable]()) { + return false; + } + if (this[$extra]._isSplittable !== undefined) { + return this[$extra]._isSplittable; + } + if (this.layout === "position" || this.layout.includes("row")) { + this[$extra]._isSplittable = false; + return false; + } + if (parent.layout?.endsWith("-tb") && parent[$extra].numberInLine !== 0) { + return false; + } + this[$extra]._isSplittable = true; + return true; + } + [$flushHTML]() { + return flushHTML(this); + } + [$addHTML](html, bbox) { + addHTML(this, html, bbox); + } + [$getAvailableSpace]() { + return getAvailableSpace(this); + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (this.presence === "hidden" || this.presence === "inactive" || this.h === 0 || this.w === 0) { + return HTMLResult.EMPTY; + } + fixDimensions(this); + const children = []; + const attributes = { + id: this[$uid], + class: [] + }; + setAccess(this, attributes.class); + this[$extra] ||= Object.create(null); + Object.assign(this[$extra], { + children, + attributes, + attempt: 0, + line: null, + numberInLine: 0, + availableSpace: { + width: Math.min(this.w || Infinity, availableSpace.width), + height: Math.min(this.h || Infinity, availableSpace.height) + }, + width: 0, + height: 0, + prevHeight: 0, + currentWidth: 0 + }); + const isSplittable = this[$isSplittable](); + if (!isSplittable) { + setFirstUnsplittable(this); + } + if (!checkDimensions(this, availableSpace)) { + return HTMLResult.FAILURE; + } + const filter = new Set(["field"]); + if (this.layout.includes("row")) { + const columnWidths = this[$getSubformParent]().columnWidths; + if (Array.isArray(columnWidths) && columnWidths.length > 0) { + this[$extra].columnWidths = columnWidths; + this[$extra].currentColumn = 0; + } + } + const style = toStyle(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"); + const classNames = ["xfaExclgroup"]; + const cl = layoutClass(this); + if (cl) { + classNames.push(cl); + } + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + attributes.style = style; + attributes.class = classNames; + if (this.name) { + attributes.xfaName = this.name; + } + this[$pushPara](); + const isLrTb = this.layout === "lr-tb" || this.layout === "rl-tb"; + const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1; + for (; this[$extra].attempt < maxRun; this[$extra].attempt++) { + if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) { + this[$extra].numberInLine = 0; + } + const result = this[$childrenToHTML]({ + filter, + include: true + }); + if (result.success) { + break; + } + if (result.isBreak()) { + this[$popPara](); + return result; + } + if (isLrTb && this[$extra].attempt === 0 && this[$extra].numberInLine === 0 && !this[$getTemplateRoot]()[$extra].noLayoutFailure) { + this[$extra].attempt = maxRun; + break; + } + } + this[$popPara](); + if (!isSplittable) { + unsetFirstUnsplittable(this); + } + if (this[$extra].attempt === maxRun) { + if (!isSplittable) { + delete this[$extra]; + } + return HTMLResult.FAILURE; + } + let marginH = 0; + let marginV = 0; + if (this.margin) { + marginH = this.margin.leftInset + this.margin.rightInset; + marginV = this.margin.topInset + this.margin.bottomInset; + } + const width = Math.max(this[$extra].width + marginH, this.w || 0); + const height = Math.max(this[$extra].height + marginV, this.h || 0); + const bbox = [this.x, this.y, width, height]; + if (this.w === "") { + style.width = measureToString(width); + } + if (this.h === "") { + style.height = measureToString(height); + } + const html = { + name: "div", + attributes, + children + }; + applyAssist(this, attributes); + delete this[$extra]; + return HTMLResult.success(createWrapper(this, html), bbox); + } +} +class Execute extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "execute"); + this.connection = attributes.connection || ""; + this.executeType = getStringOption(attributes.executeType, ["import", "remerge"]); + this.id = attributes.id || ""; + this.runAt = getStringOption(attributes.runAt, ["client", "both", "server"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Extras extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "extras", true); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.extras = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } +} +class Field extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "field", true); + this.access = getStringOption(attributes.access, ["open", "nonInteractive", "protected", "readOnly"]); + this.accessKey = attributes.accessKey || ""; + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.locale = attributes.locale || ""; + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.rotate = getInteger({ + data: attributes.rotate, + defaultValue: 0, + validate: x => x % 90 === 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.bind = null; + this.border = null; + this.calculate = null; + this.caption = null; + this.desc = null; + this.extras = null; + this.font = null; + this.format = null; + this.items = new XFAObjectArray(2); + this.keep = null; + this.margin = null; + this.para = null; + this.traversal = null; + this.ui = null; + this.validate = null; + this.value = null; + this.bindItems = new XFAObjectArray(); + this.connect = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + } + [$isBindable]() { + return true; + } + [$setValue](value) { + _setValue(this, value); + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (!this.ui) { + this.ui = new Ui({}); + this.ui[$globalData] = this[$globalData]; + this[$appendChild](this.ui); + let node; + switch (this.items.children.length) { + case 0: + node = new TextEdit({}); + this.ui.textEdit = node; + break; + case 1: + node = new CheckButton({}); + this.ui.checkButton = node; + break; + case 2: + node = new ChoiceList({}); + this.ui.choiceList = node; + break; + } + this.ui[$appendChild](node); + } + if (!this.ui || this.presence === "hidden" || this.presence === "inactive" || this.h === 0 || this.w === 0) { + return HTMLResult.EMPTY; + } + if (this.caption) { + delete this.caption[$extra]; + } + this[$pushPara](); + const caption = this.caption ? this.caption[$toHTML](availableSpace).html : null; + const savedW = this.w; + const savedH = this.h; + let marginH = 0; + let marginV = 0; + if (this.margin) { + marginH = this.margin.leftInset + this.margin.rightInset; + marginV = this.margin.topInset + this.margin.bottomInset; + } + let borderDims = null; + if (this.w === "" || this.h === "") { + let width = null; + let height = null; + let uiW = 0; + let uiH = 0; + if (this.ui.checkButton) { + uiW = uiH = this.ui.checkButton.size; + } else { + const { + w, + h + } = layoutNode(this, availableSpace); + if (w !== null) { + uiW = w; + uiH = h; + } else { + uiH = fonts_getMetrics(this.font, true).lineNoGap; + } + } + borderDims = getBorderDims(this.ui[$getExtra]()); + uiW += borderDims.w; + uiH += borderDims.h; + if (this.caption) { + const { + w, + h, + isBroken + } = this.caption[$getExtra](availableSpace); + if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) { + this[$popPara](); + return HTMLResult.FAILURE; + } + width = w; + height = h; + switch (this.caption.placement) { + case "left": + case "right": + case "inline": + width += uiW; + break; + case "top": + case "bottom": + height += uiH; + break; + } + } else { + width = uiW; + height = uiH; + } + if (width && this.w === "") { + width += marginH; + this.w = Math.min(this.maxW <= 0 ? Infinity : this.maxW, this.minW + 1 < width ? width : this.minW); + } + if (height && this.h === "") { + height += marginV; + this.h = Math.min(this.maxH <= 0 ? Infinity : this.maxH, this.minH + 1 < height ? height : this.minH); + } + } + this[$popPara](); + fixDimensions(this); + setFirstUnsplittable(this); + if (!checkDimensions(this, availableSpace)) { + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const style = toStyle(this, "font", "dimensions", "position", "rotate", "anchorType", "presence", "margin", "hAlign"); + setMinMaxDimensions(this, style); + const classNames = ["xfaField"]; + if (this.font) { + classNames.push("xfaFont"); + } + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + const attributes = { + style, + id: this[$uid], + class: classNames + }; + if (style.margin) { + style.padding = style.margin; + delete style.margin; + } + setAccess(this, classNames); + if (this.name) { + attributes.xfaName = this.name; + } + const children = []; + const html = { + name: "div", + attributes, + children + }; + applyAssist(this, attributes); + const borderStyle = this.border ? this.border[$toStyle]() : null; + const bbox = computeBbox(this, html, availableSpace); + const ui = this.ui[$toHTML]().html; + if (!ui) { + Object.assign(style, borderStyle); + return HTMLResult.success(createWrapper(this, html), bbox); + } + if (this[$tabIndex]) { + if (ui.children?.[0]) { + ui.children[0].attributes.tabindex = this[$tabIndex]; + } else { + ui.attributes.tabindex = this[$tabIndex]; + } + } + ui.attributes.style ||= Object.create(null); + let aElement = null; + if (this.ui.button) { + if (ui.children.length === 1) { + [aElement] = ui.children.splice(0, 1); + } + Object.assign(ui.attributes.style, borderStyle); + } else { + Object.assign(style, borderStyle); + } + children.push(ui); + if (this.value) { + if (this.ui.imageEdit) { + ui.children.push(this.value[$toHTML]().html); + } else if (!this.ui.button) { + let value = ""; + if (this.value.exData) { + value = this.value.exData[$text](); + } else if (this.value.text) { + value = this.value.text[$getExtra](); + } else { + const htmlValue = this.value[$toHTML]().html; + if (htmlValue !== null) { + value = htmlValue.children[0].value; + } + } + if (this.ui.textEdit && this.value.text?.maxChars) { + ui.children[0].attributes.maxLength = this.value.text.maxChars; + } + if (value) { + if (this.ui.numericEdit) { + value = parseFloat(value); + value = isNaN(value) ? "" : value.toString(); + } + if (ui.children[0].name === "textarea") { + ui.children[0].attributes.textContent = value; + } else { + ui.children[0].attributes.value = value; + } + } + } + } + if (!this.ui.imageEdit && ui.children?.[0] && this.h) { + borderDims = borderDims || getBorderDims(this.ui[$getExtra]()); + let captionHeight = 0; + if (this.caption && ["top", "bottom"].includes(this.caption.placement)) { + captionHeight = this.caption.reserve; + if (captionHeight <= 0) { + captionHeight = this.caption[$getExtra](availableSpace).h; + } + const inputHeight = this.h - captionHeight - marginV - borderDims.h; + ui.children[0].attributes.style.height = measureToString(inputHeight); + } else { + ui.children[0].attributes.style.height = "100%"; + } + } + if (aElement) { + ui.children.push(aElement); + } + if (!caption) { + if (ui.attributes.class) { + ui.attributes.class.push("xfaLeft"); + } + this.w = savedW; + this.h = savedH; + return HTMLResult.success(createWrapper(this, html), bbox); + } + if (this.ui.button) { + if (style.padding) { + delete style.padding; + } + if (caption.name === "div") { + caption.name = "span"; + } + ui.children.push(caption); + return HTMLResult.success(html, bbox); + } else if (this.ui.checkButton) { + caption.attributes.class[0] = "xfaCaptionForCheckButton"; + } + ui.attributes.class ||= []; + ui.children.splice(0, 0, caption); + switch (this.caption.placement) { + case "left": + ui.attributes.class.push("xfaLeft"); + break; + case "right": + ui.attributes.class.push("xfaRight"); + break; + case "top": + ui.attributes.class.push("xfaTop"); + break; + case "bottom": + ui.attributes.class.push("xfaBottom"); + break; + case "inline": + ui.attributes.class.push("xfaLeft"); + break; + } + this.w = savedW; + this.h = savedH; + return HTMLResult.success(createWrapper(this, html), bbox); + } +} +class Fill extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "fill", true); + this.id = attributes.id || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + this.linear = null; + this.pattern = null; + this.radial = null; + this.solid = null; + this.stipple = null; + } + [$toStyle]() { + const parent = this[$getParent](); + const grandpa = parent[$getParent](); + const ggrandpa = grandpa[$getParent](); + const style = Object.create(null); + let propName = "color"; + let altPropName = propName; + if (parent instanceof Border) { + propName = "background-color"; + altPropName = "background"; + if (ggrandpa instanceof Ui) { + style.backgroundColor = "white"; + } + } + if (parent instanceof Rectangle || parent instanceof Arc) { + propName = altPropName = "fill"; + style.fill = "white"; + } + for (const name of Object.getOwnPropertyNames(this)) { + if (name === "extras" || name === "color") { + continue; + } + const obj = this[name]; + if (!(obj instanceof XFAObject)) { + continue; + } + const color = obj[$toStyle](this.color); + if (color) { + style[color.startsWith("#") ? propName : altPropName] = color; + } + return style; + } + if (this.color?.value) { + const color = this.color[$toStyle](); + style[color.startsWith("#") ? propName : altPropName] = color; + } + return style; + } +} +class Filter extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "filter", true); + this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, ["", "required", "optional", "none"]); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.version = getInteger({ + data: this.version, + defaultValue: 5, + validate: x => x >= 1 && x <= 5 + }); + this.appearanceFilter = null; + this.certificates = null; + this.digestMethods = null; + this.encodings = null; + this.encryptionMethods = null; + this.handler = null; + this.lockDocument = null; + this.mdp = null; + this.reasons = null; + this.timeStamp = null; + } +} +class Float extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "float"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const number = parseFloat(this[$content].trim()); + this[$content] = isNaN(number) ? null : number; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] !== null ? this[$content].toString() : ""); + } +} +class template_Font extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "font", true); + this.baselineShift = getMeasurement(attributes.baselineShift); + this.fontHorizontalScale = getFloat({ + data: attributes.fontHorizontalScale, + defaultValue: 100, + validate: x => x >= 0 + }); + this.fontVerticalScale = getFloat({ + data: attributes.fontVerticalScale, + defaultValue: 100, + validate: x => x >= 0 + }); + this.id = attributes.id || ""; + this.kerningMode = getStringOption(attributes.kerningMode, ["none", "pair"]); + this.letterSpacing = getMeasurement(attributes.letterSpacing, "0"); + this.lineThrough = getInteger({ + data: attributes.lineThrough, + defaultValue: 0, + validate: x => x === 1 || x === 2 + }); + this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, ["all", "word"]); + this.overline = getInteger({ + data: attributes.overline, + defaultValue: 0, + validate: x => x === 1 || x === 2 + }); + this.overlinePeriod = getStringOption(attributes.overlinePeriod, ["all", "word"]); + this.posture = getStringOption(attributes.posture, ["normal", "italic"]); + this.size = getMeasurement(attributes.size, "10pt"); + this.typeface = attributes.typeface || "Courier"; + this.underline = getInteger({ + data: attributes.underline, + defaultValue: 0, + validate: x => x === 1 || x === 2 + }); + this.underlinePeriod = getStringOption(attributes.underlinePeriod, ["all", "word"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.weight = getStringOption(attributes.weight, ["normal", "bold"]); + this.extras = null; + this.fill = null; + } + [$clean](builder) { + super[$clean](builder); + this[$globalData].usedTypefaces.add(this.typeface); + } + [$toStyle]() { + const style = toStyle(this, "fill"); + const color = style.color; + if (color) { + if (color === "#000000") { + delete style.color; + } else if (!color.startsWith("#")) { + style.background = color; + style.backgroundClip = "text"; + style.color = "transparent"; + } + } + if (this.baselineShift) { + style.verticalAlign = measureToString(this.baselineShift); + } + style.fontKerning = this.kerningMode === "none" ? "none" : "normal"; + style.letterSpacing = measureToString(this.letterSpacing); + if (this.lineThrough !== 0) { + style.textDecoration = "line-through"; + if (this.lineThrough === 2) { + style.textDecorationStyle = "double"; + } + } + if (this.overline !== 0) { + style.textDecoration = "overline"; + if (this.overline === 2) { + style.textDecorationStyle = "double"; + } + } + style.fontStyle = this.posture; + style.fontSize = measureToString(0.99 * this.size); + setFontFamily(this, this, this[$globalData].fontFinder, style); + if (this.underline !== 0) { + style.textDecoration = "underline"; + if (this.underline === 2) { + style.textDecorationStyle = "double"; + } + } + style.fontWeight = this.weight; + return style; + } +} +class Format extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "format", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.picture = null; + } +} +class Handler extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "handler"); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Hyphenation extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "hyphenation"); + this.excludeAllCaps = getInteger({ + data: attributes.excludeAllCaps, + defaultValue: 0, + validate: x => x === 1 + }); + this.excludeInitialCap = getInteger({ + data: attributes.excludeInitialCap, + defaultValue: 0, + validate: x => x === 1 + }); + this.hyphenate = getInteger({ + data: attributes.hyphenate, + defaultValue: 0, + validate: x => x === 1 + }); + this.id = attributes.id || ""; + this.pushCharacterCount = getInteger({ + data: attributes.pushCharacterCount, + defaultValue: 3, + validate: x => x >= 0 + }); + this.remainCharacterCount = getInteger({ + data: attributes.remainCharacterCount, + defaultValue: 3, + validate: x => x >= 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.wordCharacterCount = getInteger({ + data: attributes.wordCharacterCount, + defaultValue: 7, + validate: x => x >= 0 + }); + } +} +class Image extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "image"); + this.aspect = getStringOption(attributes.aspect, ["fit", "actual", "height", "none", "width"]); + this.contentType = attributes.contentType || ""; + this.href = attributes.href || ""; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.transferEncoding = getStringOption(attributes.transferEncoding, ["base64", "none", "package"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$toHTML]() { + if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) { + return HTMLResult.EMPTY; + } + let buffer = this[$globalData].images?.get(this.href); + if (!buffer && (this.href || !this[$content])) { + return HTMLResult.EMPTY; + } + if (!buffer && this.transferEncoding === "base64") { + buffer = fromBase64Util(this[$content]); + } + if (!buffer) { + return HTMLResult.EMPTY; + } + if (!this.contentType) { + for (const [header, type] of IMAGES_HEADERS) { + if (buffer.length > header.length && header.every((x, i) => x === buffer[i])) { + this.contentType = type; + break; + } + } + if (!this.contentType) { + return HTMLResult.EMPTY; + } + } + const blob = new Blob([buffer], { + type: this.contentType + }); + let style; + switch (this.aspect) { + case "fit": + case "actual": + break; + case "height": + style = { + height: "100%", + objectFit: "fill" + }; + break; + case "none": + style = { + width: "100%", + height: "100%", + objectFit: "fill" + }; + break; + case "width": + style = { + width: "100%", + objectFit: "fill" + }; + break; + } + const parent = this[$getParent](); + return HTMLResult.success({ + name: "img", + attributes: { + class: ["xfaImage"], + style, + src: URL.createObjectURL(blob), + alt: parent ? ariaLabel(parent[$getParent]()) : null + } + }); + } +} +class ImageEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "imageEdit", true); + this.data = getStringOption(attributes.data, ["link", "embed"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + if (this.data === "embed") { + return HTMLResult.success({ + name: "div", + children: [], + attributes: {} + }); + } + return HTMLResult.EMPTY; + } +} +class Integer extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "integer"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const number = parseInt(this[$content].trim(), 10); + this[$content] = isNaN(number) ? null : number; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] !== null ? this[$content].toString() : ""); + } +} +class Issuers extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "issuers", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = new XFAObjectArray(); + } +} +class Items extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "items", true); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.ref = attributes.ref || ""; + this.save = getInteger({ + data: attributes.save, + defaultValue: 0, + validate: x => x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } + [$toHTML]() { + const output = []; + for (const child of this[$getChildren]()) { + output.push(child[$text]()); + } + return HTMLResult.success(output); + } +} +class Keep extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "keep", true); + this.id = attributes.id || ""; + const options = ["none", "contentArea", "pageArea"]; + this.intact = getStringOption(attributes.intact, options); + this.next = getStringOption(attributes.next, options); + this.previous = getStringOption(attributes.previous, options); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } +} +class KeyUsage extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "keyUsage"); + const options = ["", "yes", "no"]; + this.crlSign = getStringOption(attributes.crlSign, options); + this.dataEncipherment = getStringOption(attributes.dataEncipherment, options); + this.decipherOnly = getStringOption(attributes.decipherOnly, options); + this.digitalSignature = getStringOption(attributes.digitalSignature, options); + this.encipherOnly = getStringOption(attributes.encipherOnly, options); + this.id = attributes.id || ""; + this.keyAgreement = getStringOption(attributes.keyAgreement, options); + this.keyCertSign = getStringOption(attributes.keyCertSign, options); + this.keyEncipherment = getStringOption(attributes.keyEncipherment, options); + this.nonRepudiation = getStringOption(attributes.nonRepudiation, options); + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Line extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "line", true); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.slope = getStringOption(attributes.slope, ["\\", "/"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.edge = null; + } + [$toHTML]() { + const parent = this[$getParent]()[$getParent](); + const edge = this.edge || new Edge({}); + const edgeStyle = edge[$toStyle](); + const style = Object.create(null); + const thickness = edge.presence === "visible" ? edge.thickness : 0; + style.strokeWidth = measureToString(thickness); + style.stroke = edgeStyle.color; + let x1, y1, x2, y2; + let width = "100%"; + let height = "100%"; + if (parent.w <= thickness) { + [x1, y1, x2, y2] = ["50%", 0, "50%", "100%"]; + width = style.strokeWidth; + } else if (parent.h <= thickness) { + [x1, y1, x2, y2] = [0, "50%", "100%", "50%"]; + height = style.strokeWidth; + } else if (this.slope === "\\") { + [x1, y1, x2, y2] = [0, 0, "100%", "100%"]; + } else { + [x1, y1, x2, y2] = [0, "100%", "100%", 0]; + } + const line = { + name: "line", + attributes: { + xmlns: SVG_NS, + x1, + y1, + x2, + y2, + style + } + }; + const svg = { + name: "svg", + children: [line], + attributes: { + xmlns: SVG_NS, + width, + height, + style: { + overflow: "visible" + } + } + }; + if (hasMargin(parent)) { + return HTMLResult.success({ + name: "div", + attributes: { + style: { + display: "inline", + width: "100%", + height: "100%" + } + }, + children: [svg] + }); + } + svg.attributes.style.position = "absolute"; + return HTMLResult.success(svg); + } +} +class Linear extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "linear", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["toRight", "toBottom", "toLeft", "toTop"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](startColor) { + startColor = startColor ? startColor[$toStyle]() : "#FFFFFF"; + const transf = this.type.replace(/([RBLT])/, " $1").toLowerCase(); + const endColor = this.color ? this.color[$toStyle]() : "#000000"; + return `linear-gradient(${transf}, ${startColor}, ${endColor})`; + } +} +class LockDocument extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "lockDocument"); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + this[$content] = getStringOption(this[$content], ["auto", "0", "1"]); + } +} +class Manifest extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "manifest", true); + this.action = getStringOption(attributes.action, ["include", "all", "exclude"]); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.ref = new XFAObjectArray(); + } +} +class Margin extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "margin", true); + this.bottomInset = getMeasurement(attributes.bottomInset, "0"); + this.id = attributes.id || ""; + this.leftInset = getMeasurement(attributes.leftInset, "0"); + this.rightInset = getMeasurement(attributes.rightInset, "0"); + this.topInset = getMeasurement(attributes.topInset, "0"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$toStyle]() { + return { + margin: measureToString(this.topInset) + " " + measureToString(this.rightInset) + " " + measureToString(this.bottomInset) + " " + measureToString(this.leftInset) + }; + } +} +class Mdp extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "mdp"); + this.id = attributes.id || ""; + this.permissions = getInteger({ + data: attributes.permissions, + defaultValue: 2, + validate: x => x === 1 || x === 3 + }); + this.signatureType = getStringOption(attributes.signatureType, ["filler", "author"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Medium extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "medium"); + this.id = attributes.id || ""; + this.imagingBBox = getBBox(attributes.imagingBBox); + this.long = getMeasurement(attributes.long); + this.orientation = getStringOption(attributes.orientation, ["portrait", "landscape"]); + this.short = getMeasurement(attributes.short); + this.stock = attributes.stock || ""; + this.trayIn = getStringOption(attributes.trayIn, ["auto", "delegate", "pageFront"]); + this.trayOut = getStringOption(attributes.trayOut, ["auto", "delegate"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Message extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "message", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.text = new XFAObjectArray(); + } +} +class NumericEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "numericEdit", true); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "font", "margin"); + const field = this[$getParent]()[$getParent](); + const html = { + name: "input", + attributes: { + type: "text", + fieldId: field[$uid], + dataId: field[$data]?.[$uid] || field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + if (isRequired(field)) { + html.attributes["aria-required"] = true; + html.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [html] + }); + } +} +class Occur extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "occur", true); + this.id = attributes.id || ""; + this.initial = attributes.initial !== "" ? getInteger({ + data: attributes.initial, + defaultValue: "", + validate: x => true + }) : ""; + this.max = attributes.max !== "" ? getInteger({ + data: attributes.max, + defaultValue: 1, + validate: x => true + }) : ""; + this.min = attributes.min !== "" ? getInteger({ + data: attributes.min, + defaultValue: 1, + validate: x => true + }) : ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$clean]() { + const parent = this[$getParent](); + const originalMin = this.min; + if (this.min === "") { + this.min = parent instanceof PageArea || parent instanceof PageSet ? 0 : 1; + } + if (this.max === "") { + if (originalMin === "") { + this.max = parent instanceof PageArea || parent instanceof PageSet ? -1 : 1; + } else { + this.max = this.min; + } + } + if (this.max !== -1 && this.max < this.min) { + this.max = this.min; + } + if (this.initial === "") { + this.initial = parent instanceof Template ? 1 : this.min; + } + } +} +class Oid extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "oid"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Oids extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "oids", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.oid = new XFAObjectArray(); + } +} +class Overflow extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "overflow"); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.target = attributes.target || ""; + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$getExtra]() { + if (!this[$extra]) { + const parent = this[$getParent](); + const root = this[$getTemplateRoot](); + const target = root[$searchNode](this.target, parent); + const leader = root[$searchNode](this.leader, parent); + const trailer = root[$searchNode](this.trailer, parent); + this[$extra] = { + target: target?.[0] || null, + leader: leader?.[0] || null, + trailer: trailer?.[0] || null, + addLeader: false, + addTrailer: false + }; + } + return this[$extra]; + } +} +class PageArea extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "pageArea", true); + this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, ["any", "blank", "notBlank"]); + this.id = attributes.id || ""; + this.initialNumber = getInteger({ + data: attributes.initialNumber, + defaultValue: 1, + validate: x => true + }); + this.name = attributes.name || ""; + this.numbered = getInteger({ + data: attributes.numbered, + defaultValue: 1, + validate: x => true + }); + this.oddOrEven = getStringOption(attributes.oddOrEven, ["any", "even", "odd"]); + this.pagePosition = getStringOption(attributes.pagePosition, ["any", "first", "last", "only", "rest"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.desc = null; + this.extras = null; + this.medium = null; + this.occur = null; + this.area = new XFAObjectArray(); + this.contentArea = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + } + [$isUsable]() { + if (!this[$extra]) { + this[$extra] = { + numberOfUse: 0 + }; + return true; + } + return !this.occur || this.occur.max === -1 || this[$extra].numberOfUse < this.occur.max; + } + [$cleanPage]() { + delete this[$extra]; + } + [$getNextPage]() { + this[$extra] ||= { + numberOfUse: 0 + }; + const parent = this[$getParent](); + if (parent.relation === "orderedOccurrence") { + if (this[$isUsable]()) { + this[$extra].numberOfUse += 1; + return this; + } + } + return parent[$getNextPage](); + } + [$getAvailableSpace]() { + return this[$extra].space || { + width: 0, + height: 0 + }; + } + [$toHTML]() { + this[$extra] ||= { + numberOfUse: 1 + }; + const children = []; + this[$extra].children = children; + const style = Object.create(null); + if (this.medium && this.medium.short && this.medium.long) { + style.width = measureToString(this.medium.short); + style.height = measureToString(this.medium.long); + this[$extra].space = { + width: this.medium.short, + height: this.medium.long + }; + if (this.medium.orientation === "landscape") { + const x = style.width; + style.width = style.height; + style.height = x; + this[$extra].space = { + width: this.medium.long, + height: this.medium.short + }; + } + } else { + warn("XFA - No medium specified in pageArea: please file a bug."); + } + this[$childrenToHTML]({ + filter: new Set(["area", "draw", "field", "subform"]), + include: true + }); + this[$childrenToHTML]({ + filter: new Set(["contentArea"]), + include: true + }); + return HTMLResult.success({ + name: "div", + children, + attributes: { + class: ["xfaPage"], + id: this[$uid], + style, + xfaName: this.name + } + }); + } +} +class PageSet extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "pageSet", true); + this.duplexImposition = getStringOption(attributes.duplexImposition, ["longEdge", "shortEdge"]); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relation = getStringOption(attributes.relation, ["orderedOccurrence", "duplexPaginated", "simplexPaginated"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.occur = null; + this.pageArea = new XFAObjectArray(); + this.pageSet = new XFAObjectArray(); + } + [$cleanPage]() { + for (const page of this.pageArea.children) { + page[$cleanPage](); + } + for (const page of this.pageSet.children) { + page[$cleanPage](); + } + } + [$isUsable]() { + return !this.occur || this.occur.max === -1 || this[$extra].numberOfUse < this.occur.max; + } + [$getNextPage]() { + this[$extra] ||= { + numberOfUse: 1, + pageIndex: -1, + pageSetIndex: -1 + }; + if (this.relation === "orderedOccurrence") { + if (this[$extra].pageIndex + 1 < this.pageArea.children.length) { + this[$extra].pageIndex += 1; + const pageArea = this.pageArea.children[this[$extra].pageIndex]; + return pageArea[$getNextPage](); + } + if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) { + this[$extra].pageSetIndex += 1; + return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage](); + } + if (this[$isUsable]()) { + this[$extra].numberOfUse += 1; + this[$extra].pageIndex = -1; + this[$extra].pageSetIndex = -1; + return this[$getNextPage](); + } + const parent = this[$getParent](); + if (parent instanceof PageSet) { + return parent[$getNextPage](); + } + this[$cleanPage](); + return this[$getNextPage](); + } + const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber; + const parity = pageNumber % 2 === 0 ? "even" : "odd"; + const position = pageNumber === 0 ? "first" : "rest"; + let page = this.pageArea.children.find(p => p.oddOrEven === parity && p.pagePosition === position); + if (page) { + return page; + } + page = this.pageArea.children.find(p => p.oddOrEven === "any" && p.pagePosition === position); + if (page) { + return page; + } + page = this.pageArea.children.find(p => p.oddOrEven === "any" && p.pagePosition === "any"); + if (page) { + return page; + } + return this.pageArea.children[0]; + } +} +class Para extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "para", true); + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.lineHeight = attributes.lineHeight ? getMeasurement(attributes.lineHeight, "0pt") : ""; + this.marginLeft = attributes.marginLeft ? getMeasurement(attributes.marginLeft, "0pt") : ""; + this.marginRight = attributes.marginRight ? getMeasurement(attributes.marginRight, "0pt") : ""; + this.orphans = getInteger({ + data: attributes.orphans, + defaultValue: 0, + validate: x => x >= 0 + }); + this.preserve = attributes.preserve || ""; + this.radixOffset = attributes.radixOffset ? getMeasurement(attributes.radixOffset, "0pt") : ""; + this.spaceAbove = attributes.spaceAbove ? getMeasurement(attributes.spaceAbove, "0pt") : ""; + this.spaceBelow = attributes.spaceBelow ? getMeasurement(attributes.spaceBelow, "0pt") : ""; + this.tabDefault = attributes.tabDefault ? getMeasurement(this.tabDefault) : ""; + this.tabStops = (attributes.tabStops || "").trim().split(/\s+/).map((x, i) => i % 2 === 1 ? getMeasurement(x) : x); + this.textIndent = attributes.textIndent ? getMeasurement(attributes.textIndent, "0pt") : ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.vAlign = getStringOption(attributes.vAlign, ["top", "bottom", "middle"]); + this.widows = getInteger({ + data: attributes.widows, + defaultValue: 0, + validate: x => x >= 0 + }); + this.hyphenation = null; + } + [$toStyle]() { + const style = toStyle(this, "hAlign"); + if (this.marginLeft !== "") { + style.paddingLeft = measureToString(this.marginLeft); + } + if (this.marginRight !== "") { + style.paddingRight = measureToString(this.marginRight); + } + if (this.spaceAbove !== "") { + style.paddingTop = measureToString(this.spaceAbove); + } + if (this.spaceBelow !== "") { + style.paddingBottom = measureToString(this.spaceBelow); + } + if (this.textIndent !== "") { + style.textIndent = measureToString(this.textIndent); + fixTextIndent(style); + } + if (this.lineHeight > 0) { + style.lineHeight = measureToString(this.lineHeight); + } + if (this.tabDefault !== "") { + style.tabSize = measureToString(this.tabDefault); + } + if (this.tabStops.length > 0) {} + if (this.hyphenatation) { + Object.assign(style, this.hyphenatation[$toStyle]()); + } + return style; + } +} +class PasswordEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "passwordEdit", true); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.passwordChar = attributes.passwordChar || "*"; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } +} +class template_Pattern extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "pattern", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["crossHatch", "crossDiagonal", "diagonalLeft", "diagonalRight", "horizontal", "vertical"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](startColor) { + startColor = startColor ? startColor[$toStyle]() : "#FFFFFF"; + const endColor = this.color ? this.color[$toStyle]() : "#000000"; + const width = 5; + const cmd = "repeating-linear-gradient"; + const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${2 * width}px`; + switch (this.type) { + case "crossHatch": + return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`; + case "crossDiagonal": + return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`; + case "diagonalLeft": + return `${cmd}(45deg,${colors})`; + case "diagonalRight": + return `${cmd}(-45deg,${colors})`; + case "horizontal": + return `${cmd}(to top,${colors})`; + case "vertical": + return `${cmd}(to right,${colors})`; + } + return ""; + } +} +class Picture extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "picture"); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Proto extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "proto", true); + this.appearanceFilter = new XFAObjectArray(); + this.arc = new XFAObjectArray(); + this.area = new XFAObjectArray(); + this.assist = new XFAObjectArray(); + this.barcode = new XFAObjectArray(); + this.bindItems = new XFAObjectArray(); + this.bookend = new XFAObjectArray(); + this.boolean = new XFAObjectArray(); + this.border = new XFAObjectArray(); + this.break = new XFAObjectArray(); + this.breakAfter = new XFAObjectArray(); + this.breakBefore = new XFAObjectArray(); + this.button = new XFAObjectArray(); + this.calculate = new XFAObjectArray(); + this.caption = new XFAObjectArray(); + this.certificate = new XFAObjectArray(); + this.certificates = new XFAObjectArray(); + this.checkButton = new XFAObjectArray(); + this.choiceList = new XFAObjectArray(); + this.color = new XFAObjectArray(); + this.comb = new XFAObjectArray(); + this.connect = new XFAObjectArray(); + this.contentArea = new XFAObjectArray(); + this.corner = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.dateTimeEdit = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.defaultUi = new XFAObjectArray(); + this.desc = new XFAObjectArray(); + this.digestMethod = new XFAObjectArray(); + this.digestMethods = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.edge = new XFAObjectArray(); + this.encoding = new XFAObjectArray(); + this.encodings = new XFAObjectArray(); + this.encrypt = new XFAObjectArray(); + this.encryptData = new XFAObjectArray(); + this.encryption = new XFAObjectArray(); + this.encryptionMethod = new XFAObjectArray(); + this.encryptionMethods = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.execute = new XFAObjectArray(); + this.extras = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.fill = new XFAObjectArray(); + this.filter = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.font = new XFAObjectArray(); + this.format = new XFAObjectArray(); + this.handler = new XFAObjectArray(); + this.hyphenation = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.imageEdit = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.issuers = new XFAObjectArray(); + this.items = new XFAObjectArray(); + this.keep = new XFAObjectArray(); + this.keyUsage = new XFAObjectArray(); + this.line = new XFAObjectArray(); + this.linear = new XFAObjectArray(); + this.lockDocument = new XFAObjectArray(); + this.manifest = new XFAObjectArray(); + this.margin = new XFAObjectArray(); + this.mdp = new XFAObjectArray(); + this.medium = new XFAObjectArray(); + this.message = new XFAObjectArray(); + this.numericEdit = new XFAObjectArray(); + this.occur = new XFAObjectArray(); + this.oid = new XFAObjectArray(); + this.oids = new XFAObjectArray(); + this.overflow = new XFAObjectArray(); + this.pageArea = new XFAObjectArray(); + this.pageSet = new XFAObjectArray(); + this.para = new XFAObjectArray(); + this.passwordEdit = new XFAObjectArray(); + this.pattern = new XFAObjectArray(); + this.picture = new XFAObjectArray(); + this.radial = new XFAObjectArray(); + this.reason = new XFAObjectArray(); + this.reasons = new XFAObjectArray(); + this.rectangle = new XFAObjectArray(); + this.ref = new XFAObjectArray(); + this.script = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + this.signData = new XFAObjectArray(); + this.signature = new XFAObjectArray(); + this.signing = new XFAObjectArray(); + this.solid = new XFAObjectArray(); + this.speak = new XFAObjectArray(); + this.stipple = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + this.subjectDN = new XFAObjectArray(); + this.subjectDNs = new XFAObjectArray(); + this.submit = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.textEdit = new XFAObjectArray(); + this.time = new XFAObjectArray(); + this.timeStamp = new XFAObjectArray(); + this.toolTip = new XFAObjectArray(); + this.traversal = new XFAObjectArray(); + this.traverse = new XFAObjectArray(); + this.ui = new XFAObjectArray(); + this.validate = new XFAObjectArray(); + this.value = new XFAObjectArray(); + this.variables = new XFAObjectArray(); + } +} +class Radial extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "radial", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["toEdge", "toCenter"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](startColor) { + startColor = startColor ? startColor[$toStyle]() : "#FFFFFF"; + const endColor = this.color ? this.color[$toStyle]() : "#000000"; + const colors = this.type === "toEdge" ? `${startColor},${endColor}` : `${endColor},${startColor}`; + return `radial-gradient(circle at center, ${colors})`; + } +} +class Reason extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "reason"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Reasons extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "reasons", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.reason = new XFAObjectArray(); + } +} +class Rectangle extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "rectangle", true); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.corner = new XFAObjectArray(4); + this.edge = new XFAObjectArray(4); + this.fill = null; + } + [$toHTML]() { + const edge = this.edge.children.length ? this.edge.children[0] : new Edge({}); + const edgeStyle = edge[$toStyle](); + const style = Object.create(null); + if (this.fill?.presence === "visible") { + Object.assign(style, this.fill[$toStyle]()); + } else { + style.fill = "transparent"; + } + style.strokeWidth = measureToString(edge.presence === "visible" ? edge.thickness : 0); + style.stroke = edgeStyle.color; + const corner = this.corner.children.length ? this.corner.children[0] : new Corner({}); + const cornerStyle = corner[$toStyle](); + const rect = { + name: "rect", + attributes: { + xmlns: SVG_NS, + width: "100%", + height: "100%", + x: 0, + y: 0, + rx: cornerStyle.radius, + ry: cornerStyle.radius, + style + } + }; + const svg = { + name: "svg", + children: [rect], + attributes: { + xmlns: SVG_NS, + style: { + overflow: "visible" + }, + width: "100%", + height: "100%" + } + }; + const parent = this[$getParent]()[$getParent](); + if (hasMargin(parent)) { + return HTMLResult.success({ + name: "div", + attributes: { + style: { + display: "inline", + width: "100%", + height: "100%" + } + }, + children: [svg] + }); + } + svg.attributes.style.position = "absolute"; + return HTMLResult.success(svg); + } +} +class RefElement extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "ref"); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Script extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "script"); + this.binding = attributes.binding || ""; + this.contentType = attributes.contentType || ""; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.runAt = getStringOption(attributes.runAt, ["client", "both", "server"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class SetProperty extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "setProperty"); + this.connection = attributes.connection || ""; + this.ref = attributes.ref || ""; + this.target = attributes.target || ""; + } +} +class SignData extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "signData", true); + this.id = attributes.id || ""; + this.operation = getStringOption(attributes.operation, ["sign", "clear", "verify"]); + this.ref = attributes.ref || ""; + this.target = attributes.target || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.filter = null; + this.manifest = null; + } +} +class Signature extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "signature", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["PDF1.3", "PDF1.6"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.filter = null; + this.manifest = null; + this.margin = null; + } +} +class Signing extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "signing", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = new XFAObjectArray(); + } +} +class Solid extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "solid", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$toStyle](startColor) { + return startColor ? startColor[$toStyle]() : "#FFFFFF"; + } +} +class Speak extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "speak"); + this.disable = getInteger({ + data: attributes.disable, + defaultValue: 0, + validate: x => x === 1 + }); + this.id = attributes.id || ""; + this.priority = getStringOption(attributes.priority, ["custom", "caption", "name", "toolTip"]); + this.rid = attributes.rid || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Stipple extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "stipple", true); + this.id = attributes.id || ""; + this.rate = getInteger({ + data: attributes.rate, + defaultValue: 50, + validate: x => x >= 0 && x <= 100 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](bgColor) { + const alpha = this.rate / 100; + return Util.makeHexColor(Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha), Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha), Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)); + } +} +class Subform extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subform", true); + this.access = getStringOption(attributes.access, ["open", "nonInteractive", "protected", "readOnly"]); + this.allowMacro = getInteger({ + data: attributes.allowMacro, + defaultValue: 0, + validate: x => x === 1 + }); + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.columnWidths = (attributes.columnWidths || "").trim().split(/\s+/).map(x => x === "-1" ? -1 : getMeasurement(x)); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.layout = getStringOption(attributes.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]); + this.locale = attributes.locale || ""; + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.mergeMode = getStringOption(attributes.mergeMode, ["consumeData", "matchTemplate"]); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.restoreState = getStringOption(attributes.restoreState, ["manual", "auto"]); + this.scope = getStringOption(attributes.scope, ["name", "none"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.bind = null; + this.bookend = null; + this.border = null; + this.break = null; + this.calculate = null; + this.desc = null; + this.extras = null; + this.keep = null; + this.margin = null; + this.occur = null; + this.overflow = null; + this.pageSet = null; + this.para = null; + this.traversal = null; + this.validate = null; + this.variables = null; + this.area = new XFAObjectArray(); + this.breakAfter = new XFAObjectArray(); + this.breakBefore = new XFAObjectArray(); + this.connect = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.proto = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + } + [$getSubformParent]() { + const parent = this[$getParent](); + if (parent instanceof SubformSet) { + return parent[$getSubformParent](); + } + return parent; + } + [$isBindable]() { + return true; + } + [$isThereMoreWidth]() { + return this.layout.endsWith("-tb") && this[$extra].attempt === 0 && this[$extra].numberInLine > 0 || this[$getParent]()[$isThereMoreWidth](); + } + *[$getContainedChildren]() { + yield* getContainedChildren(this); + } + [$flushHTML]() { + return flushHTML(this); + } + [$addHTML](html, bbox) { + addHTML(this, html, bbox); + } + [$getAvailableSpace]() { + return getAvailableSpace(this); + } + [$isSplittable]() { + const parent = this[$getSubformParent](); + if (!parent[$isSplittable]()) { + return false; + } + if (this[$extra]._isSplittable !== undefined) { + return this[$extra]._isSplittable; + } + if (this.layout === "position" || this.layout.includes("row")) { + this[$extra]._isSplittable = false; + return false; + } + if (this.keep && this.keep.intact !== "none") { + this[$extra]._isSplittable = false; + return false; + } + if (parent.layout?.endsWith("-tb") && parent[$extra].numberInLine !== 0) { + return false; + } + this[$extra]._isSplittable = true; + return true; + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (this.break) { + if (this.break.after !== "auto" || this.break.afterTarget !== "") { + const node = new BreakAfter({ + targetType: this.break.after, + target: this.break.afterTarget, + startNew: this.break.startNew.toString() + }); + node[$globalData] = this[$globalData]; + this[$appendChild](node); + this.breakAfter.push(node); + } + if (this.break.before !== "auto" || this.break.beforeTarget !== "") { + const node = new BreakBefore({ + targetType: this.break.before, + target: this.break.beforeTarget, + startNew: this.break.startNew.toString() + }); + node[$globalData] = this[$globalData]; + this[$appendChild](node); + this.breakBefore.push(node); + } + if (this.break.overflowTarget !== "") { + const node = new Overflow({ + target: this.break.overflowTarget, + leader: this.break.overflowLeader, + trailer: this.break.overflowTrailer + }); + node[$globalData] = this[$globalData]; + this[$appendChild](node); + this.overflow.push(node); + } + this[$removeChild](this.break); + this.break = null; + } + if (this.presence === "hidden" || this.presence === "inactive") { + return HTMLResult.EMPTY; + } + if (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) { + warn("XFA - Several breakBefore or breakAfter in subforms: please file a bug."); + } + if (this.breakBefore.children.length >= 1) { + const breakBefore = this.breakBefore.children[0]; + if (handleBreak(breakBefore)) { + return HTMLResult.breakNode(breakBefore); + } + } + if (this[$extra]?.afterBreakAfter) { + return HTMLResult.EMPTY; + } + fixDimensions(this); + const children = []; + const attributes = { + id: this[$uid], + class: [] + }; + setAccess(this, attributes.class); + this[$extra] ||= Object.create(null); + Object.assign(this[$extra], { + children, + line: null, + attributes, + attempt: 0, + numberInLine: 0, + availableSpace: { + width: Math.min(this.w || Infinity, availableSpace.width), + height: Math.min(this.h || Infinity, availableSpace.height) + }, + width: 0, + height: 0, + prevHeight: 0, + currentWidth: 0 + }); + const root = this[$getTemplateRoot](); + const savedNoLayoutFailure = root[$extra].noLayoutFailure; + const isSplittable = this[$isSplittable](); + if (!isSplittable) { + setFirstUnsplittable(this); + } + if (!checkDimensions(this, availableSpace)) { + return HTMLResult.FAILURE; + } + const filter = new Set(["area", "draw", "exclGroup", "field", "subform", "subformSet"]); + if (this.layout.includes("row")) { + const columnWidths = this[$getSubformParent]().columnWidths; + if (Array.isArray(columnWidths) && columnWidths.length > 0) { + this[$extra].columnWidths = columnWidths; + this[$extra].currentColumn = 0; + } + } + const style = toStyle(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"); + const classNames = ["xfaSubform"]; + const cl = layoutClass(this); + if (cl) { + classNames.push(cl); + } + attributes.style = style; + attributes.class = classNames; + if (this.name) { + attributes.xfaName = this.name; + } + if (this.overflow) { + const overflowExtra = this.overflow[$getExtra](); + if (overflowExtra.addLeader) { + overflowExtra.addLeader = false; + handleOverflow(this, overflowExtra.leader, availableSpace); + } + } + this[$pushPara](); + const isLrTb = this.layout === "lr-tb" || this.layout === "rl-tb"; + const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1; + for (; this[$extra].attempt < maxRun; this[$extra].attempt++) { + if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) { + this[$extra].numberInLine = 0; + } + const result = this[$childrenToHTML]({ + filter, + include: true + }); + if (result.success) { + break; + } + if (result.isBreak()) { + this[$popPara](); + return result; + } + if (isLrTb && this[$extra].attempt === 0 && this[$extra].numberInLine === 0 && !root[$extra].noLayoutFailure) { + this[$extra].attempt = maxRun; + break; + } + } + this[$popPara](); + if (!isSplittable) { + unsetFirstUnsplittable(this); + } + root[$extra].noLayoutFailure = savedNoLayoutFailure; + if (this[$extra].attempt === maxRun) { + if (this.overflow) { + this[$getTemplateRoot]()[$extra].overflowNode = this.overflow; + } + if (!isSplittable) { + delete this[$extra]; + } + return HTMLResult.FAILURE; + } + if (this.overflow) { + const overflowExtra = this.overflow[$getExtra](); + if (overflowExtra.addTrailer) { + overflowExtra.addTrailer = false; + handleOverflow(this, overflowExtra.trailer, availableSpace); + } + } + let marginH = 0; + let marginV = 0; + if (this.margin) { + marginH = this.margin.leftInset + this.margin.rightInset; + marginV = this.margin.topInset + this.margin.bottomInset; + } + const width = Math.max(this[$extra].width + marginH, this.w || 0); + const height = Math.max(this[$extra].height + marginV, this.h || 0); + const bbox = [this.x, this.y, width, height]; + if (this.w === "") { + style.width = measureToString(width); + } + if (this.h === "") { + style.height = measureToString(height); + } + if ((style.width === "0px" || style.height === "0px") && children.length === 0) { + return HTMLResult.EMPTY; + } + const html = { + name: "div", + attributes, + children + }; + applyAssist(this, attributes); + const result = HTMLResult.success(createWrapper(this, html), bbox); + if (this.breakAfter.children.length >= 1) { + const breakAfter = this.breakAfter.children[0]; + if (handleBreak(breakAfter)) { + this[$extra].afterBreakAfter = result; + return HTMLResult.breakNode(breakAfter); + } + } + delete this[$extra]; + return result; + } +} +class SubformSet extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subformSet", true); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relation = getStringOption(attributes.relation, ["ordered", "choice", "unordered"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.bookend = null; + this.break = null; + this.desc = null; + this.extras = null; + this.occur = null; + this.overflow = null; + this.breakAfter = new XFAObjectArray(); + this.breakBefore = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + } + *[$getContainedChildren]() { + yield* getContainedChildren(this); + } + [$getSubformParent]() { + let parent = this[$getParent](); + while (!(parent instanceof Subform)) { + parent = parent[$getParent](); + } + return parent; + } + [$isBindable]() { + return true; + } +} +class SubjectDN extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subjectDN"); + this.delimiter = attributes.delimiter || ","; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + this[$content] = new Map(this[$content].split(this.delimiter).map(kv => { + kv = kv.split("=", 2); + kv[0] = kv[0].trim(); + return kv; + })); + } +} +class SubjectDNs extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subjectDNs", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.subjectDN = new XFAObjectArray(); + } +} +class Submit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "submit", true); + this.embedPDF = getInteger({ + data: attributes.embedPDF, + defaultValue: 0, + validate: x => x === 1 + }); + this.format = getStringOption(attributes.format, ["xdp", "formdata", "pdf", "urlencoded", "xfd", "xml"]); + this.id = attributes.id || ""; + this.target = attributes.target || ""; + this.textEncoding = getKeyword({ + data: attributes.textEncoding ? attributes.textEncoding.toLowerCase() : "", + defaultValue: "", + validate: k => ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(k) || k.match(/iso-8859-\d{2}/) + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.xdpContent = attributes.xdpContent || ""; + this.encrypt = null; + this.encryptData = new XFAObjectArray(); + this.signData = new XFAObjectArray(); + } +} +class Template extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "template", true); + this.baseProfile = getStringOption(attributes.baseProfile, ["full", "interactiveForms"]); + this.extras = null; + this.subform = new XFAObjectArray(); + } + [$finalize]() { + if (this.subform.children.length === 0) { + warn("XFA - No subforms in template node."); + } + if (this.subform.children.length >= 2) { + warn("XFA - Several subforms in template node: please file a bug."); + } + this[$tabIndex] = DEFAULT_TAB_INDEX; + } + [$isSplittable]() { + return true; + } + [$searchNode](expr, container) { + if (expr.startsWith("#")) { + return [this[$ids].get(expr.slice(1))]; + } + return searchNode(this, container, expr, true, true); + } + *[$toPages]() { + if (!this.subform.children.length) { + return HTMLResult.success({ + name: "div", + children: [] + }); + } + this[$extra] = { + overflowNode: null, + firstUnsplittable: null, + currentContentArea: null, + currentPageArea: null, + noLayoutFailure: false, + pageNumber: 1, + pagePosition: "first", + oddOrEven: "odd", + blankOrNotBlank: "nonBlank", + paraStack: [] + }; + const root = this.subform.children[0]; + root.pageSet[$cleanPage](); + const pageAreas = root.pageSet.pageArea.children; + const mainHtml = { + name: "div", + children: [] + }; + let pageArea = null; + let breakBefore = null; + let breakBeforeTarget = null; + if (root.breakBefore.children.length >= 1) { + breakBefore = root.breakBefore.children[0]; + breakBeforeTarget = breakBefore.target; + } else if (root.subform.children.length >= 1 && root.subform.children[0].breakBefore.children.length >= 1) { + breakBefore = root.subform.children[0].breakBefore.children[0]; + breakBeforeTarget = breakBefore.target; + } else if (root.break?.beforeTarget) { + breakBefore = root.break; + breakBeforeTarget = breakBefore.beforeTarget; + } else if (root.subform.children.length >= 1 && root.subform.children[0].break?.beforeTarget) { + breakBefore = root.subform.children[0].break; + breakBeforeTarget = breakBefore.beforeTarget; + } + if (breakBefore) { + const target = this[$searchNode](breakBeforeTarget, breakBefore[$getParent]()); + if (target instanceof PageArea) { + pageArea = target; + breakBefore[$extra] = {}; + } + } + pageArea ||= pageAreas[0]; + pageArea[$extra] = { + numberOfUse: 1 + }; + const pageAreaParent = pageArea[$getParent](); + pageAreaParent[$extra] = { + numberOfUse: 1, + pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea), + pageSetIndex: 0 + }; + let targetPageArea; + let leader = null; + let trailer = null; + let hasSomething = true; + let hasSomethingCounter = 0; + let startIndex = 0; + while (true) { + if (!hasSomething) { + mainHtml.children.pop(); + if (++hasSomethingCounter === MAX_EMPTY_PAGES) { + warn("XFA - Something goes wrong: please file a bug."); + return mainHtml; + } + } else { + hasSomethingCounter = 0; + } + targetPageArea = null; + this[$extra].currentPageArea = pageArea; + const page = pageArea[$toHTML]().html; + mainHtml.children.push(page); + if (leader) { + this[$extra].noLayoutFailure = true; + page.children.push(leader[$toHTML](pageArea[$extra].space).html); + leader = null; + } + if (trailer) { + this[$extra].noLayoutFailure = true; + page.children.push(trailer[$toHTML](pageArea[$extra].space).html); + trailer = null; + } + const contentAreas = pageArea.contentArea.children; + const htmlContentAreas = page.children.filter(node => node.attributes.class.includes("xfaContentarea")); + hasSomething = false; + this[$extra].firstUnsplittable = null; + this[$extra].noLayoutFailure = false; + const flush = index => { + const html = root[$flushHTML](); + if (html) { + hasSomething ||= html.children?.length > 0; + htmlContentAreas[index].children.push(html); + } + }; + for (let i = startIndex, ii = contentAreas.length; i < ii; i++) { + const contentArea = this[$extra].currentContentArea = contentAreas[i]; + const space = { + width: contentArea.w, + height: contentArea.h + }; + startIndex = 0; + if (leader) { + htmlContentAreas[i].children.push(leader[$toHTML](space).html); + leader = null; + } + if (trailer) { + htmlContentAreas[i].children.push(trailer[$toHTML](space).html); + trailer = null; + } + const html = root[$toHTML](space); + if (html.success) { + if (html.html) { + hasSomething ||= html.html.children?.length > 0; + htmlContentAreas[i].children.push(html.html); + } else if (!hasSomething && mainHtml.children.length > 1) { + mainHtml.children.pop(); + } + return mainHtml; + } + if (html.isBreak()) { + const node = html.breakNode; + flush(i); + if (node.targetType === "auto") { + continue; + } + if (node.leader) { + leader = this[$searchNode](node.leader, node[$getParent]()); + leader = leader ? leader[0] : null; + } + if (node.trailer) { + trailer = this[$searchNode](node.trailer, node[$getParent]()); + trailer = trailer ? trailer[0] : null; + } + if (node.targetType === "pageArea") { + targetPageArea = node[$extra].target; + i = Infinity; + } else if (!node[$extra].target) { + i = node[$extra].index; + } else { + targetPageArea = node[$extra].target; + startIndex = node[$extra].index + 1; + i = Infinity; + } + continue; + } + if (this[$extra].overflowNode) { + const node = this[$extra].overflowNode; + this[$extra].overflowNode = null; + const overflowExtra = node[$getExtra](); + const target = overflowExtra.target; + overflowExtra.addLeader = overflowExtra.leader !== null; + overflowExtra.addTrailer = overflowExtra.trailer !== null; + flush(i); + const currentIndex = i; + i = Infinity; + if (target instanceof PageArea) { + targetPageArea = target; + } else if (target instanceof ContentArea) { + const index = contentAreas.indexOf(target); + if (index !== -1) { + if (index > currentIndex) { + i = index - 1; + } else { + startIndex = index; + } + } else { + targetPageArea = target[$getParent](); + startIndex = targetPageArea.contentArea.children.indexOf(target); + } + } + continue; + } + flush(i); + } + this[$extra].pageNumber += 1; + if (targetPageArea) { + if (targetPageArea[$isUsable]()) { + targetPageArea[$extra].numberOfUse += 1; + } else { + targetPageArea = null; + } + } + pageArea = targetPageArea || pageArea[$getNextPage](); + yield null; + } + } +} +class Text extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "text"); + this.id = attributes.id || ""; + this.maxChars = getInteger({ + data: attributes.maxChars, + defaultValue: 0, + validate: x => x >= 0 + }); + this.name = attributes.name || ""; + this.rid = attributes.rid || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$acceptWhitespace]() { + return true; + } + [$onChild](child) { + if (child[$namespaceId] === NamespaceIds.xhtml.id) { + this[$content] = child; + return true; + } + warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`); + return false; + } + [$onText](str) { + if (this[$content] instanceof XFAObject) { + return; + } + super[$onText](str); + } + [$finalize]() { + if (typeof this[$content] === "string") { + this[$content] = this[$content].replaceAll("\r\n", "\n"); + } + } + [$getExtra]() { + if (typeof this[$content] === "string") { + return this[$content].split(/[\u2029\u2028\n]/).filter(line => !!line).join("\n"); + } + return this[$content][$text](); + } + [$toHTML](availableSpace) { + if (typeof this[$content] === "string") { + const html = valueToHtml(this[$content]).html; + if (this[$content].includes("\u2029")) { + html.name = "div"; + html.children = []; + this[$content].split("\u2029").map(para => para.split(/[\u2028\n]/).flatMap(line => [{ + name: "span", + value: line + }, { + name: "br" + }])).forEach(lines => { + html.children.push({ + name: "p", + children: lines + }); + }); + } else if (/[\u2028\n]/.test(this[$content])) { + html.name = "div"; + html.children = []; + this[$content].split(/[\u2028\n]/).forEach(line => { + html.children.push({ + name: "span", + value: line + }, { + name: "br" + }); + }); + } + return HTMLResult.success(html); + } + return this[$content][$toHTML](availableSpace); + } +} +class TextEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "textEdit", true); + this.allowRichText = getInteger({ + data: attributes.allowRichText, + defaultValue: 0, + validate: x => x === 1 + }); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.multiLine = getInteger({ + data: attributes.multiLine, + defaultValue: "", + validate: x => x === 0 || x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, ["auto", "off", "on"]); + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "font", "margin"); + let html; + const field = this[$getParent]()[$getParent](); + if (this.multiLine === "") { + this.multiLine = field instanceof Draw ? 1 : 0; + } + if (this.multiLine === 1) { + html = { + name: "textarea", + attributes: { + dataId: field[$data]?.[$uid] || field[$uid], + fieldId: field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + } else { + html = { + name: "input", + attributes: { + type: "text", + dataId: field[$data]?.[$uid] || field[$uid], + fieldId: field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + } + if (isRequired(field)) { + html.attributes["aria-required"] = true; + html.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [html] + }); + } +} +class Time extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "time"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const date = this[$content].trim(); + this[$content] = date ? new Date(date) : null; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] ? this[$content].toString() : ""); + } +} +class TimeStamp extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "timeStamp"); + this.id = attributes.id || ""; + this.server = attributes.server || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class ToolTip extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "toolTip"); + this.id = attributes.id || ""; + this.rid = attributes.rid || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Traversal extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "traversal", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.traverse = new XFAObjectArray(); + } +} +class Traverse extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "traverse", true); + this.id = attributes.id || ""; + this.operation = getStringOption(attributes.operation, ["next", "back", "down", "first", "left", "right", "up"]); + this.ref = attributes.ref || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.script = null; + } + get name() { + return this.operation; + } + [$isTransparent]() { + return false; + } +} +class Ui extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "ui", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.picture = null; + this.barcode = null; + this.button = null; + this.checkButton = null; + this.choiceList = null; + this.dateTimeEdit = null; + this.defaultUi = null; + this.imageEdit = null; + this.numericEdit = null; + this.passwordEdit = null; + this.signature = null; + this.textEdit = null; + } + [$getExtra]() { + if (this[$extra] === undefined) { + for (const name of Object.getOwnPropertyNames(this)) { + if (name === "extras" || name === "picture") { + continue; + } + const obj = this[name]; + if (!(obj instanceof XFAObject)) { + continue; + } + this[$extra] = obj; + return obj; + } + this[$extra] = null; + } + return this[$extra]; + } + [$toHTML](availableSpace) { + const obj = this[$getExtra](); + if (obj) { + return obj[$toHTML](availableSpace); + } + return HTMLResult.EMPTY; + } +} +class Validate extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "validate", true); + this.formatTest = getStringOption(attributes.formatTest, ["warning", "disabled", "error"]); + this.id = attributes.id || ""; + this.nullTest = getStringOption(attributes.nullTest, ["disabled", "error", "warning"]); + this.scriptTest = getStringOption(attributes.scriptTest, ["error", "disabled", "warning"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.message = null; + this.picture = null; + this.script = null; + } +} +class Value extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "value", true); + this.id = attributes.id || ""; + this.override = getInteger({ + data: attributes.override, + defaultValue: 0, + validate: x => x === 1 + }); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.arc = null; + this.boolean = null; + this.date = null; + this.dateTime = null; + this.decimal = null; + this.exData = null; + this.float = null; + this.image = null; + this.integer = null; + this.line = null; + this.rectangle = null; + this.text = null; + this.time = null; + } + [$setValue](value) { + const parent = this[$getParent](); + if (parent instanceof Field) { + if (parent.ui?.imageEdit) { + if (!this.image) { + this.image = new Image({}); + this[$appendChild](this.image); + } + this.image[$content] = value[$content]; + return; + } + } + const valueName = value[$nodeName]; + if (this[valueName] !== null) { + this[valueName][$content] = value[$content]; + return; + } + for (const name of Object.getOwnPropertyNames(this)) { + const obj = this[name]; + if (obj instanceof XFAObject) { + this[name] = null; + this[$removeChild](obj); + } + } + this[value[$nodeName]] = value; + this[$appendChild](value); + } + [$text]() { + if (this.exData) { + if (typeof this.exData[$content] === "string") { + return this.exData[$content].trim(); + } + return this.exData[$content][$text]().trim(); + } + for (const name of Object.getOwnPropertyNames(this)) { + if (name === "image") { + continue; + } + const obj = this[name]; + if (obj instanceof XFAObject) { + return (obj[$content] || "").toString().trim(); + } + } + return null; + } + [$toHTML](availableSpace) { + for (const name of Object.getOwnPropertyNames(this)) { + const obj = this[name]; + if (!(obj instanceof XFAObject)) { + continue; + } + return obj[$toHTML](availableSpace); + } + return HTMLResult.EMPTY; + } +} +class Variables extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "variables", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.manifest = new XFAObjectArray(); + this.script = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } + [$isTransparent]() { + return true; + } +} +class TemplateNamespace { + static [$buildXFAObject](name, attributes) { + if (TemplateNamespace.hasOwnProperty(name)) { + const node = TemplateNamespace[name](attributes); + node[$setSetAttributes](attributes); + return node; + } + return undefined; + } + static appearanceFilter(attrs) { + return new AppearanceFilter(attrs); + } + static arc(attrs) { + return new Arc(attrs); + } + static area(attrs) { + return new Area(attrs); + } + static assist(attrs) { + return new Assist(attrs); + } + static barcode(attrs) { + return new Barcode(attrs); + } + static bind(attrs) { + return new Bind(attrs); + } + static bindItems(attrs) { + return new BindItems(attrs); + } + static bookend(attrs) { + return new Bookend(attrs); + } + static boolean(attrs) { + return new BooleanElement(attrs); + } + static border(attrs) { + return new Border(attrs); + } + static break(attrs) { + return new Break(attrs); + } + static breakAfter(attrs) { + return new BreakAfter(attrs); + } + static breakBefore(attrs) { + return new BreakBefore(attrs); + } + static button(attrs) { + return new Button(attrs); + } + static calculate(attrs) { + return new Calculate(attrs); + } + static caption(attrs) { + return new Caption(attrs); + } + static certificate(attrs) { + return new Certificate(attrs); + } + static certificates(attrs) { + return new Certificates(attrs); + } + static checkButton(attrs) { + return new CheckButton(attrs); + } + static choiceList(attrs) { + return new ChoiceList(attrs); + } + static color(attrs) { + return new Color(attrs); + } + static comb(attrs) { + return new Comb(attrs); + } + static connect(attrs) { + return new Connect(attrs); + } + static contentArea(attrs) { + return new ContentArea(attrs); + } + static corner(attrs) { + return new Corner(attrs); + } + static date(attrs) { + return new DateElement(attrs); + } + static dateTime(attrs) { + return new DateTime(attrs); + } + static dateTimeEdit(attrs) { + return new DateTimeEdit(attrs); + } + static decimal(attrs) { + return new Decimal(attrs); + } + static defaultUi(attrs) { + return new DefaultUi(attrs); + } + static desc(attrs) { + return new Desc(attrs); + } + static digestMethod(attrs) { + return new DigestMethod(attrs); + } + static digestMethods(attrs) { + return new DigestMethods(attrs); + } + static draw(attrs) { + return new Draw(attrs); + } + static edge(attrs) { + return new Edge(attrs); + } + static encoding(attrs) { + return new Encoding(attrs); + } + static encodings(attrs) { + return new Encodings(attrs); + } + static encrypt(attrs) { + return new Encrypt(attrs); + } + static encryptData(attrs) { + return new EncryptData(attrs); + } + static encryption(attrs) { + return new Encryption(attrs); + } + static encryptionMethod(attrs) { + return new EncryptionMethod(attrs); + } + static encryptionMethods(attrs) { + return new EncryptionMethods(attrs); + } + static event(attrs) { + return new Event(attrs); + } + static exData(attrs) { + return new ExData(attrs); + } + static exObject(attrs) { + return new ExObject(attrs); + } + static exclGroup(attrs) { + return new ExclGroup(attrs); + } + static execute(attrs) { + return new Execute(attrs); + } + static extras(attrs) { + return new Extras(attrs); + } + static field(attrs) { + return new Field(attrs); + } + static fill(attrs) { + return new Fill(attrs); + } + static filter(attrs) { + return new Filter(attrs); + } + static float(attrs) { + return new Float(attrs); + } + static font(attrs) { + return new template_Font(attrs); + } + static format(attrs) { + return new Format(attrs); + } + static handler(attrs) { + return new Handler(attrs); + } + static hyphenation(attrs) { + return new Hyphenation(attrs); + } + static image(attrs) { + return new Image(attrs); + } + static imageEdit(attrs) { + return new ImageEdit(attrs); + } + static integer(attrs) { + return new Integer(attrs); + } + static issuers(attrs) { + return new Issuers(attrs); + } + static items(attrs) { + return new Items(attrs); + } + static keep(attrs) { + return new Keep(attrs); + } + static keyUsage(attrs) { + return new KeyUsage(attrs); + } + static line(attrs) { + return new Line(attrs); + } + static linear(attrs) { + return new Linear(attrs); + } + static lockDocument(attrs) { + return new LockDocument(attrs); + } + static manifest(attrs) { + return new Manifest(attrs); + } + static margin(attrs) { + return new Margin(attrs); + } + static mdp(attrs) { + return new Mdp(attrs); + } + static medium(attrs) { + return new Medium(attrs); + } + static message(attrs) { + return new Message(attrs); + } + static numericEdit(attrs) { + return new NumericEdit(attrs); + } + static occur(attrs) { + return new Occur(attrs); + } + static oid(attrs) { + return new Oid(attrs); + } + static oids(attrs) { + return new Oids(attrs); + } + static overflow(attrs) { + return new Overflow(attrs); + } + static pageArea(attrs) { + return new PageArea(attrs); + } + static pageSet(attrs) { + return new PageSet(attrs); + } + static para(attrs) { + return new Para(attrs); + } + static passwordEdit(attrs) { + return new PasswordEdit(attrs); + } + static pattern(attrs) { + return new template_Pattern(attrs); + } + static picture(attrs) { + return new Picture(attrs); + } + static proto(attrs) { + return new Proto(attrs); + } + static radial(attrs) { + return new Radial(attrs); + } + static reason(attrs) { + return new Reason(attrs); + } + static reasons(attrs) { + return new Reasons(attrs); + } + static rectangle(attrs) { + return new Rectangle(attrs); + } + static ref(attrs) { + return new RefElement(attrs); + } + static script(attrs) { + return new Script(attrs); + } + static setProperty(attrs) { + return new SetProperty(attrs); + } + static signData(attrs) { + return new SignData(attrs); + } + static signature(attrs) { + return new Signature(attrs); + } + static signing(attrs) { + return new Signing(attrs); + } + static solid(attrs) { + return new Solid(attrs); + } + static speak(attrs) { + return new Speak(attrs); + } + static stipple(attrs) { + return new Stipple(attrs); + } + static subform(attrs) { + return new Subform(attrs); + } + static subformSet(attrs) { + return new SubformSet(attrs); + } + static subjectDN(attrs) { + return new SubjectDN(attrs); + } + static subjectDNs(attrs) { + return new SubjectDNs(attrs); + } + static submit(attrs) { + return new Submit(attrs); + } + static template(attrs) { + return new Template(attrs); + } + static text(attrs) { + return new Text(attrs); + } + static textEdit(attrs) { + return new TextEdit(attrs); + } + static time(attrs) { + return new Time(attrs); + } + static timeStamp(attrs) { + return new TimeStamp(attrs); + } + static toolTip(attrs) { + return new ToolTip(attrs); + } + static traversal(attrs) { + return new Traversal(attrs); + } + static traverse(attrs) { + return new Traverse(attrs); + } + static ui(attrs) { + return new Ui(attrs); + } + static validate(attrs) { + return new Validate(attrs); + } + static value(attrs) { + return new Value(attrs); + } + static variables(attrs) { + return new Variables(attrs); + } +} + +;// ./src/core/xfa/bind.js + + + + + + +const bind_NS_DATASETS = NamespaceIds.datasets.id; +function createText(content) { + const node = new Text({}); + node[$content] = content; + return node; +} +class Binder { + constructor(root) { + this.root = root; + this.datasets = root.datasets; + this.data = root.datasets?.data || new XmlObject(NamespaceIds.datasets.id, "data"); + this.emptyMerge = this.data[$getChildren]().length === 0; + this.root.form = this.form = root.template[$clone](); + } + _isConsumeData() { + return !this.emptyMerge && this._mergeMode; + } + _isMatchTemplate() { + return !this._isConsumeData(); + } + bind() { + this._bindElement(this.form, this.data); + return this.form; + } + getData() { + return this.data; + } + _bindValue(formNode, data, picture) { + formNode[$data] = data; + if (formNode[$hasSettableValue]()) { + if (data[$isDataValue]()) { + const value = data[$getDataValue](); + formNode[$setValue](createText(value)); + } else if (formNode instanceof Field && formNode.ui?.choiceList?.open === "multiSelect") { + const value = data[$getChildren]().map(child => child[$content].trim()).join("\n"); + formNode[$setValue](createText(value)); + } else if (this._isConsumeData()) { + warn(`XFA - Nodes haven't the same type.`); + } + } else if (!data[$isDataValue]() || this._isMatchTemplate()) { + this._bindElement(formNode, data); + } else { + warn(`XFA - Nodes haven't the same type.`); + } + } + _findDataByNameToConsume(name, isValue, dataNode, global) { + if (!name) { + return null; + } + let generator, match; + for (let i = 0; i < 3; i++) { + generator = dataNode[$getRealChildrenByNameIt](name, false, true); + while (true) { + match = generator.next().value; + if (!match) { + break; + } + if (isValue === match[$isDataValue]()) { + return match; + } + } + if (dataNode[$namespaceId] === NamespaceIds.datasets.id && dataNode[$nodeName] === "data") { + break; + } + dataNode = dataNode[$getParent](); + } + if (!global) { + return null; + } + generator = this.data[$getRealChildrenByNameIt](name, true, false); + match = generator.next().value; + if (match) { + return match; + } + generator = this.data[$getAttributeIt](name, true); + match = generator.next().value; + if (match?.[$isDataValue]()) { + return match; + } + return null; + } + _setProperties(formNode, dataNode) { + if (!formNode.hasOwnProperty("setProperty")) { + return; + } + for (const { + ref, + target, + connection + } of formNode.setProperty.children) { + if (connection) { + continue; + } + if (!ref) { + continue; + } + const nodes = searchNode(this.root, dataNode, ref, false, false); + if (!nodes) { + warn(`XFA - Invalid reference: ${ref}.`); + continue; + } + const [node] = nodes; + if (!node[$isDescendent](this.data)) { + warn(`XFA - Invalid node: must be a data node.`); + continue; + } + const targetNodes = searchNode(this.root, formNode, target, false, false); + if (!targetNodes) { + warn(`XFA - Invalid target: ${target}.`); + continue; + } + const [targetNode] = targetNodes; + if (!targetNode[$isDescendent](formNode)) { + warn(`XFA - Invalid target: must be a property or subproperty.`); + continue; + } + const targetParent = targetNode[$getParent](); + if (targetNode instanceof SetProperty || targetParent instanceof SetProperty) { + warn(`XFA - Invalid target: cannot be a setProperty or one of its properties.`); + continue; + } + if (targetNode instanceof BindItems || targetParent instanceof BindItems) { + warn(`XFA - Invalid target: cannot be a bindItems or one of its properties.`); + continue; + } + const content = node[$text](); + const name = targetNode[$nodeName]; + if (targetNode instanceof XFAAttribute) { + const attrs = Object.create(null); + attrs[name] = content; + const obj = Reflect.construct(Object.getPrototypeOf(targetParent).constructor, [attrs]); + targetParent[name] = obj[name]; + continue; + } + if (!targetNode.hasOwnProperty($content)) { + warn(`XFA - Invalid node to use in setProperty`); + continue; + } + targetNode[$data] = node; + targetNode[$content] = content; + targetNode[$finalize](); + } + } + _bindItems(formNode, dataNode) { + if (!formNode.hasOwnProperty("items") || !formNode.hasOwnProperty("bindItems") || formNode.bindItems.isEmpty()) { + return; + } + for (const item of formNode.items.children) { + formNode[$removeChild](item); + } + formNode.items.clear(); + const labels = new Items({}); + const values = new Items({}); + formNode[$appendChild](labels); + formNode.items.push(labels); + formNode[$appendChild](values); + formNode.items.push(values); + for (const { + ref, + labelRef, + valueRef, + connection + } of formNode.bindItems.children) { + if (connection) { + continue; + } + if (!ref) { + continue; + } + const nodes = searchNode(this.root, dataNode, ref, false, false); + if (!nodes) { + warn(`XFA - Invalid reference: ${ref}.`); + continue; + } + for (const node of nodes) { + if (!node[$isDescendent](this.datasets)) { + warn(`XFA - Invalid ref (${ref}): must be a datasets child.`); + continue; + } + const labelNodes = searchNode(this.root, node, labelRef, true, false); + if (!labelNodes) { + warn(`XFA - Invalid label: ${labelRef}.`); + continue; + } + const [labelNode] = labelNodes; + if (!labelNode[$isDescendent](this.datasets)) { + warn(`XFA - Invalid label: must be a datasets child.`); + continue; + } + const valueNodes = searchNode(this.root, node, valueRef, true, false); + if (!valueNodes) { + warn(`XFA - Invalid value: ${valueRef}.`); + continue; + } + const [valueNode] = valueNodes; + if (!valueNode[$isDescendent](this.datasets)) { + warn(`XFA - Invalid value: must be a datasets child.`); + continue; + } + const label = createText(labelNode[$text]()); + const value = createText(valueNode[$text]()); + labels[$appendChild](label); + labels.text.push(label); + values[$appendChild](value); + values.text.push(value); + } + } + } + _bindOccurrences(formNode, matches, picture) { + let baseClone; + if (matches.length > 1) { + baseClone = formNode[$clone](); + baseClone[$removeChild](baseClone.occur); + baseClone.occur = null; + } + this._bindValue(formNode, matches[0], picture); + this._setProperties(formNode, matches[0]); + this._bindItems(formNode, matches[0]); + if (matches.length === 1) { + return; + } + const parent = formNode[$getParent](); + const name = formNode[$nodeName]; + const pos = parent[$indexOf](formNode); + for (let i = 1, ii = matches.length; i < ii; i++) { + const match = matches[i]; + const clone = baseClone[$clone](); + parent[name].push(clone); + parent[$insertAt](pos + i, clone); + this._bindValue(clone, match, picture); + this._setProperties(clone, match); + this._bindItems(clone, match); + } + } + _createOccurrences(formNode) { + if (!this.emptyMerge) { + return; + } + const { + occur + } = formNode; + if (!occur || occur.initial <= 1) { + return; + } + const parent = formNode[$getParent](); + const name = formNode[$nodeName]; + if (!(parent[name] instanceof XFAObjectArray)) { + return; + } + let currentNumber; + if (formNode.name) { + currentNumber = parent[name].children.filter(e => e.name === formNode.name).length; + } else { + currentNumber = parent[name].children.length; + } + const pos = parent[$indexOf](formNode) + 1; + const ii = occur.initial - currentNumber; + if (ii) { + const nodeClone = formNode[$clone](); + nodeClone[$removeChild](nodeClone.occur); + nodeClone.occur = null; + parent[name].push(nodeClone); + parent[$insertAt](pos, nodeClone); + for (let i = 1; i < ii; i++) { + const clone = nodeClone[$clone](); + parent[name].push(clone); + parent[$insertAt](pos + i, clone); + } + } + } + _getOccurInfo(formNode) { + const { + name, + occur + } = formNode; + if (!occur || !name) { + return [1, 1]; + } + const max = occur.max === -1 ? Infinity : occur.max; + return [occur.min, max]; + } + _setAndBind(formNode, dataNode) { + this._setProperties(formNode, dataNode); + this._bindItems(formNode, dataNode); + this._bindElement(formNode, dataNode); + } + _bindElement(formNode, dataNode) { + const uselessNodes = []; + this._createOccurrences(formNode); + for (const child of formNode[$getChildren]()) { + if (child[$data]) { + continue; + } + if (this._mergeMode === undefined && child[$nodeName] === "subform") { + this._mergeMode = child.mergeMode === "consumeData"; + const dataChildren = dataNode[$getChildren](); + if (dataChildren.length > 0) { + this._bindOccurrences(child, [dataChildren[0]], null); + } else if (this.emptyMerge) { + const nsId = dataNode[$namespaceId] === bind_NS_DATASETS ? -1 : dataNode[$namespaceId]; + const dataChild = child[$data] = new XmlObject(nsId, child.name || "root"); + dataNode[$appendChild](dataChild); + this._bindElement(child, dataChild); + } + continue; + } + if (!child[$isBindable]()) { + continue; + } + let global = false; + let picture = null; + let ref = null; + let match = null; + if (child.bind) { + switch (child.bind.match) { + case "none": + this._setAndBind(child, dataNode); + continue; + case "global": + global = true; + break; + case "dataRef": + if (!child.bind.ref) { + warn(`XFA - ref is empty in node ${child[$nodeName]}.`); + this._setAndBind(child, dataNode); + continue; + } + ref = child.bind.ref; + break; + default: + break; + } + if (child.bind.picture) { + picture = child.bind.picture[$content]; + } + } + const [min, max] = this._getOccurInfo(child); + if (ref) { + match = searchNode(this.root, dataNode, ref, true, false); + if (match === null) { + match = createDataNode(this.data, dataNode, ref); + if (!match) { + continue; + } + if (this._isConsumeData()) { + match[$consumed] = true; + } + this._setAndBind(child, match); + continue; + } else { + if (this._isConsumeData()) { + match = match.filter(node => !node[$consumed]); + } + if (match.length > max) { + match = match.slice(0, max); + } else if (match.length === 0) { + match = null; + } + if (match && this._isConsumeData()) { + match.forEach(node => { + node[$consumed] = true; + }); + } + } + } else { + if (!child.name) { + this._setAndBind(child, dataNode); + continue; + } + if (this._isConsumeData()) { + const matches = []; + while (matches.length < max) { + const found = this._findDataByNameToConsume(child.name, child[$hasSettableValue](), dataNode, global); + if (!found) { + break; + } + found[$consumed] = true; + matches.push(found); + } + match = matches.length > 0 ? matches : null; + } else { + match = dataNode[$getRealChildrenByNameIt](child.name, false, this.emptyMerge).next().value; + if (!match) { + if (min === 0) { + uselessNodes.push(child); + continue; + } + const nsId = dataNode[$namespaceId] === bind_NS_DATASETS ? -1 : dataNode[$namespaceId]; + match = child[$data] = new XmlObject(nsId, child.name); + if (this.emptyMerge) { + match[$consumed] = true; + } + dataNode[$appendChild](match); + this._setAndBind(child, match); + continue; + } + if (this.emptyMerge) { + match[$consumed] = true; + } + match = [match]; + } + } + if (match) { + this._bindOccurrences(child, match, picture); + } else if (min > 0) { + this._setAndBind(child, dataNode); + } else { + uselessNodes.push(child); + } + } + uselessNodes.forEach(node => node[$getParent]()[$removeChild](node)); + } +} + +;// ./src/core/xfa/data.js + +class DataHandler { + constructor(root, data) { + this.data = data; + this.dataset = root.datasets || null; + } + serialize(storage) { + const stack = [[-1, this.data[$getChildren]()]]; + while (stack.length > 0) { + const last = stack.at(-1); + const [i, children] = last; + if (i + 1 === children.length) { + stack.pop(); + continue; + } + const child = children[++last[0]]; + const storageEntry = storage.get(child[$uid]); + if (storageEntry) { + child[$setValue](storageEntry); + } else { + const attributes = child[$getAttributes](); + for (const value of attributes.values()) { + const entry = storage.get(value[$uid]); + if (entry) { + value[$setValue](entry); + break; + } + } + } + const nodes = child[$getChildren](); + if (nodes.length > 0) { + stack.push([-1, nodes]); + } + } + const buf = [``]; + if (this.dataset) { + for (const child of this.dataset[$getChildren]()) { + if (child[$nodeName] !== "data") { + child[$toString](buf); + } + } + } + this.data[$toString](buf); + buf.push(""); + return buf.join(""); + } +} + +;// ./src/core/xfa/config.js + + + + + +const CONFIG_NS_ID = NamespaceIds.config.id; +class Acrobat extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "acrobat", true); + this.acrobat7 = null; + this.autoSave = null; + this.common = null; + this.validate = null; + this.validateApprovalSignatures = null; + this.submitUrl = new XFAObjectArray(); + } +} +class Acrobat7 extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "acrobat7", true); + this.dynamicRender = null; + } +} +class ADBE_JSConsole extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ADBE_JSConsole", ["delegate", "Enable", "Disable"]); + } +} +class ADBE_JSDebugger extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ADBE_JSDebugger", ["delegate", "Enable", "Disable"]); + } +} +class AddSilentPrint extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "addSilentPrint"); + } +} +class AddViewerPreferences extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "addViewerPreferences"); + } +} +class AdjustData extends Option10 { + constructor(attributes) { + super(CONFIG_NS_ID, "adjustData"); + } +} +class AdobeExtensionLevel extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "adobeExtensionLevel", 0, n => n >= 1 && n <= 8); + } +} +class Agent extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "agent", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.common = new XFAObjectArray(); + } +} +class AlwaysEmbed extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "alwaysEmbed"); + } +} +class Amd extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "amd"); + } +} +class config_Area extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "area"); + this.level = getInteger({ + data: attributes.level, + defaultValue: 0, + validate: n => n >= 1 && n <= 3 + }); + this.name = getStringOption(attributes.name, ["", "barcode", "coreinit", "deviceDriver", "font", "general", "layout", "merge", "script", "signature", "sourceSet", "templateCache"]); + } +} +class Attributes extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "attributes", ["preserve", "delegate", "ignore"]); + } +} +class AutoSave extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "autoSave", ["disabled", "enabled"]); + } +} +class Base extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "base"); + } +} +class BatchOutput extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "batchOutput"); + this.format = getStringOption(attributes.format, ["none", "concat", "zip", "zipCompress"]); + } +} +class BehaviorOverride extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "behaviorOverride"); + } + [$finalize]() { + this[$content] = new Map(this[$content].trim().split(/\s+/).filter(x => x.includes(":")).map(x => x.split(":", 2))); + } +} +class Cache extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "cache", true); + this.templateCache = null; + } +} +class Change extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "change"); + } +} +class Common extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "common", true); + this.data = null; + this.locale = null; + this.localeSet = null; + this.messaging = null; + this.suppressBanner = null; + this.template = null; + this.validationMessaging = null; + this.versionControl = null; + this.log = new XFAObjectArray(); + } +} +class Compress extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "compress"); + this.scope = getStringOption(attributes.scope, ["imageOnly", "document"]); + } +} +class CompressLogicalStructure extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "compressLogicalStructure"); + } +} +class CompressObjectStream extends Option10 { + constructor(attributes) { + super(CONFIG_NS_ID, "compressObjectStream"); + } +} +class Compression extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "compression", true); + this.compressLogicalStructure = null; + this.compressObjectStream = null; + this.level = null; + this.type = null; + } +} +class Config extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "config", true); + this.acrobat = null; + this.present = null; + this.trace = null; + this.agent = new XFAObjectArray(); + } +} +class Conformance extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "conformance", ["A", "B"]); + } +} +class ContentCopy extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "contentCopy"); + } +} +class Copies extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "copies", 1, n => n >= 1); + } +} +class Creator extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "creator"); + } +} +class CurrentPage extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "currentPage", 0, n => n >= 0); + } +} +class Data extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "data", true); + this.adjustData = null; + this.attributes = null; + this.incrementalLoad = null; + this.outputXSL = null; + this.range = null; + this.record = null; + this.startNode = null; + this.uri = null; + this.window = null; + this.xsl = null; + this.excludeNS = new XFAObjectArray(); + this.transform = new XFAObjectArray(); + } +} +class Debug extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "debug", true); + this.uri = null; + } +} +class DefaultTypeface extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "defaultTypeface"); + this.writingScript = getStringOption(attributes.writingScript, ["*", "Arabic", "Cyrillic", "EastEuropeanRoman", "Greek", "Hebrew", "Japanese", "Korean", "Roman", "SimplifiedChinese", "Thai", "TraditionalChinese", "Vietnamese"]); + } +} +class Destination extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "destination", ["pdf", "pcl", "ps", "webClient", "zpl"]); + } +} +class DocumentAssembly extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "documentAssembly"); + } +} +class Driver extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "driver", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.fontInfo = null; + this.xdc = null; + } +} +class DuplexOption extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "duplexOption", ["simplex", "duplexFlipLongEdge", "duplexFlipShortEdge"]); + } +} +class DynamicRender extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "dynamicRender", ["forbidden", "required"]); + } +} +class Embed extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "embed"); + } +} +class config_Encrypt extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "encrypt"); + } +} +class config_Encryption extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "encryption", true); + this.encrypt = null; + this.encryptionLevel = null; + this.permissions = null; + } +} +class EncryptionLevel extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "encryptionLevel", ["40bit", "128bit"]); + } +} +class Enforce extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "enforce"); + } +} +class Equate extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "equate"); + this.force = getInteger({ + data: attributes.force, + defaultValue: 1, + validate: n => n === 0 + }); + this.from = attributes.from || ""; + this.to = attributes.to || ""; + } +} +class EquateRange extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "equateRange"); + this.from = attributes.from || ""; + this.to = attributes.to || ""; + this._unicodeRange = attributes.unicodeRange || ""; + } + get unicodeRange() { + const ranges = []; + const unicodeRegex = /U\+([0-9a-fA-F]+)/; + const unicodeRange = this._unicodeRange; + for (let range of unicodeRange.split(",").map(x => x.trim()).filter(x => !!x)) { + range = range.split("-", 2).map(x => { + const found = x.match(unicodeRegex); + if (!found) { + return 0; + } + return parseInt(found[1], 16); + }); + if (range.length === 1) { + range.push(range[0]); + } + ranges.push(range); + } + return shadow(this, "unicodeRange", ranges); + } +} +class Exclude extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "exclude"); + } + [$finalize]() { + this[$content] = this[$content].trim().split(/\s+/).filter(x => x && ["calculate", "close", "enter", "exit", "initialize", "ready", "validate"].includes(x)); + } +} +class ExcludeNS extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "excludeNS"); + } +} +class FlipLabel extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "flipLabel", ["usePrinterSetting", "on", "off"]); + } +} +class config_FontInfo extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "fontInfo", true); + this.embed = null; + this.map = null; + this.subsetBelow = null; + this.alwaysEmbed = new XFAObjectArray(); + this.defaultTypeface = new XFAObjectArray(); + this.neverEmbed = new XFAObjectArray(); + } +} +class FormFieldFilling extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "formFieldFilling"); + } +} +class GroupParent extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "groupParent"); + } +} +class IfEmpty extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ifEmpty", ["dataValue", "dataGroup", "ignore", "remove"]); + } +} +class IncludeXDPContent extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "includeXDPContent"); + } +} +class IncrementalLoad extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "incrementalLoad", ["none", "forwardOnly"]); + } +} +class IncrementalMerge extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "incrementalMerge"); + } +} +class Interactive extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "interactive"); + } +} +class Jog extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "jog", ["usePrinterSetting", "none", "pageSet"]); + } +} +class LabelPrinter extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "labelPrinter", true); + this.name = getStringOption(attributes.name, ["zpl", "dpl", "ipl", "tcpl"]); + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } +} +class Layout extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "layout", ["paginate", "panel"]); + } +} +class Level extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "level", 0, n => n > 0); + } +} +class Linearized extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "linearized"); + } +} +class Locale extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "locale"); + } +} +class LocaleSet extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "localeSet"); + } +} +class Log extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "log", true); + this.mode = null; + this.threshold = null; + this.to = null; + this.uri = null; + } +} +class MapElement extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "map", true); + this.equate = new XFAObjectArray(); + this.equateRange = new XFAObjectArray(); + } +} +class MediumInfo extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "mediumInfo", true); + this.map = null; + } +} +class config_Message extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "message", true); + this.msgId = null; + this.severity = null; + } +} +class Messaging extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "messaging", true); + this.message = new XFAObjectArray(); + } +} +class Mode extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "mode", ["append", "overwrite"]); + } +} +class ModifyAnnots extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "modifyAnnots"); + } +} +class MsgId extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "msgId", 1, n => n >= 1); + } +} +class NameAttr extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "nameAttr"); + } +} +class NeverEmbed extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "neverEmbed"); + } +} +class NumberOfCopies extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "numberOfCopies", null, n => n >= 2 && n <= 5); + } +} +class OpenAction extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "openAction", true); + this.destination = null; + } +} +class Output extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "output", true); + this.to = null; + this.type = null; + this.uri = null; + } +} +class OutputBin extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "outputBin"); + } +} +class OutputXSL extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "outputXSL", true); + this.uri = null; + } +} +class Overprint extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "overprint", ["none", "both", "draw", "field"]); + } +} +class Packets extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "packets"); + } + [$finalize]() { + if (this[$content] === "*") { + return; + } + this[$content] = this[$content].trim().split(/\s+/).filter(x => ["config", "datasets", "template", "xfdf", "xslt"].includes(x)); + } +} +class PageOffset extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pageOffset"); + this.x = getInteger({ + data: attributes.x, + defaultValue: "useXDCSetting", + validate: n => true + }); + this.y = getInteger({ + data: attributes.y, + defaultValue: "useXDCSetting", + validate: n => true + }); + } +} +class PageRange extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pageRange"); + } + [$finalize]() { + const numbers = this[$content].trim().split(/\s+/).map(x => parseInt(x, 10)); + const ranges = []; + for (let i = 0, ii = numbers.length; i < ii; i += 2) { + ranges.push(numbers.slice(i, i + 2)); + } + this[$content] = ranges; + } +} +class Pagination extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pagination", ["simplex", "duplexShortEdge", "duplexLongEdge"]); + } +} +class PaginationOverride extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "paginationOverride", ["none", "forceDuplex", "forceDuplexLongEdge", "forceDuplexShortEdge", "forceSimplex"]); + } +} +class Part extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "part", 1, n => false); + } +} +class Pcl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pcl", true); + this.name = attributes.name || ""; + this.batchOutput = null; + this.fontInfo = null; + this.jog = null; + this.mediumInfo = null; + this.outputBin = null; + this.pageOffset = null; + this.staple = null; + this.xdc = null; + } +} +class Pdf extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pdf", true); + this.name = attributes.name || ""; + this.adobeExtensionLevel = null; + this.batchOutput = null; + this.compression = null; + this.creator = null; + this.encryption = null; + this.fontInfo = null; + this.interactive = null; + this.linearized = null; + this.openAction = null; + this.pdfa = null; + this.producer = null; + this.renderPolicy = null; + this.scriptModel = null; + this.silentPrint = null; + this.submitFormat = null; + this.tagged = null; + this.version = null; + this.viewerPreferences = null; + this.xdc = null; + } +} +class Pdfa extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pdfa", true); + this.amd = null; + this.conformance = null; + this.includeXDPContent = null; + this.part = null; + } +} +class Permissions extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "permissions", true); + this.accessibleContent = null; + this.change = null; + this.contentCopy = null; + this.documentAssembly = null; + this.formFieldFilling = null; + this.modifyAnnots = null; + this.plaintextMetadata = null; + this.print = null; + this.printHighQuality = null; + } +} +class PickTrayByPDFSize extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "pickTrayByPDFSize"); + } +} +class config_Picture extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "picture"); + } +} +class PlaintextMetadata extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "plaintextMetadata"); + } +} +class Presence extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "presence", ["preserve", "dissolve", "dissolveStructure", "ignore", "remove"]); + } +} +class Present extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "present", true); + this.behaviorOverride = null; + this.cache = null; + this.common = null; + this.copies = null; + this.destination = null; + this.incrementalMerge = null; + this.layout = null; + this.output = null; + this.overprint = null; + this.pagination = null; + this.paginationOverride = null; + this.script = null; + this.validate = null; + this.xdp = null; + this.driver = new XFAObjectArray(); + this.labelPrinter = new XFAObjectArray(); + this.pcl = new XFAObjectArray(); + this.pdf = new XFAObjectArray(); + this.ps = new XFAObjectArray(); + this.submitUrl = new XFAObjectArray(); + this.webClient = new XFAObjectArray(); + this.zpl = new XFAObjectArray(); + } +} +class Print extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "print"); + } +} +class PrintHighQuality extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "printHighQuality"); + } +} +class PrintScaling extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "printScaling", ["appdefault", "noScaling"]); + } +} +class PrinterName extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "printerName"); + } +} +class Producer extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "producer"); + } +} +class Ps extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ps", true); + this.name = attributes.name || ""; + this.batchOutput = null; + this.fontInfo = null; + this.jog = null; + this.mediumInfo = null; + this.outputBin = null; + this.staple = null; + this.xdc = null; + } +} +class Range extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "range"); + } + [$finalize]() { + this[$content] = this[$content].split(",", 2).map(range => range.split("-").map(x => parseInt(x.trim(), 10))).filter(range => range.every(x => !isNaN(x))).map(range => { + if (range.length === 1) { + range.push(range[0]); + } + return range; + }); + } +} +class Record extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "record"); + } + [$finalize]() { + this[$content] = this[$content].trim(); + const n = parseInt(this[$content], 10); + if (!isNaN(n) && n >= 0) { + this[$content] = n; + } + } +} +class Relevant extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "relevant"); + } + [$finalize]() { + this[$content] = this[$content].trim().split(/\s+/); + } +} +class Rename extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "rename"); + } + [$finalize]() { + this[$content] = this[$content].trim(); + if (this[$content].toLowerCase().startsWith("xml") || new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*", "u").test(this[$content])) { + warn("XFA - Rename: invalid XFA name"); + } + } +} +class RenderPolicy extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "renderPolicy", ["server", "client"]); + } +} +class RunScripts extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "runScripts", ["both", "client", "none", "server"]); + } +} +class config_Script extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "script", true); + this.currentPage = null; + this.exclude = null; + this.runScripts = null; + } +} +class ScriptModel extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "scriptModel", ["XFA", "none"]); + } +} +class Severity extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "severity", ["ignore", "error", "information", "trace", "warning"]); + } +} +class SilentPrint extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "silentPrint", true); + this.addSilentPrint = null; + this.printerName = null; + } +} +class Staple extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "staple"); + this.mode = getStringOption(attributes.mode, ["usePrinterSetting", "on", "off"]); + } +} +class StartNode extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "startNode"); + } +} +class StartPage extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "startPage", 0, n => true); + } +} +class SubmitFormat extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "submitFormat", ["html", "delegate", "fdf", "xml", "pdf"]); + } +} +class SubmitUrl extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "submitUrl"); + } +} +class SubsetBelow extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "subsetBelow", 100, n => n >= 0 && n <= 100); + } +} +class SuppressBanner extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "suppressBanner"); + } +} +class Tagged extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "tagged"); + } +} +class config_Template extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "template", true); + this.base = null; + this.relevant = null; + this.startPage = null; + this.uri = null; + this.xsl = null; + } +} +class Threshold extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "threshold", ["trace", "error", "information", "warning"]); + } +} +class To extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "to", ["null", "memory", "stderr", "stdout", "system", "uri"]); + } +} +class TemplateCache extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "templateCache"); + this.maxEntries = getInteger({ + data: attributes.maxEntries, + defaultValue: 5, + validate: n => n >= 0 + }); + } +} +class Trace extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "trace", true); + this.area = new XFAObjectArray(); + } +} +class Transform extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "transform", true); + this.groupParent = null; + this.ifEmpty = null; + this.nameAttr = null; + this.picture = null; + this.presence = null; + this.rename = null; + this.whitespace = null; + } +} +class Type extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "type", ["none", "ascii85", "asciiHex", "ccittfax", "flate", "lzw", "runLength", "native", "xdp", "mergedXDP"]); + } +} +class Uri extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "uri"); + } +} +class config_Validate extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "validate", ["preSubmit", "prePrint", "preExecute", "preSave"]); + } +} +class ValidateApprovalSignatures extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "validateApprovalSignatures"); + } + [$finalize]() { + this[$content] = this[$content].trim().split(/\s+/).filter(x => ["docReady", "postSign"].includes(x)); + } +} +class ValidationMessaging extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "validationMessaging", ["allMessagesIndividually", "allMessagesTogether", "firstMessageOnly", "noMessages"]); + } +} +class Version extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "version", ["1.7", "1.6", "1.5", "1.4", "1.3", "1.2"]); + } +} +class VersionControl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "VersionControl"); + this.outputBelow = getStringOption(attributes.outputBelow, ["warn", "error", "update"]); + this.sourceAbove = getStringOption(attributes.sourceAbove, ["warn", "error"]); + this.sourceBelow = getStringOption(attributes.sourceBelow, ["update", "maintain"]); + } +} +class ViewerPreferences extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "viewerPreferences", true); + this.ADBE_JSConsole = null; + this.ADBE_JSDebugger = null; + this.addViewerPreferences = null; + this.duplexOption = null; + this.enforce = null; + this.numberOfCopies = null; + this.pageRange = null; + this.pickTrayByPDFSize = null; + this.printScaling = null; + } +} +class WebClient extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "webClient", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.fontInfo = null; + this.xdc = null; + } +} +class Whitespace extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "whitespace", ["preserve", "ltrim", "normalize", "rtrim", "trim"]); + } +} +class Window extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "window"); + } + [$finalize]() { + const pair = this[$content].split(",", 2).map(x => parseInt(x.trim(), 10)); + if (pair.some(x => isNaN(x))) { + this[$content] = [0, 0]; + return; + } + if (pair.length === 1) { + pair.push(pair[0]); + } + this[$content] = pair; + } +} +class Xdc extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "xdc", true); + this.uri = new XFAObjectArray(); + this.xsl = new XFAObjectArray(); + } +} +class Xdp extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "xdp", true); + this.packets = null; + } +} +class Xsl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "xsl", true); + this.debug = null; + this.uri = null; + } +} +class Zpl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "zpl", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } +} +class ConfigNamespace { + static [$buildXFAObject](name, attributes) { + if (ConfigNamespace.hasOwnProperty(name)) { + return ConfigNamespace[name](attributes); + } + return undefined; + } + static acrobat(attrs) { + return new Acrobat(attrs); + } + static acrobat7(attrs) { + return new Acrobat7(attrs); + } + static ADBE_JSConsole(attrs) { + return new ADBE_JSConsole(attrs); + } + static ADBE_JSDebugger(attrs) { + return new ADBE_JSDebugger(attrs); + } + static addSilentPrint(attrs) { + return new AddSilentPrint(attrs); + } + static addViewerPreferences(attrs) { + return new AddViewerPreferences(attrs); + } + static adjustData(attrs) { + return new AdjustData(attrs); + } + static adobeExtensionLevel(attrs) { + return new AdobeExtensionLevel(attrs); + } + static agent(attrs) { + return new Agent(attrs); + } + static alwaysEmbed(attrs) { + return new AlwaysEmbed(attrs); + } + static amd(attrs) { + return new Amd(attrs); + } + static area(attrs) { + return new config_Area(attrs); + } + static attributes(attrs) { + return new Attributes(attrs); + } + static autoSave(attrs) { + return new AutoSave(attrs); + } + static base(attrs) { + return new Base(attrs); + } + static batchOutput(attrs) { + return new BatchOutput(attrs); + } + static behaviorOverride(attrs) { + return new BehaviorOverride(attrs); + } + static cache(attrs) { + return new Cache(attrs); + } + static change(attrs) { + return new Change(attrs); + } + static common(attrs) { + return new Common(attrs); + } + static compress(attrs) { + return new Compress(attrs); + } + static compressLogicalStructure(attrs) { + return new CompressLogicalStructure(attrs); + } + static compressObjectStream(attrs) { + return new CompressObjectStream(attrs); + } + static compression(attrs) { + return new Compression(attrs); + } + static config(attrs) { + return new Config(attrs); + } + static conformance(attrs) { + return new Conformance(attrs); + } + static contentCopy(attrs) { + return new ContentCopy(attrs); + } + static copies(attrs) { + return new Copies(attrs); + } + static creator(attrs) { + return new Creator(attrs); + } + static currentPage(attrs) { + return new CurrentPage(attrs); + } + static data(attrs) { + return new Data(attrs); + } + static debug(attrs) { + return new Debug(attrs); + } + static defaultTypeface(attrs) { + return new DefaultTypeface(attrs); + } + static destination(attrs) { + return new Destination(attrs); + } + static documentAssembly(attrs) { + return new DocumentAssembly(attrs); + } + static driver(attrs) { + return new Driver(attrs); + } + static duplexOption(attrs) { + return new DuplexOption(attrs); + } + static dynamicRender(attrs) { + return new DynamicRender(attrs); + } + static embed(attrs) { + return new Embed(attrs); + } + static encrypt(attrs) { + return new config_Encrypt(attrs); + } + static encryption(attrs) { + return new config_Encryption(attrs); + } + static encryptionLevel(attrs) { + return new EncryptionLevel(attrs); + } + static enforce(attrs) { + return new Enforce(attrs); + } + static equate(attrs) { + return new Equate(attrs); + } + static equateRange(attrs) { + return new EquateRange(attrs); + } + static exclude(attrs) { + return new Exclude(attrs); + } + static excludeNS(attrs) { + return new ExcludeNS(attrs); + } + static flipLabel(attrs) { + return new FlipLabel(attrs); + } + static fontInfo(attrs) { + return new config_FontInfo(attrs); + } + static formFieldFilling(attrs) { + return new FormFieldFilling(attrs); + } + static groupParent(attrs) { + return new GroupParent(attrs); + } + static ifEmpty(attrs) { + return new IfEmpty(attrs); + } + static includeXDPContent(attrs) { + return new IncludeXDPContent(attrs); + } + static incrementalLoad(attrs) { + return new IncrementalLoad(attrs); + } + static incrementalMerge(attrs) { + return new IncrementalMerge(attrs); + } + static interactive(attrs) { + return new Interactive(attrs); + } + static jog(attrs) { + return new Jog(attrs); + } + static labelPrinter(attrs) { + return new LabelPrinter(attrs); + } + static layout(attrs) { + return new Layout(attrs); + } + static level(attrs) { + return new Level(attrs); + } + static linearized(attrs) { + return new Linearized(attrs); + } + static locale(attrs) { + return new Locale(attrs); + } + static localeSet(attrs) { + return new LocaleSet(attrs); + } + static log(attrs) { + return new Log(attrs); + } + static map(attrs) { + return new MapElement(attrs); + } + static mediumInfo(attrs) { + return new MediumInfo(attrs); + } + static message(attrs) { + return new config_Message(attrs); + } + static messaging(attrs) { + return new Messaging(attrs); + } + static mode(attrs) { + return new Mode(attrs); + } + static modifyAnnots(attrs) { + return new ModifyAnnots(attrs); + } + static msgId(attrs) { + return new MsgId(attrs); + } + static nameAttr(attrs) { + return new NameAttr(attrs); + } + static neverEmbed(attrs) { + return new NeverEmbed(attrs); + } + static numberOfCopies(attrs) { + return new NumberOfCopies(attrs); + } + static openAction(attrs) { + return new OpenAction(attrs); + } + static output(attrs) { + return new Output(attrs); + } + static outputBin(attrs) { + return new OutputBin(attrs); + } + static outputXSL(attrs) { + return new OutputXSL(attrs); + } + static overprint(attrs) { + return new Overprint(attrs); + } + static packets(attrs) { + return new Packets(attrs); + } + static pageOffset(attrs) { + return new PageOffset(attrs); + } + static pageRange(attrs) { + return new PageRange(attrs); + } + static pagination(attrs) { + return new Pagination(attrs); + } + static paginationOverride(attrs) { + return new PaginationOverride(attrs); + } + static part(attrs) { + return new Part(attrs); + } + static pcl(attrs) { + return new Pcl(attrs); + } + static pdf(attrs) { + return new Pdf(attrs); + } + static pdfa(attrs) { + return new Pdfa(attrs); + } + static permissions(attrs) { + return new Permissions(attrs); + } + static pickTrayByPDFSize(attrs) { + return new PickTrayByPDFSize(attrs); + } + static picture(attrs) { + return new config_Picture(attrs); + } + static plaintextMetadata(attrs) { + return new PlaintextMetadata(attrs); + } + static presence(attrs) { + return new Presence(attrs); + } + static present(attrs) { + return new Present(attrs); + } + static print(attrs) { + return new Print(attrs); + } + static printHighQuality(attrs) { + return new PrintHighQuality(attrs); + } + static printScaling(attrs) { + return new PrintScaling(attrs); + } + static printerName(attrs) { + return new PrinterName(attrs); + } + static producer(attrs) { + return new Producer(attrs); + } + static ps(attrs) { + return new Ps(attrs); + } + static range(attrs) { + return new Range(attrs); + } + static record(attrs) { + return new Record(attrs); + } + static relevant(attrs) { + return new Relevant(attrs); + } + static rename(attrs) { + return new Rename(attrs); + } + static renderPolicy(attrs) { + return new RenderPolicy(attrs); + } + static runScripts(attrs) { + return new RunScripts(attrs); + } + static script(attrs) { + return new config_Script(attrs); + } + static scriptModel(attrs) { + return new ScriptModel(attrs); + } + static severity(attrs) { + return new Severity(attrs); + } + static silentPrint(attrs) { + return new SilentPrint(attrs); + } + static staple(attrs) { + return new Staple(attrs); + } + static startNode(attrs) { + return new StartNode(attrs); + } + static startPage(attrs) { + return new StartPage(attrs); + } + static submitFormat(attrs) { + return new SubmitFormat(attrs); + } + static submitUrl(attrs) { + return new SubmitUrl(attrs); + } + static subsetBelow(attrs) { + return new SubsetBelow(attrs); + } + static suppressBanner(attrs) { + return new SuppressBanner(attrs); + } + static tagged(attrs) { + return new Tagged(attrs); + } + static template(attrs) { + return new config_Template(attrs); + } + static templateCache(attrs) { + return new TemplateCache(attrs); + } + static threshold(attrs) { + return new Threshold(attrs); + } + static to(attrs) { + return new To(attrs); + } + static trace(attrs) { + return new Trace(attrs); + } + static transform(attrs) { + return new Transform(attrs); + } + static type(attrs) { + return new Type(attrs); + } + static uri(attrs) { + return new Uri(attrs); + } + static validate(attrs) { + return new config_Validate(attrs); + } + static validateApprovalSignatures(attrs) { + return new ValidateApprovalSignatures(attrs); + } + static validationMessaging(attrs) { + return new ValidationMessaging(attrs); + } + static version(attrs) { + return new Version(attrs); + } + static versionControl(attrs) { + return new VersionControl(attrs); + } + static viewerPreferences(attrs) { + return new ViewerPreferences(attrs); + } + static webClient(attrs) { + return new WebClient(attrs); + } + static whitespace(attrs) { + return new Whitespace(attrs); + } + static window(attrs) { + return new Window(attrs); + } + static xdc(attrs) { + return new Xdc(attrs); + } + static xdp(attrs) { + return new Xdp(attrs); + } + static xsl(attrs) { + return new Xsl(attrs); + } + static zpl(attrs) { + return new Zpl(attrs); + } +} + +;// ./src/core/xfa/connection_set.js + + +const CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id; +class ConnectionSet extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "connectionSet", true); + this.wsdlConnection = new XFAObjectArray(); + this.xmlConnection = new XFAObjectArray(); + this.xsdConnection = new XFAObjectArray(); + } +} +class EffectiveInputPolicy extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "effectiveInputPolicy"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class EffectiveOutputPolicy extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "effectiveOutputPolicy"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Operation extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "operation"); + this.id = attributes.id || ""; + this.input = attributes.input || ""; + this.name = attributes.name || ""; + this.output = attributes.output || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class RootElement extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "rootElement"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class SoapAction extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "soapAction"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class SoapAddress extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "soapAddress"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class connection_set_Uri extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "uri"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class WsdlAddress extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "wsdlAddress"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class WsdlConnection extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "wsdlConnection", true); + this.dataDescription = attributes.dataDescription || ""; + this.name = attributes.name || ""; + this.effectiveInputPolicy = null; + this.effectiveOutputPolicy = null; + this.operation = null; + this.soapAction = null; + this.soapAddress = null; + this.wsdlAddress = null; + } +} +class XmlConnection extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "xmlConnection", true); + this.dataDescription = attributes.dataDescription || ""; + this.name = attributes.name || ""; + this.uri = null; + } +} +class XsdConnection extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "xsdConnection", true); + this.dataDescription = attributes.dataDescription || ""; + this.name = attributes.name || ""; + this.rootElement = null; + this.uri = null; + } +} +class ConnectionSetNamespace { + static [$buildXFAObject](name, attributes) { + if (ConnectionSetNamespace.hasOwnProperty(name)) { + return ConnectionSetNamespace[name](attributes); + } + return undefined; + } + static connectionSet(attrs) { + return new ConnectionSet(attrs); + } + static effectiveInputPolicy(attrs) { + return new EffectiveInputPolicy(attrs); + } + static effectiveOutputPolicy(attrs) { + return new EffectiveOutputPolicy(attrs); + } + static operation(attrs) { + return new Operation(attrs); + } + static rootElement(attrs) { + return new RootElement(attrs); + } + static soapAction(attrs) { + return new SoapAction(attrs); + } + static soapAddress(attrs) { + return new SoapAddress(attrs); + } + static uri(attrs) { + return new connection_set_Uri(attrs); + } + static wsdlAddress(attrs) { + return new WsdlAddress(attrs); + } + static wsdlConnection(attrs) { + return new WsdlConnection(attrs); + } + static xmlConnection(attrs) { + return new XmlConnection(attrs); + } + static xsdConnection(attrs) { + return new XsdConnection(attrs); + } +} + +;// ./src/core/xfa/datasets.js + + + +const DATASETS_NS_ID = NamespaceIds.datasets.id; +class datasets_Data extends XmlObject { + constructor(attributes) { + super(DATASETS_NS_ID, "data", attributes); + } + [$isNsAgnostic]() { + return true; + } +} +class Datasets extends XFAObject { + constructor(attributes) { + super(DATASETS_NS_ID, "datasets", true); + this.data = null; + this.Signature = null; + } + [$onChild](child) { + const name = child[$nodeName]; + if (name === "data" && child[$namespaceId] === DATASETS_NS_ID || name === "Signature" && child[$namespaceId] === NamespaceIds.signature.id) { + this[name] = child; + } + this[$appendChild](child); + } +} +class DatasetsNamespace { + static [$buildXFAObject](name, attributes) { + if (DatasetsNamespace.hasOwnProperty(name)) { + return DatasetsNamespace[name](attributes); + } + return undefined; + } + static datasets(attributes) { + return new Datasets(attributes); + } + static data(attributes) { + return new datasets_Data(attributes); + } +} + +;// ./src/core/xfa/locale_set.js + + + +const LOCALE_SET_NS_ID = NamespaceIds.localeSet.id; +class CalendarSymbols extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "calendarSymbols", true); + this.name = "gregorian"; + this.dayNames = new XFAObjectArray(2); + this.eraNames = null; + this.meridiemNames = null; + this.monthNames = new XFAObjectArray(2); + } +} +class CurrencySymbol extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "currencySymbol"); + this.name = getStringOption(attributes.name, ["symbol", "isoname", "decimal"]); + } +} +class CurrencySymbols extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "currencySymbols", true); + this.currencySymbol = new XFAObjectArray(3); + } +} +class DatePattern extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "datePattern"); + this.name = getStringOption(attributes.name, ["full", "long", "med", "short"]); + } +} +class DatePatterns extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "datePatterns", true); + this.datePattern = new XFAObjectArray(4); + } +} +class DateTimeSymbols extends ContentObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "dateTimeSymbols"); + } +} +class Day extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "day"); + } +} +class DayNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "dayNames", true); + this.abbr = getInteger({ + data: attributes.abbr, + defaultValue: 0, + validate: x => x === 1 + }); + this.day = new XFAObjectArray(7); + } +} +class Era extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "era"); + } +} +class EraNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "eraNames", true); + this.era = new XFAObjectArray(2); + } +} +class locale_set_Locale extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "locale", true); + this.desc = attributes.desc || ""; + this.name = "isoname"; + this.calendarSymbols = null; + this.currencySymbols = null; + this.datePatterns = null; + this.dateTimeSymbols = null; + this.numberPatterns = null; + this.numberSymbols = null; + this.timePatterns = null; + this.typeFaces = null; + } +} +class locale_set_LocaleSet extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "localeSet", true); + this.locale = new XFAObjectArray(); + } +} +class Meridiem extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "meridiem"); + } +} +class MeridiemNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "meridiemNames", true); + this.meridiem = new XFAObjectArray(2); + } +} +class Month extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "month"); + } +} +class MonthNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "monthNames", true); + this.abbr = getInteger({ + data: attributes.abbr, + defaultValue: 0, + validate: x => x === 1 + }); + this.month = new XFAObjectArray(12); + } +} +class NumberPattern extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberPattern"); + this.name = getStringOption(attributes.name, ["full", "long", "med", "short"]); + } +} +class NumberPatterns extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberPatterns", true); + this.numberPattern = new XFAObjectArray(4); + } +} +class NumberSymbol extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberSymbol"); + this.name = getStringOption(attributes.name, ["decimal", "grouping", "percent", "minus", "zero"]); + } +} +class NumberSymbols extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberSymbols", true); + this.numberSymbol = new XFAObjectArray(5); + } +} +class TimePattern extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "timePattern"); + this.name = getStringOption(attributes.name, ["full", "long", "med", "short"]); + } +} +class TimePatterns extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "timePatterns", true); + this.timePattern = new XFAObjectArray(4); + } +} +class TypeFace extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "typeFace", true); + this.name = attributes.name | ""; + } +} +class TypeFaces extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "typeFaces", true); + this.typeFace = new XFAObjectArray(); + } +} +class LocaleSetNamespace { + static [$buildXFAObject](name, attributes) { + if (LocaleSetNamespace.hasOwnProperty(name)) { + return LocaleSetNamespace[name](attributes); + } + return undefined; + } + static calendarSymbols(attrs) { + return new CalendarSymbols(attrs); + } + static currencySymbol(attrs) { + return new CurrencySymbol(attrs); + } + static currencySymbols(attrs) { + return new CurrencySymbols(attrs); + } + static datePattern(attrs) { + return new DatePattern(attrs); + } + static datePatterns(attrs) { + return new DatePatterns(attrs); + } + static dateTimeSymbols(attrs) { + return new DateTimeSymbols(attrs); + } + static day(attrs) { + return new Day(attrs); + } + static dayNames(attrs) { + return new DayNames(attrs); + } + static era(attrs) { + return new Era(attrs); + } + static eraNames(attrs) { + return new EraNames(attrs); + } + static locale(attrs) { + return new locale_set_Locale(attrs); + } + static localeSet(attrs) { + return new locale_set_LocaleSet(attrs); + } + static meridiem(attrs) { + return new Meridiem(attrs); + } + static meridiemNames(attrs) { + return new MeridiemNames(attrs); + } + static month(attrs) { + return new Month(attrs); + } + static monthNames(attrs) { + return new MonthNames(attrs); + } + static numberPattern(attrs) { + return new NumberPattern(attrs); + } + static numberPatterns(attrs) { + return new NumberPatterns(attrs); + } + static numberSymbol(attrs) { + return new NumberSymbol(attrs); + } + static numberSymbols(attrs) { + return new NumberSymbols(attrs); + } + static timePattern(attrs) { + return new TimePattern(attrs); + } + static timePatterns(attrs) { + return new TimePatterns(attrs); + } + static typeFace(attrs) { + return new TypeFace(attrs); + } + static typeFaces(attrs) { + return new TypeFaces(attrs); + } +} + +;// ./src/core/xfa/signature.js + + +const SIGNATURE_NS_ID = NamespaceIds.signature.id; +class signature_Signature extends XFAObject { + constructor(attributes) { + super(SIGNATURE_NS_ID, "signature", true); + } +} +class SignatureNamespace { + static [$buildXFAObject](name, attributes) { + if (SignatureNamespace.hasOwnProperty(name)) { + return SignatureNamespace[name](attributes); + } + return undefined; + } + static signature(attributes) { + return new signature_Signature(attributes); + } +} + +;// ./src/core/xfa/stylesheet.js + + +const STYLESHEET_NS_ID = NamespaceIds.stylesheet.id; +class Stylesheet extends XFAObject { + constructor(attributes) { + super(STYLESHEET_NS_ID, "stylesheet", true); + } +} +class StylesheetNamespace { + static [$buildXFAObject](name, attributes) { + if (StylesheetNamespace.hasOwnProperty(name)) { + return StylesheetNamespace[name](attributes); + } + return undefined; + } + static stylesheet(attributes) { + return new Stylesheet(attributes); + } +} + +;// ./src/core/xfa/xdp.js + + + +const XDP_NS_ID = NamespaceIds.xdp.id; +class xdp_Xdp extends XFAObject { + constructor(attributes) { + super(XDP_NS_ID, "xdp", true); + this.uuid = attributes.uuid || ""; + this.timeStamp = attributes.timeStamp || ""; + this.config = null; + this.connectionSet = null; + this.datasets = null; + this.localeSet = null; + this.stylesheet = new XFAObjectArray(); + this.template = null; + } + [$onChildCheck](child) { + const ns = NamespaceIds[child[$nodeName]]; + return ns && child[$namespaceId] === ns.id; + } +} +class XdpNamespace { + static [$buildXFAObject](name, attributes) { + if (XdpNamespace.hasOwnProperty(name)) { + return XdpNamespace[name](attributes); + } + return undefined; + } + static xdp(attributes) { + return new xdp_Xdp(attributes); + } +} + +;// ./src/core/xfa/xhtml.js + + + + + +const XHTML_NS_ID = NamespaceIds.xhtml.id; +const $richText = Symbol(); +const VALID_STYLES = new Set(["color", "font", "font-family", "font-size", "font-stretch", "font-style", "font-weight", "margin", "margin-bottom", "margin-left", "margin-right", "margin-top", "letter-spacing", "line-height", "orphans", "page-break-after", "page-break-before", "page-break-inside", "tab-interval", "tab-stop", "text-align", "text-decoration", "text-indent", "vertical-align", "widows", "kerning-mode", "xfa-font-horizontal-scale", "xfa-font-vertical-scale", "xfa-spacerun", "xfa-tab-stops"]); +const StyleMapping = new Map([["page-break-after", "breakAfter"], ["page-break-before", "breakBefore"], ["page-break-inside", "breakInside"], ["kerning-mode", value => value === "none" ? "none" : "normal"], ["xfa-font-horizontal-scale", value => `scaleX(${Math.max(0, parseInt(value) / 100).toFixed(2)})`], ["xfa-font-vertical-scale", value => `scaleY(${Math.max(0, parseInt(value) / 100).toFixed(2)})`], ["xfa-spacerun", ""], ["xfa-tab-stops", ""], ["font-size", (value, original) => { + value = original.fontSize = Math.abs(getMeasurement(value)); + return measureToString(0.99 * value); +}], ["letter-spacing", value => measureToString(getMeasurement(value))], ["line-height", value => measureToString(getMeasurement(value))], ["margin", value => measureToString(getMeasurement(value))], ["margin-bottom", value => measureToString(getMeasurement(value))], ["margin-left", value => measureToString(getMeasurement(value))], ["margin-right", value => measureToString(getMeasurement(value))], ["margin-top", value => measureToString(getMeasurement(value))], ["text-indent", value => measureToString(getMeasurement(value))], ["font-family", value => value], ["vertical-align", value => measureToString(getMeasurement(value))]]); +const spacesRegExp = /\s+/g; +const crlfRegExp = /[\r\n]+/g; +const crlfForRichTextRegExp = /\r\n?/g; +function mapStyle(styleStr, node, richText) { + const style = Object.create(null); + if (!styleStr) { + return style; + } + const original = Object.create(null); + for (const [key, value] of styleStr.split(";").map(s => s.split(":", 2))) { + const mapping = StyleMapping.get(key); + if (mapping === "") { + continue; + } + let newValue = value; + if (mapping) { + newValue = typeof mapping === "string" ? mapping : mapping(value, original); + } + if (key.endsWith("scale")) { + style.transform = style.transform ? `${style[key]} ${newValue}` : newValue; + } else { + style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] = newValue; + } + } + if (style.fontFamily) { + setFontFamily({ + typeface: style.fontFamily, + weight: style.fontWeight || "normal", + posture: style.fontStyle || "normal", + size: original.fontSize || 0 + }, node, node[$globalData].fontFinder, style); + } + if (richText && style.verticalAlign && style.verticalAlign !== "0px" && style.fontSize) { + const SUB_SUPER_SCRIPT_FACTOR = 0.583; + const VERTICAL_FACTOR = 0.333; + const fontSize = getMeasurement(style.fontSize); + style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR); + style.verticalAlign = measureToString(Math.sign(getMeasurement(style.verticalAlign)) * fontSize * VERTICAL_FACTOR); + } + if (richText && style.fontSize) { + style.fontSize = `calc(${style.fontSize} * var(--total-scale-factor))`; + } + fixTextIndent(style); + return style; +} +function checkStyle(node) { + if (!node.style) { + return ""; + } + return node.style.split(";").filter(s => !!s.trim()).map(s => s.split(":", 2).map(t => t.trim())).filter(([key, value]) => { + if (key === "font-family") { + node[$globalData].usedTypefaces.add(value); + } + return VALID_STYLES.has(key); + }).map(kv => kv.join(":")).join(";"); +} +const NoWhites = new Set(["body", "html"]); +class XhtmlObject extends XmlObject { + constructor(attributes, name) { + super(XHTML_NS_ID, name); + this[$richText] = false; + this.style = attributes.style || ""; + } + [$clean](builder) { + super[$clean](builder); + this.style = checkStyle(this); + } + [$acceptWhitespace]() { + return !NoWhites.has(this[$nodeName]); + } + [$onText](str, richText = false) { + if (!richText) { + str = str.replaceAll(crlfRegExp, ""); + if (!this.style.includes("xfa-spacerun:yes")) { + str = str.replaceAll(spacesRegExp, " "); + } + } else { + this[$richText] = true; + } + if (str) { + this[$content] += str; + } + } + [$pushGlyphs](measure, mustPop = true) { + const xfaFont = Object.create(null); + const margin = { + top: NaN, + bottom: NaN, + left: NaN, + right: NaN + }; + let lineHeight = null; + for (const [key, value] of this.style.split(";").map(s => s.split(":", 2))) { + switch (key) { + case "font-family": + xfaFont.typeface = stripQuotes(value); + break; + case "font-size": + xfaFont.size = getMeasurement(value); + break; + case "font-weight": + xfaFont.weight = value; + break; + case "font-style": + xfaFont.posture = value; + break; + case "letter-spacing": + xfaFont.letterSpacing = getMeasurement(value); + break; + case "margin": + const values = value.split(/ \t/).map(x => getMeasurement(x)); + switch (values.length) { + case 1: + margin.top = margin.bottom = margin.left = margin.right = values[0]; + break; + case 2: + margin.top = margin.bottom = values[0]; + margin.left = margin.right = values[1]; + break; + case 3: + margin.top = values[0]; + margin.bottom = values[2]; + margin.left = margin.right = values[1]; + break; + case 4: + margin.top = values[0]; + margin.left = values[1]; + margin.bottom = values[2]; + margin.right = values[3]; + break; + } + break; + case "margin-top": + margin.top = getMeasurement(value); + break; + case "margin-bottom": + margin.bottom = getMeasurement(value); + break; + case "margin-left": + margin.left = getMeasurement(value); + break; + case "margin-right": + margin.right = getMeasurement(value); + break; + case "line-height": + lineHeight = getMeasurement(value); + break; + } + } + measure.pushData(xfaFont, margin, lineHeight); + if (this[$content]) { + measure.addString(this[$content]); + } else { + for (const child of this[$getChildren]()) { + if (child[$nodeName] === "#text") { + measure.addString(child[$content]); + continue; + } + child[$pushGlyphs](measure); + } + } + if (mustPop) { + measure.popFont(); + } + } + [$toHTML](availableSpace) { + const children = []; + this[$extra] = { + children + }; + this[$childrenToHTML]({}); + if (children.length === 0 && !this[$content]) { + return HTMLResult.EMPTY; + } + let value; + if (this[$richText]) { + value = this[$content] ? this[$content].replaceAll(crlfForRichTextRegExp, "\n") : undefined; + } else { + value = this[$content] || undefined; + } + return HTMLResult.success({ + name: this[$nodeName], + attributes: { + href: this.href, + style: mapStyle(this.style, this, this[$richText]) + }, + children, + value + }); + } +} +class A extends XhtmlObject { + constructor(attributes) { + super(attributes, "a"); + this.href = fixURL(attributes.href) || ""; + } +} +class B extends XhtmlObject { + constructor(attributes) { + super(attributes, "b"); + } + [$pushGlyphs](measure) { + measure.pushFont({ + weight: "bold" + }); + super[$pushGlyphs](measure); + measure.popFont(); + } +} +class Body extends XhtmlObject { + constructor(attributes) { + super(attributes, "body"); + } + [$toHTML](availableSpace) { + const res = super[$toHTML](availableSpace); + const { + html + } = res; + if (!html) { + return HTMLResult.EMPTY; + } + html.name = "div"; + html.attributes.class = ["xfaRich"]; + return res; + } +} +class Br extends XhtmlObject { + constructor(attributes) { + super(attributes, "br"); + } + [$text]() { + return "\n"; + } + [$pushGlyphs](measure) { + measure.addString("\n"); + } + [$toHTML](availableSpace) { + return HTMLResult.success({ + name: "br" + }); + } +} +class Html extends XhtmlObject { + constructor(attributes) { + super(attributes, "html"); + } + [$toHTML](availableSpace) { + const children = []; + this[$extra] = { + children + }; + this[$childrenToHTML]({}); + if (children.length === 0) { + return HTMLResult.success({ + name: "div", + attributes: { + class: ["xfaRich"], + style: {} + }, + value: this[$content] || "" + }); + } + if (children.length === 1) { + const child = children[0]; + if (child.attributes?.class.includes("xfaRich")) { + return HTMLResult.success(child); + } + } + return HTMLResult.success({ + name: "div", + attributes: { + class: ["xfaRich"], + style: {} + }, + children + }); + } +} +class I extends XhtmlObject { + constructor(attributes) { + super(attributes, "i"); + } + [$pushGlyphs](measure) { + measure.pushFont({ + posture: "italic" + }); + super[$pushGlyphs](measure); + measure.popFont(); + } +} +class Li extends XhtmlObject { + constructor(attributes) { + super(attributes, "li"); + } +} +class Ol extends XhtmlObject { + constructor(attributes) { + super(attributes, "ol"); + } +} +class P extends XhtmlObject { + constructor(attributes) { + super(attributes, "p"); + } + [$pushGlyphs](measure) { + super[$pushGlyphs](measure, false); + measure.addString("\n"); + measure.addPara(); + measure.popFont(); + } + [$text]() { + const siblings = this[$getParent]()[$getChildren](); + if (siblings.at(-1) === this) { + return super[$text](); + } + return super[$text]() + "\n"; + } +} +class Span extends XhtmlObject { + constructor(attributes) { + super(attributes, "span"); + } +} +class Sub extends XhtmlObject { + constructor(attributes) { + super(attributes, "sub"); + } +} +class Sup extends XhtmlObject { + constructor(attributes) { + super(attributes, "sup"); + } +} +class Ul extends XhtmlObject { + constructor(attributes) { + super(attributes, "ul"); + } +} +class XhtmlNamespace { + static [$buildXFAObject](name, attributes) { + if (XhtmlNamespace.hasOwnProperty(name)) { + return XhtmlNamespace[name](attributes); + } + return undefined; + } + static a(attributes) { + return new A(attributes); + } + static b(attributes) { + return new B(attributes); + } + static body(attributes) { + return new Body(attributes); + } + static br(attributes) { + return new Br(attributes); + } + static html(attributes) { + return new Html(attributes); + } + static i(attributes) { + return new I(attributes); + } + static li(attributes) { + return new Li(attributes); + } + static ol(attributes) { + return new Ol(attributes); + } + static p(attributes) { + return new P(attributes); + } + static span(attributes) { + return new Span(attributes); + } + static sub(attributes) { + return new Sub(attributes); + } + static sup(attributes) { + return new Sup(attributes); + } + static ul(attributes) { + return new Ul(attributes); + } +} + +;// ./src/core/xfa/setup.js + + + + + + + + + +const NamespaceSetUp = { + config: ConfigNamespace, + connection: ConnectionSetNamespace, + datasets: DatasetsNamespace, + localeSet: LocaleSetNamespace, + signature: SignatureNamespace, + stylesheet: StylesheetNamespace, + template: TemplateNamespace, + xdp: XdpNamespace, + xhtml: XhtmlNamespace +}; + +;// ./src/core/xfa/unknown.js + + +class UnknownNamespace { + constructor(nsId) { + this.namespaceId = nsId; + } + [$buildXFAObject](name, attributes) { + return new XmlObject(this.namespaceId, name, attributes); + } +} + +;// ./src/core/xfa/builder.js + + + + + + + +class Root extends XFAObject { + constructor(ids) { + super(-1, "root", Object.create(null)); + this.element = null; + this[$ids] = ids; + } + [$onChild](child) { + this.element = child; + return true; + } + [$finalize]() { + super[$finalize](); + if (this.element.template instanceof Template) { + this[$ids].set($root, this.element); + this.element.template[$resolvePrototypes](this[$ids]); + this.element.template[$ids] = this[$ids]; + } + } +} +class Empty extends XFAObject { + constructor() { + super(-1, "", Object.create(null)); + } + [$onChild](_) { + return false; + } +} +class Builder { + constructor(rootNameSpace = null) { + this._namespaceStack = []; + this._nsAgnosticLevel = 0; + this._namespacePrefixes = new Map(); + this._namespaces = new Map(); + this._nextNsId = Math.max(...Object.values(NamespaceIds).map(({ + id + }) => id)); + this._currentNamespace = rootNameSpace || new UnknownNamespace(++this._nextNsId); + } + buildRoot(ids) { + return new Root(ids); + } + build({ + nsPrefix, + name, + attributes, + namespace, + prefixes + }) { + const hasNamespaceDef = namespace !== null; + if (hasNamespaceDef) { + this._namespaceStack.push(this._currentNamespace); + this._currentNamespace = this._searchNamespace(namespace); + } + if (prefixes) { + this._addNamespacePrefix(prefixes); + } + if (attributes.hasOwnProperty($nsAttributes)) { + const dataTemplate = NamespaceSetUp.datasets; + const nsAttrs = attributes[$nsAttributes]; + let xfaAttrs = null; + for (const [ns, attrs] of Object.entries(nsAttrs)) { + const nsToUse = this._getNamespaceToUse(ns); + if (nsToUse === dataTemplate) { + xfaAttrs = { + xfa: attrs + }; + break; + } + } + if (xfaAttrs) { + attributes[$nsAttributes] = xfaAttrs; + } else { + delete attributes[$nsAttributes]; + } + } + const namespaceToUse = this._getNamespaceToUse(nsPrefix); + const node = namespaceToUse?.[$buildXFAObject](name, attributes) || new Empty(); + if (node[$isNsAgnostic]()) { + this._nsAgnosticLevel++; + } + if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) { + node[$cleanup] = { + hasNamespace: hasNamespaceDef, + prefixes, + nsAgnostic: node[$isNsAgnostic]() + }; + } + return node; + } + isNsAgnostic() { + return this._nsAgnosticLevel > 0; + } + _searchNamespace(nsName) { + let ns = this._namespaces.get(nsName); + if (ns) { + return ns; + } + for (const [name, { + check + }] of Object.entries(NamespaceIds)) { + if (check(nsName)) { + ns = NamespaceSetUp[name]; + if (ns) { + this._namespaces.set(nsName, ns); + return ns; + } + break; + } + } + ns = new UnknownNamespace(++this._nextNsId); + this._namespaces.set(nsName, ns); + return ns; + } + _addNamespacePrefix(prefixes) { + for (const { + prefix, + value + } of prefixes) { + const namespace = this._searchNamespace(value); + let prefixStack = this._namespacePrefixes.get(prefix); + if (!prefixStack) { + prefixStack = []; + this._namespacePrefixes.set(prefix, prefixStack); + } + prefixStack.push(namespace); + } + } + _getNamespaceToUse(prefix) { + if (!prefix) { + return this._currentNamespace; + } + const prefixStack = this._namespacePrefixes.get(prefix); + if (prefixStack?.length > 0) { + return prefixStack.at(-1); + } + warn(`Unknown namespace prefix: ${prefix}.`); + return null; + } + clean(data) { + const { + hasNamespace, + prefixes, + nsAgnostic + } = data; + if (hasNamespace) { + this._currentNamespace = this._namespaceStack.pop(); + } + if (prefixes) { + prefixes.forEach(({ + prefix + }) => { + this._namespacePrefixes.get(prefix).pop(); + }); + } + if (nsAgnostic) { + this._nsAgnosticLevel--; + } + } +} + +;// ./src/core/xfa/parser.js + + + + +class XFAParser extends XMLParserBase { + constructor(rootNameSpace = null, richText = false) { + super(); + this._builder = new Builder(rootNameSpace); + this._stack = []; + this._globalData = { + usedTypefaces: new Set() + }; + this._ids = new Map(); + this._current = this._builder.buildRoot(this._ids); + this._errorCode = XMLParserErrorCode.NoError; + this._whiteRegex = /^\s+$/; + this._nbsps = /\xa0+/g; + this._richText = richText; + } + parse(data) { + this.parseXml(data); + if (this._errorCode !== XMLParserErrorCode.NoError) { + return undefined; + } + this._current[$finalize](); + return this._current.element; + } + onText(text) { + text = text.replace(this._nbsps, match => match.slice(1) + " "); + if (this._richText || this._current[$acceptWhitespace]()) { + this._current[$onText](text, this._richText); + return; + } + if (this._whiteRegex.test(text)) { + return; + } + this._current[$onText](text.trim()); + } + onCdata(text) { + this._current[$onText](text); + } + _mkAttributes(attributes, tagName) { + let namespace = null; + let prefixes = null; + const attributeObj = Object.create({}); + for (const { + name, + value + } of attributes) { + if (name === "xmlns") { + if (!namespace) { + namespace = value; + } else { + warn(`XFA - multiple namespace definition in <${tagName}>`); + } + } else if (name.startsWith("xmlns:")) { + const prefix = name.substring("xmlns:".length); + prefixes ??= []; + prefixes.push({ + prefix, + value + }); + } else { + const i = name.indexOf(":"); + if (i === -1) { + attributeObj[name] = value; + } else { + const nsAttrs = attributeObj[$nsAttributes] ??= Object.create(null); + const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)]; + const attrs = nsAttrs[ns] ||= Object.create(null); + attrs[attrName] = value; + } + } + } + return [namespace, prefixes, attributeObj]; + } + _getNameAndPrefix(name, nsAgnostic) { + const i = name.indexOf(":"); + if (i === -1) { + return [name, null]; + } + return [name.substring(i + 1), nsAgnostic ? "" : name.substring(0, i)]; + } + onBeginElement(tagName, attributes, isEmpty) { + const [namespace, prefixes, attributesObj] = this._mkAttributes(attributes, tagName); + const [name, nsPrefix] = this._getNameAndPrefix(tagName, this._builder.isNsAgnostic()); + const node = this._builder.build({ + nsPrefix, + name, + attributes: attributesObj, + namespace, + prefixes + }); + node[$globalData] = this._globalData; + if (isEmpty) { + node[$finalize](); + if (this._current[$onChild](node)) { + node[$setId](this._ids); + } + node[$clean](this._builder); + return; + } + this._stack.push(this._current); + this._current = node; + } + onEndElement(name) { + const node = this._current; + if (node[$isCDATAXml]() && typeof node[$content] === "string") { + const parser = new XFAParser(); + parser._globalData = this._globalData; + const root = parser.parse(node[$content]); + node[$content] = null; + node[$onChild](root); + } + node[$finalize](); + this._current = this._stack.pop(); + if (this._current[$onChild](node)) { + node[$setId](this._ids); + } + node[$clean](this._builder); + } + onError(code) { + this._errorCode = code; + } +} + +;// ./src/core/xfa/factory.js + + + + + + + + +class XFAFactory { + constructor(data) { + try { + this.root = new XFAParser().parse(XFAFactory._createDocument(data)); + const binder = new Binder(this.root); + this.form = binder.bind(); + this.dataHandler = new DataHandler(this.root, binder.getData()); + this.form[$globalData].template = this.form; + } catch (e) { + warn(`XFA - an error occurred during parsing and binding: ${e}`); + } + } + isValid() { + return !!(this.root && this.form); + } + _createPagesHelper() { + const iterator = this.form[$toPages](); + return new Promise((resolve, reject) => { + const nextIteration = () => { + try { + const value = iterator.next(); + if (value.done) { + resolve(value.value); + } else { + setTimeout(nextIteration, 0); + } + } catch (e) { + reject(e); + } + }; + setTimeout(nextIteration, 0); + }); + } + async _createPages() { + try { + this.pages = await this._createPagesHelper(); + this.dims = this.pages.children.map(c => { + const { + width, + height + } = c.attributes.style; + return [0, 0, parseInt(width), parseInt(height)]; + }); + } catch (e) { + warn(`XFA - an error occurred during layout: ${e}`); + } + } + getBoundingBox(pageIndex) { + return this.dims[pageIndex]; + } + async getNumPages() { + if (!this.pages) { + await this._createPages(); + } + return this.dims.length; + } + setImages(images) { + this.form[$globalData].images = images; + } + setFonts(fonts) { + this.form[$globalData].fontFinder = new FontFinder(fonts); + const missingFonts = []; + for (let typeface of this.form[$globalData].usedTypefaces) { + typeface = stripQuotes(typeface); + const font = this.form[$globalData].fontFinder.find(typeface); + if (!font) { + missingFonts.push(typeface); + } + } + if (missingFonts.length > 0) { + return missingFonts; + } + return null; + } + appendFonts(fonts, reallyMissingFonts) { + this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts); + } + async getPages() { + if (!this.pages) { + await this._createPages(); + } + const pages = this.pages; + this.pages = null; + return pages; + } + serializeData(storage) { + return this.dataHandler.serialize(storage); + } + static _createDocument(data) { + if (!data["/xdp:xdp"]) { + return data["xdp:xdp"]; + } + return Object.values(data).join(""); + } + static getRichTextAsHtml(rc) { + if (!rc || typeof rc !== "string") { + return null; + } + try { + let root = new XFAParser(XhtmlNamespace, true).parse(rc); + if (!["body", "xhtml"].includes(root[$nodeName])) { + const newRoot = XhtmlNamespace.body({}); + newRoot[$appendChild](root); + root = newRoot; + } + const result = root[$toHTML](); + if (!result.success) { + return null; + } + const { + html + } = result; + const { + attributes + } = html; + if (attributes) { + if (attributes.class) { + attributes.class = attributes.class.filter(attr => !attr.startsWith("xfa")); + } + attributes.dir = "auto"; + } + return { + html, + str: root[$text]() + }; + } catch (e) { + warn(`XFA - an error occurred during parsing of rich text: ${e}`); + } + return null; + } +} + +;// ./src/core/annotation.js + + + + + + + + + + + + + + + +class AnnotationFactory { + static createGlobals(pdfManager) { + return Promise.all([pdfManager.ensureCatalog("acroForm"), pdfManager.ensureDoc("xfaDatasets"), pdfManager.ensureCatalog("structTreeRoot"), pdfManager.ensureCatalog("baseUrl"), pdfManager.ensureCatalog("attachments"), pdfManager.ensureCatalog("globalColorSpaceCache")]).then(([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments, globalColorSpaceCache]) => ({ + pdfManager, + acroForm: acroForm instanceof Dict ? acroForm : Dict.empty, + xfaDatasets, + structTreeRoot, + baseUrl, + attachments, + globalColorSpaceCache + }), reason => { + warn(`createGlobals: "${reason}".`); + return null; + }); + } + static async create(xref, ref, annotationGlobals, idFactory, collectFields, orphanFields, pageRef) { + const pageIndex = collectFields ? await this._getPageIndex(xref, ref, annotationGlobals.pdfManager) : null; + return annotationGlobals.pdfManager.ensure(this, "_create", [xref, ref, annotationGlobals, idFactory, collectFields, orphanFields, pageIndex, pageRef]); + } + static _create(xref, ref, annotationGlobals, idFactory, collectFields = false, orphanFields = null, pageIndex = null, pageRef = null) { + const dict = xref.fetchIfRef(ref); + if (!(dict instanceof Dict)) { + return undefined; + } + const { + acroForm, + pdfManager + } = annotationGlobals; + const id = ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`; + let subtype = dict.get("Subtype"); + subtype = subtype instanceof Name ? subtype.name : null; + const parameters = { + xref, + ref, + dict, + subtype, + id, + annotationGlobals, + collectFields, + orphanFields, + needAppearances: !collectFields && acroForm.get("NeedAppearances") === true, + pageIndex, + evaluatorOptions: pdfManager.evaluatorOptions, + pageRef + }; + switch (subtype) { + case "Link": + return new LinkAnnotation(parameters); + case "Text": + return new TextAnnotation(parameters); + case "Widget": + let fieldType = getInheritableProperty({ + dict, + key: "FT" + }); + fieldType = fieldType instanceof Name ? fieldType.name : null; + switch (fieldType) { + case "Tx": + return new TextWidgetAnnotation(parameters); + case "Btn": + return new ButtonWidgetAnnotation(parameters); + case "Ch": + return new ChoiceWidgetAnnotation(parameters); + case "Sig": + return new SignatureWidgetAnnotation(parameters); + } + warn(`Unimplemented widget field type "${fieldType}", ` + "falling back to base field type."); + return new WidgetAnnotation(parameters); + case "Popup": + return new PopupAnnotation(parameters); + case "FreeText": + return new FreeTextAnnotation(parameters); + case "Line": + return new LineAnnotation(parameters); + case "Square": + return new SquareAnnotation(parameters); + case "Circle": + return new CircleAnnotation(parameters); + case "PolyLine": + return new PolylineAnnotation(parameters); + case "Polygon": + return new PolygonAnnotation(parameters); + case "Caret": + return new CaretAnnotation(parameters); + case "Ink": + return new InkAnnotation(parameters); + case "Highlight": + return new HighlightAnnotation(parameters); + case "Underline": + return new UnderlineAnnotation(parameters); + case "Squiggly": + return new SquigglyAnnotation(parameters); + case "StrikeOut": + return new StrikeOutAnnotation(parameters); + case "Stamp": + return new StampAnnotation(parameters); + case "FileAttachment": + return new FileAttachmentAnnotation(parameters); + default: + if (!collectFields) { + if (!subtype) { + warn("Annotation is missing the required /Subtype."); + } else { + warn(`Unimplemented annotation type "${subtype}", ` + "falling back to base annotation."); + } + } + return new Annotation(parameters); + } + } + static async _getPageIndex(xref, ref, pdfManager) { + try { + const annotDict = await xref.fetchIfRefAsync(ref); + if (!(annotDict instanceof Dict)) { + return -1; + } + const pageRef = annotDict.getRaw("P"); + if (pageRef instanceof Ref) { + try { + const pageIndex = await pdfManager.ensureCatalog("getPageIndex", [pageRef]); + return pageIndex; + } catch (ex) { + info(`_getPageIndex -- not a valid page reference: "${ex}".`); + } + } + if (annotDict.has("Kids")) { + return -1; + } + const numPages = await pdfManager.ensureDoc("numPages"); + for (let pageIndex = 0; pageIndex < numPages; pageIndex++) { + const page = await pdfManager.getPage(pageIndex); + const annotations = await pdfManager.ensure(page, "annotations"); + for (const annotRef of annotations) { + if (annotRef instanceof Ref && isRefsEqual(annotRef, ref)) { + return pageIndex; + } + } + } + } catch (ex) { + warn(`_getPageIndex: "${ex}".`); + } + return -1; + } + static generateImages(annotations, xref, isOffscreenCanvasSupported) { + if (!isOffscreenCanvasSupported) { + warn("generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images."); + return null; + } + let imagePromises; + for (const { + bitmapId, + bitmap + } of annotations) { + if (!bitmap) { + continue; + } + imagePromises ||= new Map(); + imagePromises.set(bitmapId, StampAnnotation.createImage(bitmap, xref)); + } + return imagePromises; + } + static async saveNewAnnotations(evaluator, task, annotations, imagePromises, changes) { + const xref = evaluator.xref; + let baseFontRef; + const promises = []; + const { + isOffscreenCanvasSupported + } = evaluator.options; + for (const annotation of annotations) { + if (annotation.deleted) { + continue; + } + switch (annotation.annotationType) { + case AnnotationEditorType.FREETEXT: + if (!baseFontRef) { + const baseFont = new Dict(xref); + baseFont.setIfName("BaseFont", "Helvetica"); + baseFont.setIfName("Type", "Font"); + baseFont.setIfName("Subtype", "Type1"); + baseFont.setIfName("Encoding", "WinAnsiEncoding"); + baseFontRef = xref.getNewTemporaryRef(); + changes.put(baseFontRef, { + data: baseFont + }); + } + promises.push(FreeTextAnnotation.createNewAnnotation(xref, annotation, changes, { + evaluator, + task, + baseFontRef + })); + break; + case AnnotationEditorType.HIGHLIGHT: + if (annotation.quadPoints) { + promises.push(HighlightAnnotation.createNewAnnotation(xref, annotation, changes)); + } else { + promises.push(InkAnnotation.createNewAnnotation(xref, annotation, changes)); + } + break; + case AnnotationEditorType.INK: + promises.push(InkAnnotation.createNewAnnotation(xref, annotation, changes)); + break; + case AnnotationEditorType.STAMP: + const image = isOffscreenCanvasSupported ? await imagePromises?.get(annotation.bitmapId) : null; + if (image?.imageStream) { + const { + imageStream, + smaskStream + } = image; + if (smaskStream) { + const smaskRef = xref.getNewTemporaryRef(); + changes.put(smaskRef, { + data: smaskStream + }); + imageStream.dict.set("SMask", smaskRef); + } + const imageRef = image.imageRef = xref.getNewTemporaryRef(); + changes.put(imageRef, { + data: imageStream + }); + image.imageStream = image.smaskStream = null; + } + promises.push(StampAnnotation.createNewAnnotation(xref, annotation, changes, { + image + })); + break; + case AnnotationEditorType.SIGNATURE: + promises.push(StampAnnotation.createNewAnnotation(xref, annotation, changes, {})); + break; + } + } + return { + annotations: (await Promise.all(promises)).flat() + }; + } + static async printNewAnnotations(annotationGlobals, evaluator, task, annotations, imagePromises) { + if (!annotations) { + return null; + } + const { + options, + xref + } = evaluator; + const promises = []; + for (const annotation of annotations) { + if (annotation.deleted) { + continue; + } + switch (annotation.annotationType) { + case AnnotationEditorType.FREETEXT: + promises.push(FreeTextAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluator, + task, + evaluatorOptions: options + })); + break; + case AnnotationEditorType.HIGHLIGHT: + if (annotation.quadPoints) { + promises.push(HighlightAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluatorOptions: options + })); + } else { + promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluatorOptions: options + })); + } + break; + case AnnotationEditorType.INK: + promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluatorOptions: options + })); + break; + case AnnotationEditorType.STAMP: + const image = options.isOffscreenCanvasSupported ? await imagePromises?.get(annotation.bitmapId) : null; + if (image?.imageStream) { + const { + imageStream, + smaskStream + } = image; + if (smaskStream) { + imageStream.dict.set("SMask", smaskStream); + } + image.imageRef = new JpegStream(imageStream, imageStream.length); + image.imageStream = image.smaskStream = null; + } + promises.push(StampAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + image, + evaluatorOptions: options + })); + break; + case AnnotationEditorType.SIGNATURE: + promises.push(StampAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluatorOptions: options + })); + break; + } + } + return Promise.all(promises); + } +} +function getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) { + if (!Array.isArray(color)) { + return defaultColor; + } + const rgbColor = defaultColor || new Uint8ClampedArray(3); + switch (color.length) { + case 0: + return null; + case 1: + ColorSpaceUtils.gray.getRgbItem(color, 0, rgbColor, 0); + return rgbColor; + case 3: + ColorSpaceUtils.rgb.getRgbItem(color, 0, rgbColor, 0); + return rgbColor; + case 4: + ColorSpaceUtils.cmyk.getRgbItem(color, 0, rgbColor, 0); + return rgbColor; + default: + return defaultColor; + } +} +function getPdfColorArray(color, defaultValue = null) { + return color && Array.from(color, c => c / 255) || defaultValue; +} +function getQuadPoints(dict, rect) { + const quadPoints = dict.getArray("QuadPoints"); + if (!isNumberArray(quadPoints, null) || quadPoints.length === 0 || quadPoints.length % 8 > 0) { + return null; + } + const newQuadPoints = new Float32Array(quadPoints.length); + for (let i = 0, ii = quadPoints.length; i < ii; i += 8) { + const [x1, y1, x2, y2, x3, y3, x4, y4] = quadPoints.slice(i, i + 8); + const minX = Math.min(x1, x2, x3, x4); + const maxX = Math.max(x1, x2, x3, x4); + const minY = Math.min(y1, y2, y3, y4); + const maxY = Math.max(y1, y2, y3, y4); + if (rect !== null && (minX < rect[0] || maxX > rect[2] || minY < rect[1] || maxY > rect[3])) { + return null; + } + newQuadPoints.set([minX, maxY, maxX, maxY, minX, minY, maxX, minY], i); + } + return newQuadPoints; +} +function getTransformMatrix(rect, bbox, matrix) { + const minMax = new Float32Array([Infinity, Infinity, -Infinity, -Infinity]); + Util.axialAlignedBoundingBox(bbox, matrix, minMax); + const [minX, minY, maxX, maxY] = minMax; + if (minX === maxX || minY === maxY) { + return [1, 0, 0, 1, rect[0], rect[1]]; + } + const xRatio = (rect[2] - rect[0]) / (maxX - minX); + const yRatio = (rect[3] - rect[1]) / (maxY - minY); + return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio]; +} +class Annotation { + constructor(params) { + const { + dict, + xref, + annotationGlobals, + ref, + orphanFields + } = params; + const parentRef = orphanFields?.get(ref); + if (parentRef) { + dict.set("Parent", parentRef); + } + this.setTitle(dict.get("T")); + this.setContents(dict.get("Contents")); + this.setModificationDate(dict.get("M")); + this.setFlags(dict.get("F")); + this.setRectangle(dict.getArray("Rect")); + this.setColor(dict.getArray("C")); + this.setBorderStyle(dict); + this.setAppearance(dict); + this.setOptionalContent(dict); + const MK = dict.get("MK"); + this.setBorderAndBackgroundColors(MK); + this.setRotation(MK, dict); + this.ref = params.ref instanceof Ref ? params.ref : null; + this._streams = []; + if (this.appearance) { + this._streams.push(this.appearance); + } + const isLocked = !!(this.flags & AnnotationFlag.LOCKED); + const isContentLocked = !!(this.flags & AnnotationFlag.LOCKEDCONTENTS); + this.data = { + annotationFlags: this.flags, + borderStyle: this.borderStyle, + color: this.color, + backgroundColor: this.backgroundColor, + borderColor: this.borderColor, + rotation: this.rotation, + contentsObj: this._contents, + hasAppearance: !!this.appearance, + id: params.id, + modificationDate: this.modificationDate, + rect: this.rectangle, + subtype: params.subtype, + hasOwnCanvas: false, + noRotate: !!(this.flags & AnnotationFlag.NOROTATE), + noHTML: isLocked && isContentLocked, + isEditable: false, + structParent: -1 + }; + if (annotationGlobals.structTreeRoot) { + let structParent = dict.get("StructParent"); + this.data.structParent = structParent = Number.isInteger(structParent) && structParent >= 0 ? structParent : -1; + annotationGlobals.structTreeRoot.addAnnotationIdToPage(params.pageRef, structParent); + } + if (params.collectFields) { + const kids = dict.get("Kids"); + if (Array.isArray(kids)) { + const kidIds = []; + for (const kid of kids) { + if (kid instanceof Ref) { + kidIds.push(kid.toString()); + } + } + if (kidIds.length !== 0) { + this.data.kidIds = kidIds; + } + } + this.data.actions = collectActions(xref, dict, AnnotationActionEventType); + this.data.fieldName = this._constructFieldName(dict); + this.data.pageIndex = params.pageIndex; + } + const it = dict.get("IT"); + if (it instanceof Name) { + this.data.it = it.name; + } + this._isOffscreenCanvasSupported = params.evaluatorOptions.isOffscreenCanvasSupported; + this._fallbackFontDict = null; + this._needAppearances = false; + } + _hasFlag(flags, flag) { + return !!(flags & flag); + } + _buildFlags(noView, noPrint) { + let { + flags + } = this; + if (noView === undefined) { + if (noPrint === undefined) { + return undefined; + } + if (noPrint) { + return flags & ~AnnotationFlag.PRINT; + } + return flags & ~AnnotationFlag.HIDDEN | AnnotationFlag.PRINT; + } + if (noView) { + flags |= AnnotationFlag.PRINT; + if (noPrint) { + return flags & ~AnnotationFlag.NOVIEW | AnnotationFlag.HIDDEN; + } + return flags & ~AnnotationFlag.HIDDEN | AnnotationFlag.NOVIEW; + } + flags &= ~(AnnotationFlag.HIDDEN | AnnotationFlag.NOVIEW); + if (noPrint) { + return flags & ~AnnotationFlag.PRINT; + } + return flags | AnnotationFlag.PRINT; + } + _isViewable(flags) { + return !this._hasFlag(flags, AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, AnnotationFlag.NOVIEW); + } + _isPrintable(flags) { + return this._hasFlag(flags, AnnotationFlag.PRINT) && !this._hasFlag(flags, AnnotationFlag.HIDDEN) && !this._hasFlag(flags, AnnotationFlag.INVISIBLE); + } + mustBeViewed(annotationStorage, _renderForms) { + const noView = annotationStorage?.get(this.data.id)?.noView; + if (noView !== undefined) { + return !noView; + } + return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN); + } + mustBePrinted(annotationStorage) { + const noPrint = annotationStorage?.get(this.data.id)?.noPrint; + if (noPrint !== undefined) { + return !noPrint; + } + return this.printable; + } + mustBeViewedWhenEditing(isEditing, modifiedIds = null) { + return isEditing ? !this.data.isEditable : !modifiedIds?.has(this.data.id); + } + get viewable() { + if (this.data.quadPoints === null) { + return false; + } + if (this.flags === 0) { + return true; + } + return this._isViewable(this.flags); + } + get printable() { + if (this.data.quadPoints === null) { + return false; + } + if (this.flags === 0) { + return false; + } + return this._isPrintable(this.flags); + } + _parseStringHelper(data) { + const str = typeof data === "string" ? stringToPDFString(data) : ""; + const dir = str && bidi(str).dir === "rtl" ? "rtl" : "ltr"; + return { + str, + dir + }; + } + setDefaultAppearance(params) { + const { + dict, + annotationGlobals + } = params; + const defaultAppearance = getInheritableProperty({ + dict, + key: "DA" + }) || annotationGlobals.acroForm.get("DA"); + this._defaultAppearance = typeof defaultAppearance === "string" ? defaultAppearance : ""; + this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance); + } + setTitle(title) { + this._title = this._parseStringHelper(title); + } + setContents(contents) { + this._contents = this._parseStringHelper(contents); + } + setModificationDate(modificationDate) { + this.modificationDate = typeof modificationDate === "string" ? modificationDate : null; + } + setFlags(flags) { + this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0; + if (this.flags & AnnotationFlag.INVISIBLE && this.constructor.name !== "Annotation") { + this.flags ^= AnnotationFlag.INVISIBLE; + } + } + hasFlag(flag) { + return this._hasFlag(this.flags, flag); + } + setRectangle(rectangle) { + this.rectangle = lookupNormalRect(rectangle, [0, 0, 0, 0]); + } + setColor(color) { + this.color = getRgbColor(color); + } + setLineEndings(lineEndings) { + this.lineEndings = ["None", "None"]; + if (Array.isArray(lineEndings) && lineEndings.length === 2) { + for (let i = 0; i < 2; i++) { + const obj = lineEndings[i]; + if (obj instanceof Name) { + switch (obj.name) { + case "None": + continue; + case "Square": + case "Circle": + case "Diamond": + case "OpenArrow": + case "ClosedArrow": + case "Butt": + case "ROpenArrow": + case "RClosedArrow": + case "Slash": + this.lineEndings[i] = obj.name; + continue; + } + } + warn(`Ignoring invalid lineEnding: ${obj}`); + } + } + } + setRotation(mk, dict) { + this.rotation = 0; + let angle = mk instanceof Dict ? mk.get("R") || 0 : dict.get("Rotate") || 0; + if (Number.isInteger(angle) && angle !== 0) { + angle %= 360; + if (angle < 0) { + angle += 360; + } + if (angle % 90 === 0) { + this.rotation = angle; + } + } + } + setBorderAndBackgroundColors(mk) { + if (mk instanceof Dict) { + this.borderColor = getRgbColor(mk.getArray("BC"), null); + this.backgroundColor = getRgbColor(mk.getArray("BG"), null); + } else { + this.borderColor = this.backgroundColor = null; + } + } + setBorderStyle(borderStyle) { + this.borderStyle = new AnnotationBorderStyle(); + if (!(borderStyle instanceof Dict)) { + return; + } + if (borderStyle.has("BS")) { + const dict = borderStyle.get("BS"); + if (dict instanceof Dict) { + const dictType = dict.get("Type"); + if (!dictType || isName(dictType, "Border")) { + this.borderStyle.setWidth(dict.get("W"), this.rectangle); + this.borderStyle.setStyle(dict.get("S")); + this.borderStyle.setDashArray(dict.getArray("D")); + } + } + } else if (borderStyle.has("Border")) { + const array = borderStyle.getArray("Border"); + if (Array.isArray(array) && array.length >= 3) { + this.borderStyle.setHorizontalCornerRadius(array[0]); + this.borderStyle.setVerticalCornerRadius(array[1]); + this.borderStyle.setWidth(array[2], this.rectangle); + if (array.length === 4) { + this.borderStyle.setDashArray(array[3], true); + } + } + } else { + this.borderStyle.setWidth(0); + } + } + setAppearance(dict) { + this.appearance = null; + const appearanceStates = dict.get("AP"); + if (!(appearanceStates instanceof Dict)) { + return; + } + const normalAppearanceState = appearanceStates.get("N"); + if (normalAppearanceState instanceof BaseStream) { + this.appearance = normalAppearanceState; + return; + } + if (!(normalAppearanceState instanceof Dict)) { + return; + } + const as = dict.get("AS"); + if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) { + return; + } + const appearance = normalAppearanceState.get(as.name); + if (appearance instanceof BaseStream) { + this.appearance = appearance; + } + } + setOptionalContent(dict) { + this.oc = null; + const oc = dict.get("OC"); + if (oc instanceof Name) { + warn("setOptionalContent: Support for /Name-entry is not implemented."); + } else if (oc instanceof Dict) { + this.oc = oc; + } + } + async loadResources(keys, appearance) { + const resources = await appearance.dict.getAsync("Resources"); + if (resources) { + await ObjectLoader.load(resources, keys, resources.xref); + } + return resources; + } + async getOperatorList(evaluator, task, intent, annotationStorage) { + const { + hasOwnCanvas, + id, + rect + } = this.data; + let appearance = this.appearance; + const isUsingOwnCanvas = !!(hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY); + if (isUsingOwnCanvas && (this.width === 0 || this.height === 0)) { + this.data.hasOwnCanvas = false; + return { + opList: new OperatorList(), + separateForm: false, + separateCanvas: false + }; + } + if (!appearance) { + if (!isUsingOwnCanvas) { + return { + opList: new OperatorList(), + separateForm: false, + separateCanvas: false + }; + } + appearance = new StringStream(""); + appearance.dict = new Dict(); + } + const appearanceDict = appearance.dict; + const resources = await this.loadResources(RESOURCES_KEYS_OPERATOR_LIST, appearance); + const bbox = lookupRect(appearanceDict.getArray("BBox"), [0, 0, 1, 1]); + const matrix = lookupMatrix(appearanceDict.getArray("Matrix"), IDENTITY_MATRIX); + const transform = getTransformMatrix(rect, bbox, matrix); + const opList = new OperatorList(); + let optionalContent; + if (this.oc) { + optionalContent = await evaluator.parseMarkedContentProps(this.oc, null); + } + if (optionalContent !== undefined) { + opList.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + opList.addOp(OPS.beginAnnotation, [id, rect, transform, matrix, isUsingOwnCanvas]); + await evaluator.getOperatorList({ + stream: appearance, + task, + resources, + operatorList: opList, + fallbackFontDict: this._fallbackFontDict + }); + opList.addOp(OPS.endAnnotation, []); + if (optionalContent !== undefined) { + opList.addOp(OPS.endMarkedContent, []); + } + this.reset(); + return { + opList, + separateForm: false, + separateCanvas: isUsingOwnCanvas + }; + } + async save(evaluator, task, annotationStorage, changes) { + return null; + } + get overlaysTextContent() { + return false; + } + get hasTextContent() { + return false; + } + async extractTextContent(evaluator, task, viewBox) { + if (!this.appearance) { + return; + } + const resources = await this.loadResources(RESOURCES_KEYS_TEXT_CONTENT, this.appearance); + const text = []; + const buffer = []; + let firstPosition = null; + const sink = { + desiredSize: Math.Infinity, + ready: true, + enqueue(chunk, size) { + for (const item of chunk.items) { + if (item.str === undefined) { + continue; + } + firstPosition ||= item.transform.slice(-2); + buffer.push(item.str); + if (item.hasEOL) { + text.push(buffer.join("").trimEnd()); + buffer.length = 0; + } + } + } + }; + await evaluator.getTextContent({ + stream: this.appearance, + task, + resources, + includeMarkedContent: true, + keepWhiteSpace: true, + sink, + viewBox + }); + this.reset(); + if (buffer.length) { + text.push(buffer.join("").trimEnd()); + } + if (text.length > 1 || text[0]) { + const appearanceDict = this.appearance.dict; + const bbox = lookupRect(appearanceDict.getArray("BBox"), null); + const matrix = lookupMatrix(appearanceDict.getArray("Matrix"), null); + this.data.textPosition = this._transformPoint(firstPosition, bbox, matrix); + this.data.textContent = text; + } + } + _transformPoint(coords, bbox, matrix) { + const { + rect + } = this.data; + bbox ||= [0, 0, 1, 1]; + matrix ||= [1, 0, 0, 1, 0, 0]; + const transform = getTransformMatrix(rect, bbox, matrix); + transform[4] -= rect[0]; + transform[5] -= rect[1]; + const p = coords.slice(); + Util.applyTransform(p, transform); + Util.applyTransform(p, matrix); + return p; + } + getFieldObject() { + if (this.data.kidIds) { + return { + id: this.data.id, + actions: this.data.actions, + name: this.data.fieldName, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + type: "", + kidIds: this.data.kidIds, + page: this.data.pageIndex, + rotation: this.rotation + }; + } + return null; + } + reset() { + for (const stream of this._streams) { + stream.reset(); + } + } + _constructFieldName(dict) { + if (!dict.has("T") && !dict.has("Parent")) { + warn("Unknown field name, falling back to empty field name."); + return ""; + } + if (!dict.has("Parent")) { + return stringToPDFString(dict.get("T")); + } + const fieldName = []; + if (dict.has("T")) { + fieldName.unshift(stringToPDFString(dict.get("T"))); + } + let loopDict = dict; + const visited = new RefSet(); + if (dict.objId) { + visited.put(dict.objId); + } + while (loopDict.has("Parent")) { + loopDict = loopDict.get("Parent"); + if (!(loopDict instanceof Dict) || loopDict.objId && visited.has(loopDict.objId)) { + break; + } + if (loopDict.objId) { + visited.put(loopDict.objId); + } + if (loopDict.has("T")) { + fieldName.unshift(stringToPDFString(loopDict.get("T"))); + } + } + return fieldName.join("."); + } + get width() { + return this.data.rect[2] - this.data.rect[0]; + } + get height() { + return this.data.rect[3] - this.data.rect[1]; + } +} +class AnnotationBorderStyle { + constructor() { + this.width = 1; + this.rawWidth = 1; + this.style = AnnotationBorderStyleType.SOLID; + this.dashArray = [3]; + this.horizontalCornerRadius = 0; + this.verticalCornerRadius = 0; + } + setWidth(width, rect = [0, 0, 0, 0]) { + if (width instanceof Name) { + this.width = 0; + return; + } + if (typeof width === "number") { + if (width > 0) { + this.rawWidth = width; + const maxWidth = (rect[2] - rect[0]) / 2; + const maxHeight = (rect[3] - rect[1]) / 2; + if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) { + warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`); + width = 1; + } + } + this.width = width; + } + } + setStyle(style) { + if (!(style instanceof Name)) { + return; + } + switch (style.name) { + case "S": + this.style = AnnotationBorderStyleType.SOLID; + break; + case "D": + this.style = AnnotationBorderStyleType.DASHED; + break; + case "B": + this.style = AnnotationBorderStyleType.BEVELED; + break; + case "I": + this.style = AnnotationBorderStyleType.INSET; + break; + case "U": + this.style = AnnotationBorderStyleType.UNDERLINE; + break; + default: + break; + } + } + setDashArray(dashArray, forceStyle = false) { + if (Array.isArray(dashArray)) { + let isValid = true; + let allZeros = true; + for (const element of dashArray) { + const validNumber = +element >= 0; + if (!validNumber) { + isValid = false; + break; + } else if (element > 0) { + allZeros = false; + } + } + if (dashArray.length === 0 || isValid && !allZeros) { + this.dashArray = dashArray; + if (forceStyle) { + this.setStyle(Name.get("D")); + } + } else { + this.width = 0; + } + } else if (dashArray) { + this.width = 0; + } + } + setHorizontalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.horizontalCornerRadius = radius; + } + } + setVerticalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.verticalCornerRadius = radius; + } + } +} +class MarkupAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict + } = params; + if (dict.has("IRT")) { + const rawIRT = dict.getRaw("IRT"); + this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null; + const rt = dict.get("RT"); + this.data.replyType = rt instanceof Name ? rt.name : AnnotationReplyType.REPLY; + } + let popupRef = null; + if (this.data.replyType === AnnotationReplyType.GROUP) { + const parent = dict.get("IRT"); + this.setTitle(parent.get("T")); + this.data.titleObj = this._title; + this.setContents(parent.get("Contents")); + this.data.contentsObj = this._contents; + if (!parent.has("CreationDate")) { + this.data.creationDate = null; + } else { + this.setCreationDate(parent.get("CreationDate")); + this.data.creationDate = this.creationDate; + } + if (!parent.has("M")) { + this.data.modificationDate = null; + } else { + this.setModificationDate(parent.get("M")); + this.data.modificationDate = this.modificationDate; + } + popupRef = parent.getRaw("Popup"); + if (!parent.has("C")) { + this.data.color = null; + } else { + this.setColor(parent.getArray("C")); + this.data.color = this.color; + } + } else { + this.data.titleObj = this._title; + this.setCreationDate(dict.get("CreationDate")); + this.data.creationDate = this.creationDate; + popupRef = dict.getRaw("Popup"); + if (!dict.has("C")) { + this.data.color = null; + } + } + this.data.popupRef = popupRef instanceof Ref ? popupRef.toString() : null; + if (dict.has("RC")) { + this.data.richText = XFAFactory.getRichTextAsHtml(dict.get("RC")); + } + } + setCreationDate(creationDate) { + this.creationDate = typeof creationDate === "string" ? creationDate : null; + } + _setDefaultAppearance({ + xref, + extra, + strokeColor, + fillColor, + blendMode, + strokeAlpha, + fillAlpha, + pointsCallback + }) { + const bbox = this.data.rect = [Infinity, Infinity, -Infinity, -Infinity]; + const buffer = ["q"]; + if (extra) { + buffer.push(extra); + } + if (strokeColor) { + buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`); + } + if (fillColor) { + buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`); + } + const pointsArray = this.data.quadPoints || Float32Array.from([this.rectangle[0], this.rectangle[3], this.rectangle[2], this.rectangle[3], this.rectangle[0], this.rectangle[1], this.rectangle[2], this.rectangle[1]]); + for (let i = 0, ii = pointsArray.length; i < ii; i += 8) { + const points = pointsCallback(buffer, pointsArray.subarray(i, i + 8)); + Util.rectBoundingBox(...points, bbox); + } + buffer.push("Q"); + const formDict = new Dict(xref); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.setIfName("Subtype", "Form"); + const appearanceStream = new StringStream(buffer.join(" ")); + appearanceStream.dict = appearanceStreamDict; + formDict.set("Fm0", appearanceStream); + const gsDict = new Dict(xref); + if (blendMode) { + gsDict.setIfName("BM", blendMode); + } + gsDict.setIfNumber("CA", strokeAlpha); + gsDict.setIfNumber("ca", fillAlpha); + const stateDict = new Dict(xref); + stateDict.set("GS0", gsDict); + const resources = new Dict(xref); + resources.set("ExtGState", stateDict); + resources.set("XObject", formDict); + const appearanceDict = new Dict(xref); + appearanceDict.set("Resources", resources); + appearanceDict.set("BBox", bbox); + this.appearance = new StringStream("/GS0 gs /Fm0 Do"); + this.appearance.dict = appearanceDict; + this._streams.push(this.appearance, appearanceStream); + } + static async createNewAnnotation(xref, annotation, changes, params) { + const annotationRef = annotation.ref ||= xref.getNewTemporaryRef(); + const ap = await this.createNewAppearanceStream(annotation, xref, params); + let annotationDict; + if (ap) { + const apRef = xref.getNewTemporaryRef(); + annotationDict = this.createNewDict(annotation, xref, { + apRef + }); + changes.put(apRef, { + data: ap + }); + } else { + annotationDict = this.createNewDict(annotation, xref, {}); + } + if (Number.isInteger(annotation.parentTreeId)) { + annotationDict.set("StructParent", annotation.parentTreeId); + } + changes.put(annotationRef, { + data: annotationDict + }); + const retRef = { + ref: annotationRef + }; + if (annotation.popup) { + const popup = annotation.popup; + if (popup.deleted) { + annotationDict.delete("Popup"); + annotationDict.delete("Contents"); + annotationDict.delete("RC"); + return retRef; + } + const popupRef = popup.ref ||= xref.getNewTemporaryRef(); + popup.parent = annotationRef; + const popupDict = PopupAnnotation.createNewDict(popup, xref); + changes.put(popupRef, { + data: popupDict + }); + annotationDict.setIfDefined("Contents", stringToAsciiOrUTF16BE(popup.contents)); + annotationDict.set("Popup", popupRef); + return [retRef, { + ref: popupRef + }]; + } + return retRef; + } + static async createNewPrintAnnotation(annotationGlobals, xref, annotation, params) { + const ap = await this.createNewAppearanceStream(annotation, xref, params); + const annotationDict = this.createNewDict(annotation, xref, ap ? { + ap + } : {}); + const newAnnotation = new this.prototype.constructor({ + dict: annotationDict, + xref, + annotationGlobals, + evaluatorOptions: params.evaluatorOptions + }); + if (annotation.ref) { + newAnnotation.ref = newAnnotation.refToReplace = annotation.ref; + } + return newAnnotation; + } +} +class WidgetAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict, + xref, + annotationGlobals + } = params; + const data = this.data; + this._needAppearances = params.needAppearances; + data.annotationType = AnnotationType.WIDGET; + if (data.fieldName === undefined) { + data.fieldName = this._constructFieldName(dict); + } + if (data.actions === undefined) { + data.actions = collectActions(xref, dict, AnnotationActionEventType); + } + let fieldValue = getInheritableProperty({ + dict, + key: "V", + getArray: true + }); + data.fieldValue = this._decodeFormValue(fieldValue); + const defaultFieldValue = getInheritableProperty({ + dict, + key: "DV", + getArray: true + }); + data.defaultFieldValue = this._decodeFormValue(defaultFieldValue); + if (fieldValue === undefined && annotationGlobals.xfaDatasets) { + const path = this._title.str; + if (path) { + this._hasValueFromXFA = true; + data.fieldValue = fieldValue = annotationGlobals.xfaDatasets.getValue(path); + } + } + if (fieldValue === undefined && data.defaultFieldValue !== null) { + data.fieldValue = data.defaultFieldValue; + } + data.alternativeText = stringToPDFString(dict.get("TU") || ""); + this.setDefaultAppearance(params); + data.hasAppearance ||= this._needAppearances && data.fieldValue !== undefined && data.fieldValue !== null; + const fieldType = getInheritableProperty({ + dict, + key: "FT" + }); + data.fieldType = fieldType instanceof Name ? fieldType.name : null; + const localResources = getInheritableProperty({ + dict, + key: "DR" + }); + const acroFormResources = annotationGlobals.acroForm.get("DR"); + const appearanceResources = this.appearance?.dict.get("Resources"); + this._fieldResources = { + localResources, + acroFormResources, + appearanceResources, + mergedResources: Dict.merge({ + xref, + dictArray: [localResources, appearanceResources, acroFormResources], + mergeSubDicts: true + }) + }; + data.fieldFlags = getInheritableProperty({ + dict, + key: "Ff" + }); + if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) { + data.fieldFlags = 0; + } + data.password = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD); + data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY); + data.required = this.hasFieldFlag(AnnotationFieldFlag.REQUIRED); + data.hidden = this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN) || this._hasFlag(data.annotationFlags, AnnotationFlag.NOVIEW); + } + _decodeFormValue(formValue) { + if (Array.isArray(formValue)) { + return formValue.filter(item => typeof item === "string").map(item => stringToPDFString(item)); + } else if (formValue instanceof Name) { + return stringToPDFString(formValue.name); + } else if (typeof formValue === "string") { + return stringToPDFString(formValue); + } + return null; + } + hasFieldFlag(flag) { + return !!(this.data.fieldFlags & flag); + } + _isViewable(flags) { + return true; + } + mustBeViewed(annotationStorage, renderForms) { + if (renderForms) { + return this.viewable; + } + return super.mustBeViewed(annotationStorage, renderForms) && !this._hasFlag(this.flags, AnnotationFlag.NOVIEW); + } + getRotationMatrix(annotationStorage) { + let rotation = annotationStorage?.get(this.data.id)?.rotation; + if (rotation === undefined) { + rotation = this.rotation; + } + return rotation === 0 ? IDENTITY_MATRIX : getRotationMatrix(rotation, this.width, this.height); + } + getBorderAndBackgroundAppearances(annotationStorage) { + let rotation = annotationStorage?.get(this.data.id)?.rotation; + if (rotation === undefined) { + rotation = this.rotation; + } + if (!this.backgroundColor && !this.borderColor) { + return ""; + } + const rect = rotation === 0 || rotation === 180 ? `0 0 ${this.width} ${this.height} re` : `0 0 ${this.height} ${this.width} re`; + let str = ""; + if (this.backgroundColor) { + str = `${getPdfColor(this.backgroundColor, true)} ${rect} f `; + } + if (this.borderColor) { + const borderWidth = this.borderStyle.width || 1; + str += `${borderWidth} w ${getPdfColor(this.borderColor, false)} ${rect} S `; + } + return str; + } + async getOperatorList(evaluator, task, intent, annotationStorage) { + if (intent & RenderingIntentFlag.ANNOTATIONS_FORMS && !(this instanceof SignatureWidgetAnnotation) && !this.data.noHTML && !this.data.hasOwnCanvas) { + return { + opList: new OperatorList(), + separateForm: true, + separateCanvas: false + }; + } + if (!this._hasText) { + return super.getOperatorList(evaluator, task, intent, annotationStorage); + } + const content = await this._getAppearance(evaluator, task, intent, annotationStorage); + if (this.appearance && content === null) { + return super.getOperatorList(evaluator, task, intent, annotationStorage); + } + const opList = new OperatorList(); + if (!this._defaultAppearance || content === null) { + return { + opList, + separateForm: false, + separateCanvas: false + }; + } + const isUsingOwnCanvas = !!(this.data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY); + const matrix = [1, 0, 0, 1, 0, 0]; + const bbox = [0, 0, this.width, this.height]; + const transform = getTransformMatrix(this.data.rect, bbox, matrix); + let optionalContent; + if (this.oc) { + optionalContent = await evaluator.parseMarkedContentProps(this.oc, null); + } + if (optionalContent !== undefined) { + opList.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + opList.addOp(OPS.beginAnnotation, [this.data.id, this.data.rect, transform, this.getRotationMatrix(annotationStorage), isUsingOwnCanvas]); + const stream = new StringStream(content); + await evaluator.getOperatorList({ + stream, + task, + resources: this._fieldResources.mergedResources, + operatorList: opList + }); + opList.addOp(OPS.endAnnotation, []); + if (optionalContent !== undefined) { + opList.addOp(OPS.endMarkedContent, []); + } + return { + opList, + separateForm: false, + separateCanvas: isUsingOwnCanvas + }; + } + _getMKDict(rotation) { + const mk = new Dict(null); + if (rotation) { + mk.set("R", rotation); + } + mk.setIfArray("BC", getPdfColorArray(this.borderColor)); + mk.setIfArray("BG", getPdfColorArray(this.backgroundColor)); + return mk.size > 0 ? mk : null; + } + amendSavedDict(annotationStorage, dict) {} + setValue(dict, value, xref, changes) { + const { + dict: parentDict, + ref: parentRef + } = getParentToUpdate(dict, this.ref, xref); + if (!parentDict) { + dict.set("V", value); + } else if (!changes.has(parentRef)) { + const newParentDict = parentDict.clone(); + newParentDict.set("V", value); + changes.put(parentRef, { + data: newParentDict + }); + return newParentDict; + } + return null; + } + async save(evaluator, task, annotationStorage, changes) { + const storageEntry = annotationStorage?.get(this.data.id); + const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint); + let value = storageEntry?.value, + rotation = storageEntry?.rotation; + if (value === this.data.fieldValue || value === undefined) { + if (!this._hasValueFromXFA && rotation === undefined && flags === undefined) { + return; + } + value ||= this.data.fieldValue; + } + if (rotation === undefined && !this._hasValueFromXFA && Array.isArray(value) && Array.isArray(this.data.fieldValue) && isArrayEqual(value, this.data.fieldValue) && flags === undefined) { + return; + } + if (rotation === undefined) { + rotation = this.rotation; + } + let appearance = null; + if (!this._needAppearances) { + appearance = await this._getAppearance(evaluator, task, RenderingIntentFlag.SAVE, annotationStorage); + if (appearance === null && flags === undefined) { + return; + } + } else {} + let needAppearances = false; + if (appearance?.needAppearances) { + needAppearances = true; + appearance = null; + } + const { + xref + } = evaluator; + const originalDict = xref.fetchIfRef(this.ref); + if (!(originalDict instanceof Dict)) { + return; + } + const dict = new Dict(xref); + for (const key of originalDict.getKeys()) { + if (key !== "AP") { + dict.set(key, originalDict.getRaw(key)); + } + } + if (flags !== undefined) { + dict.set("F", flags); + if (appearance === null && !needAppearances) { + const ap = originalDict.getRaw("AP"); + if (ap) { + dict.set("AP", ap); + } + } + } + const xfa = { + path: this.data.fieldName, + value + }; + const newParentDict = this.setValue(dict, Array.isArray(value) ? value.map(stringToAsciiOrUTF16BE) : stringToAsciiOrUTF16BE(value), xref, changes); + this.amendSavedDict(annotationStorage, newParentDict || dict); + const maybeMK = this._getMKDict(rotation); + if (maybeMK) { + dict.set("MK", maybeMK); + } + changes.put(this.ref, { + data: dict, + xfa, + needAppearances + }); + if (appearance !== null) { + const newRef = xref.getNewTemporaryRef(); + const AP = new Dict(xref); + dict.set("AP", AP); + AP.set("N", newRef); + const resources = this._getSaveFieldResources(xref); + const appearanceStream = new StringStream(appearance); + const appearanceDict = appearanceStream.dict = new Dict(xref); + appearanceDict.setIfName("Subtype", "Form"); + appearanceDict.set("Resources", resources); + const bbox = rotation % 180 === 0 ? [0, 0, this.width, this.height] : [0, 0, this.height, this.width]; + appearanceDict.set("BBox", bbox); + const rotationMatrix = this.getRotationMatrix(annotationStorage); + if (rotationMatrix !== IDENTITY_MATRIX) { + appearanceDict.set("Matrix", rotationMatrix); + } + changes.put(newRef, { + data: appearanceStream, + xfa: null, + needAppearances: false + }); + } + dict.set("M", `D:${getModificationDate()}`); + } + async _getAppearance(evaluator, task, intent, annotationStorage) { + if (this.data.password) { + return null; + } + const storageEntry = annotationStorage?.get(this.data.id); + let value, rotation; + if (storageEntry) { + value = storageEntry.formattedValue || storageEntry.value; + rotation = storageEntry.rotation; + } + if (rotation === undefined && value === undefined && !this._needAppearances) { + if (!this._hasValueFromXFA || this.appearance) { + return null; + } + } + const colors = this.getBorderAndBackgroundAppearances(annotationStorage); + if (value === undefined) { + value = this.data.fieldValue; + if (!value) { + return `/Tx BMC q ${colors}Q EMC`; + } + } + if (Array.isArray(value) && value.length === 1) { + value = value[0]; + } + assert(typeof value === "string", "Expected `value` to be a string."); + value = value.trimEnd(); + if (this.data.combo) { + const option = this.data.options.find(({ + exportValue + }) => value === exportValue); + value = option?.displayValue || value; + } + if (value === "") { + return `/Tx BMC q ${colors}Q EMC`; + } + if (rotation === undefined) { + rotation = this.rotation; + } + let lineCount = -1; + let lines; + if (this.data.multiLine) { + lines = value.split(/\r\n?|\n/).map(line => line.normalize("NFC")); + lineCount = lines.length; + } else { + lines = [value.replace(/\r\n?|\n/, "").normalize("NFC")]; + } + const defaultPadding = 1; + const defaultHPadding = 2; + let { + width: totalWidth, + height: totalHeight + } = this; + if (rotation === 90 || rotation === 270) { + [totalWidth, totalHeight] = [totalHeight, totalWidth]; + } + if (!this._defaultAppearance) { + this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = "/Helvetica 0 Tf 0 g"); + } + let font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources); + let defaultAppearance, fontSize, lineHeight; + const encodedLines = []; + let encodingError = false; + for (const line of lines) { + const encodedString = font.encodeString(line); + if (encodedString.length > 1) { + encodingError = true; + } + encodedLines.push(encodedString.join("")); + } + if (encodingError && intent & RenderingIntentFlag.SAVE) { + return { + needAppearances: true + }; + } + if (encodingError && this._isOffscreenCanvasSupported) { + const fontFamily = this.data.comb ? "monospace" : "sans-serif"; + const fakeUnicodeFont = new FakeUnicodeFont(evaluator.xref, fontFamily); + const resources = fakeUnicodeFont.createFontResources(lines.join("")); + const newFont = resources.getRaw("Font"); + if (this._fieldResources.mergedResources.has("Font")) { + const oldFont = this._fieldResources.mergedResources.get("Font"); + for (const key of newFont.getKeys()) { + oldFont.set(key, newFont.getRaw(key)); + } + } else { + this._fieldResources.mergedResources.set("Font", newFont); + } + const fontName = fakeUnicodeFont.fontName.name; + font = await WidgetAnnotation._getFontData(evaluator, task, { + fontName, + fontSize: 0 + }, resources); + for (let i = 0, ii = encodedLines.length; i < ii; i++) { + encodedLines[i] = stringToUTF16String(lines[i]); + } + const savedDefaultAppearance = Object.assign(Object.create(null), this.data.defaultAppearanceData); + this.data.defaultAppearanceData.fontSize = 0; + this.data.defaultAppearanceData.fontName = fontName; + [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(totalHeight - 2 * defaultPadding, totalWidth - 2 * defaultHPadding, value, font, lineCount); + this.data.defaultAppearanceData = savedDefaultAppearance; + } else { + if (!this._isOffscreenCanvasSupported) { + warn("_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly."); + } + [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(totalHeight - 2 * defaultPadding, totalWidth - 2 * defaultHPadding, value, font, lineCount); + } + let descent = font.descent; + if (isNaN(descent)) { + descent = BASELINE_FACTOR * lineHeight; + } else { + descent = Math.max(BASELINE_FACTOR * lineHeight, Math.abs(descent) * fontSize); + } + const defaultVPadding = Math.min(Math.floor((totalHeight - fontSize) / 2), defaultPadding); + const alignment = this.data.textAlignment; + if (this.data.multiLine) { + return this._getMultilineAppearance(defaultAppearance, encodedLines, font, fontSize, totalWidth, totalHeight, alignment, defaultHPadding, defaultVPadding, descent, lineHeight, annotationStorage); + } + if (this.data.comb) { + return this._getCombAppearance(defaultAppearance, font, encodedLines[0], fontSize, totalWidth, totalHeight, defaultHPadding, defaultVPadding, descent, lineHeight, annotationStorage); + } + const bottomPadding = defaultVPadding + descent; + if (alignment === 0 || alignment > 2) { + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${numberToString(defaultHPadding)} ${numberToString(bottomPadding)} Tm (${escapeString(encodedLines[0])}) Tj` + " ET Q EMC"; + } + const prevInfo = { + shift: 0 + }; + const renderedText = this._renderText(encodedLines[0], font, fontSize, totalWidth, alignment, prevInfo, defaultHPadding, bottomPadding); + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + " ET Q EMC"; + } + static async _getFontData(evaluator, task, appearanceData, resources) { + const operatorList = new OperatorList(); + const initialState = { + font: null, + clone() { + return this; + } + }; + const { + fontName, + fontSize + } = appearanceData; + await evaluator.handleSetFont(resources, [fontName && Name.get(fontName), fontSize], null, operatorList, task, initialState, null); + return initialState.font; + } + _getTextWidth(text, font) { + return Math.sumPrecise(font.charsToGlyphs(text).map(g => g.width)) / 1000; + } + _computeFontSize(height, width, text, font, lineCount) { + let { + fontSize + } = this.data.defaultAppearanceData; + let lineHeight = (fontSize || 12) * LINE_FACTOR, + numberOfLines = Math.round(height / lineHeight); + if (!fontSize) { + const roundWithTwoDigits = x => Math.floor(x * 100) / 100; + if (lineCount === -1) { + const textWidth = this._getTextWidth(text, font); + fontSize = roundWithTwoDigits(Math.min(height / LINE_FACTOR, width / textWidth)); + numberOfLines = 1; + } else { + const lines = text.split(/\r\n?|\n/); + const cachedLines = []; + for (const line of lines) { + const encoded = font.encodeString(line).join(""); + const glyphs = font.charsToGlyphs(encoded); + const positions = font.getCharPositions(encoded); + cachedLines.push({ + line: encoded, + glyphs, + positions + }); + } + const isTooBig = fsize => { + let totalHeight = 0; + for (const cache of cachedLines) { + const chunks = this._splitLine(null, font, fsize, width, cache); + totalHeight += chunks.length * fsize; + if (totalHeight > height) { + return true; + } + } + return false; + }; + numberOfLines = Math.max(numberOfLines, lineCount); + while (true) { + lineHeight = height / numberOfLines; + fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR); + if (isTooBig(fontSize)) { + numberOfLines++; + continue; + } + break; + } + } + const { + fontName, + fontColor + } = this.data.defaultAppearanceData; + this._defaultAppearance = createDefaultAppearance({ + fontSize, + fontName, + fontColor + }); + } + return [this._defaultAppearance, fontSize, height / numberOfLines]; + } + _renderText(text, font, fontSize, totalWidth, alignment, prevInfo, hPadding, vPadding) { + let shift; + if (alignment === 1) { + const width = this._getTextWidth(text, font) * fontSize; + shift = (totalWidth - width) / 2; + } else if (alignment === 2) { + const width = this._getTextWidth(text, font) * fontSize; + shift = totalWidth - width - hPadding; + } else { + shift = hPadding; + } + const shiftStr = numberToString(shift - prevInfo.shift); + prevInfo.shift = shift; + vPadding = numberToString(vPadding); + return `${shiftStr} ${vPadding} Td (${escapeString(text)}) Tj`; + } + _getSaveFieldResources(xref) { + const { + localResources, + appearanceResources, + acroFormResources + } = this._fieldResources; + const fontName = this.data.defaultAppearanceData?.fontName; + if (!fontName) { + return localResources || Dict.empty; + } + for (const resources of [localResources, appearanceResources]) { + if (resources instanceof Dict) { + const localFont = resources.get("Font"); + if (localFont instanceof Dict && localFont.has(fontName)) { + return resources; + } + } + } + if (acroFormResources instanceof Dict) { + const acroFormFont = acroFormResources.get("Font"); + if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) { + const subFontDict = new Dict(xref); + subFontDict.set(fontName, acroFormFont.getRaw(fontName)); + const subResourcesDict = new Dict(xref); + subResourcesDict.set("Font", subFontDict); + return Dict.merge({ + xref, + dictArray: [subResourcesDict, localResources], + mergeSubDicts: true + }); + } + } + return localResources || Dict.empty; + } + getFieldObject() { + return null; + } +} +class TextWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + const { + dict + } = params; + if (dict.has("PMD")) { + this.flags |= AnnotationFlag.HIDDEN; + this.data.hidden = true; + warn("Barcodes are not supported"); + } + this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML; + this._hasText = true; + if (typeof this.data.fieldValue !== "string") { + this.data.fieldValue = ""; + } + let alignment = getInheritableProperty({ + dict, + key: "Q" + }); + if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) { + alignment = null; + } + this.data.textAlignment = alignment; + let maximumLength = getInheritableProperty({ + dict, + key: "MaxLen" + }); + if (!Number.isInteger(maximumLength) || maximumLength < 0) { + maximumLength = 0; + } + this.data.maxLen = maximumLength; + this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE); + this.data.comb = this.hasFieldFlag(AnnotationFieldFlag.COMB) && !this.data.multiLine && !this.data.password && !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== 0; + this.data.doNotScroll = this.hasFieldFlag(AnnotationFieldFlag.DONOTSCROLL); + const { + data: { + actions + } + } = this; + if (!actions) { + return; + } + const AFDateTime = /^AF(Date|Time)_(?:Keystroke|Format)(?:Ex)?\(['"]?([^'"]+)['"]?\);$/; + let canUseHTMLDateTime = false; + if (actions.Format?.length === 1 && actions.Keystroke?.length === 1 && AFDateTime.test(actions.Format[0]) && AFDateTime.test(actions.Keystroke[0]) || actions.Format?.length === 0 && actions.Keystroke?.length === 1 && AFDateTime.test(actions.Keystroke[0]) || actions.Keystroke?.length === 0 && actions.Format?.length === 1 && AFDateTime.test(actions.Format[0])) { + canUseHTMLDateTime = true; + } + const actionsToVisit = []; + if (actions.Format) { + actionsToVisit.push(...actions.Format); + } + if (actions.Keystroke) { + actionsToVisit.push(...actions.Keystroke); + } + if (canUseHTMLDateTime) { + delete actions.Keystroke; + actions.Format = actionsToVisit; + } + for (const formatAction of actionsToVisit) { + const m = formatAction.match(AFDateTime); + if (!m) { + continue; + } + const isDate = m[1] === "Date"; + let format = m[2]; + const num = parseInt(format, 10); + if (!isNaN(num) && Math.floor(Math.log10(num)) + 1 === m[2].length) { + format = (isDate ? DateFormats : TimeFormats)[num] ?? format; + } + this.data.datetimeFormat = format; + if (!canUseHTMLDateTime) { + break; + } + if (isDate) { + if (/HH|MM|ss|h/.test(format)) { + this.data.datetimeType = "datetime-local"; + this.data.timeStep = /ss/.test(format) ? 1 : 60; + } else { + this.data.datetimeType = "date"; + } + break; + } + this.data.datetimeType = "time"; + this.data.timeStep = /ss/.test(format) ? 1 : 60; + break; + } + } + get hasTextContent() { + return !!this.appearance && !this._needAppearances; + } + _getCombAppearance(defaultAppearance, font, text, fontSize, width, height, hPadding, vPadding, descent, lineHeight, annotationStorage) { + const combWidth = width / this.data.maxLen; + const colors = this.getBorderAndBackgroundAppearances(annotationStorage); + const buf = []; + const positions = font.getCharPositions(text); + for (const [start, end] of positions) { + buf.push(`(${escapeString(text.substring(start, end))}) Tj`); + } + const renderedComb = buf.join(` ${numberToString(combWidth)} 0 Td `); + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${numberToString(hPadding)} ${numberToString(vPadding + descent)} Tm ${renderedComb}` + " ET Q EMC"; + } + _getMultilineAppearance(defaultAppearance, lines, font, fontSize, width, height, alignment, hPadding, vPadding, descent, lineHeight, annotationStorage) { + const buf = []; + const totalWidth = width - 2 * hPadding; + const prevInfo = { + shift: 0 + }; + for (let i = 0, ii = lines.length; i < ii; i++) { + const line = lines[i]; + const chunks = this._splitLine(line, font, fontSize, totalWidth); + for (let j = 0, jj = chunks.length; j < jj; j++) { + const chunk = chunks[j]; + const vShift = i === 0 && j === 0 ? -vPadding - (lineHeight - descent) : -lineHeight; + buf.push(this._renderText(chunk, font, fontSize, width, alignment, prevInfo, hPadding, vShift)); + } + } + const colors = this.getBorderAndBackgroundAppearances(annotationStorage); + const renderedText = buf.join("\n"); + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 ${numberToString(height)} Tm ${renderedText}` + " ET Q EMC"; + } + _splitLine(line, font, fontSize, width, cache = {}) { + line = cache.line || line; + const glyphs = cache.glyphs || font.charsToGlyphs(line); + if (glyphs.length <= 1) { + return [line]; + } + const positions = cache.positions || font.getCharPositions(line); + const scale = fontSize / 1000; + const chunks = []; + let lastSpacePosInStringStart = -1, + lastSpacePosInStringEnd = -1, + lastSpacePos = -1, + startChunk = 0, + currentWidth = 0; + for (let i = 0, ii = glyphs.length; i < ii; i++) { + const [start, end] = positions[i]; + const glyph = glyphs[i]; + const glyphWidth = glyph.width * scale; + if (glyph.unicode === " ") { + if (currentWidth + glyphWidth > width) { + chunks.push(line.substring(startChunk, start)); + startChunk = start; + currentWidth = glyphWidth; + lastSpacePosInStringStart = -1; + lastSpacePos = -1; + } else { + currentWidth += glyphWidth; + lastSpacePosInStringStart = start; + lastSpacePosInStringEnd = end; + lastSpacePos = i; + } + } else if (currentWidth + glyphWidth > width) { + if (lastSpacePosInStringStart !== -1) { + chunks.push(line.substring(startChunk, lastSpacePosInStringEnd)); + startChunk = lastSpacePosInStringEnd; + i = lastSpacePos + 1; + lastSpacePosInStringStart = -1; + currentWidth = 0; + } else { + chunks.push(line.substring(startChunk, start)); + startChunk = start; + currentWidth = glyphWidth; + } + } else { + currentWidth += glyphWidth; + } + } + if (startChunk < line.length) { + chunks.push(line.substring(startChunk, line.length)); + } + return chunks; + } + async extractTextContent(evaluator, task, viewBox) { + await super.extractTextContent(evaluator, task, viewBox); + const text = this.data.textContent; + if (!text) { + return; + } + const allText = text.join("\n"); + if (allText === this.data.fieldValue) { + return; + } + const regex = allText.replaceAll(/([.*+?^${}()|[\]\\])|(\s+)/g, (_m, p1) => p1 ? `\\${p1}` : "\\s+"); + if (new RegExp(`^\\s*${regex}\\s*$`).test(this.data.fieldValue)) { + this.data.textContent = this.data.fieldValue.split("\n"); + } + } + getFieldObject() { + return { + id: this.data.id, + value: this.data.fieldValue, + defaultValue: this.data.defaultFieldValue || "", + multiline: this.data.multiLine, + password: this.data.password, + charLimit: this.data.maxLen, + comb: this.data.comb, + editable: !this.data.readOnly, + hidden: this.data.hidden, + name: this.data.fieldName, + rect: this.data.rect, + actions: this.data.actions, + page: this.data.pageIndex, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + rotation: this.rotation, + datetimeFormat: this.data.datetimeFormat, + hasDatetimeHTML: !!this.data.datetimeType, + type: "text" + }; + } +} +class ButtonWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + this.checkedAppearance = null; + this.uncheckedAppearance = null; + const isRadio = this.hasFieldFlag(AnnotationFieldFlag.RADIO), + isPushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON); + this.data.checkBox = !isRadio && !isPushButton; + this.data.radioButton = isRadio && !isPushButton; + this.data.pushButton = isPushButton; + this.data.isTooltipOnly = false; + if (this.data.checkBox) { + this._processCheckBox(params); + } else if (this.data.radioButton) { + this._processRadioButton(params); + } else if (this.data.pushButton) { + this.data.hasOwnCanvas = true; + this.data.noHTML = false; + this._processPushButton(params); + } else { + warn("Invalid field flags for button widget annotation"); + } + } + async getOperatorList(evaluator, task, intent, annotationStorage) { + if (this.data.pushButton) { + return super.getOperatorList(evaluator, task, intent, false, annotationStorage); + } + let value = null; + let rotation = null; + if (annotationStorage) { + const storageEntry = annotationStorage.get(this.data.id); + value = storageEntry ? storageEntry.value : null; + rotation = storageEntry ? storageEntry.rotation : null; + } + if (value === null && this.appearance) { + return super.getOperatorList(evaluator, task, intent, annotationStorage); + } + if (value === null || value === undefined) { + value = this.data.checkBox ? this.data.fieldValue === this.data.exportValue : this.data.fieldValue === this.data.buttonValue; + } + const appearance = value ? this.checkedAppearance : this.uncheckedAppearance; + if (appearance) { + const savedAppearance = this.appearance; + const savedMatrix = lookupMatrix(appearance.dict.getArray("Matrix"), IDENTITY_MATRIX); + if (rotation) { + appearance.dict.set("Matrix", this.getRotationMatrix(annotationStorage)); + } + this.appearance = appearance; + const operatorList = super.getOperatorList(evaluator, task, intent, annotationStorage); + this.appearance = savedAppearance; + appearance.dict.set("Matrix", savedMatrix); + return operatorList; + } + return { + opList: new OperatorList(), + separateForm: false, + separateCanvas: false + }; + } + async save(evaluator, task, annotationStorage, changes) { + if (this.data.checkBox) { + this._saveCheckbox(evaluator, task, annotationStorage, changes); + return; + } + if (this.data.radioButton) { + this._saveRadioButton(evaluator, task, annotationStorage, changes); + } + } + async _saveCheckbox(evaluator, task, annotationStorage, changes) { + if (!annotationStorage) { + return; + } + const storageEntry = annotationStorage.get(this.data.id); + const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint); + let rotation = storageEntry?.rotation, + value = storageEntry?.value; + if (rotation === undefined && flags === undefined) { + if (value === undefined) { + return; + } + const defaultValue = this.data.fieldValue === this.data.exportValue; + if (defaultValue === value) { + return; + } + } + let dict = evaluator.xref.fetchIfRef(this.ref); + if (!(dict instanceof Dict)) { + return; + } + dict = dict.clone(); + if (rotation === undefined) { + rotation = this.rotation; + } + if (value === undefined) { + value = this.data.fieldValue === this.data.exportValue; + } + const xfa = { + path: this.data.fieldName, + value: value ? this.data.exportValue : "" + }; + const name = Name.get(value ? this.data.exportValue : "Off"); + this.setValue(dict, name, evaluator.xref, changes); + dict.set("AS", name); + dict.set("M", `D:${getModificationDate()}`); + if (flags !== undefined) { + dict.set("F", flags); + } + const maybeMK = this._getMKDict(rotation); + if (maybeMK) { + dict.set("MK", maybeMK); + } + changes.put(this.ref, { + data: dict, + xfa, + needAppearances: false + }); + } + async _saveRadioButton(evaluator, task, annotationStorage, changes) { + if (!annotationStorage) { + return; + } + const storageEntry = annotationStorage.get(this.data.id); + const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint); + let rotation = storageEntry?.rotation, + value = storageEntry?.value; + if (rotation === undefined && flags === undefined) { + if (value === undefined) { + return; + } + const defaultValue = this.data.fieldValue === this.data.buttonValue; + if (defaultValue === value) { + return; + } + } + let dict = evaluator.xref.fetchIfRef(this.ref); + if (!(dict instanceof Dict)) { + return; + } + dict = dict.clone(); + if (value === undefined) { + value = this.data.fieldValue === this.data.buttonValue; + } + if (rotation === undefined) { + rotation = this.rotation; + } + const xfa = { + path: this.data.fieldName, + value: value ? this.data.buttonValue : "" + }; + const name = Name.get(value ? this.data.buttonValue : "Off"); + if (value) { + this.setValue(dict, name, evaluator.xref, changes); + } + dict.set("AS", name); + dict.set("M", `D:${getModificationDate()}`); + if (flags !== undefined) { + dict.set("F", flags); + } + const maybeMK = this._getMKDict(rotation); + if (maybeMK) { + dict.set("MK", maybeMK); + } + changes.put(this.ref, { + data: dict, + xfa, + needAppearances: false + }); + } + _getDefaultCheckedAppearance(params, type) { + const { + width, + height + } = this; + const bbox = [0, 0, width, height]; + const FONT_RATIO = 0.8; + const fontSize = Math.min(width, height) * FONT_RATIO; + let metrics, char; + if (type === "check") { + metrics = { + width: 0.755 * fontSize, + height: 0.705 * fontSize + }; + char = "\x33"; + } else if (type === "disc") { + metrics = { + width: 0.791 * fontSize, + height: 0.705 * fontSize + }; + char = "\x6C"; + } else { + unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`); + } + const xShift = numberToString((width - metrics.width) / 2); + const yShift = numberToString((height - metrics.height) / 2); + const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`; + const appearanceStreamDict = new Dict(params.xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", bbox); + appearanceStreamDict.set("Matrix", [1, 0, 0, 1, 0, 0]); + appearanceStreamDict.set("Length", appearance.length); + const resources = new Dict(params.xref); + const font = new Dict(params.xref); + font.set("PdfJsZaDb", this.fallbackFontDict); + resources.set("Font", font); + appearanceStreamDict.set("Resources", resources); + this.checkedAppearance = new StringStream(appearance); + this.checkedAppearance.dict = appearanceStreamDict; + this._streams.push(this.checkedAppearance); + } + _processCheckBox(params) { + const customAppearance = params.dict.get("AP"); + if (!(customAppearance instanceof Dict)) { + return; + } + const normalAppearance = customAppearance.get("N"); + if (!(normalAppearance instanceof Dict)) { + return; + } + const asValue = this._decodeFormValue(params.dict.get("AS")); + if (typeof asValue === "string") { + this.data.fieldValue = asValue; + } + const yes = this.data.fieldValue !== null && this.data.fieldValue !== "Off" ? this.data.fieldValue : "Yes"; + const exportValues = this._decodeFormValue(normalAppearance.getKeys()); + if (exportValues.length === 0) { + exportValues.push("Off", yes); + } else if (exportValues.length === 1) { + if (exportValues[0] === "Off") { + exportValues.push(yes); + } else { + exportValues.unshift("Off"); + } + } else if (exportValues.includes(yes)) { + exportValues.length = 0; + exportValues.push("Off", yes); + } else { + const otherYes = exportValues.find(v => v !== "Off"); + exportValues.length = 0; + exportValues.push("Off", otherYes); + } + if (!exportValues.includes(this.data.fieldValue)) { + this.data.fieldValue = "Off"; + } + this.data.exportValue = exportValues[1]; + const checkedAppearance = normalAppearance.get(this.data.exportValue); + this.checkedAppearance = checkedAppearance instanceof BaseStream ? checkedAppearance : null; + const uncheckedAppearance = normalAppearance.get("Off"); + this.uncheckedAppearance = uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null; + if (this.checkedAppearance) { + this._streams.push(this.checkedAppearance); + } else { + this._getDefaultCheckedAppearance(params, "check"); + } + if (this.uncheckedAppearance) { + this._streams.push(this.uncheckedAppearance); + } + this._fallbackFontDict = this.fallbackFontDict; + if (this.data.defaultFieldValue === null) { + this.data.defaultFieldValue = "Off"; + } + } + _processRadioButton(params) { + this.data.buttonValue = null; + const fieldParent = params.dict.get("Parent"); + if (fieldParent instanceof Dict) { + this.parent = params.dict.getRaw("Parent"); + const fieldParentValue = fieldParent.get("V"); + if (fieldParentValue instanceof Name) { + this.data.fieldValue = this._decodeFormValue(fieldParentValue); + } + } + const appearanceStates = params.dict.get("AP"); + if (!(appearanceStates instanceof Dict)) { + return; + } + const normalAppearance = appearanceStates.get("N"); + if (!(normalAppearance instanceof Dict)) { + return; + } + for (const key of normalAppearance.getKeys()) { + if (key !== "Off") { + this.data.buttonValue = this._decodeFormValue(key); + break; + } + } + const checkedAppearance = normalAppearance.get(this.data.buttonValue); + this.checkedAppearance = checkedAppearance instanceof BaseStream ? checkedAppearance : null; + const uncheckedAppearance = normalAppearance.get("Off"); + this.uncheckedAppearance = uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null; + if (this.checkedAppearance) { + this._streams.push(this.checkedAppearance); + } else { + this._getDefaultCheckedAppearance(params, "disc"); + } + if (this.uncheckedAppearance) { + this._streams.push(this.uncheckedAppearance); + } + this._fallbackFontDict = this.fallbackFontDict; + if (this.data.defaultFieldValue === null) { + this.data.defaultFieldValue = "Off"; + } + } + _processPushButton(params) { + const { + dict, + annotationGlobals + } = params; + if (!dict.has("A") && !dict.has("AA") && !this.data.alternativeText) { + warn("Push buttons without action dictionaries are not supported"); + return; + } + this.data.isTooltipOnly = !dict.has("A") && !dict.has("AA"); + Catalog.parseDestDictionary({ + destDict: dict, + resultObj: this.data, + docBaseUrl: annotationGlobals.baseUrl, + docAttachments: annotationGlobals.attachments + }); + } + getFieldObject() { + let type = "button"; + let exportValues; + if (this.data.checkBox) { + type = "checkbox"; + exportValues = this.data.exportValue; + } else if (this.data.radioButton) { + type = "radiobutton"; + exportValues = this.data.buttonValue; + } + return { + id: this.data.id, + value: this.data.fieldValue || "Off", + defaultValue: this.data.defaultFieldValue, + exportValues, + editable: !this.data.readOnly, + name: this.data.fieldName, + rect: this.data.rect, + hidden: this.data.hidden, + actions: this.data.actions, + page: this.data.pageIndex, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + rotation: this.rotation, + type + }; + } + get fallbackFontDict() { + const dict = new Dict(); + dict.setIfName("BaseFont", "ZapfDingbats"); + dict.setIfName("Type", "FallbackType"); + dict.setIfName("Subtype", "FallbackType"); + dict.setIfName("Encoding", "ZapfDingbatsEncoding"); + return shadow(this, "fallbackFontDict", dict); + } +} +class ChoiceWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.indices = dict.getArray("I"); + this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0; + this.data.options = []; + const options = getInheritableProperty({ + dict, + key: "Opt" + }); + if (Array.isArray(options)) { + for (let i = 0, ii = options.length; i < ii; i++) { + const option = xref.fetchIfRef(options[i]); + const isOptionArray = Array.isArray(option); + this.data.options[i] = { + exportValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option), + displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option) + }; + } + } + if (!this.hasIndices) { + if (typeof this.data.fieldValue === "string") { + this.data.fieldValue = [this.data.fieldValue]; + } else { + this.data.fieldValue ||= []; + } + } else { + this.data.fieldValue = []; + const ii = this.data.options.length; + for (const i of this.indices) { + if (Number.isInteger(i) && i >= 0 && i < ii) { + this.data.fieldValue.push(this.data.options[i].exportValue); + } + } + } + if (this.data.options.length === 0 && this.data.fieldValue.length > 0) { + this.data.options = this.data.fieldValue.map(value => ({ + exportValue: value, + displayValue: value + })); + } + this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO); + this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT); + this._hasText = true; + } + getFieldObject() { + const type = this.data.combo ? "combobox" : "listbox"; + const value = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null; + return { + id: this.data.id, + value, + defaultValue: this.data.defaultFieldValue, + editable: !this.data.readOnly, + name: this.data.fieldName, + rect: this.data.rect, + numItems: this.data.fieldValue.length, + multipleSelection: this.data.multiSelect, + hidden: this.data.hidden, + actions: this.data.actions, + items: this.data.options, + page: this.data.pageIndex, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + rotation: this.rotation, + type + }; + } + amendSavedDict(annotationStorage, dict) { + if (!this.hasIndices) { + return; + } + let values = annotationStorage?.get(this.data.id)?.value; + if (!Array.isArray(values)) { + values = [values]; + } + const indices = []; + const { + options + } = this.data; + for (let i = 0, j = 0, ii = options.length; i < ii; i++) { + if (options[i].exportValue === values[j]) { + indices.push(i); + j += 1; + } + } + dict.set("I", indices); + } + async _getAppearance(evaluator, task, intent, annotationStorage) { + if (this.data.combo) { + return super._getAppearance(evaluator, task, intent, annotationStorage); + } + let exportedValue, rotation; + const storageEntry = annotationStorage?.get(this.data.id); + if (storageEntry) { + rotation = storageEntry.rotation; + exportedValue = storageEntry.value; + } + if (rotation === undefined && exportedValue === undefined && !this._needAppearances) { + return null; + } + if (exportedValue === undefined) { + exportedValue = this.data.fieldValue; + } else if (!Array.isArray(exportedValue)) { + exportedValue = [exportedValue]; + } + const defaultPadding = 1; + const defaultHPadding = 2; + let { + width: totalWidth, + height: totalHeight + } = this; + if (rotation === 90 || rotation === 270) { + [totalWidth, totalHeight] = [totalHeight, totalWidth]; + } + const lineCount = this.data.options.length; + const valueIndices = []; + for (let i = 0; i < lineCount; i++) { + const { + exportValue + } = this.data.options[i]; + if (exportedValue.includes(exportValue)) { + valueIndices.push(i); + } + } + if (!this._defaultAppearance) { + this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = "/Helvetica 0 Tf 0 g"); + } + const font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources); + let defaultAppearance; + let { + fontSize + } = this.data.defaultAppearanceData; + if (!fontSize) { + const lineHeight = (totalHeight - defaultPadding) / lineCount; + let lineWidth = -1; + let value; + for (const { + displayValue + } of this.data.options) { + const width = this._getTextWidth(displayValue, font); + if (width > lineWidth) { + lineWidth = width; + value = displayValue; + } + } + [defaultAppearance, fontSize] = this._computeFontSize(lineHeight, totalWidth - 2 * defaultHPadding, value, font, -1); + } else { + defaultAppearance = this._defaultAppearance; + } + const lineHeight = fontSize * LINE_FACTOR; + const vPadding = (lineHeight - fontSize) / 2; + const numberOfVisibleLines = Math.floor(totalHeight / lineHeight); + let firstIndex = 0; + if (valueIndices.length > 0) { + const minIndex = Math.min(...valueIndices); + const maxIndex = Math.max(...valueIndices); + firstIndex = Math.max(0, maxIndex - numberOfVisibleLines + 1); + if (firstIndex > minIndex) { + firstIndex = minIndex; + } + } + const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount); + const buf = ["/Tx BMC q", `1 1 ${totalWidth} ${totalHeight} re W n`]; + if (valueIndices.length) { + buf.push("0.600006 0.756866 0.854904 rg"); + for (const index of valueIndices) { + if (firstIndex <= index && index < end) { + buf.push(`1 ${totalHeight - (index - firstIndex + 1) * lineHeight} ${totalWidth} ${lineHeight} re f`); + } + } + } + buf.push("BT", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`); + const prevInfo = { + shift: 0 + }; + for (let i = firstIndex; i < end; i++) { + const { + displayValue + } = this.data.options[i]; + const vpadding = i === firstIndex ? vPadding : 0; + buf.push(this._renderText(displayValue, font, fontSize, totalWidth, 0, prevInfo, defaultHPadding, -lineHeight + vpadding)); + } + buf.push("ET Q EMC"); + return buf.join("\n"); + } +} +class SignatureWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + this.data.fieldValue = null; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = !this.data.hasOwnCanvas; + } + getFieldObject() { + return { + id: this.data.id, + value: null, + page: this.data.pageIndex, + type: "signature" + }; + } +} +class TextAnnotation extends MarkupAnnotation { + constructor(params) { + const DEFAULT_ICON_SIZE = 22; + super(params); + this.data.noRotate = true; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + const { + dict + } = params; + this.data.annotationType = AnnotationType.TEXT; + if (this.data.hasAppearance) { + this.data.name = "NoIcon"; + } else { + this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE; + this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE; + this.data.name = dict.has("Name") ? dict.get("Name").name : "Note"; + } + if (dict.has("State")) { + this.data.state = dict.get("State") || null; + this.data.stateModel = dict.get("StateModel") || null; + } else { + this.data.state = null; + this.data.stateModel = null; + } + } +} +class LinkAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict, + annotationGlobals + } = params; + this.data.annotationType = AnnotationType.LINK; + this.data.noHTML = false; + const quadPoints = getQuadPoints(dict, this.rectangle); + if (quadPoints) { + this.data.quadPoints = quadPoints; + } + this.data.borderColor ||= this.data.color; + Catalog.parseDestDictionary({ + destDict: dict, + resultObj: this.data, + docBaseUrl: annotationGlobals.baseUrl, + docAttachments: annotationGlobals.attachments + }); + } + get overlaysTextContent() { + return true; + } +} +class PopupAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict + } = params; + this.data.annotationType = AnnotationType.POPUP; + this.data.noHTML = false; + if (this.width === 0 || this.height === 0) { + this.data.rect = null; + } + let parentItem = dict.get("Parent"); + if (!parentItem) { + warn("Popup annotation has a missing or invalid parent annotation."); + return; + } + this.data.parentRect = lookupNormalRect(parentItem.getArray("Rect"), null); + this.data.creationDate = parentItem.get("CreationDate") || ""; + const rt = parentItem.get("RT"); + if (isName(rt, AnnotationReplyType.GROUP)) { + parentItem = parentItem.get("IRT"); + } + if (!parentItem.has("M")) { + this.data.modificationDate = null; + } else { + this.setModificationDate(parentItem.get("M")); + this.data.modificationDate = this.modificationDate; + } + if (!parentItem.has("C")) { + this.data.color = null; + } else { + this.setColor(parentItem.getArray("C")); + this.data.color = this.color; + } + if (!this.viewable) { + const parentFlags = parentItem.get("F"); + if (this._isViewable(parentFlags)) { + this.setFlags(parentFlags); + } + } + this.setTitle(parentItem.get("T")); + this.data.titleObj = this._title; + this.setContents(parentItem.get("Contents")); + this.data.contentsObj = this._contents; + if (parentItem.has("RC")) { + this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get("RC")); + } + this.data.open = !!dict.get("Open"); + } + static createNewDict(annotation, xref, _params) { + const { + oldAnnotation, + rect, + parent + } = annotation; + const popup = oldAnnotation || new Dict(xref); + popup.setIfNotExists("Type", Name.get("Annot")); + popup.setIfNotExists("Subtype", Name.get("Popup")); + popup.setIfNotExists("Open", false); + popup.setIfArray("Rect", rect); + popup.set("Parent", parent); + return popup; + } + static async createNewAppearanceStream(annotation, xref, params) { + return null; + } +} +class FreeTextAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + this.data.hasOwnCanvas = this.data.noRotate; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + const { + annotationGlobals, + evaluatorOptions, + xref + } = params; + this.data.annotationType = AnnotationType.FREETEXT; + this.setDefaultAppearance(params); + this._hasAppearance = !!this.appearance; + if (this._hasAppearance) { + const { + fontColor, + fontSize + } = parseAppearanceStream(this.appearance, evaluatorOptions, xref, annotationGlobals.globalColorSpaceCache); + this.data.defaultAppearanceData.fontColor = fontColor; + this.data.defaultAppearanceData.fontSize = fontSize || 10; + } else { + this.data.defaultAppearanceData.fontSize ||= 10; + const { + fontColor, + fontSize + } = this.data.defaultAppearanceData; + if (this._contents.str) { + this.data.textContent = this._contents.str.split(/\r\n?|\n/).map(line => line.trimEnd()); + const { + coords, + bbox, + matrix + } = FakeUnicodeFont.getFirstPositionInfo(this.rectangle, this.rotation, fontSize); + this.data.textPosition = this._transformPoint(coords, bbox, matrix); + } + if (this._isOffscreenCanvasSupported) { + const strokeAlpha = params.dict.get("CA"); + const fakeUnicodeFont = new FakeUnicodeFont(xref, "sans-serif"); + this.appearance = fakeUnicodeFont.createAppearance(this._contents.str, this.rectangle, this.rotation, fontSize, fontColor, strokeAlpha); + this._streams.push(this.appearance); + } else { + warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly."); + } + } + } + get hasTextContent() { + return this._hasAppearance; + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + color, + date, + fontSize, + oldAnnotation, + rect, + rotation, + user, + value + } = annotation; + const freetext = oldAnnotation || new Dict(xref); + freetext.setIfNotExists("Type", Name.get("Annot")); + freetext.setIfNotExists("Subtype", Name.get("FreeText")); + freetext.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate(date)}`); + if (oldAnnotation) { + freetext.delete("RC"); + } + freetext.setIfArray("Rect", rect); + const da = `/Helv ${fontSize} Tf ${getPdfColor(color, true)}`; + freetext.set("DA", da); + freetext.setIfDefined("Contents", stringToAsciiOrUTF16BE(value)); + freetext.setIfNotExists("F", 4); + freetext.setIfNotExists("Border", [0, 0, 0]); + freetext.setIfNumber("Rotate", rotation); + freetext.setIfDefined("T", stringToAsciiOrUTF16BE(user)); + if (apRef || ap) { + const n = new Dict(xref); + freetext.set("AP", n); + n.set("N", apRef || ap); + } + return freetext; + } + static async createNewAppearanceStream(annotation, xref, params) { + const { + baseFontRef, + evaluator, + task + } = params; + const { + color, + fontSize, + rect, + rotation, + value + } = annotation; + if (!color) { + return null; + } + const resources = new Dict(xref); + const font = new Dict(xref); + if (baseFontRef) { + font.set("Helv", baseFontRef); + } else { + const baseFont = new Dict(xref); + baseFont.setIfName("BaseFont", "Helvetica"); + baseFont.setIfName("Type", "Font"); + baseFont.setIfName("Subtype", "Type1"); + baseFont.setIfName("Encoding", "WinAnsiEncoding"); + font.set("Helv", baseFont); + } + resources.set("Font", font); + const helv = await WidgetAnnotation._getFontData(evaluator, task, { + fontName: "Helv", + fontSize + }, resources); + const [x1, y1, x2, y2] = rect; + let w = x2 - x1; + let h = y2 - y1; + if (rotation % 180 !== 0) { + [w, h] = [h, w]; + } + const lines = value.split("\n"); + const scale = fontSize / 1000; + let totalWidth = -Infinity; + const encodedLines = []; + for (let line of lines) { + const encoded = helv.encodeString(line); + if (encoded.length > 1) { + return null; + } + line = encoded.join(""); + encodedLines.push(line); + let lineWidth = 0; + const glyphs = helv.charsToGlyphs(line); + for (const glyph of glyphs) { + lineWidth += glyph.width * scale; + } + totalWidth = Math.max(totalWidth, lineWidth); + } + let hscale = 1; + if (totalWidth > w) { + hscale = w / totalWidth; + } + let vscale = 1; + const lineHeight = LINE_FACTOR * fontSize; + const lineAscent = (LINE_FACTOR - LINE_DESCENT_FACTOR) * fontSize; + const totalHeight = lineHeight * lines.length; + if (totalHeight > h) { + vscale = h / totalHeight; + } + const fscale = Math.min(hscale, vscale); + const newFontSize = fontSize * fscale; + let firstPoint, clipBox, matrix; + switch (rotation) { + case 0: + matrix = [1, 0, 0, 1]; + clipBox = [rect[0], rect[1], w, h]; + firstPoint = [rect[0], rect[3] - lineAscent]; + break; + case 90: + matrix = [0, 1, -1, 0]; + clipBox = [rect[1], -rect[2], w, h]; + firstPoint = [rect[1], -rect[0] - lineAscent]; + break; + case 180: + matrix = [-1, 0, 0, -1]; + clipBox = [-rect[2], -rect[3], w, h]; + firstPoint = [-rect[2], -rect[1] - lineAscent]; + break; + case 270: + matrix = [0, -1, 1, 0]; + clipBox = [-rect[3], rect[0], w, h]; + firstPoint = [-rect[3], rect[2] - lineAscent]; + break; + } + const buffer = ["q", `${matrix.join(" ")} 0 0 cm`, `${clipBox.join(" ")} re W n`, `BT`, `${getPdfColor(color, true)}`, `0 Tc /Helv ${numberToString(newFontSize)} Tf`]; + buffer.push(`${firstPoint.join(" ")} Td (${escapeString(encodedLines[0])}) Tj`); + const vShift = numberToString(lineHeight); + for (let i = 1, ii = encodedLines.length; i < ii; i++) { + const line = encodedLines[i]; + buffer.push(`0 -${vShift} Td (${escapeString(line)}) Tj`); + } + buffer.push("ET", "Q"); + const appearance = buffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Resources", resources); + appearanceStreamDict.set("Matrix", [1, 0, 0, 1, -rect[0], -rect[1]]); + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class LineAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.LINE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + const lineCoordinates = lookupRect(dict.getArray("L"), [0, 0, 0, 0]); + this.data.lineCoordinates = Util.normalizeRect(lineCoordinates); + this.setLineEndings(dict.getArray("LE")); + this.data.lineEndings = this.lineEndings; + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + const interiorColor = getRgbColor(dict.getArray("IC"), null); + const fillColor = getPdfColorArray(interiorColor); + const fillAlpha = fillColor ? strokeAlpha : null; + const borderWidth = this.borderStyle.width || 1, + borderAdjust = 2 * borderWidth; + const bbox = [this.data.lineCoordinates[0] - borderAdjust, this.data.lineCoordinates[1] - borderAdjust, this.data.lineCoordinates[2] + borderAdjust, this.data.lineCoordinates[3] + borderAdjust]; + if (!Util.intersect(this.rectangle, bbox)) { + this.rectangle = bbox; + } + this._setDefaultAppearance({ + xref, + extra: `${borderWidth} w`, + strokeColor, + fillColor, + strokeAlpha, + fillAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`, `${lineCoordinates[2]} ${lineCoordinates[3]} l`, "S"); + return [points[0] - borderWidth, points[7] - borderWidth, points[2] + borderWidth, points[3] + borderWidth]; + } + }); + } + } +} +class SquareAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.SQUARE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + const interiorColor = getRgbColor(dict.getArray("IC"), null); + const fillColor = getPdfColorArray(interiorColor); + const fillAlpha = fillColor ? strokeAlpha : null; + if (this.borderStyle.width === 0 && !fillColor) { + return; + } + this._setDefaultAppearance({ + xref, + extra: `${this.borderStyle.width} w`, + strokeColor, + fillColor, + strokeAlpha, + fillAlpha, + pointsCallback: (buffer, points) => { + const x = points[4] + this.borderStyle.width / 2; + const y = points[5] + this.borderStyle.width / 2; + const width = points[6] - points[4] - this.borderStyle.width; + const height = points[3] - points[7] - this.borderStyle.width; + buffer.push(`${x} ${y} ${width} ${height} re`); + if (fillColor) { + buffer.push("B"); + } else { + buffer.push("S"); + } + return [points[0], points[7], points[2], points[3]]; + } + }); + } + } +} +class CircleAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.CIRCLE; + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + const interiorColor = getRgbColor(dict.getArray("IC"), null); + const fillColor = getPdfColorArray(interiorColor); + const fillAlpha = fillColor ? strokeAlpha : null; + if (this.borderStyle.width === 0 && !fillColor) { + return; + } + const controlPointsDistance = 4 / 3 * Math.tan(Math.PI / (2 * 4)); + this._setDefaultAppearance({ + xref, + extra: `${this.borderStyle.width} w`, + strokeColor, + fillColor, + strokeAlpha, + fillAlpha, + pointsCallback: (buffer, points) => { + const x0 = points[0] + this.borderStyle.width / 2; + const y0 = points[1] - this.borderStyle.width / 2; + const x1 = points[6] - this.borderStyle.width / 2; + const y1 = points[7] + this.borderStyle.width / 2; + const xMid = x0 + (x1 - x0) / 2; + const yMid = y0 + (y1 - y0) / 2; + const xOffset = (x1 - x0) / 2 * controlPointsDistance; + const yOffset = (y1 - y0) / 2 * controlPointsDistance; + buffer.push(`${xMid} ${y1} m`, `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`, `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`, `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`, `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`, "h"); + if (fillColor) { + buffer.push("B"); + } else { + buffer.push("S"); + } + return [points[0], points[7], points[2], points[3]]; + } + }); + } + } +} +class PolylineAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.POLYLINE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + this.data.vertices = null; + if (!(this instanceof PolygonAnnotation)) { + this.setLineEndings(dict.getArray("LE")); + this.data.lineEndings = this.lineEndings; + } + const rawVertices = dict.getArray("Vertices"); + if (!isNumberArray(rawVertices, null)) { + return; + } + const vertices = this.data.vertices = Float32Array.from(rawVertices); + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + let fillColor = getRgbColor(dict.getArray("IC"), null); + if (fillColor) { + fillColor = getPdfColorArray(fillColor); + } + let operator; + if (fillColor) { + if (this.color) { + operator = fillColor.every((c, i) => c === strokeColor[i]) ? "f" : "B"; + } else { + operator = "f"; + } + } else { + operator = "S"; + } + const borderWidth = this.borderStyle.width || 1, + borderAdjust = 2 * borderWidth; + const bbox = [Infinity, Infinity, -Infinity, -Infinity]; + for (let i = 0, ii = vertices.length; i < ii; i += 2) { + Util.rectBoundingBox(vertices[i] - borderAdjust, vertices[i + 1] - borderAdjust, vertices[i] + borderAdjust, vertices[i + 1] + borderAdjust, bbox); + } + if (!Util.intersect(this.rectangle, bbox)) { + this.rectangle = bbox; + } + this._setDefaultAppearance({ + xref, + extra: `${borderWidth} w`, + strokeColor, + strokeAlpha, + fillColor, + fillAlpha: fillColor ? strokeAlpha : null, + pointsCallback: (buffer, points) => { + for (let i = 0, ii = vertices.length; i < ii; i += 2) { + buffer.push(`${vertices[i]} ${vertices[i + 1]} ${i === 0 ? "m" : "l"}`); + } + buffer.push(operator); + return [points[0], points[7], points[2], points[3]]; + } + }); + } + } +} +class PolygonAnnotation extends PolylineAnnotation { + constructor(params) { + super(params); + this.data.annotationType = AnnotationType.POLYGON; + } +} +class CaretAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + this.data.annotationType = AnnotationType.CARET; + } +} +class InkAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.INK; + this.data.inkLists = []; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + this.data.opacity = dict.get("CA") || 1; + const rawInkLists = dict.getArray("InkList"); + if (!Array.isArray(rawInkLists)) { + return; + } + for (let i = 0, ii = rawInkLists.length; i < ii; ++i) { + if (!Array.isArray(rawInkLists[i])) { + continue; + } + const inkList = new Float32Array(rawInkLists[i].length); + this.data.inkLists.push(inkList); + for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) { + const x = xref.fetchIfRef(rawInkLists[i][j]), + y = xref.fetchIfRef(rawInkLists[i][j + 1]); + if (typeof x === "number" && typeof y === "number") { + inkList[j] = x; + inkList[j + 1] = y; + } + } + } + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + const borderWidth = this.borderStyle.width || 1, + borderAdjust = 2 * borderWidth; + const bbox = [Infinity, Infinity, -Infinity, -Infinity]; + for (const inkList of this.data.inkLists) { + for (let i = 0, ii = inkList.length; i < ii; i += 2) { + Util.rectBoundingBox(inkList[i] - borderAdjust, inkList[i + 1] - borderAdjust, inkList[i] + borderAdjust, inkList[i + 1] + borderAdjust, bbox); + } + } + if (!Util.intersect(this.rectangle, bbox)) { + this.rectangle = bbox; + } + this._setDefaultAppearance({ + xref, + extra: `${borderWidth} w`, + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + for (const inkList of this.data.inkLists) { + for (let i = 0, ii = inkList.length; i < ii; i += 2) { + buffer.push(`${inkList[i]} ${inkList[i + 1]} ${i === 0 ? "m" : "l"}`); + } + buffer.push("S"); + } + return [points[0], points[7], points[2], points[3]]; + } + }); + } + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + oldAnnotation, + color, + date, + opacity, + paths, + outlines, + rect, + rotation, + thickness, + user + } = annotation; + const ink = oldAnnotation || new Dict(xref); + ink.setIfNotExists("Type", Name.get("Annot")); + ink.setIfNotExists("Subtype", Name.get("Ink")); + ink.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate(date)}`); + ink.setIfArray("Rect", rect); + ink.setIfArray("InkList", outlines?.points || paths?.points); + ink.setIfNotExists("F", 4); + ink.setIfNumber("Rotate", rotation); + ink.setIfDefined("T", stringToAsciiOrUTF16BE(user)); + if (outlines) { + ink.setIfName("IT", "InkHighlight"); + } + if (thickness > 0) { + const bs = new Dict(xref); + ink.set("BS", bs); + bs.set("W", thickness); + } + ink.setIfArray("C", getPdfColorArray(color)); + ink.setIfNumber("CA", opacity); + if (ap || apRef) { + const n = new Dict(xref); + ink.set("AP", n); + n.set("N", apRef || ap); + } + return ink; + } + static async createNewAppearanceStream(annotation, xref, params) { + if (annotation.outlines) { + return this.createNewAppearanceStreamForHighlight(annotation, xref, params); + } + const { + color, + rect, + paths, + thickness, + opacity + } = annotation; + if (!color) { + return null; + } + const appearanceBuffer = [`${thickness} w 1 J 1 j`, `${getPdfColor(color, false)}`]; + if (opacity !== 1) { + appearanceBuffer.push("/R0 gs"); + } + for (const outline of paths.lines) { + appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} m`); + for (let i = 6, ii = outline.length; i < ii; i += 6) { + if (isNaN(outline[i])) { + appearanceBuffer.push(`${numberToString(outline[i + 4])} ${numberToString(outline[i + 5])} l`); + } else { + const [c1x, c1y, c2x, c2y, x, y] = outline.slice(i, i + 6); + appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(" ") + " c"); + } + } + if (outline.length === 6) { + appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} l`); + } + } + appearanceBuffer.push("S"); + const appearance = appearanceBuffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Length", appearance.length); + if (opacity !== 1) { + const resources = new Dict(xref); + const extGState = new Dict(xref); + const r0 = new Dict(xref); + r0.set("CA", opacity); + r0.setIfName("Type", "ExtGState"); + extGState.set("R0", r0); + resources.set("ExtGState", extGState); + appearanceStreamDict.set("Resources", resources); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } + static async createNewAppearanceStreamForHighlight(annotation, xref, params) { + const { + color, + rect, + outlines: { + outline + }, + opacity + } = annotation; + if (!color) { + return null; + } + const appearanceBuffer = [`${getPdfColor(color, true)}`, "/R0 gs"]; + appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} m`); + for (let i = 6, ii = outline.length; i < ii; i += 6) { + if (isNaN(outline[i])) { + appearanceBuffer.push(`${numberToString(outline[i + 4])} ${numberToString(outline[i + 5])} l`); + } else { + const [c1x, c1y, c2x, c2y, x, y] = outline.slice(i, i + 6); + appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(" ") + " c"); + } + } + appearanceBuffer.push("h f"); + const appearance = appearanceBuffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Length", appearance.length); + const resources = new Dict(xref); + const extGState = new Dict(xref); + resources.set("ExtGState", extGState); + appearanceStreamDict.set("Resources", resources); + const r0 = new Dict(xref); + extGState.set("R0", r0); + r0.setIfName("BM", "Multiply"); + if (opacity !== 1) { + r0.set("ca", opacity); + r0.setIfName("Type", "ExtGState"); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class HighlightAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.HIGHLIGHT; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + this.data.opacity = dict.get("CA") || 1; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + const resources = this.appearance?.dict.get("Resources"); + if (!this.appearance || !resources?.has("ExtGState")) { + if (this.appearance) { + warn("HighlightAnnotation - ignoring built-in appearance stream."); + } + const fillColor = getPdfColorArray(this.color, [1, 1, 0]); + const fillAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + fillColor, + blendMode: "Multiply", + fillAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${points[0]} ${points[1]} m`, `${points[2]} ${points[3]} l`, `${points[6]} ${points[7]} l`, `${points[4]} ${points[5]} l`, "f"); + return [points[0], points[7], points[2], points[3]]; + } + }); + } + } else { + this.data.popupRef = null; + } + } + get overlaysTextContent() { + return true; + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + color, + date, + oldAnnotation, + opacity, + rect, + rotation, + user, + quadPoints + } = annotation; + const highlight = oldAnnotation || new Dict(xref); + highlight.setIfNotExists("Type", Name.get("Annot")); + highlight.setIfNotExists("Subtype", Name.get("Highlight")); + highlight.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate(date)}`); + highlight.setIfArray("Rect", rect); + highlight.setIfNotExists("F", 4); + highlight.setIfNotExists("Border", [0, 0, 0]); + highlight.setIfNumber("Rotate", rotation); + highlight.setIfArray("QuadPoints", quadPoints); + highlight.setIfArray("C", getPdfColorArray(color)); + highlight.setIfNumber("CA", opacity); + highlight.setIfDefined("T", stringToAsciiOrUTF16BE(user)); + if (apRef || ap) { + const n = new Dict(xref); + highlight.set("AP", n); + n.set("N", apRef || ap); + } + return highlight; + } + static async createNewAppearanceStream(annotation, xref, params) { + const { + color, + rect, + outlines, + opacity + } = annotation; + if (!color) { + return null; + } + const appearanceBuffer = [`${getPdfColor(color, true)}`, "/R0 gs"]; + const buffer = []; + for (const outline of outlines) { + buffer.length = 0; + buffer.push(`${numberToString(outline[0])} ${numberToString(outline[1])} m`); + for (let i = 2, ii = outline.length; i < ii; i += 2) { + buffer.push(`${numberToString(outline[i])} ${numberToString(outline[i + 1])} l`); + } + buffer.push("h"); + appearanceBuffer.push(buffer.join("\n")); + } + appearanceBuffer.push("f*"); + const appearance = appearanceBuffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Length", appearance.length); + const resources = new Dict(xref); + const extGState = new Dict(xref); + resources.set("ExtGState", extGState); + appearanceStreamDict.set("Resources", resources); + const r0 = new Dict(xref); + extGState.set("R0", r0); + r0.setIfName("BM", "Multiply"); + if (opacity !== 1) { + r0.set("ca", opacity); + r0.setIfName("Type", "ExtGState"); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class UnderlineAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.UNDERLINE; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + extra: "[] 0 d 0.571 w", + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${points[4]} ${points[5] + 1.3} m`, `${points[6]} ${points[7] + 1.3} l`, "S"); + return [points[0], points[7], points[2], points[3]]; + } + }); + } + } else { + this.data.popupRef = null; + } + } + get overlaysTextContent() { + return true; + } +} +class SquigglyAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.SQUIGGLY; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + extra: "[] 0 d 1 w", + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + const dy = (points[1] - points[5]) / 6; + let shift = dy; + let x = points[4]; + const y = points[5]; + const xEnd = points[6]; + buffer.push(`${x} ${y + shift} m`); + do { + x += 2; + shift = shift === 0 ? dy : 0; + buffer.push(`${x} ${y + shift} l`); + } while (x < xEnd); + buffer.push("S"); + return [points[4], y - 2 * dy, xEnd, y + 2 * dy]; + } + }); + } + } else { + this.data.popupRef = null; + } + } + get overlaysTextContent() { + return true; + } +} +class StrikeOutAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.STRIKEOUT; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + if (!this.appearance) { + const strokeColor = getPdfColorArray(this.color, [0, 0, 0]); + const strokeAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + extra: "[] 0 d 1 w", + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${(points[0] + points[4]) / 2} ` + `${(points[1] + points[5]) / 2} m`, `${(points[2] + points[6]) / 2} ` + `${(points[3] + points[7]) / 2} l`, "S"); + return [points[0], points[7], points[2], points[3]]; + } + }); + } + } else { + this.data.popupRef = null; + } + } + get overlaysTextContent() { + return true; + } +} +class StampAnnotation extends MarkupAnnotation { + #savedHasOwnCanvas = null; + constructor(params) { + super(params); + this.data.annotationType = AnnotationType.STAMP; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + } + mustBeViewedWhenEditing(isEditing, modifiedIds = null) { + if (isEditing) { + if (!this.data.isEditable) { + return true; + } + this.#savedHasOwnCanvas ??= this.data.hasOwnCanvas; + this.data.hasOwnCanvas = true; + return true; + } + if (this.#savedHasOwnCanvas !== null) { + this.data.hasOwnCanvas = this.#savedHasOwnCanvas; + this.#savedHasOwnCanvas = null; + } + return !modifiedIds?.has(this.data.id); + } + static async createImage(bitmap, xref) { + const { + width, + height + } = bitmap; + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d", { + alpha: true + }); + ctx.drawImage(bitmap, 0, 0); + const data = ctx.getImageData(0, 0, width, height).data; + const buf32 = new Uint32Array(data.buffer); + const hasAlpha = buf32.some(FeatureTest.isLittleEndian ? x => x >>> 24 !== 0xff : x => (x & 0xff) !== 0xff); + if (hasAlpha) { + ctx.fillStyle = "white"; + ctx.fillRect(0, 0, width, height); + ctx.drawImage(bitmap, 0, 0); + } + const jpegBufferPromise = canvas.convertToBlob({ + type: "image/jpeg", + quality: 1 + }).then(blob => blob.arrayBuffer()); + const xobjectName = Name.get("XObject"); + const imageName = Name.get("Image"); + const image = new Dict(xref); + image.set("Type", xobjectName); + image.set("Subtype", imageName); + image.set("BitsPerComponent", 8); + image.setIfName("ColorSpace", "DeviceRGB"); + image.setIfName("Filter", "DCTDecode"); + image.set("BBox", [0, 0, width, height]); + image.set("Width", width); + image.set("Height", height); + let smaskStream = null; + if (hasAlpha) { + const alphaBuffer = new Uint8Array(buf32.length); + if (FeatureTest.isLittleEndian) { + for (let i = 0, ii = buf32.length; i < ii; i++) { + alphaBuffer[i] = buf32[i] >>> 24; + } + } else { + for (let i = 0, ii = buf32.length; i < ii; i++) { + alphaBuffer[i] = buf32[i] & 0xff; + } + } + const smask = new Dict(xref); + smask.set("Type", xobjectName); + smask.set("Subtype", imageName); + smask.set("BitsPerComponent", 8); + smask.setIfName("ColorSpace", "DeviceGray"); + smask.set("Width", width); + smask.set("Height", height); + smaskStream = new Stream(alphaBuffer, 0, 0, smask); + } + const imageStream = new Stream(await jpegBufferPromise, 0, 0, image); + return { + imageStream, + smaskStream, + width, + height + }; + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + date, + oldAnnotation, + rect, + rotation, + user + } = annotation; + const stamp = oldAnnotation || new Dict(xref); + stamp.setIfNotExists("Type", Name.get("Annot")); + stamp.setIfNotExists("Subtype", Name.get("Stamp")); + stamp.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate(date)}`); + stamp.setIfArray("Rect", rect); + stamp.setIfNotExists("F", 4); + stamp.setIfNotExists("Border", [0, 0, 0]); + stamp.setIfNumber("Rotate", rotation); + stamp.setIfDefined("T", stringToAsciiOrUTF16BE(user)); + if (apRef || ap) { + const n = new Dict(xref); + stamp.set("AP", n); + n.set("N", apRef || ap); + } + return stamp; + } + static async #createNewAppearanceStreamForDrawing(annotation, xref) { + const { + areContours, + color, + rect, + lines, + thickness + } = annotation; + if (!color) { + return null; + } + const appearanceBuffer = [`${thickness} w 1 J 1 j`, `${getPdfColor(color, areContours)}`]; + for (const line of lines) { + appearanceBuffer.push(`${numberToString(line[4])} ${numberToString(line[5])} m`); + for (let i = 6, ii = line.length; i < ii; i += 6) { + if (isNaN(line[i])) { + appearanceBuffer.push(`${numberToString(line[i + 4])} ${numberToString(line[i + 5])} l`); + } else { + const [c1x, c1y, c2x, c2y, x, y] = line.slice(i, i + 6); + appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(" ") + " c"); + } + } + if (line.length === 6) { + appearanceBuffer.push(`${numberToString(line[4])} ${numberToString(line[5])} l`); + } + } + appearanceBuffer.push(areContours ? "F" : "S"); + const appearance = appearanceBuffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Length", appearance.length); + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } + static async createNewAppearanceStream(annotation, xref, params) { + if (annotation.oldAnnotation) { + return null; + } + if (annotation.isSignature) { + return this.#createNewAppearanceStreamForDrawing(annotation, xref); + } + const { + rotation + } = annotation; + const { + imageRef, + width, + height + } = params.image; + const resources = new Dict(xref); + const xobject = new Dict(xref); + resources.set("XObject", xobject); + xobject.set("Im0", imageRef); + const appearance = `q ${width} 0 0 ${height} 0 0 cm /Im0 Do Q`; + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.setIfName("Subtype", "Form"); + appearanceStreamDict.setIfName("Type", "XObject"); + appearanceStreamDict.set("BBox", [0, 0, width, height]); + appearanceStreamDict.set("Resources", resources); + if (rotation) { + const matrix = getRotationMatrix(rotation, width, height); + appearanceStreamDict.set("Matrix", matrix); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class FileAttachmentAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + const file = new FileSpec(dict.get("FS"), xref); + this.data.annotationType = AnnotationType.FILEATTACHMENT; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + this.data.file = file.serializable; + const name = dict.get("Name"); + this.data.name = name instanceof Name ? stringToPDFString(name.name) : "PushPin"; + const fillAlpha = dict.get("ca"); + this.data.fillAlpha = typeof fillAlpha === "number" && fillAlpha >= 0 && fillAlpha <= 1 ? fillAlpha : null; + } +} + +;// ./src/core/calculate_md5.js + +const PARAMS = { + get r() { + return shadow(this, "r", new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21])); + }, + get k() { + return shadow(this, "k", new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551])); + } +}; +function calculateMD5(data, offset, length) { + let h0 = 1732584193, + h1 = -271733879, + h2 = -1732584194, + h3 = 271733878; + const paddedLength = length + 72 & ~63; + const padded = new Uint8Array(paddedLength); + let i, j; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + const n = paddedLength - 8; + if (i < n) { + i = n; + } + padded[i++] = length << 3 & 0xff; + padded[i++] = length >> 5 & 0xff; + padded[i++] = length >> 13 & 0xff; + padded[i++] = length >> 21 & 0xff; + padded[i++] = length >>> 29 & 0xff; + i += 3; + const w = new Int32Array(16); + const { + k, + r + } = PARAMS; + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j, i += 4) { + w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24; + } + let a = h0, + b = h1, + c = h2, + d = h3, + f, + g; + for (j = 0; j < 64; ++j) { + if (j < 16) { + f = b & c | ~b & d; + g = j; + } else if (j < 32) { + f = d & b | ~d & c; + g = 5 * j + 1 & 15; + } else if (j < 48) { + f = b ^ c ^ d; + g = 3 * j + 5 & 15; + } else { + f = c ^ (b | ~d); + g = 7 * j & 15; + } + const tmp = d, + rotateArg = a + f + k[j] + w[g] | 0, + rotate = r[j]; + d = c; + c = b; + b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0; + a = tmp; + } + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + } + return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]); +} + +;// ./src/core/dataset_reader.js + + + +function decodeString(str) { + try { + return stringToUTF8String(str); + } catch (ex) { + warn(`UTF-8 decoding failed: "${ex}".`); + return str; + } +} +class DatasetXMLParser extends SimpleXMLParser { + constructor(options) { + super(options); + this.node = null; + } + onEndElement(name) { + const node = super.onEndElement(name); + if (node && name === "xfa:datasets") { + this.node = node; + throw new Error("Aborting DatasetXMLParser."); + } + } +} +class DatasetReader { + constructor(data) { + if (data.datasets) { + this.node = new SimpleXMLParser({ + hasAttributes: true + }).parseFromString(data.datasets).documentElement; + } else { + const parser = new DatasetXMLParser({ + hasAttributes: true + }); + try { + parser.parseFromString(data["xdp:xdp"]); + } catch {} + this.node = parser.node; + } + } + getValue(path) { + if (!this.node || !path) { + return ""; + } + const node = this.node.searchNode(parseXFAPath(path), 0); + if (!node) { + return ""; + } + const first = node.firstChild; + if (first?.nodeName === "value") { + return node.children.map(child => decodeString(child.textContent)); + } + return decodeString(node.textContent); + } +} + +;// ./src/core/intersector.js +class SingleIntersector { + #annotation; + #minX = Infinity; + #minY = Infinity; + #maxX = -Infinity; + #maxY = -Infinity; + #quadPoints = null; + #text = []; + #extraChars = []; + #lastIntersectingQuadIndex = -1; + #canTakeExtraChars = false; + constructor(annotation) { + this.#annotation = annotation; + const quadPoints = annotation.data.quadPoints; + if (!quadPoints) { + [this.#minX, this.#minY, this.#maxX, this.#maxY] = annotation.data.rect; + return; + } + for (let i = 0, ii = quadPoints.length; i < ii; i += 8) { + this.#minX = Math.min(this.#minX, quadPoints[i]); + this.#maxX = Math.max(this.#maxX, quadPoints[i + 2]); + this.#minY = Math.min(this.#minY, quadPoints[i + 5]); + this.#maxY = Math.max(this.#maxY, quadPoints[i + 1]); + } + if (quadPoints.length > 8) { + this.#quadPoints = quadPoints; + } + } + overlaps(other) { + return !(this.#minX >= other.#maxX || this.#maxX <= other.#minX || this.#minY >= other.#maxY || this.#maxY <= other.#minY); + } + #intersects(x, y) { + if (this.#minX >= x || this.#maxX <= x || this.#minY >= y || this.#maxY <= y) { + return false; + } + const quadPoints = this.#quadPoints; + if (!quadPoints) { + return true; + } + if (this.#lastIntersectingQuadIndex >= 0) { + const i = this.#lastIntersectingQuadIndex; + if (!(quadPoints[i] >= x || quadPoints[i + 2] <= x || quadPoints[i + 5] >= y || quadPoints[i + 1] <= y)) { + return true; + } + this.#lastIntersectingQuadIndex = -1; + } + for (let i = 0, ii = quadPoints.length; i < ii; i += 8) { + if (!(quadPoints[i] >= x || quadPoints[i + 2] <= x || quadPoints[i + 5] >= y || quadPoints[i + 1] <= y)) { + this.#lastIntersectingQuadIndex = i; + return true; + } + } + return false; + } + addGlyph(x, y, glyph) { + if (!this.#intersects(x, y)) { + this.disableExtraChars(); + return false; + } + if (this.#extraChars.length > 0) { + this.#text.push(this.#extraChars.join("")); + this.#extraChars.length = 0; + } + this.#text.push(glyph); + this.#canTakeExtraChars = true; + return true; + } + addExtraChar(char) { + if (this.#canTakeExtraChars) { + this.#extraChars.push(char); + } + } + disableExtraChars() { + if (!this.#canTakeExtraChars) { + return; + } + this.#canTakeExtraChars = false; + this.#extraChars.length = 0; + } + setText() { + this.#annotation.data.overlaidText = this.#text.join(""); + } +} +class Intersector { + #intersectors = new Map(); + constructor(annotations) { + for (const annotation of annotations) { + if (!annotation.data.quadPoints && !annotation.data.rect) { + continue; + } + const intersector = new SingleIntersector(annotation); + for (const [otherIntersector, overlapping] of this.#intersectors) { + if (otherIntersector.overlaps(intersector)) { + if (!overlapping) { + this.#intersectors.set(otherIntersector, new Set([intersector])); + } else { + overlapping.add(intersector); + } + } + } + this.#intersectors.set(intersector, null); + } + } + addGlyph(transform, width, height, glyph) { + const x = transform[4] + width / 2; + const y = transform[5] + height / 2; + let overlappingIntersectors; + for (const [intersector, overlapping] of this.#intersectors) { + if (overlappingIntersectors) { + if (overlappingIntersectors.has(intersector)) { + intersector.addGlyph(x, y, glyph); + } else { + intersector.disableExtraChars(); + } + continue; + } + if (!intersector.addGlyph(x, y, glyph)) { + continue; + } + overlappingIntersectors = overlapping; + } + } + addExtraChar(char) { + for (const intersector of this.#intersectors.keys()) { + intersector.addExtraChar(char); + } + } + setText() { + for (const intersector of this.#intersectors.keys()) { + intersector.setText(); + } + } +} + +;// ./src/core/calculate_sha_other.js + +class Word64 { + constructor(highInteger, lowInteger) { + this.high = highInteger | 0; + this.low = lowInteger | 0; + } + and(word) { + this.high &= word.high; + this.low &= word.low; + } + xor(word) { + this.high ^= word.high; + this.low ^= word.low; + } + shiftRight(places) { + if (places >= 32) { + this.low = this.high >>> places - 32 | 0; + this.high = 0; + } else { + this.low = this.low >>> places | this.high << 32 - places; + this.high = this.high >>> places | 0; + } + } + rotateRight(places) { + let low, high; + if (places & 32) { + high = this.low; + low = this.high; + } else { + low = this.low; + high = this.high; + } + places &= 31; + this.low = low >>> places | high << 32 - places; + this.high = high >>> places | low << 32 - places; + } + not() { + this.high = ~this.high; + this.low = ~this.low; + } + add(word) { + const lowAdd = (this.low >>> 0) + (word.low >>> 0); + let highAdd = (this.high >>> 0) + (word.high >>> 0); + if (lowAdd > 0xffffffff) { + highAdd += 1; + } + this.low = lowAdd | 0; + this.high = highAdd | 0; + } + copyTo(bytes, offset) { + bytes[offset] = this.high >>> 24 & 0xff; + bytes[offset + 1] = this.high >> 16 & 0xff; + bytes[offset + 2] = this.high >> 8 & 0xff; + bytes[offset + 3] = this.high & 0xff; + bytes[offset + 4] = this.low >>> 24 & 0xff; + bytes[offset + 5] = this.low >> 16 & 0xff; + bytes[offset + 6] = this.low >> 8 & 0xff; + bytes[offset + 7] = this.low & 0xff; + } + assign(word) { + this.high = word.high; + this.low = word.low; + } +} +const calculate_sha_other_PARAMS = { + get k() { + return shadow(this, "k", [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)]); + } +}; +function ch(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.not(); + tmp.and(z); + result.xor(tmp); +} +function maj(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.and(z); + result.xor(tmp); + tmp.assign(y); + tmp.and(z); + result.xor(tmp); +} +function sigma(result, x, tmp) { + result.assign(x); + result.rotateRight(28); + tmp.assign(x); + tmp.rotateRight(34); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(39); + result.xor(tmp); +} +function sigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(14); + tmp.assign(x); + tmp.rotateRight(18); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(41); + result.xor(tmp); +} +function littleSigma(result, x, tmp) { + result.assign(x); + result.rotateRight(1); + tmp.assign(x); + tmp.rotateRight(8); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(7); + result.xor(tmp); +} +function littleSigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(19); + tmp.assign(x); + tmp.rotateRight(61); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(6); + result.xor(tmp); +} +function calculateSHA512(data, offset, length, mode384 = false) { + let h0, h1, h2, h3, h4, h5, h6, h7; + if (!mode384) { + h0 = new Word64(0x6a09e667, 0xf3bcc908); + h1 = new Word64(0xbb67ae85, 0x84caa73b); + h2 = new Word64(0x3c6ef372, 0xfe94f82b); + h3 = new Word64(0xa54ff53a, 0x5f1d36f1); + h4 = new Word64(0x510e527f, 0xade682d1); + h5 = new Word64(0x9b05688c, 0x2b3e6c1f); + h6 = new Word64(0x1f83d9ab, 0xfb41bd6b); + h7 = new Word64(0x5be0cd19, 0x137e2179); + } else { + h0 = new Word64(0xcbbb9d5d, 0xc1059ed8); + h1 = new Word64(0x629a292a, 0x367cd507); + h2 = new Word64(0x9159015a, 0x3070dd17); + h3 = new Word64(0x152fecd8, 0xf70e5939); + h4 = new Word64(0x67332667, 0xffc00b31); + h5 = new Word64(0x8eb44a87, 0x68581511); + h6 = new Word64(0xdb0c2e0d, 0x64f98fa7); + h7 = new Word64(0x47b5481d, 0xbefa4fa4); + } + const paddedLength = Math.ceil((length + 17) / 128) * 128; + const padded = new Uint8Array(paddedLength); + let i, j; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + const n = paddedLength - 16; + if (i < n) { + i = n; + } + i += 11; + padded[i++] = length >>> 29 & 0xff; + padded[i++] = length >> 21 & 0xff; + padded[i++] = length >> 13 & 0xff; + padded[i++] = length >> 5 & 0xff; + padded[i++] = length << 3 & 0xff; + const w = new Array(80); + for (i = 0; i < 80; i++) { + w[i] = new Word64(0, 0); + } + const { + k + } = calculate_sha_other_PARAMS; + let a = new Word64(0, 0), + b = new Word64(0, 0), + c = new Word64(0, 0); + let d = new Word64(0, 0), + e = new Word64(0, 0), + f = new Word64(0, 0); + let g = new Word64(0, 0), + h = new Word64(0, 0); + const t1 = new Word64(0, 0), + t2 = new Word64(0, 0); + const tmp1 = new Word64(0, 0), + tmp2 = new Word64(0, 0); + let tmp3; + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7]; + i += 8; + } + for (j = 16; j < 80; ++j) { + tmp3 = w[j]; + littleSigmaPrime(tmp3, w[j - 2], tmp2); + tmp3.add(w[j - 7]); + littleSigma(tmp1, w[j - 15], tmp2); + tmp3.add(tmp1); + tmp3.add(w[j - 16]); + } + a.assign(h0); + b.assign(h1); + c.assign(h2); + d.assign(h3); + e.assign(h4); + f.assign(h5); + g.assign(h6); + h.assign(h7); + for (j = 0; j < 80; ++j) { + t1.assign(h); + sigmaPrime(tmp1, e, tmp2); + t1.add(tmp1); + ch(tmp1, e, f, g, tmp2); + t1.add(tmp1); + t1.add(k[j]); + t1.add(w[j]); + sigma(t2, a, tmp2); + maj(tmp1, a, b, c, tmp2); + t2.add(tmp1); + tmp3 = h; + h = g; + g = f; + f = e; + d.add(t1); + e = d; + d = c; + c = b; + b = a; + tmp3.assign(t1); + tmp3.add(t2); + a = tmp3; + } + h0.add(a); + h1.add(b); + h2.add(c); + h3.add(d); + h4.add(e); + h5.add(f); + h6.add(g); + h7.add(h); + } + let result; + if (!mode384) { + result = new Uint8Array(64); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + h6.copyTo(result, 48); + h7.copyTo(result, 56); + } else { + result = new Uint8Array(48); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + } + return result; +} +function calculateSHA384(data, offset, length) { + return calculateSHA512(data, offset, length, true); +} + +;// ./src/core/calculate_sha256.js + +const calculate_sha256_PARAMS = { + get k() { + return shadow(this, "k", [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]); + } +}; +function rotr(x, n) { + return x >>> n | x << 32 - n; +} +function calculate_sha256_ch(x, y, z) { + return x & y ^ ~x & z; +} +function calculate_sha256_maj(x, y, z) { + return x & y ^ x & z ^ y & z; +} +function calculate_sha256_sigma(x) { + return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22); +} +function calculate_sha256_sigmaPrime(x) { + return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25); +} +function calculate_sha256_littleSigma(x) { + return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3; +} +function calculate_sha256_littleSigmaPrime(x) { + return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10; +} +function calculateSHA256(data, offset, length) { + let h0 = 0x6a09e667, + h1 = 0xbb67ae85, + h2 = 0x3c6ef372, + h3 = 0xa54ff53a, + h4 = 0x510e527f, + h5 = 0x9b05688c, + h6 = 0x1f83d9ab, + h7 = 0x5be0cd19; + const paddedLength = Math.ceil((length + 9) / 64) * 64; + const padded = new Uint8Array(paddedLength); + let i, j; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + const n = paddedLength - 8; + if (i < n) { + i = n; + } + i += 3; + padded[i++] = length >>> 29 & 0xff; + padded[i++] = length >> 21 & 0xff; + padded[i++] = length >> 13 & 0xff; + padded[i++] = length >> 5 & 0xff; + padded[i++] = length << 3 & 0xff; + const w = new Uint32Array(64); + const { + k + } = calculate_sha256_PARAMS; + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + i += 4; + } + for (j = 16; j < 64; ++j) { + w[j] = calculate_sha256_littleSigmaPrime(w[j - 2]) + w[j - 7] + calculate_sha256_littleSigma(w[j - 15]) + w[j - 16] | 0; + } + let a = h0, + b = h1, + c = h2, + d = h3, + e = h4, + f = h5, + g = h6, + h = h7, + t1, + t2; + for (j = 0; j < 64; ++j) { + t1 = h + calculate_sha256_sigmaPrime(e) + calculate_sha256_ch(e, f, g) + k[j] + w[j]; + t2 = calculate_sha256_sigma(a) + calculate_sha256_maj(a, b, c); + h = g; + g = f; + f = e; + e = d + t1 | 0; + d = c; + c = b; + b = a; + a = t1 + t2 | 0; + } + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + h4 = h4 + e | 0; + h5 = h5 + f | 0; + h6 = h6 + g | 0; + h7 = h7 + h | 0; + } + return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]); +} + +;// ./src/core/decrypt_stream.js + +const chunkSize = 512; +class DecryptStream extends DecodeStream { + constructor(str, maybeLength, decrypt) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.decrypt = decrypt; + this.nextChunk = null; + this.initialized = false; + } + readBlock() { + let chunk; + if (this.initialized) { + chunk = this.nextChunk; + } else { + chunk = this.str.getBytes(chunkSize); + this.initialized = true; + } + if (!chunk?.length) { + this.eof = true; + return; + } + this.nextChunk = this.str.getBytes(chunkSize); + const hasMoreData = this.nextChunk?.length > 0; + const decrypt = this.decrypt; + chunk = decrypt(chunk, !hasMoreData); + const bufferLength = this.bufferLength, + newLength = bufferLength + chunk.length, + buffer = this.ensureBuffer(newLength); + buffer.set(chunk, bufferLength); + this.bufferLength = newLength; + } +} + +;// ./src/core/crypto.js + + + + + + +class ARCFourCipher { + constructor(key) { + this.a = 0; + this.b = 0; + const s = new Uint8Array(256); + const keyLength = key.length; + for (let i = 0; i < 256; ++i) { + s[i] = i; + } + for (let i = 0, j = 0; i < 256; ++i) { + const tmp = s[i]; + j = j + tmp + key[i % keyLength] & 0xff; + s[i] = s[j]; + s[j] = tmp; + } + this.s = s; + } + encryptBlock(data) { + let a = this.a, + b = this.b; + const s = this.s; + const n = data.length; + const output = new Uint8Array(n); + for (let i = 0; i < n; ++i) { + a = a + 1 & 0xff; + const tmp = s[a]; + b = b + tmp & 0xff; + const tmp2 = s[b]; + s[a] = tmp2; + s[b] = tmp; + output[i] = data[i] ^ s[tmp + tmp2 & 0xff]; + } + this.a = a; + this.b = b; + return output; + } + decryptBlock(data) { + return this.encryptBlock(data); + } + encrypt(data) { + return this.encryptBlock(data); + } +} +class NullCipher { + decryptBlock(data) { + return data; + } + encrypt(data) { + return data; + } +} +class AESBaseCipher { + _s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]); + _inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]); + _mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]); + _mixCol = new Uint8Array(256).map((_, i) => i < 128 ? i << 1 : i << 1 ^ 0x1b); + constructor() { + this.buffer = new Uint8Array(16); + this.bufferPosition = 0; + } + _expandKey(cipherKey) { + unreachable("Cannot call `_expandKey` on the base class"); + } + _decrypt(input, key) { + let t, u, v; + const state = new Uint8Array(16); + state.set(input); + for (let j = 0, k = this._keySize; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) { + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (let j = 0; j < 16; ++j) { + state[j] = this._inv_s[state[j]]; + } + for (let j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (let j = 0; j < 16; j += 4) { + const s0 = this._mix[state[j]]; + const s1 = this._mix[state[j + 1]]; + const s2 = this._mix[state[j + 2]]; + const s3 = this._mix[state[j + 3]]; + t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8; + state[j] = t >>> 24 & 0xff; + state[j + 1] = t >> 16 & 0xff; + state[j + 2] = t >> 8 & 0xff; + state[j + 3] = t & 0xff; + } + } + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (let j = 0; j < 16; ++j) { + state[j] = this._inv_s[state[j]]; + state[j] ^= key[j]; + } + return state; + } + _encrypt(input, key) { + const s = this._s; + let t, u, v; + const state = new Uint8Array(16); + state.set(input); + for (let j = 0; j < 16; ++j) { + state[j] ^= key[j]; + } + for (let i = 1; i < this._cyclesOfRepetition; i++) { + for (let j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (let j = 0; j < 16; j += 4) { + const s0 = state[j]; + const s1 = state[j + 1]; + const s2 = state[j + 2]; + const s3 = state[j + 3]; + t = s0 ^ s1 ^ s2 ^ s3; + state[j] ^= t ^ this._mixCol[s0 ^ s1]; + state[j + 1] ^= t ^ this._mixCol[s1 ^ s2]; + state[j + 2] ^= t ^ this._mixCol[s2 ^ s3]; + state[j + 3] ^= t ^ this._mixCol[s3 ^ s0]; + } + for (let j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + } + for (let j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (let j = 0, k = this._keySize; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + return state; + } + _decryptBlock2(data, finalize) { + const sourceLength = data.length; + let buffer = this.buffer, + bufferLength = this.bufferPosition; + const result = []; + let iv = this.iv; + for (let i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + const plain = this._decrypt(buffer, this._key); + for (let j = 0; j < 16; ++j) { + plain[j] ^= iv[j]; + } + iv = buffer; + result.push(plain); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array(0); + } + let outputLength = 16 * result.length; + if (finalize) { + const lastBlock = result.at(-1); + let psLen = lastBlock[15]; + if (psLen <= 16) { + for (let i = 15, ii = 16 - psLen; i >= ii; --i) { + if (lastBlock[i] !== psLen) { + psLen = 0; + break; + } + } + outputLength -= psLen; + result[result.length - 1] = lastBlock.subarray(0, 16 - psLen); + } + } + const output = new Uint8Array(outputLength); + for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } + decryptBlock(data, finalize, iv = null) { + const sourceLength = data.length; + const buffer = this.buffer; + let bufferLength = this.bufferPosition; + if (iv) { + this.iv = iv; + } else { + for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { + buffer[bufferLength] = data[i]; + } + if (bufferLength < 16) { + this.bufferLength = bufferLength; + return new Uint8Array(0); + } + this.iv = buffer; + data = data.subarray(16); + } + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = this._decryptBlock2; + return this.decryptBlock(data, finalize); + } + encrypt(data, iv) { + const sourceLength = data.length; + let buffer = this.buffer, + bufferLength = this.bufferPosition; + const result = []; + iv ||= new Uint8Array(16); + for (let i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + for (let j = 0; j < 16; ++j) { + buffer[j] ^= iv[j]; + } + const cipher = this._encrypt(buffer, this._key); + iv = cipher; + result.push(cipher); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array(0); + } + const outputLength = 16 * result.length; + const output = new Uint8Array(outputLength); + for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } +} +class AES128Cipher extends AESBaseCipher { + _rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]); + constructor(key) { + super(); + this._cyclesOfRepetition = 10; + this._keySize = 160; + this._key = this._expandKey(key); + } + _expandKey(cipherKey) { + const b = 176; + const s = this._s; + const rcon = this._rcon; + const result = new Uint8Array(b); + result.set(cipherKey); + for (let j = 16, i = 1; j < b; ++i) { + let t1 = result[j - 3]; + let t2 = result[j - 2]; + let t3 = result[j - 1]; + let t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 ^= rcon[i]; + for (let n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 16]; + j++; + result[j] = t2 ^= result[j - 16]; + j++; + result[j] = t3 ^= result[j - 16]; + j++; + result[j] = t4 ^= result[j - 16]; + j++; + } + } + return result; + } +} +class AES256Cipher extends AESBaseCipher { + constructor(key) { + super(); + this._cyclesOfRepetition = 14; + this._keySize = 224; + this._key = this._expandKey(key); + } + _expandKey(cipherKey) { + const b = 240; + const s = this._s; + const result = new Uint8Array(b); + result.set(cipherKey); + let r = 1; + let t1, t2, t3, t4; + for (let j = 32, i = 1; j < b; ++i) { + if (j % 32 === 16) { + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + } else if (j % 32 === 0) { + t1 = result[j - 3]; + t2 = result[j - 2]; + t3 = result[j - 1]; + t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 ^= r; + if ((r <<= 1) >= 256) { + r = (r ^ 0x1b) & 0xff; + } + } + for (let n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 32]; + j++; + result[j] = t2 ^= result[j - 32]; + j++; + result[j] = t3 ^= result[j - 32]; + j++; + result[j] = t4 ^= result[j - 32]; + j++; + } + } + return result; + } +} +class PDFBase { + _hash(password, input, userBytes) { + unreachable("Abstract method `_hash` called"); + } + checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) { + const hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerValidationSalt, password.length); + hashData.set(userBytes, password.length + ownerValidationSalt.length); + const result = this._hash(password, hashData, userBytes); + return isArrayEqual(result, ownerPassword); + } + checkUserPassword(password, userValidationSalt, userPassword) { + const hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userValidationSalt, password.length); + const result = this._hash(password, hashData, []); + return isArrayEqual(result, userPassword); + } + getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) { + const hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerKeySalt, password.length); + hashData.set(userBytes, password.length + ownerKeySalt.length); + const key = this._hash(password, hashData, userBytes); + const cipher = new AES256Cipher(key); + return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16)); + } + getUserKey(password, userKeySalt, userEncryption) { + const hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userKeySalt, password.length); + const key = this._hash(password, hashData, []); + const cipher = new AES256Cipher(key); + return cipher.decryptBlock(userEncryption, false, new Uint8Array(16)); + } +} +class PDF17 extends PDFBase { + _hash(password, input, userBytes) { + return calculateSHA256(input, 0, input.length); + } +} +class PDF20 extends PDFBase { + _hash(password, input, userBytes) { + let k = calculateSHA256(input, 0, input.length).subarray(0, 32); + let e = [0]; + let i = 0; + while (i < 64 || e.at(-1) > i - 32) { + const combinedLength = password.length + k.length + userBytes.length, + combinedArray = new Uint8Array(combinedLength); + let writeOffset = 0; + combinedArray.set(password, writeOffset); + writeOffset += password.length; + combinedArray.set(k, writeOffset); + writeOffset += k.length; + combinedArray.set(userBytes, writeOffset); + const k1 = new Uint8Array(combinedLength * 64); + for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) { + k1.set(combinedArray, pos); + } + const cipher = new AES128Cipher(k.subarray(0, 16)); + e = cipher.encrypt(k1, k.subarray(16, 32)); + const remainder = Math.sumPrecise(e.slice(0, 16)) % 3; + if (remainder === 0) { + k = calculateSHA256(e, 0, e.length); + } else if (remainder === 1) { + k = calculateSHA384(e, 0, e.length); + } else if (remainder === 2) { + k = calculateSHA512(e, 0, e.length); + } + i++; + } + return k.subarray(0, 32); + } +} +class CipherTransform { + constructor(stringCipherConstructor, streamCipherConstructor) { + this.StringCipherConstructor = stringCipherConstructor; + this.StreamCipherConstructor = streamCipherConstructor; + } + createStream(stream, length) { + const cipher = new this.StreamCipherConstructor(); + return new DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) { + return cipher.decryptBlock(data, finalize); + }); + } + decryptString(s) { + const cipher = new this.StringCipherConstructor(); + let data = stringToBytes(s); + data = cipher.decryptBlock(data, true); + return bytesToString(data); + } + encryptString(s) { + const cipher = new this.StringCipherConstructor(); + if (cipher instanceof AESBaseCipher) { + const strLen = s.length; + const pad = 16 - strLen % 16; + s += String.fromCharCode(pad).repeat(pad); + const iv = new Uint8Array(16); + crypto.getRandomValues(iv); + let data = stringToBytes(s); + data = cipher.encrypt(data, iv); + const buf = new Uint8Array(16 + data.length); + buf.set(iv); + buf.set(data, 16); + return bytesToString(buf); + } + let data = stringToBytes(s); + data = cipher.encrypt(data); + return bytesToString(data); + } +} +class CipherTransformFactory { + static get _defaultPasswordBytes() { + return shadow(this, "_defaultPasswordBytes", new Uint8Array([0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a])); + } + #createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) { + if (password) { + const passwordLength = Math.min(127, password.length); + password = password.subarray(0, passwordLength); + } else { + password = []; + } + const pdfAlgorithm = revision === 6 ? new PDF20() : new PDF17(); + if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) { + return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption); + } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) { + return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption); + } + return null; + } + #prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) { + const hashDataSize = 40 + ownerPassword.length + fileId.length; + const hashData = new Uint8Array(hashDataSize); + let i = 0, + j, + n; + if (password) { + n = Math.min(32, password.length); + for (; i < n; ++i) { + hashData[i] = password[i]; + } + } + j = 0; + while (i < 32) { + hashData[i++] = CipherTransformFactory._defaultPasswordBytes[j++]; + } + hashData.set(ownerPassword, i); + i += ownerPassword.length; + hashData[i++] = flags & 0xff; + hashData[i++] = flags >> 8 & 0xff; + hashData[i++] = flags >> 16 & 0xff; + hashData[i++] = flags >>> 24 & 0xff; + hashData.set(fileId, i); + i += fileId.length; + if (revision >= 4 && !encryptMetadata) { + hashData.fill(0xff, i, i + 4); + i += 4; + } + let hash = calculateMD5(hashData, 0, i); + const keyLengthInBytes = keyLength >> 3; + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, keyLengthInBytes); + } + } + const encryptionKey = hash.subarray(0, keyLengthInBytes); + let cipher, checkData; + if (revision >= 3) { + i = 0; + hashData.set(CipherTransformFactory._defaultPasswordBytes, i); + i += 32; + hashData.set(fileId, i); + i += fileId.length; + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i)); + n = encryptionKey.length; + const derivedKey = new Uint8Array(n); + for (j = 1; j <= 19; ++j) { + for (let k = 0; k < n; ++k) { + derivedKey[k] = encryptionKey[k] ^ j; + } + cipher = new ARCFourCipher(derivedKey); + checkData = cipher.encryptBlock(checkData); + } + } else { + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(CipherTransformFactory._defaultPasswordBytes); + } + return checkData.every((data, k) => userPassword[k] === data) ? encryptionKey : null; + } + #decodeUserPassword(password, ownerPassword, revision, keyLength) { + const hashData = new Uint8Array(32); + let i = 0; + const n = Math.min(32, password.length); + for (; i < n; ++i) { + hashData[i] = password[i]; + } + let j = 0; + while (i < 32) { + hashData[i++] = CipherTransformFactory._defaultPasswordBytes[j++]; + } + let hash = calculateMD5(hashData, 0, i); + const keyLengthInBytes = keyLength >> 3; + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, hash.length); + } + } + let cipher, userPassword; + if (revision >= 3) { + userPassword = ownerPassword; + const derivedKey = new Uint8Array(keyLengthInBytes); + for (j = 19; j >= 0; j--) { + for (let k = 0; k < keyLengthInBytes; ++k) { + derivedKey[k] = hash[k] ^ j; + } + cipher = new ARCFourCipher(derivedKey); + userPassword = cipher.encryptBlock(userPassword); + } + } else { + cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes)); + userPassword = cipher.encryptBlock(ownerPassword); + } + return userPassword; + } + #buildObjectKey(num, gen, encryptionKey, isAes = false) { + const n = encryptionKey.length; + const key = new Uint8Array(n + 9); + key.set(encryptionKey); + let i = n; + key[i++] = num & 0xff; + key[i++] = num >> 8 & 0xff; + key[i++] = num >> 16 & 0xff; + key[i++] = gen & 0xff; + key[i++] = gen >> 8 & 0xff; + if (isAes) { + key[i++] = 0x73; + key[i++] = 0x41; + key[i++] = 0x6c; + key[i++] = 0x54; + } + const hash = calculateMD5(key, 0, i); + return hash.subarray(0, Math.min(n + 5, 16)); + } + #buildCipherConstructor(cf, name, num, gen, key) { + if (!(name instanceof Name)) { + throw new FormatError("Invalid crypt filter name."); + } + const self = this; + const cryptFilter = cf.get(name.name); + const cfm = cryptFilter?.get("CFM"); + if (!cfm || cfm.name === "None") { + return function () { + return new NullCipher(); + }; + } + if (cfm.name === "V2") { + return function () { + return new ARCFourCipher(self.#buildObjectKey(num, gen, key, false)); + }; + } + if (cfm.name === "AESV2") { + return function () { + return new AES128Cipher(self.#buildObjectKey(num, gen, key, true)); + }; + } + if (cfm.name === "AESV3") { + return function () { + return new AES256Cipher(key); + }; + } + throw new FormatError("Unknown crypto method"); + } + constructor(dict, fileId, password) { + const filter = dict.get("Filter"); + if (!isName(filter, "Standard")) { + throw new FormatError("unknown encryption method"); + } + this.filterName = filter.name; + this.dict = dict; + const algorithm = dict.get("V"); + if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) { + throw new FormatError("unsupported encryption algorithm"); + } + this.algorithm = algorithm; + let keyLength = dict.get("Length"); + if (!keyLength) { + if (algorithm <= 3) { + keyLength = 40; + } else { + const cfDict = dict.get("CF"); + const streamCryptoName = dict.get("StmF"); + if (cfDict instanceof Dict && streamCryptoName instanceof Name) { + cfDict.suppressEncryption = true; + const handlerDict = cfDict.get(streamCryptoName.name); + keyLength = handlerDict?.get("Length") || 128; + if (keyLength < 40) { + keyLength <<= 3; + } + } + } + } + if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) { + throw new FormatError("invalid key length"); + } + const ownerBytes = stringToBytes(dict.get("O")), + userBytes = stringToBytes(dict.get("U")); + const ownerPassword = ownerBytes.subarray(0, 32); + const userPassword = userBytes.subarray(0, 32); + const flags = dict.get("P"); + const revision = dict.get("R"); + const encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get("EncryptMetadata") !== false; + this.encryptMetadata = encryptMetadata; + const fileIdBytes = stringToBytes(fileId); + let passwordBytes; + if (password) { + if (revision === 6) { + try { + password = utf8StringToString(password); + } catch { + warn("CipherTransformFactory: Unable to convert UTF8 encoded password."); + } + } + passwordBytes = stringToBytes(password); + } + let encryptionKey; + if (algorithm !== 5) { + encryptionKey = this.#prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } else { + const ownerValidationSalt = ownerBytes.subarray(32, 40); + const ownerKeySalt = ownerBytes.subarray(40, 48); + const uBytes = userBytes.subarray(0, 48); + const userValidationSalt = userBytes.subarray(32, 40); + const userKeySalt = userBytes.subarray(40, 48); + const ownerEncryption = stringToBytes(dict.get("OE")); + const userEncryption = stringToBytes(dict.get("UE")); + const perms = stringToBytes(dict.get("Perms")); + encryptionKey = this.#createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms); + } + if (!encryptionKey) { + if (!password) { + throw new PasswordException("No password given", PasswordResponses.NEED_PASSWORD); + } + const decodedPassword = this.#decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength); + encryptionKey = this.#prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } + if (!encryptionKey) { + throw new PasswordException("Incorrect Password", PasswordResponses.INCORRECT_PASSWORD); + } + if (algorithm === 4 && encryptionKey.length < 16) { + this.encryptionKey = new Uint8Array(16); + this.encryptionKey.set(encryptionKey); + } else { + this.encryptionKey = encryptionKey; + } + if (algorithm >= 4) { + const cf = dict.get("CF"); + if (cf instanceof Dict) { + cf.suppressEncryption = true; + } + this.cf = cf; + this.stmf = dict.get("StmF") || Name.get("Identity"); + this.strf = dict.get("StrF") || Name.get("Identity"); + this.eff = dict.get("EFF") || this.stmf; + } + } + createCipherTransform(num, gen) { + if (this.algorithm === 4 || this.algorithm === 5) { + return new CipherTransform(this.#buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey), this.#buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey)); + } + const key = this.#buildObjectKey(num, gen, this.encryptionKey, false); + const cipherConstructor = function () { + return new ARCFourCipher(key); + }; + return new CipherTransform(cipherConstructor, cipherConstructor); + } +} + +;// ./src/core/xref.js + + + + + + +class XRef { + #firstXRefStmPos = null; + constructor(stream, pdfManager) { + this.stream = stream; + this.pdfManager = pdfManager; + this.entries = []; + this._xrefStms = new Set(); + this._cacheMap = new Map(); + this._pendingRefs = new RefSet(); + this._newPersistentRefNum = null; + this._newTemporaryRefNum = null; + this._persistentRefsCache = null; + } + getNewPersistentRef(obj) { + if (this._newPersistentRefNum === null) { + this._newPersistentRefNum = this.entries.length || 1; + } + const num = this._newPersistentRefNum++; + this._cacheMap.set(num, obj); + return Ref.get(num, 0); + } + getNewTemporaryRef() { + if (this._newTemporaryRefNum === null) { + this._newTemporaryRefNum = this.entries.length || 1; + if (this._newPersistentRefNum) { + this._persistentRefsCache = new Map(); + for (let i = this._newTemporaryRefNum; i < this._newPersistentRefNum; i++) { + this._persistentRefsCache.set(i, this._cacheMap.get(i)); + this._cacheMap.delete(i); + } + } + } + return Ref.get(this._newTemporaryRefNum++, 0); + } + resetNewTemporaryRef() { + this._newTemporaryRefNum = null; + if (this._persistentRefsCache) { + for (const [num, obj] of this._persistentRefsCache) { + this._cacheMap.set(num, obj); + } + } + this._persistentRefsCache = null; + } + setStartXRef(startXRef) { + this.startXRefQueue = [startXRef]; + } + parse(recoveryMode = false) { + let trailerDict; + if (!recoveryMode) { + trailerDict = this.readXRef(); + } else { + warn("Indexing all PDF objects"); + trailerDict = this.indexObjects(); + } + trailerDict.assignXref(this); + this.trailer = trailerDict; + let encrypt; + try { + encrypt = trailerDict.get("Encrypt"); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`XRef.parse - Invalid "Encrypt" reference: "${ex}".`); + } + if (encrypt instanceof Dict) { + const ids = trailerDict.get("ID"); + const fileId = ids?.length ? ids[0] : ""; + encrypt.suppressEncryption = true; + this.encrypt = new CipherTransformFactory(encrypt, fileId, this.pdfManager.password); + } + let root; + try { + root = trailerDict.get("Root"); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`XRef.parse - Invalid "Root" reference: "${ex}".`); + } + if (root instanceof Dict) { + try { + const pages = root.get("Pages"); + if (pages instanceof Dict) { + this.root = root; + return; + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`XRef.parse - Invalid "Pages" reference: "${ex}".`); + } + } + if (!recoveryMode) { + throw new XRefParseException(); + } + throw new InvalidPDFException("Invalid Root reference."); + } + processXRefTable(parser) { + if (!("tableState" in this)) { + this.tableState = { + entryNum: 0, + streamPos: parser.lexer.stream.pos, + parserBuf1: parser.buf1, + parserBuf2: parser.buf2 + }; + } + const obj = this.readXRefTable(parser); + if (!isCmd(obj, "trailer")) { + throw new FormatError("Invalid XRef table: could not find trailer dictionary"); + } + let dict = parser.getObj(); + if (!(dict instanceof Dict) && dict.dict) { + dict = dict.dict; + } + if (!(dict instanceof Dict)) { + throw new FormatError("Invalid XRef table: could not parse trailer dictionary"); + } + delete this.tableState; + return dict; + } + readXRefTable(parser) { + const stream = parser.lexer.stream; + const tableState = this.tableState; + stream.pos = tableState.streamPos; + parser.buf1 = tableState.parserBuf1; + parser.buf2 = tableState.parserBuf2; + let obj; + while (true) { + if (!("firstEntryNum" in tableState) || !("entryCount" in tableState)) { + if (isCmd(obj = parser.getObj(), "trailer")) { + break; + } + tableState.firstEntryNum = obj; + tableState.entryCount = parser.getObj(); + } + let first = tableState.firstEntryNum; + const count = tableState.entryCount; + if (!Number.isInteger(first) || !Number.isInteger(count)) { + throw new FormatError("Invalid XRef table: wrong types in subsection header"); + } + for (let i = tableState.entryNum; i < count; i++) { + tableState.streamPos = stream.pos; + tableState.entryNum = i; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + const entry = {}; + entry.offset = parser.getObj(); + entry.gen = parser.getObj(); + const type = parser.getObj(); + if (type instanceof Cmd) { + switch (type.cmd) { + case "f": + entry.free = true; + break; + case "n": + entry.uncompressed = true; + break; + } + } + if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) { + throw new FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`); + } + if (i === 0 && entry.free && first === 1) { + first = 0; + } + if (!this.entries[i + first]) { + this.entries[i + first] = entry; + } + } + tableState.entryNum = 0; + tableState.streamPos = stream.pos; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + delete tableState.firstEntryNum; + delete tableState.entryCount; + } + if (this.entries[0] && !this.entries[0].free) { + throw new FormatError("Invalid XRef table: unexpected first object"); + } + return obj; + } + processXRefStream(stream) { + if (!("streamState" in this)) { + const { + dict, + pos + } = stream; + const byteWidths = dict.get("W"); + const range = dict.get("Index") || [0, dict.get("Size")]; + this.streamState = { + entryRanges: range, + byteWidths, + entryNum: 0, + streamPos: pos + }; + } + this.readXRefStream(stream); + delete this.streamState; + return stream.dict; + } + readXRefStream(stream) { + const streamState = this.streamState; + stream.pos = streamState.streamPos; + const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] = streamState.byteWidths; + const entryRanges = streamState.entryRanges; + while (entryRanges.length > 0) { + const [first, n] = entryRanges; + if (!Number.isInteger(first) || !Number.isInteger(n)) { + throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`); + } + if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) { + throw new FormatError(`Invalid XRef entry fields length: ${first}, ${n}`); + } + for (let i = streamState.entryNum; i < n; ++i) { + streamState.entryNum = i; + streamState.streamPos = stream.pos; + let type = 0, + offset = 0, + generation = 0; + for (let j = 0; j < typeFieldWidth; ++j) { + const typeByte = stream.getByte(); + if (typeByte === -1) { + throw new FormatError("Invalid XRef byteWidths 'type'."); + } + type = type << 8 | typeByte; + } + if (typeFieldWidth === 0) { + type = 1; + } + for (let j = 0; j < offsetFieldWidth; ++j) { + const offsetByte = stream.getByte(); + if (offsetByte === -1) { + throw new FormatError("Invalid XRef byteWidths 'offset'."); + } + offset = offset << 8 | offsetByte; + } + for (let j = 0; j < generationFieldWidth; ++j) { + const generationByte = stream.getByte(); + if (generationByte === -1) { + throw new FormatError("Invalid XRef byteWidths 'generation'."); + } + generation = generation << 8 | generationByte; + } + const entry = {}; + entry.offset = offset; + entry.gen = generation; + switch (type) { + case 0: + entry.free = true; + break; + case 1: + entry.uncompressed = true; + break; + case 2: + break; + default: + throw new FormatError(`Invalid XRef entry type: ${type}`); + } + if (!this.entries[first + i]) { + this.entries[first + i] = entry; + } + } + streamState.entryNum = 0; + streamState.streamPos = stream.pos; + entryRanges.splice(0, 2); + } + } + indexObjects() { + const TAB = 0x9, + LF = 0xa, + CR = 0xd, + SPACE = 0x20; + const PERCENT = 0x25, + LT = 0x3c; + function readToken(data, offset) { + let token = "", + ch = data[offset]; + while (ch !== LF && ch !== CR && ch !== LT) { + if (++offset >= data.length) { + break; + } + token += String.fromCharCode(ch); + ch = data[offset]; + } + return token; + } + function skipUntil(data, offset, what) { + const length = what.length, + dataLength = data.length; + let skipped = 0; + while (offset < dataLength) { + let i = 0; + while (i < length && data[offset + i] === what[i]) { + ++i; + } + if (i >= length) { + break; + } + offset++; + skipped++; + } + return skipped; + } + const gEndobjRegExp = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g; + const gStartxrefRegExp = /\b(startxref|\d+\s+\d+\s+obj)\b/g; + const objRegExp = /^(\d+)\s+(\d+)\s+obj\b/; + const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]); + const startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]); + const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]); + this.entries.length = 0; + this._cacheMap.clear(); + const stream = this.stream; + stream.pos = 0; + const buffer = stream.getBytes(), + bufferStr = bytesToString(buffer), + length = buffer.length; + let position = stream.start; + const trailers = [], + xrefStms = []; + while (position < length) { + let ch = buffer[position]; + if (ch === TAB || ch === LF || ch === CR || ch === SPACE) { + ++position; + continue; + } + if (ch === PERCENT) { + do { + ++position; + if (position >= length) { + break; + } + ch = buffer[position]; + } while (ch !== LF && ch !== CR); + continue; + } + const token = readToken(buffer, position); + let m; + if (token.startsWith("xref") && (token.length === 4 || /\s/.test(token[4]))) { + position += skipUntil(buffer, position, trailerBytes); + trailers.push(position); + position += skipUntil(buffer, position, startxrefBytes); + } else if (m = objRegExp.exec(token)) { + const num = m[1] | 0, + gen = m[2] | 0; + const startPos = position + token.length; + let contentLength, + updateEntries = false; + if (!this.entries[num]) { + updateEntries = true; + } else if (this.entries[num].gen === gen) { + try { + const parser = new Parser({ + lexer: new Lexer(stream.makeSubStream(startPos)) + }); + parser.getObj(); + updateEntries = true; + } catch (ex) { + if (ex instanceof ParserEOFException) { + warn(`indexObjects -- checking object (${token}): "${ex}".`); + } else { + updateEntries = true; + } + } + } + if (updateEntries) { + this.entries[num] = { + offset: position - stream.start, + gen, + uncompressed: true + }; + } + gEndobjRegExp.lastIndex = startPos; + const match = gEndobjRegExp.exec(bufferStr); + if (match) { + const endPos = gEndobjRegExp.lastIndex + 1; + contentLength = endPos - position; + if (match[1] !== "endobj") { + warn(`indexObjects: Found "${match[1]}" inside of another "obj", ` + 'caused by missing "endobj" -- trying to recover.'); + contentLength -= match[1].length + 1; + } + } else { + contentLength = length - position; + } + const content = buffer.subarray(position, position + contentLength); + const xrefTagOffset = skipUntil(content, 0, xrefBytes); + if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) { + xrefStms.push(position - stream.start); + this._xrefStms.add(position - stream.start); + } + position += contentLength; + } else if (token.startsWith("trailer") && (token.length === 7 || /\s/.test(token[7]))) { + trailers.push(position); + const startPos = position + token.length; + let contentLength; + gStartxrefRegExp.lastIndex = startPos; + const match = gStartxrefRegExp.exec(bufferStr); + if (match) { + const endPos = gStartxrefRegExp.lastIndex + 1; + contentLength = endPos - position; + if (match[1] !== "startxref") { + warn(`indexObjects: Found "${match[1]}" after "trailer", ` + 'caused by missing "startxref" -- trying to recover.'); + contentLength -= match[1].length + 1; + } + } else { + contentLength = length - position; + } + position += contentLength; + } else { + position += token.length + 1; + } + } + for (const xrefStm of xrefStms) { + this.startXRefQueue.push(xrefStm); + this.readXRef(true); + } + const trailerDicts = []; + let isEncrypted = false; + for (const trailer of trailers) { + stream.pos = trailer; + const parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true, + recoveryMode: true + }); + const obj = parser.getObj(); + if (!isCmd(obj, "trailer")) { + continue; + } + const dict = parser.getObj(); + if (!(dict instanceof Dict)) { + continue; + } + trailerDicts.push(dict); + if (dict.has("Encrypt")) { + isEncrypted = true; + } + } + let trailerDict, trailerError; + for (const dict of [...trailerDicts, "genFallback", ...trailerDicts]) { + if (dict === "genFallback") { + if (!trailerError) { + break; + } + this._generationFallback = true; + continue; + } + let validPagesDict = false; + try { + const rootDict = dict.get("Root"); + if (!(rootDict instanceof Dict)) { + continue; + } + const pagesDict = rootDict.get("Pages"); + if (!(pagesDict instanceof Dict)) { + continue; + } + const pagesCount = pagesDict.get("Count"); + if (Number.isInteger(pagesCount)) { + validPagesDict = true; + } + } catch (ex) { + trailerError = ex; + continue; + } + if (validPagesDict && (!isEncrypted || dict.has("Encrypt")) && dict.has("ID")) { + return dict; + } + trailerDict = dict; + } + if (trailerDict) { + return trailerDict; + } + if (this.topDict) { + return this.topDict; + } + if (!trailerDicts.length) { + for (const [num, entry] of this.entries.entries()) { + if (!entry) { + continue; + } + const ref = Ref.get(num, entry.gen); + let obj; + try { + obj = this.fetch(ref); + } catch { + continue; + } + if (obj instanceof BaseStream) { + obj = obj.dict; + } + if (obj instanceof Dict && obj.has("Root")) { + return obj; + } + } + } + throw new InvalidPDFException("Invalid PDF structure."); + } + readXRef(recoveryMode = false) { + const stream = this.stream; + const startXRefParsedCache = new Set(); + while (this.startXRefQueue.length) { + try { + const startXRef = this.startXRefQueue[0]; + if (startXRefParsedCache.has(startXRef)) { + warn("readXRef - skipping XRef table since it was already parsed."); + this.startXRefQueue.shift(); + continue; + } + startXRefParsedCache.add(startXRef); + stream.pos = startXRef + stream.start; + const parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true + }); + let obj = parser.getObj(); + let dict; + if (isCmd(obj, "xref")) { + dict = this.processXRefTable(parser); + if (!this.topDict) { + this.topDict = dict; + } + obj = dict.get("XRefStm"); + if (Number.isInteger(obj) && !this._xrefStms.has(obj)) { + this._xrefStms.add(obj); + this.startXRefQueue.push(obj); + this.#firstXRefStmPos ??= obj; + } + } else if (Number.isInteger(obj)) { + if (!Number.isInteger(parser.getObj()) || !isCmd(parser.getObj(), "obj") || !((obj = parser.getObj()) instanceof BaseStream)) { + throw new FormatError("Invalid XRef stream"); + } + dict = this.processXRefStream(obj); + if (!this.topDict) { + this.topDict = dict; + } + if (!dict) { + throw new FormatError("Failed to read XRef stream"); + } + } else { + throw new FormatError("Invalid XRef stream header"); + } + obj = dict.get("Prev"); + if (Number.isInteger(obj)) { + this.startXRefQueue.push(obj); + } else if (obj instanceof Ref) { + this.startXRefQueue.push(obj.num); + } + } catch (e) { + if (e instanceof MissingDataException) { + throw e; + } + info("(while reading XRef): " + e); + } + this.startXRefQueue.shift(); + } + if (this.topDict) { + return this.topDict; + } + if (recoveryMode) { + return undefined; + } + throw new XRefParseException(); + } + get lastXRefStreamPos() { + return this.#firstXRefStmPos ?? (this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null); + } + getEntry(i) { + const xrefEntry = this.entries[i]; + if (xrefEntry && !xrefEntry.free && xrefEntry.offset) { + return xrefEntry; + } + return null; + } + fetchIfRef(obj, suppressEncryption = false) { + if (obj instanceof Ref) { + return this.fetch(obj, suppressEncryption); + } + return obj; + } + fetch(ref, suppressEncryption = false) { + if (!(ref instanceof Ref)) { + throw new Error("ref object is not a reference"); + } + const num = ref.num; + const cacheEntry = this._cacheMap.get(num); + if (cacheEntry !== undefined) { + if (cacheEntry instanceof Dict && !cacheEntry.objId) { + cacheEntry.objId = ref.toString(); + } + return cacheEntry; + } + let xrefEntry = this.getEntry(num); + if (xrefEntry === null) { + return xrefEntry; + } + if (this._pendingRefs.has(ref)) { + this._pendingRefs.remove(ref); + warn(`Ignoring circular reference: ${ref}.`); + return CIRCULAR_REF; + } + this._pendingRefs.put(ref); + try { + xrefEntry = xrefEntry.uncompressed ? this.fetchUncompressed(ref, xrefEntry, suppressEncryption) : this.fetchCompressed(ref, xrefEntry, suppressEncryption); + this._pendingRefs.remove(ref); + } catch (ex) { + this._pendingRefs.remove(ref); + throw ex; + } + if (xrefEntry instanceof Dict) { + xrefEntry.objId = ref.toString(); + } else if (xrefEntry instanceof BaseStream) { + xrefEntry.dict.objId = ref.toString(); + } + return xrefEntry; + } + fetchUncompressed(ref, xrefEntry, suppressEncryption = false) { + const gen = ref.gen; + let num = ref.num; + if (xrefEntry.gen !== gen) { + const msg = `Inconsistent generation in XRef: ${ref}`; + if (this._generationFallback && xrefEntry.gen < gen) { + warn(msg); + return this.fetchUncompressed(Ref.get(num, xrefEntry.gen), xrefEntry, suppressEncryption); + } + throw new XRefEntryException(msg); + } + const stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start); + const parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true + }); + const obj1 = parser.getObj(); + const obj2 = parser.getObj(); + const obj3 = parser.getObj(); + if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) { + throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`); + } + if (obj3.cmd !== "obj") { + if (obj3.cmd.startsWith("obj")) { + num = parseInt(obj3.cmd.substring(3), 10); + if (!Number.isNaN(num)) { + return num; + } + } + throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`); + } + xrefEntry = this.encrypt && !suppressEncryption ? parser.getObj(this.encrypt.createCipherTransform(num, gen)) : parser.getObj(); + if (!(xrefEntry instanceof BaseStream)) { + this._cacheMap.set(num, xrefEntry); + } + return xrefEntry; + } + fetchCompressed(ref, xrefEntry, suppressEncryption = false) { + const tableOffset = xrefEntry.offset; + const stream = this.fetch(Ref.get(tableOffset, 0)); + if (!(stream instanceof BaseStream)) { + throw new FormatError("bad ObjStm stream"); + } + const first = stream.dict.get("First"); + const n = stream.dict.get("N"); + if (!Number.isInteger(first) || !Number.isInteger(n)) { + throw new FormatError("invalid first and n parameters for ObjStm stream"); + } + let parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true + }); + const nums = new Array(n); + const offsets = new Array(n); + for (let i = 0; i < n; ++i) { + const num = parser.getObj(); + if (!Number.isInteger(num)) { + throw new FormatError(`invalid object number in the ObjStm stream: ${num}`); + } + const offset = parser.getObj(); + if (!Number.isInteger(offset)) { + throw new FormatError(`invalid object offset in the ObjStm stream: ${offset}`); + } + nums[i] = num; + const entry = this.getEntry(num); + if (entry?.offset === tableOffset && entry.gen !== i) { + entry.gen = i; + } + offsets[i] = offset; + } + const start = (stream.start || 0) + first; + const entries = new Array(n); + for (let i = 0; i < n; ++i) { + const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined; + if (length < 0) { + throw new FormatError("Invalid offset in the ObjStm stream."); + } + parser = new Parser({ + lexer: new Lexer(stream.makeSubStream(start + offsets[i], length, stream.dict)), + xref: this, + allowStreams: true + }); + const obj = parser.getObj(); + entries[i] = obj; + if (obj instanceof BaseStream) { + continue; + } + const num = nums[i], + entry = this.entries[num]; + if (entry && entry.offset === tableOffset && entry.gen === i) { + this._cacheMap.set(num, obj); + } + } + xrefEntry = entries[xrefEntry.gen]; + if (xrefEntry === undefined) { + throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`); + } + return xrefEntry; + } + async fetchIfRefAsync(obj, suppressEncryption) { + if (obj instanceof Ref) { + return this.fetchAsync(obj, suppressEncryption); + } + return obj; + } + async fetchAsync(ref, suppressEncryption) { + try { + return this.fetch(ref, suppressEncryption); + } catch (ex) { + if (!(ex instanceof MissingDataException)) { + throw ex; + } + await this.pdfManager.requestRange(ex.begin, ex.end); + return this.fetchAsync(ref, suppressEncryption); + } + } + getCatalogObj() { + return this.root; + } +} + +;// ./src/core/document.js + + + + + + + + + + + + + + + + + + + + +const LETTER_SIZE_MEDIABOX = [0, 0, 612, 792]; +class Page { + #resourcesPromise = null; + constructor({ + pdfManager, + xref, + pageIndex, + pageDict, + ref, + globalIdFactory, + fontCache, + builtInCMapCache, + standardFontDataCache, + globalColorSpaceCache, + globalImageCache, + systemFontCache, + nonBlendModesSet, + xfaFactory + }) { + this.pdfManager = pdfManager; + this.pageIndex = pageIndex; + this.pageDict = pageDict; + this.xref = xref; + this.ref = ref; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.standardFontDataCache = standardFontDataCache; + this.globalColorSpaceCache = globalColorSpaceCache; + this.globalImageCache = globalImageCache; + this.systemFontCache = systemFontCache; + this.nonBlendModesSet = nonBlendModesSet; + this.evaluatorOptions = pdfManager.evaluatorOptions; + this.xfaFactory = xfaFactory; + const idCounters = { + obj: 0 + }; + this._localIdFactory = class extends globalIdFactory { + static createObjId() { + return `p${pageIndex}_${++idCounters.obj}`; + } + static getPageObjId() { + return `p${ref.toString()}`; + } + }; + } + #createPartialEvaluator(handler) { + return new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalColorSpaceCache: this.globalColorSpaceCache, + globalImageCache: this.globalImageCache, + systemFontCache: this.systemFontCache, + options: this.evaluatorOptions + }); + } + #getInheritableProperty(key, getArray = false) { + const value = getInheritableProperty({ + dict: this.pageDict, + key, + getArray, + stopWhenFound: false + }); + if (!Array.isArray(value)) { + return value; + } + if (value.length === 1 || !(value[0] instanceof Dict)) { + return value[0]; + } + return Dict.merge({ + xref: this.xref, + dictArray: value + }); + } + get content() { + return this.pageDict.getArray("Contents"); + } + get resources() { + const resources = this.#getInheritableProperty("Resources"); + return shadow(this, "resources", resources instanceof Dict ? resources : Dict.empty); + } + #getBoundingBox(name) { + if (this.xfaData) { + return this.xfaData.bbox; + } + const box = lookupNormalRect(this.#getInheritableProperty(name, true), null); + if (box) { + if (box[2] - box[0] > 0 && box[3] - box[1] > 0) { + return box; + } + warn(`Empty, or invalid, /${name} entry.`); + } + return null; + } + get mediaBox() { + return shadow(this, "mediaBox", this.#getBoundingBox("MediaBox") || LETTER_SIZE_MEDIABOX); + } + get cropBox() { + return shadow(this, "cropBox", this.#getBoundingBox("CropBox") || this.mediaBox); + } + get userUnit() { + const obj = this.pageDict.get("UserUnit"); + return shadow(this, "userUnit", typeof obj === "number" && obj > 0 ? obj : 1.0); + } + get view() { + const { + cropBox, + mediaBox + } = this; + if (cropBox !== mediaBox && !isArrayEqual(cropBox, mediaBox)) { + const box = Util.intersect(cropBox, mediaBox); + if (box && box[2] - box[0] > 0 && box[3] - box[1] > 0) { + return shadow(this, "view", box); + } + warn("Empty /CropBox and /MediaBox intersection."); + } + return shadow(this, "view", mediaBox); + } + get rotate() { + let rotate = this.#getInheritableProperty("Rotate") || 0; + if (rotate % 90 !== 0) { + rotate = 0; + } else if (rotate >= 360) { + rotate %= 360; + } else if (rotate < 0) { + rotate = (rotate % 360 + 360) % 360; + } + return shadow(this, "rotate", rotate); + } + #onSubStreamError(reason, objId) { + if (this.evaluatorOptions.ignoreErrors) { + warn(`getContentStream - ignoring sub-stream (${objId}): "${reason}".`); + return; + } + throw reason; + } + async getContentStream() { + const content = await this.pdfManager.ensure(this, "content"); + if (content instanceof BaseStream) { + return content; + } + if (Array.isArray(content)) { + return new StreamsSequenceStream(content, this.#onSubStreamError.bind(this)); + } + return new NullStream(); + } + get xfaData() { + return shadow(this, "xfaData", this.xfaFactory ? { + bbox: this.xfaFactory.getBoundingBox(this.pageIndex) + } : null); + } + async #replaceIdByRef(annotations, deletedAnnotations, existingAnnotations) { + const promises = []; + for (const annotation of annotations) { + if (annotation.id) { + const ref = Ref.fromString(annotation.id); + if (!ref) { + warn(`A non-linked annotation cannot be modified: ${annotation.id}`); + continue; + } + if (annotation.deleted) { + deletedAnnotations.put(ref, ref); + if (annotation.popupRef) { + const popupRef = Ref.fromString(annotation.popupRef); + if (popupRef) { + deletedAnnotations.put(popupRef, popupRef); + } + } + continue; + } + if (annotation.popup?.deleted) { + const popupRef = Ref.fromString(annotation.popupRef); + if (popupRef) { + deletedAnnotations.put(popupRef, popupRef); + } + } + existingAnnotations?.put(ref); + annotation.ref = ref; + promises.push(this.xref.fetchAsync(ref).then(obj => { + if (obj instanceof Dict) { + annotation.oldAnnotation = obj.clone(); + } + }, () => { + warn(`Cannot fetch \`oldAnnotation\` for: ${ref}.`); + })); + delete annotation.id; + } + } + await Promise.all(promises); + } + async saveNewAnnotations(handler, task, annotations, imagePromises, changes) { + if (this.xfaFactory) { + throw new Error("XFA: Cannot save new annotations."); + } + const partialEvaluator = this.#createPartialEvaluator(handler); + const deletedAnnotations = new RefSetCache(); + const existingAnnotations = new RefSet(); + await this.#replaceIdByRef(annotations, deletedAnnotations, existingAnnotations); + const pageDict = this.pageDict; + const annotationsArray = this.annotations.filter(a => !(a instanceof Ref && deletedAnnotations.has(a))); + const newData = await AnnotationFactory.saveNewAnnotations(partialEvaluator, task, annotations, imagePromises, changes); + for (const { + ref + } of newData.annotations) { + if (ref instanceof Ref && !existingAnnotations.has(ref)) { + annotationsArray.push(ref); + } + } + const dict = pageDict.clone(); + dict.set("Annots", annotationsArray); + changes.put(this.ref, { + data: dict + }); + for (const deletedRef of deletedAnnotations) { + changes.put(deletedRef, { + data: null + }); + } + } + async save(handler, task, annotationStorage, changes) { + const partialEvaluator = this.#createPartialEvaluator(handler); + const annotations = await this._parsedAnnotations; + const promises = []; + for (const annotation of annotations) { + promises.push(annotation.save(partialEvaluator, task, annotationStorage, changes).catch(function (reason) { + warn("save - ignoring annotation data during " + `"${task.name}" task: "${reason}".`); + return null; + })); + } + return Promise.all(promises); + } + async loadResources(keys) { + await (this.#resourcesPromise ??= this.pdfManager.ensure(this, "resources")); + await ObjectLoader.load(this.resources, keys, this.xref); + } + async #getMergedResources(streamDict, keys) { + const localResources = streamDict?.get("Resources"); + if (!(localResources instanceof Dict && localResources.size)) { + return this.resources; + } + await ObjectLoader.load(localResources, keys, this.xref); + return Dict.merge({ + xref: this.xref, + dictArray: [localResources, this.resources], + mergeSubDicts: true + }); + } + async getOperatorList({ + handler, + sink, + task, + intent, + cacheKey, + annotationStorage = null, + modifiedIds = null + }) { + const contentStreamPromise = this.getContentStream(); + const resourcesPromise = this.loadResources(RESOURCES_KEYS_OPERATOR_LIST); + const partialEvaluator = this.#createPartialEvaluator(handler); + const newAnnotsByPage = !this.xfaFactory ? getNewAnnotationsMap(annotationStorage) : null; + const newAnnots = newAnnotsByPage?.get(this.pageIndex); + let newAnnotationsPromise = Promise.resolve(null); + let deletedAnnotations = null; + if (newAnnots) { + const annotationGlobalsPromise = this.pdfManager.ensureDoc("annotationGlobals"); + let imagePromises; + const missingBitmaps = new Set(); + for (const { + bitmapId, + bitmap + } of newAnnots) { + if (bitmapId && !bitmap && !missingBitmaps.has(bitmapId)) { + missingBitmaps.add(bitmapId); + } + } + const { + isOffscreenCanvasSupported + } = this.evaluatorOptions; + if (missingBitmaps.size > 0) { + const annotationWithBitmaps = newAnnots.slice(); + for (const [key, annotation] of annotationStorage) { + if (!key.startsWith(AnnotationEditorPrefix)) { + continue; + } + if (annotation.bitmap && missingBitmaps.has(annotation.bitmapId)) { + annotationWithBitmaps.push(annotation); + } + } + imagePromises = AnnotationFactory.generateImages(annotationWithBitmaps, this.xref, isOffscreenCanvasSupported); + } else { + imagePromises = AnnotationFactory.generateImages(newAnnots, this.xref, isOffscreenCanvasSupported); + } + deletedAnnotations = new RefSet(); + newAnnotationsPromise = Promise.all([annotationGlobalsPromise, this.#replaceIdByRef(newAnnots, deletedAnnotations, null)]).then(([annotationGlobals]) => { + if (!annotationGlobals) { + return null; + } + return AnnotationFactory.printNewAnnotations(annotationGlobals, partialEvaluator, task, newAnnots, imagePromises); + }); + } + const pageListPromise = Promise.all([contentStreamPromise, resourcesPromise]).then(async ([contentStream]) => { + const resources = await this.#getMergedResources(contentStream.dict, RESOURCES_KEYS_OPERATOR_LIST); + const opList = new OperatorList(intent, sink); + handler.send("StartRenderPage", { + transparency: partialEvaluator.hasBlendModes(resources, this.nonBlendModesSet), + pageIndex: this.pageIndex, + cacheKey + }); + await partialEvaluator.getOperatorList({ + stream: contentStream, + task, + resources, + operatorList: opList + }); + return opList; + }); + let [pageOpList, annotations, newAnnotations] = await Promise.all([pageListPromise, this._parsedAnnotations, newAnnotationsPromise]); + if (newAnnotations) { + annotations = annotations.filter(a => !(a.ref && deletedAnnotations.has(a.ref))); + for (let i = 0, ii = newAnnotations.length; i < ii; i++) { + const newAnnotation = newAnnotations[i]; + if (newAnnotation.refToReplace) { + const j = annotations.findIndex(a => a.ref && isRefsEqual(a.ref, newAnnotation.refToReplace)); + if (j >= 0) { + annotations.splice(j, 1, newAnnotation); + newAnnotations.splice(i--, 1); + ii--; + } + } + } + annotations = annotations.concat(newAnnotations); + } + if (annotations.length === 0 || intent & RenderingIntentFlag.ANNOTATIONS_DISABLE) { + pageOpList.flush(true); + return { + length: pageOpList.totalLength + }; + } + const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS), + isEditing = !!(intent & RenderingIntentFlag.IS_EDITING), + intentAny = !!(intent & RenderingIntentFlag.ANY), + intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY), + intentPrint = !!(intent & RenderingIntentFlag.PRINT); + const opListPromises = []; + for (const annotation of annotations) { + if (intentAny || intentDisplay && annotation.mustBeViewed(annotationStorage, renderForms) && annotation.mustBeViewedWhenEditing(isEditing, modifiedIds) || intentPrint && annotation.mustBePrinted(annotationStorage)) { + opListPromises.push(annotation.getOperatorList(partialEvaluator, task, intent, annotationStorage).catch(function (reason) { + warn("getOperatorList - ignoring annotation data during " + `"${task.name}" task: "${reason}".`); + return { + opList: null, + separateForm: false, + separateCanvas: false + }; + })); + } + } + const opLists = await Promise.all(opListPromises); + let form = false, + canvas = false; + for (const { + opList, + separateForm, + separateCanvas + } of opLists) { + pageOpList.addOpList(opList); + form ||= separateForm; + canvas ||= separateCanvas; + } + pageOpList.flush(true, { + form, + canvas + }); + return { + length: pageOpList.totalLength + }; + } + async extractTextContent({ + handler, + task, + includeMarkedContent, + disableNormalization, + sink, + intersector = null + }) { + const contentStreamPromise = this.getContentStream(); + const resourcesPromise = this.loadResources(RESOURCES_KEYS_TEXT_CONTENT); + const langPromise = this.pdfManager.ensureCatalog("lang"); + const [contentStream,, lang] = await Promise.all([contentStreamPromise, resourcesPromise, langPromise]); + const resources = await this.#getMergedResources(contentStream.dict, RESOURCES_KEYS_TEXT_CONTENT); + const partialEvaluator = this.#createPartialEvaluator(handler); + return partialEvaluator.getTextContent({ + stream: contentStream, + task, + resources, + includeMarkedContent, + disableNormalization, + sink, + viewBox: this.view, + lang, + intersector + }); + } + async getStructTree() { + const structTreeRoot = await this.pdfManager.ensureCatalog("structTreeRoot"); + if (!structTreeRoot) { + return null; + } + await this._parsedAnnotations; + try { + const structTree = await this.pdfManager.ensure(this, "_parseStructTree", [structTreeRoot]); + const data = await this.pdfManager.ensure(structTree, "serializable"); + return data; + } catch (ex) { + warn(`getStructTree: "${ex}".`); + return null; + } + } + _parseStructTree(structTreeRoot) { + const tree = new StructTreePage(structTreeRoot, this.pageDict); + tree.parse(this.ref); + return tree; + } + async getAnnotationsData(handler, task, intent) { + const annotations = await this._parsedAnnotations; + if (annotations.length === 0) { + return annotations; + } + const annotationsData = [], + textContentPromises = []; + let partialEvaluator; + const intentAny = !!(intent & RenderingIntentFlag.ANY), + intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY), + intentPrint = !!(intent & RenderingIntentFlag.PRINT); + const highlightedAnnotations = []; + for (const annotation of annotations) { + const isVisible = intentAny || intentDisplay && annotation.viewable; + if (isVisible || intentPrint && annotation.printable) { + annotationsData.push(annotation.data); + } + if (annotation.hasTextContent && isVisible) { + partialEvaluator ??= this.#createPartialEvaluator(handler); + textContentPromises.push(annotation.extractTextContent(partialEvaluator, task, [-Infinity, -Infinity, Infinity, Infinity]).catch(function (reason) { + warn(`getAnnotationsData - ignoring textContent during "${task.name}" task: "${reason}".`); + })); + } else if (annotation.overlaysTextContent && isVisible) { + highlightedAnnotations.push(annotation); + } + } + if (highlightedAnnotations.length > 0) { + const intersector = new Intersector(highlightedAnnotations); + textContentPromises.push(this.extractTextContent({ + handler, + task, + includeMarkedContent: false, + disableNormalization: false, + sink: null, + viewBox: this.view, + lang: null, + intersector + }).then(() => { + intersector.setText(); + })); + } + await Promise.all(textContentPromises); + return annotationsData; + } + get annotations() { + const annots = this.#getInheritableProperty("Annots"); + return shadow(this, "annotations", Array.isArray(annots) ? annots : []); + } + get _parsedAnnotations() { + const promise = this.pdfManager.ensure(this, "annotations").then(async annots => { + if (annots.length === 0) { + return annots; + } + const [annotationGlobals, fieldObjects] = await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"), this.pdfManager.ensureDoc("fieldObjects")]); + if (!annotationGlobals) { + return []; + } + const orphanFields = fieldObjects?.orphanFields; + const annotationPromises = []; + for (const annotationRef of annots) { + annotationPromises.push(AnnotationFactory.create(this.xref, annotationRef, annotationGlobals, this._localIdFactory, false, orphanFields, this.ref).catch(function (reason) { + warn(`_parsedAnnotations: "${reason}".`); + return null; + })); + } + const sortedAnnotations = []; + let popupAnnotations, widgetAnnotations; + for (const annotation of await Promise.all(annotationPromises)) { + if (!annotation) { + continue; + } + if (annotation instanceof WidgetAnnotation) { + (widgetAnnotations ||= []).push(annotation); + continue; + } + if (annotation instanceof PopupAnnotation) { + (popupAnnotations ||= []).push(annotation); + continue; + } + sortedAnnotations.push(annotation); + } + if (widgetAnnotations) { + sortedAnnotations.push(...widgetAnnotations); + } + if (popupAnnotations) { + sortedAnnotations.push(...popupAnnotations); + } + return sortedAnnotations; + }); + return shadow(this, "_parsedAnnotations", promise); + } + get jsActions() { + const actions = collectActions(this.xref, this.pageDict, PageActionEventType); + return shadow(this, "jsActions", actions); + } +} +const PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]); +const STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]); +const ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]); +function find(stream, signature, limit = 1024, backwards = false) { + const signatureLength = signature.length; + const scanBytes = stream.peekBytes(limit); + const scanLength = scanBytes.length - signatureLength; + if (scanLength <= 0) { + return false; + } + if (backwards) { + const signatureEnd = signatureLength - 1; + let pos = scanBytes.length - 1; + while (pos >= signatureEnd) { + let j = 0; + while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) { + j++; + } + if (j >= signatureLength) { + stream.pos += pos - signatureEnd; + return true; + } + pos--; + } + } else { + let pos = 0; + while (pos <= scanLength) { + let j = 0; + while (j < signatureLength && scanBytes[pos + j] === signature[j]) { + j++; + } + if (j >= signatureLength) { + stream.pos += pos; + return true; + } + pos++; + } + } + return false; +} +class PDFDocument { + #pagePromises = new Map(); + #version = null; + constructor(pdfManager, stream) { + if (stream.length <= 0) { + throw new InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes."); + } + this.pdfManager = pdfManager; + this.stream = stream; + this.xref = new XRef(stream, pdfManager); + const idCounters = { + font: 0 + }; + this._globalIdFactory = class { + static getDocId() { + return `g_${pdfManager.docId}`; + } + static createFontId() { + return `f${++idCounters.font}`; + } + static createObjId() { + unreachable("Abstract method `createObjId` called."); + } + static getPageObjId() { + unreachable("Abstract method `getPageObjId` called."); + } + }; + } + parse(recoveryMode) { + this.xref.parse(recoveryMode); + this.catalog = new Catalog(this.pdfManager, this.xref); + } + get linearization() { + let linearization = null; + try { + linearization = Linearization.create(this.stream); + } catch (err) { + if (err instanceof MissingDataException) { + throw err; + } + info(err); + } + return shadow(this, "linearization", linearization); + } + get startXRef() { + const stream = this.stream; + let startXRef = 0; + if (this.linearization) { + stream.reset(); + if (find(stream, ENDOBJ_SIGNATURE)) { + stream.skip(6); + let ch = stream.peekByte(); + while (isWhiteSpace(ch)) { + stream.pos++; + ch = stream.peekByte(); + } + startXRef = stream.pos - stream.start; + } + } else { + const step = 1024; + const startXRefLength = STARTXREF_SIGNATURE.length; + let found = false, + pos = stream.end; + while (!found && pos > 0) { + pos -= step - startXRefLength; + if (pos < 0) { + pos = 0; + } + stream.pos = pos; + found = find(stream, STARTXREF_SIGNATURE, step, true); + } + if (found) { + stream.skip(9); + let ch; + do { + ch = stream.getByte(); + } while (isWhiteSpace(ch)); + let str = ""; + while (ch >= 0x20 && ch <= 0x39) { + str += String.fromCharCode(ch); + ch = stream.getByte(); + } + startXRef = parseInt(str, 10); + if (isNaN(startXRef)) { + startXRef = 0; + } + } + } + return shadow(this, "startXRef", startXRef); + } + checkHeader() { + const stream = this.stream; + stream.reset(); + if (!find(stream, PDF_HEADER_SIGNATURE)) { + return; + } + stream.moveStart(); + stream.skip(PDF_HEADER_SIGNATURE.length); + let version = "", + ch; + while ((ch = stream.getByte()) > 0x20 && version.length < 7) { + version += String.fromCharCode(ch); + } + if (PDF_VERSION_REGEXP.test(version)) { + this.#version = version; + } else { + warn(`Invalid PDF header version: ${version}`); + } + } + parseStartXRef() { + this.xref.setStartXRef(this.startXRef); + } + get numPages() { + let num = 0; + if (this.catalog.hasActualNumPages) { + num = this.catalog.numPages; + } else if (this.xfaFactory) { + num = this.xfaFactory.getNumPages(); + } else if (this.linearization) { + num = this.linearization.numPages; + } else { + num = this.catalog.numPages; + } + return shadow(this, "numPages", num); + } + #hasOnlyDocumentSignatures(fields, recursionDepth = 0) { + const RECURSION_LIMIT = 10; + if (!Array.isArray(fields)) { + return false; + } + return fields.every(field => { + field = this.xref.fetchIfRef(field); + if (!(field instanceof Dict)) { + return false; + } + if (field.has("Kids")) { + if (++recursionDepth > RECURSION_LIMIT) { + warn("#hasOnlyDocumentSignatures: maximum recursion depth reached"); + return false; + } + return this.#hasOnlyDocumentSignatures(field.get("Kids"), recursionDepth); + } + const isSignature = isName(field.get("FT"), "Sig"); + const rectangle = field.get("Rect"); + const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0); + return isSignature && isInvisible; + }); + } + #collectSignatureCertificates(fields, collectedSignatureCertificates, visited = new RefSet()) { + if (!Array.isArray(fields)) { + return; + } + for (let field of fields) { + if (field instanceof Ref) { + if (visited.has(field)) { + continue; + } + visited.put(field); + } + field = this.xref.fetchIfRef(field); + if (!(field instanceof Dict)) { + continue; + } + if (field.has("Kids")) { + this.#collectSignatureCertificates(field.get("Kids"), collectedSignatureCertificates, visited); + continue; + } + const isSignature = isName(field.get("FT"), "Sig"); + if (!isSignature) { + continue; + } + const value = field.get("V"); + if (!(value instanceof Dict)) { + continue; + } + const subFilter = value.get("SubFilter"); + if (!(subFilter instanceof Name)) { + continue; + } + collectedSignatureCertificates.add(subFilter.name); + } + } + get _xfaStreams() { + const { + acroForm + } = this.catalog; + if (!acroForm) { + return null; + } + const xfa = acroForm.get("XFA"); + const entries = new Map(["xdp:xdp", "template", "datasets", "config", "connectionSet", "localeSet", "stylesheet", "/xdp:xdp"].map(e => [e, null])); + if (xfa instanceof BaseStream && !xfa.isEmpty) { + entries.set("xdp:xdp", xfa); + return entries; + } + if (!Array.isArray(xfa) || xfa.length === 0) { + return null; + } + for (let i = 0, ii = xfa.length; i < ii; i += 2) { + let name; + if (i === 0) { + name = "xdp:xdp"; + } else if (i === ii - 2) { + name = "/xdp:xdp"; + } else { + name = xfa[i]; + } + if (!entries.has(name)) { + continue; + } + const data = this.xref.fetchIfRef(xfa[i + 1]); + if (!(data instanceof BaseStream) || data.isEmpty) { + continue; + } + entries.set(name, data); + } + return entries; + } + get xfaDatasets() { + const streams = this._xfaStreams; + if (!streams) { + return shadow(this, "xfaDatasets", null); + } + for (const key of ["datasets", "xdp:xdp"]) { + const stream = streams.get(key); + if (!stream) { + continue; + } + try { + const str = stringToUTF8String(stream.getString()); + const data = { + [key]: str + }; + return shadow(this, "xfaDatasets", new DatasetReader(data)); + } catch { + warn("XFA - Invalid utf-8 string."); + break; + } + } + return shadow(this, "xfaDatasets", null); + } + get xfaData() { + const streams = this._xfaStreams; + if (!streams) { + return null; + } + const data = Object.create(null); + for (const [key, stream] of streams) { + if (!stream) { + continue; + } + try { + data[key] = stringToUTF8String(stream.getString()); + } catch { + warn("XFA - Invalid utf-8 string."); + return null; + } + } + return data; + } + get xfaFactory() { + let data; + if (this.pdfManager.enableXfa && this.catalog.needsRendering && this.formInfo.hasXfa && !this.formInfo.hasAcroForm) { + data = this.xfaData; + } + return shadow(this, "xfaFactory", data ? new XFAFactory(data) : null); + } + get isPureXfa() { + return this.xfaFactory ? this.xfaFactory.isValid() : false; + } + get htmlForXfa() { + return this.xfaFactory ? this.xfaFactory.getPages() : null; + } + async #loadXfaImages() { + const xfaImages = await this.pdfManager.ensureCatalog("xfaImages"); + if (!xfaImages) { + return; + } + this.xfaFactory.setImages(xfaImages); + } + async #loadXfaFonts(handler, task) { + const acroForm = await this.pdfManager.ensureCatalog("acroForm"); + if (!acroForm) { + return; + } + const resources = await acroForm.getAsync("DR"); + if (!(resources instanceof Dict)) { + return; + } + await ObjectLoader.load(resources, ["Font"], this.xref); + const fontRes = resources.get("Font"); + if (!(fontRes instanceof Dict)) { + return; + } + const options = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions, { + useSystemFonts: false + }); + const { + builtInCMapCache, + fontCache, + standardFontDataCache + } = this.catalog; + const partialEvaluator = new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: -1, + idFactory: this._globalIdFactory, + fontCache, + builtInCMapCache, + standardFontDataCache, + options + }); + const operatorList = new OperatorList(); + const pdfFonts = []; + const initialState = { + get font() { + return pdfFonts.at(-1); + }, + set font(font) { + pdfFonts.push(font); + }, + clone() { + return this; + } + }; + const parseFont = (fontName, fallbackFontDict, cssFontInfo) => partialEvaluator.handleSetFont(resources, [Name.get(fontName), 1], null, operatorList, task, initialState, fallbackFontDict, cssFontInfo).catch(reason => { + warn(`loadXfaFonts: "${reason}".`); + return null; + }); + const promises = []; + for (const [fontName, font] of fontRes) { + const descriptor = font.get("FontDescriptor"); + if (!(descriptor instanceof Dict)) { + continue; + } + let fontFamily = descriptor.get("FontFamily"); + fontFamily = fontFamily.replaceAll(/[ ]+(\d)/g, "$1"); + const fontWeight = descriptor.get("FontWeight"); + const italicAngle = -descriptor.get("ItalicAngle"); + const cssFontInfo = { + fontFamily, + fontWeight, + italicAngle + }; + if (!validateCSSFont(cssFontInfo)) { + continue; + } + promises.push(parseFont(fontName, null, cssFontInfo)); + } + await Promise.all(promises); + const missingFonts = this.xfaFactory.setFonts(pdfFonts); + if (!missingFonts) { + return; + } + options.ignoreErrors = true; + promises.length = 0; + pdfFonts.length = 0; + const reallyMissingFonts = new Set(); + for (const missing of missingFonts) { + if (!getXfaFontName(`${missing}-Regular`)) { + reallyMissingFonts.add(missing); + } + } + if (reallyMissingFonts.size) { + missingFonts.push("PdfJS-Fallback"); + } + for (const missing of missingFonts) { + if (reallyMissingFonts.has(missing)) { + continue; + } + for (const fontInfo of [{ + name: "Regular", + fontWeight: 400, + italicAngle: 0 + }, { + name: "Bold", + fontWeight: 700, + italicAngle: 0 + }, { + name: "Italic", + fontWeight: 400, + italicAngle: 12 + }, { + name: "BoldItalic", + fontWeight: 700, + italicAngle: 12 + }]) { + const name = `${missing}-${fontInfo.name}`; + promises.push(parseFont(name, getXfaFontDict(name), { + fontFamily: missing, + fontWeight: fontInfo.fontWeight, + italicAngle: fontInfo.italicAngle + })); + } + } + await Promise.all(promises); + this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts); + } + loadXfaResources(handler, task) { + return Promise.all([this.#loadXfaFonts(handler, task).catch(() => {}), this.#loadXfaImages()]); + } + serializeXfaData(annotationStorage) { + return this.xfaFactory ? this.xfaFactory.serializeData(annotationStorage) : null; + } + get version() { + return this.catalog.version || this.#version; + } + get formInfo() { + const formInfo = { + hasFields: false, + hasAcroForm: false, + hasXfa: false, + hasSignatures: false + }; + const { + acroForm + } = this.catalog; + if (!acroForm) { + return shadow(this, "formInfo", formInfo); + } + try { + const fields = acroForm.get("Fields"); + const hasFields = Array.isArray(fields) && fields.length > 0; + formInfo.hasFields = hasFields; + const xfa = acroForm.get("XFA"); + formInfo.hasXfa = Array.isArray(xfa) && xfa.length > 0 || xfa instanceof BaseStream && !xfa.isEmpty; + const sigFlags = acroForm.get("SigFlags"); + const hasSignatures = !!(sigFlags & 0x1); + const hasOnlyDocumentSignatures = hasSignatures && this.#hasOnlyDocumentSignatures(fields); + formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures; + formInfo.hasSignatures = hasSignatures; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`Cannot fetch form information: "${ex}".`); + } + return shadow(this, "formInfo", formInfo); + } + get documentInfo() { + const { + catalog, + formInfo, + xref + } = this; + const docInfo = { + PDFFormatVersion: this.version, + Language: catalog.lang, + EncryptFilterName: xref.encrypt?.filterName ?? null, + IsLinearized: !!this.linearization, + IsAcroFormPresent: formInfo.hasAcroForm, + IsXFAPresent: formInfo.hasXfa, + IsCollectionPresent: !!catalog.collection, + IsSignaturesPresent: formInfo.hasSignatures + }; + let infoDict; + try { + infoDict = xref.trailer.get("Info"); + } catch (err) { + if (err instanceof MissingDataException) { + throw err; + } + info("The document information dictionary is invalid."); + } + if (!(infoDict instanceof Dict)) { + return shadow(this, "documentInfo", docInfo); + } + for (const [key, value] of infoDict) { + switch (key) { + case "Title": + case "Author": + case "Subject": + case "Keywords": + case "Creator": + case "Producer": + case "CreationDate": + case "ModDate": + if (typeof value === "string") { + docInfo[key] = stringToPDFString(value); + continue; + } + break; + case "Trapped": + if (value instanceof Name) { + docInfo[key] = value; + continue; + } + break; + default: + let customValue; + switch (typeof value) { + case "string": + customValue = stringToPDFString(value); + break; + case "number": + case "boolean": + customValue = value; + break; + default: + if (value instanceof Name) { + customValue = value; + } + break; + } + if (customValue === undefined) { + warn(`Bad value, for custom key "${key}", in Info: ${value}.`); + continue; + } + docInfo.Custom ??= Object.create(null); + docInfo.Custom[key] = customValue; + continue; + } + warn(`Bad value, for key "${key}", in Info: ${value}.`); + } + return shadow(this, "documentInfo", docInfo); + } + get fingerprints() { + const FINGERPRINT_FIRST_BYTES = 1024; + const EMPTY_FINGERPRINT = "\x00".repeat(16); + function validate(data) { + return typeof data === "string" && data.length === 16 && data !== EMPTY_FINGERPRINT; + } + const id = this.xref.trailer.get("ID"); + let hashOriginal, hashModified; + if (Array.isArray(id) && validate(id[0])) { + hashOriginal = stringToBytes(id[0]); + if (id[1] !== id[0] && validate(id[1])) { + hashModified = stringToBytes(id[1]); + } + } else { + hashOriginal = calculateMD5(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES); + } + return shadow(this, "fingerprints", [toHexUtil(hashOriginal), hashModified ? toHexUtil(hashModified) : null]); + } + async #getLinearizationPage(pageIndex) { + const { + catalog, + linearization, + xref + } = this; + const ref = Ref.get(linearization.objectNumberFirst, 0); + try { + const obj = await xref.fetchAsync(ref); + if (obj instanceof Dict) { + let type = obj.getRaw("Type"); + if (type instanceof Ref) { + type = await xref.fetchAsync(type); + } + if (isName(type, "Page") || !obj.has("Type") && !obj.has("Kids") && obj.has("Contents")) { + if (!catalog.pageKidsCountCache.has(ref)) { + catalog.pageKidsCountCache.put(ref, 1); + } + if (!catalog.pageIndexCache.has(ref)) { + catalog.pageIndexCache.put(ref, 0); + } + return [obj, ref]; + } + } + throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary."); + } catch (reason) { + warn(`_getLinearizationPage: "${reason.message}".`); + return catalog.getPageDict(pageIndex); + } + } + getPage(pageIndex) { + const cachedPromise = this.#pagePromises.get(pageIndex); + if (cachedPromise) { + return cachedPromise; + } + const { + catalog, + linearization, + xfaFactory + } = this; + let promise; + if (xfaFactory) { + promise = Promise.resolve([Dict.empty, null]); + } else if (linearization?.pageFirst === pageIndex) { + promise = this.#getLinearizationPage(pageIndex); + } else { + promise = catalog.getPageDict(pageIndex); + } + promise = promise.then(([pageDict, ref]) => new Page({ + pdfManager: this.pdfManager, + xref: this.xref, + pageIndex, + pageDict, + ref, + globalIdFactory: this._globalIdFactory, + fontCache: catalog.fontCache, + builtInCMapCache: catalog.builtInCMapCache, + standardFontDataCache: catalog.standardFontDataCache, + globalColorSpaceCache: catalog.globalColorSpaceCache, + globalImageCache: catalog.globalImageCache, + systemFontCache: catalog.systemFontCache, + nonBlendModesSet: catalog.nonBlendModesSet, + xfaFactory + })); + this.#pagePromises.set(pageIndex, promise); + return promise; + } + async checkFirstPage(recoveryMode = false) { + if (recoveryMode) { + return; + } + try { + await this.getPage(0); + } catch (reason) { + if (reason instanceof XRefEntryException) { + this.#pagePromises.delete(0); + await this.cleanup(); + throw new XRefParseException(); + } + } + } + async checkLastPage(recoveryMode = false) { + const { + catalog, + pdfManager + } = this; + catalog.setActualNumPages(); + let numPages; + try { + await Promise.all([pdfManager.ensureDoc("xfaFactory"), pdfManager.ensureDoc("linearization"), pdfManager.ensureCatalog("numPages")]); + if (this.xfaFactory) { + return; + } else if (this.linearization) { + numPages = this.linearization.numPages; + } else { + numPages = catalog.numPages; + } + if (!Number.isInteger(numPages)) { + throw new FormatError("Page count is not an integer."); + } else if (numPages <= 1) { + return; + } + await this.getPage(numPages - 1); + } catch (reason) { + this.#pagePromises.delete(numPages - 1); + await this.cleanup(); + if (reason instanceof XRefEntryException && !recoveryMode) { + throw new XRefParseException(); + } + warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`); + let pagesTree; + try { + pagesTree = await catalog.getAllPageDicts(recoveryMode); + } catch (reasonAll) { + if (reasonAll instanceof XRefEntryException && !recoveryMode) { + throw new XRefParseException(); + } + catalog.setActualNumPages(1); + return; + } + for (const [pageIndex, [pageDict, ref]] of pagesTree) { + let promise; + if (pageDict instanceof Error) { + promise = Promise.reject(pageDict); + promise.catch(() => {}); + } else { + promise = Promise.resolve(new Page({ + pdfManager, + xref: this.xref, + pageIndex, + pageDict, + ref, + globalIdFactory: this._globalIdFactory, + fontCache: catalog.fontCache, + builtInCMapCache: catalog.builtInCMapCache, + standardFontDataCache: catalog.standardFontDataCache, + globalColorSpaceCache: this.globalColorSpaceCache, + globalImageCache: catalog.globalImageCache, + systemFontCache: catalog.systemFontCache, + nonBlendModesSet: catalog.nonBlendModesSet, + xfaFactory: null + })); + } + this.#pagePromises.set(pageIndex, promise); + } + catalog.setActualNumPages(pagesTree.size); + } + } + async fontFallback(id, handler) { + const { + catalog, + pdfManager + } = this; + for (const translatedFont of await Promise.all(catalog.fontCache)) { + if (translatedFont.loadedName === id) { + translatedFont.fallback(handler, pdfManager.evaluatorOptions); + return; + } + } + } + async cleanup(manuallyTriggered = false) { + return this.catalog ? this.catalog.cleanup(manuallyTriggered) : clearGlobalCaches(); + } + async #collectFieldObjects(name, parentRef, fieldRef, promises, annotationGlobals, visitedRefs, orphanFields) { + const { + xref + } = this; + if (!(fieldRef instanceof Ref) || visitedRefs.has(fieldRef)) { + return; + } + visitedRefs.put(fieldRef); + const field = await xref.fetchAsync(fieldRef); + if (!(field instanceof Dict)) { + return; + } + let subtype = await field.getAsync("Subtype"); + subtype = subtype instanceof Name ? subtype.name : null; + switch (subtype) { + case "Link": + return; + } + if (field.has("T")) { + const partName = stringToPDFString(await field.getAsync("T")); + name = name === "" ? partName : `${name}.${partName}`; + } else { + let obj = field; + while (true) { + obj = obj.getRaw("Parent") || parentRef; + if (obj instanceof Ref) { + if (visitedRefs.has(obj)) { + break; + } + obj = await xref.fetchAsync(obj); + } + if (!(obj instanceof Dict)) { + break; + } + if (obj.has("T")) { + const partName = stringToPDFString(await obj.getAsync("T")); + name = name === "" ? partName : `${name}.${partName}`; + break; + } + } + } + if (parentRef && !field.has("Parent") && isName(field.get("Subtype"), "Widget")) { + orphanFields.put(fieldRef, parentRef); + } + if (!promises.has(name)) { + promises.set(name, []); + } + promises.get(name).push(AnnotationFactory.create(xref, fieldRef, annotationGlobals, null, true, orphanFields, null).then(annotation => annotation?.getFieldObject()).catch(function (reason) { + warn(`#collectFieldObjects: "${reason}".`); + return null; + })); + if (!field.has("Kids")) { + return; + } + const kids = await field.getAsync("Kids"); + if (Array.isArray(kids)) { + for (const kid of kids) { + await this.#collectFieldObjects(name, fieldRef, kid, promises, annotationGlobals, visitedRefs, orphanFields); + } + } + } + get fieldObjects() { + const promise = this.pdfManager.ensureDoc("formInfo").then(async formInfo => { + if (!formInfo.hasFields) { + return null; + } + const annotationGlobals = await this.annotationGlobals; + if (!annotationGlobals) { + return null; + } + const { + acroForm + } = annotationGlobals; + const visitedRefs = new RefSet(); + const allFields = Object.create(null); + const fieldPromises = new Map(); + const orphanFields = new RefSetCache(); + for (const fieldRef of acroForm.get("Fields")) { + await this.#collectFieldObjects("", null, fieldRef, fieldPromises, annotationGlobals, visitedRefs, orphanFields); + } + const allPromises = []; + for (const [name, promises] of fieldPromises) { + allPromises.push(Promise.all(promises).then(fields => { + fields = fields.filter(field => !!field); + if (fields.length > 0) { + allFields[name] = fields; + } + })); + } + await Promise.all(allPromises); + return { + allFields: objectSize(allFields) > 0 ? allFields : null, + orphanFields + }; + }); + return shadow(this, "fieldObjects", promise); + } + get hasJSActions() { + const promise = this.pdfManager.ensureDoc("_parseHasJSActions"); + return shadow(this, "hasJSActions", promise); + } + async _parseHasJSActions() { + const [catalogJsActions, fieldObjects] = await Promise.all([this.pdfManager.ensureCatalog("jsActions"), this.pdfManager.ensureDoc("fieldObjects")]); + if (catalogJsActions) { + return true; + } + if (fieldObjects?.allFields) { + return Object.values(fieldObjects.allFields).some(fieldObject => fieldObject.some(object => object.actions !== null)); + } + return false; + } + get calculationOrderIds() { + const calculationOrder = this.catalog.acroForm?.get("CO"); + if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) { + return shadow(this, "calculationOrderIds", null); + } + const ids = []; + for (const id of calculationOrder) { + if (id instanceof Ref) { + ids.push(id.toString()); + } + } + return shadow(this, "calculationOrderIds", ids.length ? ids : null); + } + get annotationGlobals() { + return shadow(this, "annotationGlobals", AnnotationFactory.createGlobals(this.pdfManager)); + } +} + +;// ./src/core/pdf_manager.js + + + + + + + + + + +function parseDocBaseUrl(url) { + if (url) { + const absoluteUrl = createValidAbsoluteUrl(url); + if (absoluteUrl) { + return absoluteUrl.href; + } + warn(`Invalid absolute docBaseUrl: "${url}".`); + } + return null; +} +class BasePdfManager { + constructor({ + docBaseUrl, + docId, + enableXfa, + evaluatorOptions, + handler, + password + }) { + this._docBaseUrl = parseDocBaseUrl(docBaseUrl); + this._docId = docId; + this._password = password; + this.enableXfa = enableXfa; + evaluatorOptions.isOffscreenCanvasSupported &&= FeatureTest.isOffscreenCanvasSupported; + evaluatorOptions.isImageDecoderSupported &&= FeatureTest.isImageDecoderSupported; + this.evaluatorOptions = Object.freeze(evaluatorOptions); + ImageResizer.setOptions(evaluatorOptions); + JpegStream.setOptions(evaluatorOptions); + OperatorList.setOptions(evaluatorOptions); + const options = { + ...evaluatorOptions, + handler + }; + JpxImage.setOptions(options); + IccColorSpace.setOptions(options); + CmykICCBasedCS.setOptions(options); + } + get docId() { + return this._docId; + } + get password() { + return this._password; + } + get docBaseUrl() { + return this._docBaseUrl; + } + ensureDoc(prop, args) { + return this.ensure(this.pdfDocument, prop, args); + } + ensureXRef(prop, args) { + return this.ensure(this.pdfDocument.xref, prop, args); + } + ensureCatalog(prop, args) { + return this.ensure(this.pdfDocument.catalog, prop, args); + } + getPage(pageIndex) { + return this.pdfDocument.getPage(pageIndex); + } + fontFallback(id, handler) { + return this.pdfDocument.fontFallback(id, handler); + } + cleanup(manuallyTriggered = false) { + return this.pdfDocument.cleanup(manuallyTriggered); + } + async ensure(obj, prop, args) { + unreachable("Abstract method `ensure` called"); + } + requestRange(begin, end) { + unreachable("Abstract method `requestRange` called"); + } + requestLoadedStream(noFetch = false) { + unreachable("Abstract method `requestLoadedStream` called"); + } + sendProgressiveData(chunk) { + unreachable("Abstract method `sendProgressiveData` called"); + } + updatePassword(password) { + this._password = password; + } + terminate(reason) { + unreachable("Abstract method `terminate` called"); + } +} +class LocalPdfManager extends BasePdfManager { + constructor(args) { + super(args); + const stream = new Stream(args.source); + this.pdfDocument = new PDFDocument(this, stream); + this._loadedStreamPromise = Promise.resolve(stream); + } + async ensure(obj, prop, args) { + const value = obj[prop]; + if (typeof value === "function") { + return value.apply(obj, args); + } + return value; + } + requestRange(begin, end) { + return Promise.resolve(); + } + requestLoadedStream(noFetch = false) { + return this._loadedStreamPromise; + } + terminate(reason) {} +} +class NetworkPdfManager extends BasePdfManager { + constructor(args) { + super(args); + this.streamManager = new ChunkedStreamManager(args.source, { + msgHandler: args.handler, + length: args.length, + disableAutoFetch: args.disableAutoFetch, + rangeChunkSize: args.rangeChunkSize + }); + this.pdfDocument = new PDFDocument(this, this.streamManager.getStream()); + } + async ensure(obj, prop, args) { + try { + const value = obj[prop]; + if (typeof value === "function") { + return value.apply(obj, args); + } + return value; + } catch (ex) { + if (!(ex instanceof MissingDataException)) { + throw ex; + } + await this.requestRange(ex.begin, ex.end); + return this.ensure(obj, prop, args); + } + } + requestRange(begin, end) { + return this.streamManager.requestRange(begin, end); + } + requestLoadedStream(noFetch = false) { + return this.streamManager.requestAllChunks(noFetch); + } + sendProgressiveData(chunk) { + this.streamManager.onReceiveData({ + chunk + }); + } + terminate(reason) { + this.streamManager.abort(reason); + } +} + +;// ./src/shared/message_handler.js + +const CallbackKind = { + DATA: 1, + ERROR: 2 +}; +const StreamKind = { + CANCEL: 1, + CANCEL_COMPLETE: 2, + CLOSE: 3, + ENQUEUE: 4, + ERROR: 5, + PULL: 6, + PULL_COMPLETE: 7, + START_COMPLETE: 8 +}; +function onFn() {} +function wrapReason(ex) { + if (ex instanceof AbortException || ex instanceof InvalidPDFException || ex instanceof PasswordException || ex instanceof ResponseException || ex instanceof UnknownErrorException) { + return ex; + } + if (!(ex instanceof Error || typeof ex === "object" && ex !== null)) { + unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); + } + switch (ex.name) { + case "AbortException": + return new AbortException(ex.message); + case "InvalidPDFException": + return new InvalidPDFException(ex.message); + case "PasswordException": + return new PasswordException(ex.message, ex.code); + case "ResponseException": + return new ResponseException(ex.message, ex.status, ex.missing); + case "UnknownErrorException": + return new UnknownErrorException(ex.message, ex.details); + } + return new UnknownErrorException(ex.message, ex.toString()); +} +class MessageHandler { + #messageAC = new AbortController(); + constructor(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); + comObj.addEventListener("message", this.#onMessage.bind(this), { + signal: this.#messageAC.signal + }); + } + #onMessage({ + data + }) { + if (data.targetName !== this.sourceName) { + return; + } + if (data.stream) { + this.#processStreamMessage(data); + return; + } + if (data.callback) { + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; + if (!capability) { + throw new Error(`Cannot resolve callback ${callbackId}`); + } + delete this.callbackCapabilities[callbackId]; + if (data.callback === CallbackKind.DATA) { + capability.resolve(data.data); + } else if (data.callback === CallbackKind.ERROR) { + capability.reject(wrapReason(data.reason)); + } else { + throw new Error("Unexpected callback case"); + } + return; + } + const action = this.actionHandler[data.action]; + if (!action) { + throw new Error(`Unknown action from worker: ${data.action}`); + } + if (data.callbackId) { + const sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + Promise.try(action, data.data).then(function (result) { + comObj.postMessage({ + sourceName, + targetName, + callback: CallbackKind.DATA, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + callback: CallbackKind.ERROR, + callbackId: data.callbackId, + reason: wrapReason(reason) + }); + }); + return; + } + if (data.streamId) { + this.#createStreamSink(data); + return; + } + action(data.data); + } + on(actionName, handler) { + const ah = this.actionHandler; + if (ah[actionName]) { + throw new Error(`There is already an actionName called "${actionName}"`); + } + ah[actionName] = handler; + } + send(actionName, data, transfers) { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data + }, transfers); + } + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = Promise.withResolvers(); + this.callbackCapabilities[callbackId] = capability; + try { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + callbackId, + data + }, transfers); + } catch (ex) { + capability.reject(ex); + } + return capability.promise; + } + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++, + sourceName = this.sourceName, + targetName = this.targetName, + comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = Promise.withResolvers(); + this.streamControllers[streamId] = { + controller, + startCall: startCapability, + pullCall: null, + cancelCall: null, + isClosed: false + }; + comObj.postMessage({ + sourceName, + targetName, + action: actionName, + streamId, + data, + desiredSize: controller.desiredSize + }, transfers); + return startCapability.promise; + }, + pull: controller => { + const pullCapability = Promise.withResolvers(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, + desiredSize: controller.desiredSize + }); + return pullCapability.promise; + }, + cancel: reason => { + assert(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = Promise.withResolvers(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, + reason: wrapReason(reason) + }); + return cancelCapability.promise; + } + }, queueingStrategy); + } + #createStreamSink(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const self = this, + action = this.actionHandler[data.action]; + const streamSink = { + enqueue(chunk, size = 1, transfers) { + if (this.isCancelled) { + return; + } + const lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = Promise.withResolvers(); + this.ready = this.sinkCapability.promise; + } + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); + }, + close() { + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId + }); + delete self.streamSinks[streamId]; + }, + error(reason) { + assert(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) + }); + }, + sinkCapability: Promise.withResolvers(), + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: data.desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + Promise.try(action, data.data, streamSink).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + } + #processStreamMessage(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const streamController = this.streamControllers[streamId], + streamSink = this.streamSinks[streamId]; + switch (data.stream) { + case StreamKind.START_COMPLETE: + if (data.success) { + streamController.startCall.resolve(); + } else { + streamController.startCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL_COMPLETE: + if (data.success) { + streamController.pullCall.resolve(); + } else { + streamController.pullCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL: + if (!streamSink) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + break; + } + if (streamSink.desiredSize <= 0 && data.desiredSize > 0) { + streamSink.sinkCapability.resolve(); + } + streamSink.desiredSize = data.desiredSize; + Promise.try(streamSink.onPull || onFn).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + break; + case StreamKind.ENQUEUE: + assert(streamController, "enqueue should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.controller.enqueue(data.chunk); + break; + case StreamKind.CLOSE: + assert(streamController, "close should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.isClosed = true; + streamController.controller.close(); + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.ERROR: + assert(streamController, "error should have stream controller"); + streamController.controller.error(wrapReason(data.reason)); + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + streamController.cancelCall.resolve(); + } else { + streamController.cancelCall.reject(wrapReason(data.reason)); + } + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL: + if (!streamSink) { + break; + } + const dataReason = wrapReason(data.reason); + Promise.try(streamSink.onCancel || onFn, dataReason).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + streamSink.sinkCapability.reject(dataReason); + streamSink.isCancelled = true; + delete this.streamSinks[streamId]; + break; + default: + throw new Error("Unexpected stream case"); + } + } + async #deleteStreamController(streamController, streamId) { + await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]); + delete this.streamControllers[streamId]; + } + destroy() { + this.#messageAC?.abort(); + this.#messageAC = null; + } +} + +;// ./src/core/writer.js + + + + + + + +async function writeObject(ref, obj, buffer, { + encrypt = null +}) { + const transform = encrypt?.createCipherTransform(ref.num, ref.gen); + buffer.push(`${ref.num} ${ref.gen} obj\n`); + if (obj instanceof Dict) { + await writeDict(obj, buffer, transform); + } else if (obj instanceof BaseStream) { + await writeStream(obj, buffer, transform); + } else if (Array.isArray(obj) || ArrayBuffer.isView(obj)) { + await writeArray(obj, buffer, transform); + } + buffer.push("\nendobj\n"); +} +async function writeDict(dict, buffer, transform) { + buffer.push("<<"); + for (const key of dict.getKeys()) { + buffer.push(` /${escapePDFName(key)} `); + await writeValue(dict.getRaw(key), buffer, transform); + } + buffer.push(">>"); +} +async function writeStream(stream, buffer, transform) { + let bytes = stream.getBytes(); + const { + dict + } = stream; + const [filter, params] = await Promise.all([dict.getAsync("Filter"), dict.getAsync("DecodeParms")]); + const filterZero = Array.isArray(filter) ? await dict.xref.fetchIfRefAsync(filter[0]) : filter; + const isFilterZeroFlateDecode = isName(filterZero, "FlateDecode"); + const MIN_LENGTH_FOR_COMPRESSING = 256; + if (bytes.length >= MIN_LENGTH_FOR_COMPRESSING || isFilterZeroFlateDecode) { + try { + const cs = new CompressionStream("deflate"); + const writer = cs.writable.getWriter(); + await writer.ready; + writer.write(bytes).then(async () => { + await writer.ready; + await writer.close(); + }).catch(() => {}); + const buf = await new Response(cs.readable).arrayBuffer(); + bytes = new Uint8Array(buf); + let newFilter, newParams; + if (!filter) { + newFilter = Name.get("FlateDecode"); + } else if (!isFilterZeroFlateDecode) { + newFilter = Array.isArray(filter) ? [Name.get("FlateDecode"), ...filter] : [Name.get("FlateDecode"), filter]; + if (params) { + newParams = Array.isArray(params) ? [null, ...params] : [null, params]; + } + } + if (newFilter) { + dict.set("Filter", newFilter); + } + if (newParams) { + dict.set("DecodeParms", newParams); + } + } catch (ex) { + info(`writeStream - cannot compress data: "${ex}".`); + } + } + let string = bytesToString(bytes); + if (transform) { + string = transform.encryptString(string); + } + dict.set("Length", string.length); + await writeDict(dict, buffer, transform); + buffer.push(" stream\n", string, "\nendstream"); +} +async function writeArray(array, buffer, transform) { + buffer.push("["); + let first = true; + for (const val of array) { + if (!first) { + buffer.push(" "); + } else { + first = false; + } + await writeValue(val, buffer, transform); + } + buffer.push("]"); +} +async function writeValue(value, buffer, transform) { + if (value instanceof Name) { + buffer.push(`/${escapePDFName(value.name)}`); + } else if (value instanceof Ref) { + buffer.push(`${value.num} ${value.gen} R`); + } else if (Array.isArray(value) || ArrayBuffer.isView(value)) { + await writeArray(value, buffer, transform); + } else if (typeof value === "string") { + if (transform) { + value = transform.encryptString(value); + } + buffer.push(`(${escapeString(value)})`); + } else if (typeof value === "number") { + buffer.push(numberToString(value)); + } else if (typeof value === "boolean") { + buffer.push(value.toString()); + } else if (value instanceof Dict) { + await writeDict(value, buffer, transform); + } else if (value instanceof BaseStream) { + await writeStream(value, buffer, transform); + } else if (value === null) { + buffer.push("null"); + } else { + warn(`Unhandled value in writer: ${typeof value}, please file a bug.`); + } +} +function writeInt(number, size, offset, buffer) { + for (let i = size + offset - 1; i > offset - 1; i--) { + buffer[i] = number & 0xff; + number >>= 8; + } + return offset + size; +} +function writeString(string, offset, buffer) { + const ii = string.length; + for (let i = 0; i < ii; i++) { + buffer[offset + i] = string.charCodeAt(i) & 0xff; + } + return offset + ii; +} +function computeMD5(filesize, xrefInfo) { + const time = Math.floor(Date.now() / 1000); + const filename = xrefInfo.filename || ""; + const md5Buffer = [time.toString(), filename, filesize.toString(), ...xrefInfo.infoMap.values()]; + const md5BufferLen = Math.sumPrecise(md5Buffer.map(str => str.length)); + const array = new Uint8Array(md5BufferLen); + let offset = 0; + for (const str of md5Buffer) { + offset = writeString(str, offset, array); + } + return bytesToString(calculateMD5(array, 0, array.length)); +} +function writeXFADataForAcroform(str, changes) { + const xml = new SimpleXMLParser({ + hasAttributes: true + }).parseFromString(str); + for (const { + xfa + } of changes) { + if (!xfa) { + continue; + } + const { + path, + value + } = xfa; + if (!path) { + continue; + } + const nodePath = parseXFAPath(path); + let node = xml.documentElement.searchNode(nodePath, 0); + if (!node && nodePath.length > 1) { + node = xml.documentElement.searchNode([nodePath.at(-1)], 0); + } + if (node) { + node.childNodes = Array.isArray(value) ? value.map(val => new SimpleDOMNode("value", val)) : [new SimpleDOMNode("#text", value)]; + } else { + warn(`Node not found for path: ${path}`); + } + } + const buffer = []; + xml.documentElement.dump(buffer); + return buffer.join(""); +} +async function updateAcroform({ + xref, + acroForm, + acroFormRef, + hasXfa, + hasXfaDatasetsEntry, + xfaDatasetsRef, + needAppearances, + changes +}) { + if (hasXfa && !hasXfaDatasetsEntry && !xfaDatasetsRef) { + warn("XFA - Cannot save it"); + } + if (!needAppearances && (!hasXfa || !xfaDatasetsRef || hasXfaDatasetsEntry)) { + return; + } + const dict = acroForm.clone(); + if (hasXfa && !hasXfaDatasetsEntry) { + const newXfa = acroForm.get("XFA").slice(); + newXfa.splice(2, 0, "datasets"); + newXfa.splice(3, 0, xfaDatasetsRef); + dict.set("XFA", newXfa); + } + if (needAppearances) { + dict.set("NeedAppearances", true); + } + changes.put(acroFormRef, { + data: dict + }); +} +function updateXFA({ + xfaData, + xfaDatasetsRef, + changes, + xref +}) { + if (xfaData === null) { + const datasets = xref.fetchIfRef(xfaDatasetsRef); + xfaData = writeXFADataForAcroform(datasets.getString(), changes); + } + const xfaDataStream = new StringStream(xfaData); + xfaDataStream.dict = new Dict(xref); + xfaDataStream.dict.setIfName("Type", "EmbeddedFile"); + changes.put(xfaDatasetsRef, { + data: xfaDataStream + }); +} +async function getXRefTable(xrefInfo, baseOffset, newRefs, newXref, buffer) { + buffer.push("xref\n"); + const indexes = getIndexes(newRefs); + let indexesPosition = 0; + for (const { + ref, + data + } of newRefs) { + if (ref.num === indexes[indexesPosition]) { + buffer.push(`${indexes[indexesPosition]} ${indexes[indexesPosition + 1]}\n`); + indexesPosition += 2; + } + if (data !== null) { + buffer.push(`${baseOffset.toString().padStart(10, "0")} ${Math.min(ref.gen, 0xffff).toString().padStart(5, "0")} n\r\n`); + baseOffset += data.length; + } else { + buffer.push(`0000000000 ${Math.min(ref.gen + 1, 0xffff).toString().padStart(5, "0")} f\r\n`); + } + } + computeIDs(baseOffset, xrefInfo, newXref); + buffer.push("trailer\n"); + await writeDict(newXref, buffer); + buffer.push("\nstartxref\n", baseOffset.toString(), "\n%%EOF\n"); +} +function getIndexes(newRefs) { + const indexes = []; + for (const { + ref + } of newRefs) { + if (ref.num === indexes.at(-2) + indexes.at(-1)) { + indexes[indexes.length - 1] += 1; + } else { + indexes.push(ref.num, 1); + } + } + return indexes; +} +async function getXRefStreamTable(xrefInfo, baseOffset, newRefs, newXref, buffer) { + const xrefTableData = []; + let maxOffset = 0; + let maxGen = 0; + for (const { + ref, + data + } of newRefs) { + let gen; + maxOffset = Math.max(maxOffset, baseOffset); + if (data !== null) { + gen = Math.min(ref.gen, 0xffff); + xrefTableData.push([1, baseOffset, gen]); + baseOffset += data.length; + } else { + gen = Math.min(ref.gen + 1, 0xffff); + xrefTableData.push([0, 0, gen]); + } + maxGen = Math.max(maxGen, gen); + } + newXref.set("Index", getIndexes(newRefs)); + const offsetSize = getSizeInBytes(maxOffset); + const maxGenSize = getSizeInBytes(maxGen); + const sizes = [1, offsetSize, maxGenSize]; + newXref.set("W", sizes); + computeIDs(baseOffset, xrefInfo, newXref); + const structSize = Math.sumPrecise(sizes); + const data = new Uint8Array(structSize * xrefTableData.length); + const stream = new Stream(data); + stream.dict = newXref; + let offset = 0; + for (const [type, objOffset, gen] of xrefTableData) { + offset = writeInt(type, sizes[0], offset, data); + offset = writeInt(objOffset, sizes[1], offset, data); + offset = writeInt(gen, sizes[2], offset, data); + } + await writeObject(xrefInfo.newRef, stream, buffer, {}); + buffer.push("startxref\n", baseOffset.toString(), "\n%%EOF\n"); +} +function computeIDs(baseOffset, xrefInfo, newXref) { + if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) { + const md5 = computeMD5(baseOffset, xrefInfo); + newXref.set("ID", [xrefInfo.fileIds[0], md5]); + } +} +function getTrailerDict(xrefInfo, changes, useXrefStream) { + const newXref = new Dict(null); + newXref.set("Prev", xrefInfo.startXRef); + const refForXrefTable = xrefInfo.newRef; + if (useXrefStream) { + changes.put(refForXrefTable, { + data: "" + }); + newXref.set("Size", refForXrefTable.num + 1); + newXref.setIfName("Type", "XRef"); + } else { + newXref.set("Size", refForXrefTable.num); + } + if (xrefInfo.rootRef !== null) { + newXref.set("Root", xrefInfo.rootRef); + } + if (xrefInfo.infoRef !== null) { + newXref.set("Info", xrefInfo.infoRef); + } + if (xrefInfo.encryptRef !== null) { + newXref.set("Encrypt", xrefInfo.encryptRef); + } + return newXref; +} +async function writeChanges(changes, xref, buffer = []) { + const newRefs = []; + for (const [ref, { + data + }] of changes.items()) { + if (data === null || typeof data === "string") { + newRefs.push({ + ref, + data + }); + continue; + } + await writeObject(ref, data, buffer, xref); + newRefs.push({ + ref, + data: buffer.join("") + }); + buffer.length = 0; + } + return newRefs.sort((a, b) => a.ref.num - b.ref.num); +} +async function incrementalUpdate({ + originalData, + xrefInfo, + changes, + xref = null, + hasXfa = false, + xfaDatasetsRef = null, + hasXfaDatasetsEntry = false, + needAppearances, + acroFormRef = null, + acroForm = null, + xfaData = null, + useXrefStream = false +}) { + await updateAcroform({ + xref, + acroForm, + acroFormRef, + hasXfa, + hasXfaDatasetsEntry, + xfaDatasetsRef, + needAppearances, + changes + }); + if (hasXfa) { + updateXFA({ + xfaData, + xfaDatasetsRef, + changes, + xref + }); + } + const newXref = getTrailerDict(xrefInfo, changes, useXrefStream); + const buffer = []; + const newRefs = await writeChanges(changes, xref, buffer); + let baseOffset = originalData.length; + const lastByte = originalData.at(-1); + if (lastByte !== 0x0a && lastByte !== 0x0d) { + buffer.push("\n"); + baseOffset += 1; + } + for (const { + data + } of newRefs) { + if (data !== null) { + buffer.push(data); + } + } + await (useXrefStream ? getXRefStreamTable(xrefInfo, baseOffset, newRefs, newXref, buffer) : getXRefTable(xrefInfo, baseOffset, newRefs, newXref, buffer)); + const totalLength = originalData.length + Math.sumPrecise(buffer.map(str => str.length)); + const array = new Uint8Array(totalLength); + array.set(originalData); + let offset = originalData.length; + for (const str of buffer) { + offset = writeString(str, offset, array); + } + return array; +} + +;// ./src/core/worker_stream.js + +class PDFWorkerStream { + constructor(msgHandler) { + this._msgHandler = msgHandler; + this._contentLength = null; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + getFullReader() { + assert(!this._fullRequestReader, "PDFWorkerStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); + return this._fullRequestReader; + } + getRangeReader(begin, end) { + const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler); + this._rangeRequestReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + this._fullRequestReader?.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +class PDFWorkerStreamReader { + constructor(msgHandler) { + this._msgHandler = msgHandler; + this.onProgress = null; + this._contentLength = null; + this._isRangeSupported = false; + this._isStreamingSupported = false; + const readableStream = this._msgHandler.sendWithStream("GetReader"); + this._reader = readableStream.getReader(); + this._headersReady = this._msgHandler.sendWithPromise("ReaderHeadersReady").then(data => { + this._isStreamingSupported = data.isStreamingSupported; + this._isRangeSupported = data.isRangeSupported; + this._contentLength = data.contentLength; + }); + } + get headersReady() { + return this._headersReady; + } + get contentLength() { + return this._contentLength; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + get isRangeSupported() { + return this._isRangeSupported; + } + async read() { + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value: undefined, + done: true + }; + } + return { + value: value.buffer, + done: false + }; + } + cancel(reason) { + this._reader.cancel(reason); + } +} +class PDFWorkerStreamRangeReader { + constructor(begin, end, msgHandler) { + this._msgHandler = msgHandler; + this.onProgress = null; + const readableStream = this._msgHandler.sendWithStream("GetRangeReader", { + begin, + end + }); + this._reader = readableStream.getReader(); + } + get isStreamingSupported() { + return false; + } + async read() { + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value: undefined, + done: true + }; + } + return { + value: value.buffer, + done: false + }; + } + cancel(reason) { + this._reader.cancel(reason); + } +} + +;// ./src/core/worker.js + + + + + + + + + + +class WorkerTask { + constructor(name) { + this.name = name; + this.terminated = false; + this._capability = Promise.withResolvers(); + } + get finished() { + return this._capability.promise; + } + finish() { + this._capability.resolve(); + } + terminate() { + this.terminated = true; + } + ensureNotTerminated() { + if (this.terminated) { + throw new Error("Worker task was terminated"); + } + } +} +class WorkerMessageHandler { + static { + if (typeof window === "undefined" && !isNodeJS && typeof self !== "undefined" && typeof self.postMessage === "function" && "onmessage" in self) { + this.initializeFromPort(self); + } + } + static setup(handler, port) { + let testMessageProcessed = false; + handler.on("test", data => { + if (testMessageProcessed) { + return; + } + testMessageProcessed = true; + handler.send("test", data instanceof Uint8Array); + }); + handler.on("configure", data => { + setVerbosityLevel(data.verbosity); + }); + handler.on("GetDocRequest", data => this.createDocumentHandler(data, port)); + } + static createDocumentHandler(docParams, port) { + let pdfManager; + let terminated = false; + let cancelXHRs = null; + const WorkerTasks = new Set(); + const verbosity = getVerbosityLevel(); + const { + docId, + apiVersion + } = docParams; + const workerVersion = "5.4.54"; + if (apiVersion !== workerVersion) { + throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`); + } + const buildMsg = (type, prop) => `The \`${type}.prototype\` contains unexpected enumerable property ` + `"${prop}", thus breaking e.g. \`for...in\` iteration of ${type}s.`; + for (const prop in {}) { + throw new Error(buildMsg("Object", prop)); + } + for (const prop in []) { + throw new Error(buildMsg("Array", prop)); + } + const workerHandlerName = docId + "_worker"; + let handler = new MessageHandler(workerHandlerName, docId, port); + function ensureNotTerminated() { + if (terminated) { + throw new Error("Worker was terminated"); + } + } + function startWorkerTask(task) { + WorkerTasks.add(task); + } + function finishWorkerTask(task) { + task.finish(); + WorkerTasks.delete(task); + } + async function loadDocument(recoveryMode) { + await pdfManager.ensureDoc("checkHeader"); + await pdfManager.ensureDoc("parseStartXRef"); + await pdfManager.ensureDoc("parse", [recoveryMode]); + await pdfManager.ensureDoc("checkFirstPage", [recoveryMode]); + await pdfManager.ensureDoc("checkLastPage", [recoveryMode]); + const isPureXfa = await pdfManager.ensureDoc("isPureXfa"); + if (isPureXfa) { + const task = new WorkerTask("loadXfaResources"); + startWorkerTask(task); + await pdfManager.ensureDoc("loadXfaResources", [handler, task]); + finishWorkerTask(task); + } + const [numPages, fingerprints] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprints")]); + const htmlForXfa = isPureXfa ? await pdfManager.ensureDoc("htmlForXfa") : null; + return { + numPages, + fingerprints, + htmlForXfa + }; + } + async function getPdfManager({ + data, + password, + disableAutoFetch, + rangeChunkSize, + length, + docBaseUrl, + enableXfa, + evaluatorOptions + }) { + const pdfManagerArgs = { + source: null, + disableAutoFetch, + docBaseUrl, + docId, + enableXfa, + evaluatorOptions, + handler, + length, + password, + rangeChunkSize + }; + if (data) { + pdfManagerArgs.source = data; + return new LocalPdfManager(pdfManagerArgs); + } + const pdfStream = new PDFWorkerStream(handler), + fullRequest = pdfStream.getFullReader(); + const pdfManagerCapability = Promise.withResolvers(); + let newPdfManager, + cachedChunks = [], + loaded = 0; + fullRequest.headersReady.then(function () { + if (!fullRequest.isRangeSupported) { + return; + } + pdfManagerArgs.source = pdfStream; + pdfManagerArgs.length = fullRequest.contentLength; + pdfManagerArgs.disableAutoFetch ||= fullRequest.isStreamingSupported; + newPdfManager = new NetworkPdfManager(pdfManagerArgs); + for (const chunk of cachedChunks) { + newPdfManager.sendProgressiveData(chunk); + } + cachedChunks = []; + pdfManagerCapability.resolve(newPdfManager); + cancelXHRs = null; + }).catch(function (reason) { + pdfManagerCapability.reject(reason); + cancelXHRs = null; + }); + new Promise(function (resolve, reject) { + const readChunk = function ({ + value, + done + }) { + try { + ensureNotTerminated(); + if (done) { + if (!newPdfManager) { + const pdfFile = arrayBuffersToBytes(cachedChunks); + cachedChunks = []; + if (length && pdfFile.length !== length) { + warn("reported HTTP length is different from actual"); + } + pdfManagerArgs.source = pdfFile; + newPdfManager = new LocalPdfManager(pdfManagerArgs); + pdfManagerCapability.resolve(newPdfManager); + } + cancelXHRs = null; + return; + } + loaded += value.byteLength; + if (!fullRequest.isStreamingSupported) { + handler.send("DocProgress", { + loaded, + total: Math.max(loaded, fullRequest.contentLength || 0) + }); + } + if (newPdfManager) { + newPdfManager.sendProgressiveData(value); + } else { + cachedChunks.push(value); + } + fullRequest.read().then(readChunk, reject); + } catch (e) { + reject(e); + } + }; + fullRequest.read().then(readChunk, reject); + }).catch(function (e) { + pdfManagerCapability.reject(e); + cancelXHRs = null; + }); + cancelXHRs = reason => { + pdfStream.cancelAllRequests(reason); + }; + return pdfManagerCapability.promise; + } + function setupDoc(data) { + function onSuccess(doc) { + ensureNotTerminated(); + handler.send("GetDoc", { + pdfInfo: doc + }); + } + function onFailure(ex) { + ensureNotTerminated(); + if (ex instanceof PasswordException) { + const task = new WorkerTask(`PasswordException: response ${ex.code}`); + startWorkerTask(task); + handler.sendWithPromise("PasswordRequest", ex).then(function ({ + password + }) { + finishWorkerTask(task); + pdfManager.updatePassword(password); + pdfManagerReady(); + }).catch(function () { + finishWorkerTask(task); + handler.send("DocException", ex); + }); + } else { + handler.send("DocException", wrapReason(ex)); + } + } + function pdfManagerReady() { + ensureNotTerminated(); + loadDocument(false).then(onSuccess, function (reason) { + ensureNotTerminated(); + if (!(reason instanceof XRefParseException)) { + onFailure(reason); + return; + } + pdfManager.requestLoadedStream().then(function () { + ensureNotTerminated(); + loadDocument(true).then(onSuccess, onFailure); + }); + }); + } + ensureNotTerminated(); + getPdfManager(data).then(function (newPdfManager) { + if (terminated) { + newPdfManager.terminate(new AbortException("Worker was terminated.")); + throw new Error("Worker was terminated"); + } + pdfManager = newPdfManager; + pdfManager.requestLoadedStream(true).then(stream => { + handler.send("DataLoaded", { + length: stream.bytes.byteLength + }); + }); + }).then(pdfManagerReady, onFailure); + } + handler.on("GetPage", function (data) { + return pdfManager.getPage(data.pageIndex).then(function (page) { + return Promise.all([pdfManager.ensure(page, "rotate"), pdfManager.ensure(page, "ref"), pdfManager.ensure(page, "userUnit"), pdfManager.ensure(page, "view")]).then(function ([rotate, ref, userUnit, view]) { + return { + rotate, + ref, + refStr: ref?.toString() ?? null, + userUnit, + view + }; + }); + }); + }); + handler.on("GetPageIndex", function (data) { + const pageRef = Ref.get(data.num, data.gen); + return pdfManager.ensureCatalog("getPageIndex", [pageRef]); + }); + handler.on("GetDestinations", function (data) { + return pdfManager.ensureCatalog("destinations"); + }); + handler.on("GetDestination", function (data) { + return pdfManager.ensureCatalog("getDestination", [data.id]); + }); + handler.on("GetPageLabels", function (data) { + return pdfManager.ensureCatalog("pageLabels"); + }); + handler.on("GetPageLayout", function (data) { + return pdfManager.ensureCatalog("pageLayout"); + }); + handler.on("GetPageMode", function (data) { + return pdfManager.ensureCatalog("pageMode"); + }); + handler.on("GetViewerPreferences", function (data) { + return pdfManager.ensureCatalog("viewerPreferences"); + }); + handler.on("GetOpenAction", function (data) { + return pdfManager.ensureCatalog("openAction"); + }); + handler.on("GetAttachments", function (data) { + return pdfManager.ensureCatalog("attachments"); + }); + handler.on("GetDocJSActions", function (data) { + return pdfManager.ensureCatalog("jsActions"); + }); + handler.on("GetPageJSActions", function ({ + pageIndex + }) { + return pdfManager.getPage(pageIndex).then(page => pdfManager.ensure(page, "jsActions")); + }); + handler.on("GetOutline", function (data) { + return pdfManager.ensureCatalog("documentOutline"); + }); + handler.on("GetOptionalContentConfig", function (data) { + return pdfManager.ensureCatalog("optionalContentConfig"); + }); + handler.on("GetPermissions", function (data) { + return pdfManager.ensureCatalog("permissions"); + }); + handler.on("GetMetadata", function (data) { + return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]); + }); + handler.on("GetMarkInfo", function (data) { + return pdfManager.ensureCatalog("markInfo"); + }); + handler.on("GetData", function (data) { + return pdfManager.requestLoadedStream().then(stream => stream.bytes); + }); + handler.on("GetAnnotations", function ({ + pageIndex, + intent + }) { + return pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask(`GetAnnotations: page ${pageIndex}`); + startWorkerTask(task); + return page.getAnnotationsData(handler, task, intent).then(data => { + finishWorkerTask(task); + return data; + }, reason => { + finishWorkerTask(task); + throw reason; + }); + }); + }); + handler.on("GetFieldObjects", function (data) { + return pdfManager.ensureDoc("fieldObjects").then(fieldObjects => fieldObjects?.allFields || null); + }); + handler.on("HasJSActions", function (data) { + return pdfManager.ensureDoc("hasJSActions"); + }); + handler.on("GetCalculationOrderIds", function (data) { + return pdfManager.ensureDoc("calculationOrderIds"); + }); + handler.on("SaveDocument", async function ({ + isPureXfa, + numPages, + annotationStorage, + filename + }) { + const globalPromises = [pdfManager.requestLoadedStream(), pdfManager.ensureCatalog("acroForm"), pdfManager.ensureCatalog("acroFormRef"), pdfManager.ensureDoc("startXRef"), pdfManager.ensureDoc("xref"), pdfManager.ensureDoc("linearization"), pdfManager.ensureCatalog("structTreeRoot")]; + const changes = new RefSetCache(); + const promises = []; + const newAnnotationsByPage = !isPureXfa ? getNewAnnotationsMap(annotationStorage) : null; + const [stream, acroForm, acroFormRef, startXRef, xref, linearization, _structTreeRoot] = await Promise.all(globalPromises); + const catalogRef = xref.trailer.getRaw("Root") || null; + let structTreeRoot; + if (newAnnotationsByPage) { + if (!_structTreeRoot) { + if (await StructTreeRoot.canCreateStructureTree({ + catalogRef, + pdfManager, + newAnnotationsByPage + })) { + structTreeRoot = null; + } + } else if (await _structTreeRoot.canUpdateStructTree({ + pdfManager, + newAnnotationsByPage + })) { + structTreeRoot = _structTreeRoot; + } + const imagePromises = AnnotationFactory.generateImages(annotationStorage.values(), xref, pdfManager.evaluatorOptions.isOffscreenCanvasSupported); + const newAnnotationPromises = structTreeRoot === undefined ? promises : []; + for (const [pageIndex, annotations] of newAnnotationsByPage) { + newAnnotationPromises.push(pdfManager.getPage(pageIndex).then(page => { + const task = new WorkerTask(`Save (editor): page ${pageIndex}`); + startWorkerTask(task); + return page.saveNewAnnotations(handler, task, annotations, imagePromises, changes).finally(function () { + finishWorkerTask(task); + }); + })); + } + if (structTreeRoot === null) { + promises.push(Promise.all(newAnnotationPromises).then(async () => { + await StructTreeRoot.createStructureTree({ + newAnnotationsByPage, + xref, + catalogRef, + pdfManager, + changes + }); + })); + } else if (structTreeRoot) { + promises.push(Promise.all(newAnnotationPromises).then(async () => { + await structTreeRoot.updateStructureTree({ + newAnnotationsByPage, + pdfManager, + changes + }); + })); + } + } + if (isPureXfa) { + promises.push(pdfManager.ensureDoc("serializeXfaData", [annotationStorage])); + } else { + for (let pageIndex = 0; pageIndex < numPages; pageIndex++) { + promises.push(pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask(`Save: page ${pageIndex}`); + startWorkerTask(task); + return page.save(handler, task, annotationStorage, changes).finally(function () { + finishWorkerTask(task); + }); + })); + } + } + const refs = await Promise.all(promises); + let xfaData = null; + if (isPureXfa) { + xfaData = refs[0]; + if (!xfaData) { + return stream.bytes; + } + } else if (changes.size === 0) { + return stream.bytes; + } + const needAppearances = acroFormRef && acroForm instanceof Dict && changes.values().some(ref => ref.needAppearances); + const xfa = acroForm instanceof Dict && acroForm.get("XFA") || null; + let xfaDatasetsRef = null; + let hasXfaDatasetsEntry = false; + if (Array.isArray(xfa)) { + for (let i = 0, ii = xfa.length; i < ii; i += 2) { + if (xfa[i] === "datasets") { + xfaDatasetsRef = xfa[i + 1]; + hasXfaDatasetsEntry = true; + } + } + if (xfaDatasetsRef === null) { + xfaDatasetsRef = xref.getNewTemporaryRef(); + } + } else if (xfa) { + warn("Unsupported XFA type."); + } + let newXrefInfo = Object.create(null); + if (xref.trailer) { + const infoMap = new Map(); + const xrefInfo = xref.trailer.get("Info") || null; + if (xrefInfo instanceof Dict) { + for (const [key, value] of xrefInfo) { + if (typeof value === "string") { + infoMap.set(key, stringToPDFString(value)); + } + } + } + newXrefInfo = { + rootRef: catalogRef, + encryptRef: xref.trailer.getRaw("Encrypt") || null, + newRef: xref.getNewTemporaryRef(), + infoRef: xref.trailer.getRaw("Info") || null, + infoMap, + fileIds: xref.trailer.get("ID") || null, + startXRef: linearization ? startXRef : xref.lastXRefStreamPos ?? startXRef, + filename + }; + } + return incrementalUpdate({ + originalData: stream.bytes, + xrefInfo: newXrefInfo, + changes, + xref, + hasXfa: !!xfa, + xfaDatasetsRef, + hasXfaDatasetsEntry, + needAppearances, + acroFormRef, + acroForm, + xfaData, + useXrefStream: isDict(xref.topDict, "XRef") + }).finally(() => { + xref.resetNewTemporaryRef(); + }); + }); + handler.on("GetOperatorList", function (data, sink) { + const pageIndex = data.pageIndex; + pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`); + startWorkerTask(task); + const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0; + page.getOperatorList({ + handler, + sink, + task, + intent: data.intent, + cacheKey: data.cacheKey, + annotationStorage: data.annotationStorage, + modifiedIds: data.modifiedIds + }).then(function (operatorListInfo) { + finishWorkerTask(task); + if (start) { + info(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`); + } + sink.close(); + }, function (reason) { + finishWorkerTask(task); + if (task.terminated) { + return; + } + sink.error(reason); + }); + }); + }); + handler.on("GetTextContent", function (data, sink) { + const { + pageIndex, + includeMarkedContent, + disableNormalization + } = data; + pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask("GetTextContent: page " + pageIndex); + startWorkerTask(task); + const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0; + page.extractTextContent({ + handler, + task, + sink, + includeMarkedContent, + disableNormalization + }).then(function () { + finishWorkerTask(task); + if (start) { + info(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`); + } + sink.close(); + }, function (reason) { + finishWorkerTask(task); + if (task.terminated) { + return; + } + sink.error(reason); + }); + }); + }); + handler.on("GetStructTree", function (data) { + return pdfManager.getPage(data.pageIndex).then(page => pdfManager.ensure(page, "getStructTree")); + }); + handler.on("FontFallback", function (data) { + return pdfManager.fontFallback(data.id, handler); + }); + handler.on("Cleanup", function (data) { + return pdfManager.cleanup(true); + }); + handler.on("Terminate", function (data) { + terminated = true; + const waitOn = []; + if (pdfManager) { + pdfManager.terminate(new AbortException("Worker was terminated.")); + const cleanupPromise = pdfManager.cleanup(); + waitOn.push(cleanupPromise); + pdfManager = null; + } else { + clearGlobalCaches(); + } + cancelXHRs?.(new AbortException("Worker was terminated.")); + for (const task of WorkerTasks) { + waitOn.push(task.finished); + task.terminate(); + } + return Promise.all(waitOn).then(function () { + handler.destroy(); + handler = null; + }); + }); + handler.on("Ready", function (data) { + setupDoc(docParams); + docParams = null; + }); + return workerHandlerName; + } + static initializeFromPort(port) { + const handler = new MessageHandler("worker", "main", port); + this.setup(handler, port); + handler.send("ready", null); + } +} + +;// ./src/pdf.worker.js + +globalThis.pdfjsWorker = { + WorkerMessageHandler: WorkerMessageHandler +}; + +export { WorkerMessageHandler }; + +//# sourceMappingURL=pdf.worker.mjs.map \ No newline at end of file diff --git a/dist/assets/web-AScraMDr.js b/dist/assets/web-AScraMDr.js new file mode 100644 index 0000000..8149e3d --- /dev/null +++ b/dist/assets/web-AScraMDr.js @@ -0,0 +1,7 @@ +import{a as le,_ as ge,f as me,b as Re,g as we,W as ye}from"./index-CQwTocWK.js";const F={RECORDING:"RECORDING",PAUSED:"PAUSED",NONE:"NONE"};var re;(function(o){o.Documents="DOCUMENTS",o.Data="DATA",o.Library="LIBRARY",o.Cache="CACHE",o.External="EXTERNAL",o.ExternalStorage="EXTERNAL_STORAGE",o.ExternalCache="EXTERNAL_CACHE",o.LibraryNoCloud="LIBRARY_NO_CLOUD",o.Temporary="TEMPORARY"})(re||(re={}));var te;(function(o){o.UTF8="utf8",o.ASCII="ascii",o.UTF16="utf16"})(te||(te={}));const k=le("Filesystem",{web:()=>ge(()=>import("./web-PsETgseH.js"),__vite__mapDeps([0,1,2])).then(o=>new o.FilesystemWeb)});me();const Ee=le("BlobWriter");function _e(o){return window.btoa(Array.from(new Uint8Array(o)).map(function(i){return String.fromCharCode(i)}).join(""))}function be({path:o,directory:i,blob:s,recursive:p}){return k.writeFile({directory:i,path:o,recursive:p,data:""}).then(function(){return new Promise(function(d,l){function c(u){l(u.target.error)}const h=window.indexedDB.open("Disc");h.onerror=c,h.onsuccess=function(){const m=h.result.transaction("FileStorage","readwrite");m.onerror=c;const v=m.objectStore("FileStorage"),g=`/${i}/${o.replace(/^\//,"")}`,_=v.get(g);_.onsuccess=function(){_.result.size=s.size,_.result.content=s;const P=v.put(_.result);P.onsuccess=function(){d(void 0)}}}})})}function ne({path:o,directory:i,blob:s,recursive:p}){return k.writeFile({directory:i,path:o,recursive:p,data:""}).then(function d(){if(s.size===0)return Promise.resolve();const l=3*128*1024,c=s.slice(0,l);return s=s.slice(l),new Response(c).arrayBuffer().then(function(u){return k.appendFile({directory:i,path:o,data:_e(u)})}).then(d)})}function Se(o){const{path:i,directory:s,blob:p,fast_mode:d=!1,recursive:l,on_fallback:c}=o;return!p||!Number.isSafeInteger(p.size)||typeof p.type!="string"?Promise.reject(new Error("Not a Blob.")):Re.getPlatform()==="web"?d?be(o):ne(o):Promise.all([Ee.get_config(),k.getUri({path:i,directory:s})]).then(function([h,u]){const m=u.uri.replace("file://","");return(window.CapacitorWebFetch||window.fetch)(h.base_url+m+(l?"?recursive=true":""),{headers:{authorization:h.auth_token},method:"put",body:p}).then(function(g){if(g.status!==204)throw new Error("Bad HTTP status: "+g.status);return u.uri})}).catch(function(u){return c!==void 0&&c(u),ne(o)})}const Pe=Object.freeze(Se);var fe={};function Te(o){return o&&o.__esModule?o:{default:o}}var Oe=Te,W={exports:{}},oe;function Ne(){return oe||(oe=1,function(o){var i=function(s){var p=Object.prototype,d=p.hasOwnProperty,l=Object.defineProperty||function(r,e,t){r[e]=t.value},c,h=typeof Symbol=="function"?Symbol:{},u=h.iterator||"@@iterator",m=h.asyncIterator||"@@asyncIterator",v=h.toStringTag||"@@toStringTag";function g(r,e,t){return Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),r[e]}try{g({},"")}catch{g=function(e,t,a){return e[t]=a}}function _(r,e,t,a){var n=e&&e.prototype instanceof U?e:U,f=Object.create(n.prototype),R=new Y(a||[]);return l(f,"_invoke",{value:pe(r,t,R)}),f}s.wrap=_;function P(r,e,t){try{return{type:"normal",arg:r.call(e,t)}}catch(a){return{type:"throw",arg:a}}}var Q="suspendedStart",he="suspendedYield",J="executing",I="completed",b={};function U(){}function C(){}function O(){}var B={};g(B,u,function(){return this});var j=Object.getPrototypeOf,G=j&&j(j($([])));G&&G!==p&&d.call(G,u)&&(B=G);var D=O.prototype=U.prototype=Object.create(B);C.prototype=O,l(D,"constructor",{value:O,configurable:!0}),l(O,"constructor",{value:C,configurable:!0}),C.displayName=g(O,v,"GeneratorFunction");function K(r){["next","throw","return"].forEach(function(e){g(r,e,function(t){return this._invoke(e,t)})})}s.isGeneratorFunction=function(r){var e=typeof r=="function"&&r.constructor;return e?e===C||(e.displayName||e.name)==="GeneratorFunction":!1},s.mark=function(r){return Object.setPrototypeOf?Object.setPrototypeOf(r,O):(r.__proto__=O,g(r,v,"GeneratorFunction")),r.prototype=Object.create(D),r},s.awrap=function(r){return{__await:r}};function M(r,e){function t(f,R,w,E){var y=P(r[f],r,R);if(y.type==="throw")E(y.arg);else{var z=y.arg,L=z.value;return L&&typeof L=="object"&&d.call(L,"__await")?e.resolve(L.__await).then(function(N){t("next",N,w,E)},function(N){t("throw",N,w,E)}):e.resolve(L).then(function(N){z.value=N,w(z)},function(N){return t("throw",N,w,E)})}}var a;function n(f,R){function w(){return new e(function(E,y){t(f,R,E,y)})}return a=a?a.then(w,w):w()}l(this,"_invoke",{value:n})}K(M.prototype),g(M.prototype,m,function(){return this}),s.AsyncIterator=M,s.async=function(r,e,t,a,n){n===void 0&&(n=Promise);var f=new M(_(r,e,t,a),n);return s.isGeneratorFunction(e)?f:f.next().then(function(R){return R.done?R.value:f.next()})};function pe(r,e,t){var a=Q;return function(f,R){if(a===J)throw new Error("Generator is already running");if(a===I){if(f==="throw")throw R;return ee()}for(t.method=f,t.arg=R;;){var w=t.delegate;if(w){var E=Z(w,t);if(E){if(E===b)continue;return E}}if(t.method==="next")t.sent=t._sent=t.arg;else if(t.method==="throw"){if(a===Q)throw a=I,t.arg;t.dispatchException(t.arg)}else t.method==="return"&&t.abrupt("return",t.arg);a=J;var y=P(r,e,t);if(y.type==="normal"){if(a=t.done?I:he,y.arg===b)continue;return{value:y.arg,done:t.done}}else y.type==="throw"&&(a=I,t.method="throw",t.arg=y.arg)}}}function Z(r,e){var t=e.method,a=r.iterator[t];if(a===c)return e.delegate=null,t==="throw"&&r.iterator.return&&(e.method="return",e.arg=c,Z(r,e),e.method==="throw")||t!=="return"&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+t+"' method")),b;var n=P(a,r.iterator,e.arg);if(n.type==="throw")return e.method="throw",e.arg=n.arg,e.delegate=null,b;var f=n.arg;if(!f)return e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,b;if(f.done)e[r.resultName]=f.value,e.next=r.nextLoc,e.method!=="return"&&(e.method="next",e.arg=c);else return f;return e.delegate=null,b}K(D),g(D,v,"Generator"),g(D,u,function(){return this}),g(D,"toString",function(){return"[object Generator]"});function ve(r){var e={tryLoc:r[0]};1 in r&&(e.catchLoc=r[1]),2 in r&&(e.finallyLoc=r[2],e.afterLoc=r[3]),this.tryEntries.push(e)}function q(r){var e=r.completion||{};e.type="normal",delete e.arg,r.completion=e}function Y(r){this.tryEntries=[{tryLoc:"root"}],r.forEach(ve,this),this.reset(!0)}s.keys=function(r){var e=Object(r),t=[];for(var a in e)t.push(a);return t.reverse(),function n(){for(;t.length;){var f=t.pop();if(f in e)return n.value=f,n.done=!1,n}return n.done=!0,n}};function $(r){if(r){var e=r[u];if(e)return e.call(r);if(typeof r.next=="function")return r;if(!isNaN(r.length)){var t=-1,a=function n(){for(;++t=0;--a){var n=this.tryEntries[a],f=n.completion;if(n.tryLoc==="root")return t("end");if(n.tryLoc<=this.prev){var R=d.call(n,"catchLoc"),w=d.call(n,"finallyLoc");if(R&&w){if(this.prev=0;--t){var a=this.tryEntries[t];if(a.tryLoc<=this.prev&&d.call(a,"finallyLoc")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===r)return this.complete(t.completion,t.afterLoc),q(t),b}},catch:function(r){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===r){var a=t.completion;if(a.type==="throw"){var n=a.arg;q(t)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(r,e,t){return this.delegate={iterator:$(r),resultName:e,nextLoc:t},this.method==="next"&&(this.arg=c),b}},s}(o.exports);try{regeneratorRuntime=i}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=i:Function("r","regeneratorRuntime = r")(i)}}(W)),W.exports}var H,ie;function De(){return ie||(ie=1,H=Ne()),H}var V,ae;function Le(){if(ae)return V;ae=1;function o(s,p,d,l,c,h,u){try{var m=s[h](u),v=m.value}catch(g){d(g);return}m.done?p(v):Promise.resolve(v).then(l,c)}function i(s){return function(){var p=this,d=arguments;return new Promise(function(l,c){var h=s.apply(p,d);function u(v){o(h,l,c,u,m,"next",v)}function m(v){o(h,l,c,u,m,"throw",v)}u(void 0)})}}return V=i,V}(function(o){var i=Oe;Object.defineProperty(o,"__esModule",{value:!0}),o.default=d;var s=i(De()),p=i(Le());function d(c){return l.apply(this,arguments)}function l(){return(l=(0,p.default)(s.default.mark(function c(h){var u,m;return s.default.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:return u=document.createElement("video"),m=new Promise(function(g,_){u.addEventListener("loadedmetadata",function(){u.duration===1/0?(u.currentTime=Number.MAX_SAFE_INTEGER,u.ontimeupdate=function(){u.ontimeupdate=null,g(u.duration),u.currentTime=0}):g(u.duration)}),u.onerror=function(P){return _(P.target.error)}}),u.src=typeof h=="string"||h instanceof String?h:window.URL.createObjectURL(h),v.abrupt("return",m);case 4:case"end":return v.stop()}},c)}))).apply(this,arguments)}})(fe);const Ae=we(fe),T=()=>({value:!0}),A=()=>({value:!1}),Ie=()=>new Error("MISSING_PERMISSION"),Ce=()=>new Error("ALREADY_RECORDING"),Ge=()=>new Error("DEVICE_CANNOT_VOICE_RECORD"),se=()=>new Error("FAILED_TO_RECORD"),Me=()=>new Error("EMPTY_RECORDING"),X=()=>new Error("RECORDING_HAS_NOT_STARTED"),ue=()=>new Error("FAILED_TO_FETCH_RECORDING"),x=()=>new Error("COULD_NOT_QUERY_PERMISSION_STATUS"),ce={"audio/aac":".aac","audio/mp4":".mp3","audio/webm;codecs=opus":".ogg","audio/webm":".ogg","audio/ogg;codecs=opus":".ogg"},de=()=>new Promise(()=>{});class S{constructor(){this.mediaRecorder=null,this.chunks=[],this.pendingResult=de()}static async canDeviceVoiceRecord(){var i;return((i=navigator==null?void 0:navigator.mediaDevices)===null||i===void 0?void 0:i.getUserMedia)==null||S.getSupportedMimeType()==null?A():T()}async startRecording(i){if(this.mediaRecorder!=null)throw Ce();if(!(await S.canDeviceVoiceRecord()).value)throw Ge();if(!(await S.hasAudioRecordingPermission().catch(()=>T())).value)throw Ie();return navigator.mediaDevices.getUserMedia({audio:!0}).then(d=>this.onSuccessfullyStartedRecording(d,i)).catch(this.onFailedToStartRecording.bind(this))}async stopRecording(){if(this.mediaRecorder==null)throw X();try{return this.mediaRecorder.stop(),this.mediaRecorder.stream.getTracks().forEach(i=>i.stop()),this.pendingResult}catch{throw ue()}finally{this.prepareInstanceForNextOperation()}}static async hasAudioRecordingPermission(){return navigator.permissions.query==null?navigator.mediaDevices==null?Promise.reject(x()):navigator.mediaDevices.getUserMedia({audio:!0}).then(()=>T()).catch(()=>{throw x()}):navigator.permissions.query({name:"microphone"}).then(i=>({value:i.state==="granted"})).catch(()=>{throw x()})}static async requestAudioRecordingPermission(){return(await S.hasAudioRecordingPermission().catch(()=>A())).value?T():navigator.mediaDevices.getUserMedia({audio:!0}).then(()=>T()).catch(()=>A())}pauseRecording(){if(this.mediaRecorder==null)throw X();return this.mediaRecorder.state==="recording"?(this.mediaRecorder.pause(),Promise.resolve(T())):Promise.resolve(A())}resumeRecording(){if(this.mediaRecorder==null)throw X();return this.mediaRecorder.state==="paused"?(this.mediaRecorder.resume(),Promise.resolve(T())):Promise.resolve(A())}getCurrentStatus(){return this.mediaRecorder==null?Promise.resolve({status:F.NONE}):this.mediaRecorder.state==="recording"?Promise.resolve({status:F.RECORDING}):this.mediaRecorder.state==="paused"?Promise.resolve({status:F.PAUSED}):Promise.resolve({status:F.NONE})}static getSupportedMimeType(){if((MediaRecorder==null?void 0:MediaRecorder.isTypeSupported)==null)return null;const i=Object.keys(ce).find(s=>MediaRecorder.isTypeSupported(s));return i??null}onSuccessfullyStartedRecording(i,s){return this.pendingResult=new Promise((p,d)=>{this.mediaRecorder=new MediaRecorder(i),this.mediaRecorder.onerror=()=>{this.prepareInstanceForNextOperation(),d(se())},this.mediaRecorder.onstop=async()=>{var l,c,h;const u=S.getSupportedMimeType();if(u==null){this.prepareInstanceForNextOperation(),d(ue());return}const m=new Blob(this.chunks,{type:u});if(m.size<=0){this.prepareInstanceForNextOperation(),d(Me());return}let v,g;s!=null?(v=`${(h=(c=(l=s.subDirectory)===null||l===void 0?void 0:l.match(/^\/?(.+[^/])\/?$/))===null||c===void 0?void 0:c[1])!==null&&h!==void 0?h:""}/recording-${new Date().getTime()}${ce[u]}`,await Pe({blob:m,directory:s.directory,fast_mode:!0,path:v,recursive:!0})):g=await S.blobToBase64(m);const _=await Ae(m);this.prepareInstanceForNextOperation(),p({value:{recordDataBase64:g,mimeType:u,msDuration:_*1e3,path:v}})},this.mediaRecorder.ondataavailable=l=>this.chunks.push(l.data),this.mediaRecorder.start()}),T()}onFailedToStartRecording(){throw this.prepareInstanceForNextOperation(),se()}static blobToBase64(i){return new Promise(s=>{const p=new FileReader;p.onloadend=()=>{const d=String(p.result),l=d.split("base64,"),c=l.length>1?l[1]:d;s(c.trim())},p.readAsDataURL(i)})}prepareInstanceForNextOperation(){if(this.mediaRecorder!=null&&this.mediaRecorder.state==="recording")try{this.mediaRecorder.stop()}catch(i){console.warn("While trying to stop a media recorder, an error was thrown",i)}this.pendingResult=de(),this.mediaRecorder=null,this.chunks=[]}}class Fe extends ye{constructor(){super(...arguments),this.voiceRecorderInstance=new S}canDeviceVoiceRecord(){return S.canDeviceVoiceRecord()}hasAudioRecordingPermission(){return S.hasAudioRecordingPermission()}requestAudioRecordingPermission(){return S.requestAudioRecordingPermission()}startRecording(i){return this.voiceRecorderInstance.startRecording(i)}stopRecording(){return this.voiceRecorderInstance.stopRecording()}pauseRecording(){return this.voiceRecorderInstance.pauseRecording()}resumeRecording(){return this.voiceRecorderInstance.resumeRecording()}getCurrentStatus(){return this.voiceRecorderInstance.getCurrentStatus()}}const Ue=Object.freeze(Object.defineProperty({__proto__:null,VoiceRecorderWeb:Fe},Symbol.toStringTag,{value:"Module"}));export{te as E,Ue as w}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/web-PsETgseH.js","assets/index-CQwTocWK.js","assets/index-Br6gItOh.css"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/dist/assets/web-BCDAlWew.js b/dist/assets/web-BCDAlWew.js new file mode 100644 index 0000000..56fb505 --- /dev/null +++ b/dist/assets/web-BCDAlWew.js @@ -0,0 +1 @@ +import{W as a}from"./index-CQwTocWK.js";class t extends a{async setNavigationBarColor(o){console.log("Cannot setNavigationBarColor on web",o)}async getNavigationBarColor(){return console.log("Cannot getNavigationBarColor on web"),{color:"#000000",darkButtons:!0}}}export{t as NavigationBarWeb}; diff --git a/dist/assets/web-C7IvoHDb.js b/dist/assets/web-C7IvoHDb.js new file mode 100644 index 0000000..939042c --- /dev/null +++ b/dist/assets/web-C7IvoHDb.js @@ -0,0 +1 @@ +import{W as o}from"./index-CQwTocWK.js";class e extends o{constructor(){super(),this._lastWindow=null}async open(s){this._lastWindow=window.open(s.url,s.windowName||"_blank")}async close(){return new Promise((s,n)=>{this._lastWindow!=null?(this._lastWindow.close(),this._lastWindow=null,s()):n("No active window to close!")})}}const i=new e;export{i as Browser,e as BrowserWeb}; diff --git a/dist/assets/web-CYAAqD_l.js b/dist/assets/web-CYAAqD_l.js new file mode 100644 index 0000000..1f896ba --- /dev/null +++ b/dist/assets/web-CYAAqD_l.js @@ -0,0 +1 @@ +import{W as w}from"./index-CQwTocWK.js";class y extends w{async getId(){return{identifier:this.getUid()}}async getInfo(){if(typeof navigator>"u"||!navigator.userAgent)throw this.unavailable("Device API not available in this browser");const e=navigator.userAgent,i=this.parseUa(e);return{model:i.model,platform:"web",operatingSystem:i.operatingSystem,osVersion:i.osVersion,manufacturer:navigator.vendor,isVirtual:!1,webViewVersion:i.browserVersion}}async getBatteryInfo(){if(typeof navigator>"u"||!navigator.getBattery)throw this.unavailable("Device API not available in this browser");let e={};try{e=await navigator.getBattery()}catch{}return{batteryLevel:e.level,isCharging:e.charging}}async getLanguageCode(){return{value:navigator.language.split("-")[0].toLowerCase()}}async getLanguageTag(){return{value:navigator.language}}parseUa(e){const i={},r=e.indexOf("(")+1;let a=e.indexOf(") AppleWebKit");e.indexOf(") Gecko")!==-1&&(a=e.indexOf(") Gecko"));const s=e.substring(r,a);if(e.indexOf("Android")!==-1){const t=s.replace("; wv","").split("; ").pop();t&&(i.model=t.split(" Build")[0]),i.osVersion=s.split("; ")[1]}else if(i.model=s.split("; ")[0],typeof navigator<"u"&&navigator.oscpu)i.osVersion=navigator.oscpu;else if(e.indexOf("Windows")!==-1)i.osVersion=s;else{const t=s.split("; ").pop();if(t){const n=t.replace(" like Mac OS X","").split(" ");i.osVersion=n[n.length-1].replace(/_/g,".")}}/android/i.test(e)?i.operatingSystem="android":/iPad|iPhone|iPod/.test(e)&&!window.MSStream?i.operatingSystem="ios":/Win/.test(e)?i.operatingSystem="windows":/Mac/i.test(e)?i.operatingSystem="mac":i.operatingSystem="unknown";const l=!!window.ApplePaySession,x=!!window.chrome,p=/Firefox/.test(e),d=/Edg/.test(e),g=/FxiOS/.test(e),c=/CriOS/.test(e),f=/EdgiOS/.test(e);if(l||x&&!d||g||c||f){let t;g?t="FxiOS":c?t="CriOS":f?t="EdgiOS":l?t="Version":t="Chrome";const n=e.split(" ");for(const o of n)if(o.includes(t)){const v=o.split("/")[1];i.browserVersion=v}}else if(p||d){const o=e.split("").reverse().join("").split("/")[0].split("").reverse().join("");i.browserVersion=o}return i}getUid(){if(typeof window<"u"&&window.localStorage){let e=window.localStorage.getItem("_capuid");return e||(e=this.uuid4(),window.localStorage.setItem("_capuid",e),e)}return this.uuid4()}uuid4(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const i=Math.random()*16|0;return(e==="x"?i:i&3|8).toString(16)})}}export{y as DeviceWeb}; diff --git a/dist/assets/web-CihKQVmt.js b/dist/assets/web-CihKQVmt.js new file mode 100644 index 0000000..eaf2e12 --- /dev/null +++ b/dist/assets/web-CihKQVmt.js @@ -0,0 +1 @@ +import{W as o}from"./index-CQwTocWK.js";class a extends o{async getCurrentPosition(e){return new Promise((t,n)=>{navigator.geolocation.getCurrentPosition(i=>{t(i)},i=>{n(i)},Object.assign({enableHighAccuracy:!1,timeout:1e4,maximumAge:0},e))})}async watchPosition(e,t){return`${navigator.geolocation.watchPosition(i=>{t(i)},i=>{t(null,i)},Object.assign({enableHighAccuracy:!1,timeout:1e4,maximumAge:0,minimumUpdateInterval:5e3},e))}`}async clearWatch(e){navigator.geolocation.clearWatch(parseInt(e.id,10))}async checkPermissions(){if(typeof navigator>"u"||!navigator.permissions)throw this.unavailable("Permissions API not available in this browser");const e=await navigator.permissions.query({name:"geolocation"});return{location:e.state,coarseLocation:e.state}}async requestPermissions(){throw this.unimplemented("Not implemented on web.")}}const c=new a;export{c as Geolocation,a as GeolocationWeb}; diff --git a/dist/assets/web-Cpi5fhcy.js b/dist/assets/web-Cpi5fhcy.js new file mode 100644 index 0000000..7069ad1 --- /dev/null +++ b/dist/assets/web-Cpi5fhcy.js @@ -0,0 +1 @@ +import{W as e,C as t,E as r}from"./index-CQwTocWK.js";class n extends e{async isJailBreakOrRooted(){throw console.warn("DeviceSecurityDetect: Method isJailBreakOrRooted is not supported on the web."),this.createUnimplementedError()}async pinCheck(){throw console.warn("DeviceSecurityDetect: Method pinCheck is not supported on the web."),this.createUnimplementedError()}createUnimplementedError(){return new t("DeviceSecurityDetect is not supported on the web.",r.Unimplemented)}}export{n as DeviceSecurityDetectWeb}; diff --git a/dist/assets/web-D0EvZq7o.js b/dist/assets/web-D0EvZq7o.js new file mode 100644 index 0000000..2d418ab --- /dev/null +++ b/dist/assets/web-D0EvZq7o.js @@ -0,0 +1 @@ +import{W as t}from"./index-CQwTocWK.js";class s extends t{constructor(){super(),this.handleVisibilityChange=()=>{const e={isActive:document.hidden!==!0};this.notifyListeners("appStateChange",e),document.hidden?this.notifyListeners("pause",null):this.notifyListeners("resume",null)},document.addEventListener("visibilitychange",this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented("Not implemented on web.")}async getInfo(){throw this.unimplemented("Not implemented on web.")}async getLaunchUrl(){return{url:""}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented("Not implemented on web.")}}export{s as AppWeb}; diff --git a/dist/assets/web-DJ_H0FsA.js b/dist/assets/web-DJ_H0FsA.js new file mode 100644 index 0000000..77f8ed4 --- /dev/null +++ b/dist/assets/web-DJ_H0FsA.js @@ -0,0 +1 @@ +import{W as n}from"./index-CQwTocWK.js";class r extends n{async show(e){}async hide(e){}}export{r as SplashScreenWeb}; diff --git a/dist/assets/web-Dzl3-xxO.js b/dist/assets/web-Dzl3-xxO.js new file mode 100644 index 0000000..51278be --- /dev/null +++ b/dist/assets/web-Dzl3-xxO.js @@ -0,0 +1 @@ +import{W as p}from"./index-CQwTocWK.js";class f extends p{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}export{f as PreferencesWeb}; diff --git a/dist/assets/web-PsETgseH.js b/dist/assets/web-PsETgseH.js new file mode 100644 index 0000000..08a5745 --- /dev/null +++ b/dist/assets/web-PsETgseH.js @@ -0,0 +1 @@ +import{W as P,e as x}from"./index-CQwTocWK.js";import{E}from"./web-AScraMDr.js";function m(w){const e=w.split("/").filter(t=>t!=="."),r=[];return e.forEach(t=>{t===".."&&r.length>0&&r[r.length-1]!==".."?r.pop():r.push(t)}),r.join("/")}function R(w,e){w=m(w),e=m(e);const r=w.split("/"),t=e.split("/");return w!==e&&r.every((i,n)=>i===t[n])}class g extends P{constructor(){super(...arguments),this.DB_VERSION=1,this.DB_NAME="Disc",this._writeCmds=["add","put","delete"],this.downloadFile=async e=>{var r,t;const i=x(e,e.webFetchExtra),n=await fetch(e.url,i);let s;if(!e.progress)s=await n.blob();else if(!(n!=null&&n.body))s=new Blob;else{const c=n.body.getReader();let o=0;const d=[],h=n.headers.get("content-type"),y=parseInt(n.headers.get("content-length")||"0",10);for(;;){const{done:f,value:p}=await c.read();if(f)break;d.push(p),o+=(p==null?void 0:p.length)||0;const b={url:e.url,bytes:o,contentLength:y};this.notifyListeners("progress",b)}const u=new Uint8Array(o);let l=0;for(const f of d)typeof f>"u"||(u.set(f,l),l+=f.length);s=new Blob([u.buffer],{type:h||void 0})}return{path:(await this.writeFile({path:e.path,directory:(r=e.directory)!==null&&r!==void 0?r:void 0,recursive:(t=e.recursive)!==null&&t!==void 0?t:!1,data:s})).uri,blob:s}}}readFileInChunks(e,r){throw this.unavailable("Method not implemented.")}async initDb(){if(this._db!==void 0)return this._db;if(!("indexedDB"in window))throw this.unavailable("This browser doesn't support IndexedDB");return new Promise((e,r)=>{const t=indexedDB.open(this.DB_NAME,this.DB_VERSION);t.onupgradeneeded=g.doUpgrade,t.onsuccess=()=>{this._db=t.result,e(t.result)},t.onerror=()=>r(t.error),t.onblocked=()=>{console.warn("db blocked")}})}static doUpgrade(e){const t=e.target.result;switch(e.oldVersion){case 0:case 1:default:t.objectStoreNames.contains("FileStorage")&&t.deleteObjectStore("FileStorage"),t.createObjectStore("FileStorage",{keyPath:"path"}).createIndex("by_folder","folder")}}async dbRequest(e,r){const t=this._writeCmds.indexOf(e)!==-1?"readwrite":"readonly";return this.initDb().then(i=>new Promise((n,s)=>{const o=i.transaction(["FileStorage"],t).objectStore("FileStorage")[e](...r);o.onsuccess=()=>n(o.result),o.onerror=()=>s(o.error)}))}async dbIndexRequest(e,r,t){const i=this._writeCmds.indexOf(r)!==-1?"readwrite":"readonly";return this.initDb().then(n=>new Promise((s,a)=>{const h=n.transaction(["FileStorage"],i).objectStore("FileStorage").index(e)[r](...t);h.onsuccess=()=>s(h.result),h.onerror=()=>a(h.error)}))}getPath(e,r){const t=r!==void 0?r.replace(/^[/]+|[/]+$/g,""):"";let i="";return e!==void 0&&(i+="/"+e),r!==""&&(i+="/"+t),i}async clear(){(await this.initDb()).transaction(["FileStorage"],"readwrite").objectStore("FileStorage").clear()}async readFile(e){const r=this.getPath(e.directory,e.path),t=await this.dbRequest("get",[r]);if(t===void 0)throw Error("File does not exist.");return{data:t.content?t.content:""}}async writeFile(e){const r=this.getPath(e.directory,e.path);let t=e.data;const i=e.encoding,n=e.recursive,s=await this.dbRequest("get",[r]);if(s&&s.type==="directory")throw Error("The supplied path is a directory.");const a=r.substr(0,r.lastIndexOf("/"));if(await this.dbRequest("get",[a])===void 0){const h=a.indexOf("/",1);if(h!==-1){const y=a.substr(h);await this.mkdir({path:y,directory:e.directory,recursive:n})}}if(!i&&!(t instanceof Blob)&&(t=t.indexOf(",")>=0?t.split(",")[1]:t,!this.isBase64String(t)))throw Error("The supplied data is not valid base64 content.");const o=Date.now(),d={path:r,folder:a,type:"file",size:t instanceof Blob?t.size:t.length,ctime:o,mtime:o,content:t};return await this.dbRequest("put",[d]),{uri:d.path}}async appendFile(e){const r=this.getPath(e.directory,e.path);let t=e.data;const i=e.encoding,n=r.substr(0,r.lastIndexOf("/")),s=Date.now();let a=s;const c=await this.dbRequest("get",[r]);if(c&&c.type==="directory")throw Error("The supplied path is a directory.");if(await this.dbRequest("get",[n])===void 0){const h=n.indexOf("/",1);if(h!==-1){const y=n.substr(h);await this.mkdir({path:y,directory:e.directory,recursive:!0})}}if(!i&&!this.isBase64String(t))throw Error("The supplied data is not valid base64 content.");if(c!==void 0){if(c.content instanceof Blob)throw Error("The occupied entry contains a Blob object which cannot be appended to.");c.content!==void 0&&!i?t=btoa(atob(c.content)+atob(t)):t=c.content+t,a=c.ctime}const d={path:r,folder:n,type:"file",size:t.length,ctime:a,mtime:s,content:t};await this.dbRequest("put",[d])}async deleteFile(e){const r=this.getPath(e.directory,e.path);if(await this.dbRequest("get",[r])===void 0)throw Error("File does not exist.");if((await this.dbIndexRequest("by_folder","getAllKeys",[IDBKeyRange.only(r)])).length!==0)throw Error("Folder is not empty.");await this.dbRequest("delete",[r])}async mkdir(e){const r=this.getPath(e.directory,e.path),t=e.recursive,i=r.substr(0,r.lastIndexOf("/")),n=(r.match(/\//g)||[]).length,s=await this.dbRequest("get",[i]),a=await this.dbRequest("get",[r]);if(n===1)throw Error("Cannot create Root directory");if(a!==void 0)throw Error("Current directory does already exist.");if(!t&&n!==2&&s===void 0)throw Error("Parent directory must exist");if(t&&n!==2&&s===void 0){const d=i.substr(i.indexOf("/",1));await this.mkdir({path:d,directory:e.directory,recursive:t})}const c=Date.now(),o={path:r,folder:i,type:"directory",size:0,ctime:c,mtime:c};await this.dbRequest("put",[o])}async rmdir(e){const{path:r,directory:t,recursive:i}=e,n=this.getPath(t,r),s=await this.dbRequest("get",[n]);if(s===void 0)throw Error("Folder does not exist.");if(s.type!=="directory")throw Error("Requested path is not a directory");const a=await this.readdir({path:r,directory:t});if(a.files.length!==0&&!i)throw Error("Folder is not empty");for(const c of a.files){const o=`${r}/${c.name}`;(await this.stat({path:o,directory:t})).type==="file"?await this.deleteFile({path:o,directory:t}):await this.rmdir({path:o,directory:t,recursive:i})}await this.dbRequest("delete",[n])}async readdir(e){const r=this.getPath(e.directory,e.path),t=await this.dbRequest("get",[r]);if(e.path!==""&&t===void 0)throw Error("Folder does not exist.");const i=await this.dbIndexRequest("by_folder","getAllKeys",[IDBKeyRange.only(r)]);return{files:await Promise.all(i.map(async s=>{let a=await this.dbRequest("get",[s]);return a===void 0&&(a=await this.dbRequest("get",[s+"/"])),{name:s.substring(r.length+1),type:a.type,size:a.size,ctime:a.ctime,mtime:a.mtime,uri:a.path}}))}}async getUri(e){const r=this.getPath(e.directory,e.path);let t=await this.dbRequest("get",[r]);return t===void 0&&(t=await this.dbRequest("get",[r+"/"])),{uri:(t==null?void 0:t.path)||r}}async stat(e){const r=this.getPath(e.directory,e.path);let t=await this.dbRequest("get",[r]);if(t===void 0&&(t=await this.dbRequest("get",[r+"/"])),t===void 0)throw Error("Entry does not exist.");return{name:t.path.substring(r.length+1),type:t.type,size:t.size,ctime:t.ctime,mtime:t.mtime,uri:t.path}}async rename(e){await this._copy(e,!0)}async copy(e){return this._copy(e,!1)}async requestPermissions(){return{publicStorage:"granted"}}async checkPermissions(){return{publicStorage:"granted"}}async _copy(e,r=!1){let{toDirectory:t}=e;const{to:i,from:n,directory:s}=e;if(!i||!n)throw Error("Both to and from must be provided");t||(t=s);const a=this.getPath(s,n),c=this.getPath(t,i);if(a===c)return{uri:c};if(R(a,c))throw Error("To path cannot contain the from path");let o;try{o=await this.stat({path:i,directory:t})}catch{const l=i.split("/");l.pop();const f=l.join("/");if(l.length>0&&(await this.stat({path:f,directory:t})).type!=="directory")throw new Error("Parent directory of the to path is a file")}if(o&&o.type==="directory")throw new Error("Cannot overwrite a directory with a file");const d=await this.stat({path:n,directory:s}),h=async(u,l,f)=>{const p=this.getPath(t,u),b=await this.dbRequest("get",[p]);b.ctime=l,b.mtime=f,await this.dbRequest("put",[b])},y=d.ctime?d.ctime:Date.now();switch(d.type){case"file":{const u=await this.readFile({path:n,directory:s});r&&await this.deleteFile({path:n,directory:s});let l;!(u.data instanceof Blob)&&!this.isBase64String(u.data)&&(l=E.UTF8);const f=await this.writeFile({path:i,directory:t,data:u.data,encoding:l});return r&&await h(i,y,d.mtime),f}case"directory":{if(o)throw Error("Cannot move a directory over an existing object");try{await this.mkdir({path:i,directory:t,recursive:!1}),r&&await h(i,y,d.mtime)}catch{}const u=(await this.readdir({path:n,directory:s})).files;for(const l of u)await this._copy({from:`${n}/${l.name}`,to:`${i}/${l.name}`,directory:s,toDirectory:t},r);r&&await this.rmdir({path:n,directory:s})}}return{uri:c}}isBase64String(e){try{return btoa(atob(e))==e}catch{return!1}}}g._debug=!0;export{g as FilesystemWeb}; diff --git a/dist/assets/web-aBKShXG8.js b/dist/assets/web-aBKShXG8.js new file mode 100644 index 0000000..5037ee6 --- /dev/null +++ b/dist/assets/web-aBKShXG8.js @@ -0,0 +1 @@ +import{W as r}from"./index-CQwTocWK.js";class P extends r{constructor(){super(...arguments),this.NOT_SUPPORTED="ERR_PLATFORM_NOT_SUPPORTED"}async getVolumeLevel(){return new Promise((s,e)=>{e(this.NOT_SUPPORTED)})}async setVolumeLevel(){return new Promise((s,e)=>{e(this.NOT_SUPPORTED)})}}export{P as VolumesWeb}; diff --git a/dist/img/appreciations-icon.png b/dist/img/appreciations-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..73e157deace9b247d34e71f65606f66080c4b3eb GIT binary patch literal 3306 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 K#}u1;#{37Py3GLq literal 0 HcmV?d00001 diff --git a/dist/img/badges-icon.png b/dist/img/badges-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..406aa5768c9ed46628bf198e9d3f42ddc9c6713e GIT binary patch literal 3161 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 N9SF|&GV6fYe*;RzP7eS8 literal 0 HcmV?d00001 diff --git a/dist/img/banner1.jpg b/dist/img/banner1.jpg new file mode 100755 index 0000000000000000000000000000000000000000..22e673224528db8c475da11d8ebb04bdb2427dc1 GIT binary patch literal 30482 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 literal 0 HcmV?d00001 diff --git a/dist/img/default-bg.jpg b/dist/img/default-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e65e9552073005e99f23cb507d25419f802f1cf1 GIT binary patch literal 39259 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 z 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 literal 0 HcmV?d00001 diff --git a/dist/img/default-profile.jpg b/dist/img/default-profile.jpg new file mode 100755 index 0000000000000000000000000000000000000000..29f73a6364fb355abe05106e5573cdca4d3be584 GIT binary patch literal 15115 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 f+U|q28^{Uf;REHfYv1`_>BwMwaoQKMF9 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

$Y~E;`+F#j@$A>06OvxAmky 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 z zkOrnH)0C`=Xvb49C%p)bgAFAiOQ^KWfEdD%GEGe>jgZixWW2_UWcT418hw51Ac5Ye zqzJmch`KEV^~s*?9RGbTxKmCV?}Fqeo1c)N6v`dUpP~$TxZmsGm%>->Cz+A zKx&iY(qoyxzpLP*vFm2w4w4NP_)m;OWC0*ducR)p2KsL0T_6f78pox#Cr{r`E&bB{ zLzFfohqO~l8oLz$*;~V6Rr_S>_I#tYM)@+w^x&?3nI>9<8Oyc6GimRL^Ff`Su#~3v z!rzQj>@I!*g)-KNpgOH+1)gvf5cEjYF1dwKAn#V1qnQw+X?#kz#LbLr@2sRC9E|S# zJkPM*-X%#VI)1QN1*Cmlkm`<|UswXIj!+R;BTzOcr0v`C)K(%0k|hcdQKû>D| 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�#^av+?s6k1G#2erUSMUP1V|ZA&4l zX}&LnU9f1H$0*1qmkwjLAG#Q5pr#jY4A6phcbl!xv~Tf;8tI12NM?A*24ozG)@X)s z(!6^^SqZUR+Yr(d;e;bL3}74$F<(hmL9VFQ5Mt3JZMDcC9Sm*V(0PrU`ad{?Q>nQr zSd%u-oEhaNxI~9XO4b@W`A$cviur&?;bUJ^cWGv2R!W3|rjpQpYXio)!DC<-h}pRU zePURU4O5Sl{dM|QbddxB-DTU8@T}Pe<^Jkuey(T|hABni3e;om`;N?3@1V6 z9im*MG*y~F4|Lig@)O9{>*t7KRPRaX_w*`dWc z+!|v*pP+26_r|}#$AdOyvsCv#+jAzl6C`nFes_e0&yKF@`v*hwksVn@tkgcfE?U>Ah)RBMvHA4H3c?*E2V7(KjRPJ9{IV;o)fRoym zkHz>ELL~}e!dE=Bxd*e^aUJPgQQy>oav)tzEpFFPglg0XP+8=jn&R4PfNaceO>CIv z&W%O7n3_cD7ZPnPqrJTlM@VU)y2rkZ;1S7MDTpT7&wG41$IoAZw;_xwI-MTV3w54; zUPDP9E_HYFu7C3sDu0Hlg99-Iz;U&gK~`)JNe^Um$NKa*yC2xIk3Jv2u~wo8jEFGl zc~ilUPj;Tvf$!wt^RdqLTro*%f+XY%y5(vi;dIR~#n3M*5#kg=)>Iel^Z{rdQSU*8nu^X2Cf=Uo0T(yn%~Q5*)^ zl7ZhODd6{i(TmNDCQj08(^c_qK+Vc`+?6PnuCL}wY@v$>JFW640^9bPf9SRd$K!s%c>3~ z_l#Fc@p7GN`+EbKqQhdCdaR8v#uCR-7?IRS2@{x-8*xD!(*ID#B>W719s*!j(1!;m zXZG0n>2YEDaiYL75E%ZD32~rLhUBPRI7lWOR)$ozU`Wh{RW=l}S>PlTn~`dx&i~jT z3<+r%L&{RCh-ZGKyP@mj5G15&>2R#KD}S!Hwf$cov^bD@{C?3Z&H`%k~Nzu6R%QJX|~ps0nCa1F-JklvJ2T0Kuk zU$0}%t}51Qex_E^?B(I^6>BQlf+~qxt-vautCch#YoGX39L|fAnb#DYCMz6`zmogv<3r z&#wXczHZwwPhN^MXN1WX3YGD+Y-@YKmq5?Bt;gi*;%Jtl6!5(K3EY4Qv3EWln8R&da9m@JK}_mTj zUw7>bTKievPuWUy8V#GOT@ccO_yg+6dpa(h^z0@Aq52gK1*r{iw~slwMeR@#hzuk+ zLEYz_3)9X4N+4#Y$*AWRBl4L%${C1cq{a%2UL|Pk7M>(KKf;i!WDu^43g(9XC*@aj z05>M)!g@{_3h@&7HV;%>eL7Yk=MQjc*y@EI)93<^_btQ9buG#DHFlIxx&?=RcLLvYBl-wTf*^|RqNL}3%$>%-X z)@|>nj+l+|BleQHi90vO{K~KNiKlZGNhQd08c=$zui7BZ|9ZK4xb@< zg9x?G$$i>1#&vO5i-vHd3D*$_g8M;m5UEt=ST@{n4OM6zDiR^~SrxZP&T)>eJ(8+M zPC<`3A_vCAWN5GE!>XeHIYFkt^AL$?#q;l z=ZY8_+V`7;vwnRJ>$WcqGmZW}GoLOGGi}(8?d5cn&P=)*cn^t+A_O_=eErR<9djzh zd64Q<9P23J(9~zE$;y0tTwZqtMFag%n2`3HbGLERJ~;&)xaHKSC1O}T4ft`HioD0+ zD9aW2iBIf?MO+hrKvek36iKNv^b`-}^{Q+Ss)~jc4lPieYB$mn6Hd=;9HB-C2Xu4P z&NxlVIYAP&ic53F`+orIGP#>ftJp^OdHofEFmCVz%Diz{k4Su!6yLjLbiKh7 zmdNY!$VRtR;IdNe1Im3!Z1H^D9uL>*iDz+JoAQgLy`AgQHIm2^fMt#+GIcLnIHa)` zEur`xVyA&fNO-{$x!c;0&{=6+9%2~U9aDOz)7dax+E7aOUjTnY35bLZws$}i+N5*p$@gEITmFGAFLokRYvM-`7J{L(|c8kQoXyHaz zikOvBDB#KClnTV0Pnn22U6G6x`UQbpr&48J2Z4M{nc2wBy&PZv2J2KX9shdvzc=-Ig(@@VrqO7i_*sb!ATPBfv2b5P(>GO`4CkPd zEoB&E0Ej9F>m+2yB%E>|!}Z9XlcGgW0{Kbf-aFQDHOhSXc-+g8iub$!kwCQFz@RrA zB;vNa!W9IfvimOtQi#gA?Ggy&w{YD%iPSLgu(CtQ_VkT_bgV3I2wtJJ%)%km>MvSR z6M9cPsS2i5W*d3bsDmgyALGd4it;HzKnj$kW5a3;*1(<>JN{FDnUstgL9MC|oCBTJ zhug9oR@5i7LpUa9lGDEt zh!CW&_bUgfV=aWt>s#bR%{jI4$#no-=X z`Z`eep<+=ZTg)Qx*)(g+C`W%VW0bE7JHUhfN+7=`m+S0o2Zz`FLEYb$*>kcS)jEG9 zkoWW1r@}t8UU0ts9romXf!~Q(rha1ZZ>!Z#gI5Caju>=AkK#Lx3IF@H`&67lhpJ7> zy_T!&HLy#Mu+BvpH<8OnZGjwN6tZl{nGa9B%-F-a_;Ym^vYb9YmmiDnqvKHMoTQrM1(EYge-NWMO0J7zP;xl>%KQP(lU1k z`f}Vq@|qD*otC-|-D|dQ{byfC%4k26yR(vBA3Zc|iQ)Tw-1)q`d9(KIn?wIRRI?7m zKLgGB??fyvs#PIRY)DNa5KT-$#W>-ANBV-MW#RavRw~1pa>Uv+z_DK`US=X_!;0j` zij7Klf!9PP7xZs(=NTsYb3>;xTtBGd)v^tVxWqOjrAFRJ5C}uvIX2V9s}1$Lh6>9F z5?1#lsqw0^#aIH_j>mo%X3PjnmS21~YzaUD(FxX_Xm{`uaR0O%uQYO-3k@t3ygf}P z0CBJbc#hXv6(J-QQ*_ksEQI!~MxN_C=?)HOgVOmq=q2F2C4op>B7*V-X%1A46>%LY z>C98hBoIlM#|hhdhu3M#REtXdX{aq?r+r?TJH_^I?sw+Js@_t>5LPi=30am*{r934 zlO^oXcr9qvm^z@+qtrSuG(E`FJ(v@bLp{b&St-;{J;KNS*_nJnC7x6rIfVD?5QJg!F~JKJp+)1FSc_yi=n#q*k-Q1PBL~2p z2EV&>PSOksgiL?;Vtxm5a%Mc4yU*J@aknPXxOLp9p1thjs`iPiPUrbQ2!wDHH`S%Z zdD3T-mM1Q9RPSNU)+2=H<>;YY{NqhH+3gCrjY_~axdGuIF3FQ#Ak(t%0#`&4iEjzS za^#8o_{hbJ2b4bX{c?M!-4#c1S2`r5z(zxtBJ6#=J=y@-Q~5L#UmFhtgJ*%&I%=h( zYTQW{){m8thQa+wB-9Lf2m2xM3X zm@>^zs42~FqO~p!#d+!)5e}L&z{-EDo!OS-Mv`sm#vDpdy;RbYmT_13S@aevX$|Z#9T$jp4^#^#1a&yoZHfNb-J08}f!*G%r1NU+bd} zXc-S8zUaAoF*N(y_cxKOplUjgs^tqJXP{?PRQ821&~br4O1(D?|fjFBi54 zQ|`I>ppkQHRWk6oC!hxD*jhF=DIy(u&E{s2&Q=o~TUgX|Ac>~4aPc`<6oZK+HRGJz z5NklD9r8^PF2eX^ke);+@#Hy52fNhE%lh|gD0`<%0+??Z#3YjMM?kBZ%rYXoGX@(w zzUr}ZN0i?xs__rA^a!jrn$?SDW-jJgOc)-T9&$IEYz?Sr5aY&H?MhdC=Tk7t#t@(v zoFIIF*c?i`?(f*s3HYbB8Q&e37>iT}S)FZrG~`->Lrw-6!`tbhQb$k*ImT~i-AM%N zgRH#JZMw~ls3PNG@Cl&yV|Ln@Z$lo{VQP>|4V1t-6T(h8FAQ>7Us3a84~I3AqX}~3 zWRQxu=YD07HEF9pIf?nfB5DAM5gJG3a%#X15iZ>h6lP5{>qpEmbXL`ShzdB4nYGs_ zk`Ap60>$PXF`nARbZF$WnZ|?&$E&x`SbGYrHadvG(g2tYqDLVpc291krSJ1Z44ktO7-ay+^VPF|T+DGPN^zK`y>3&F zqf7u?uM6b^@saW~_GkJbLFc<==iu-=O_oW{&i)O|SwET&lC^C^?iK|S`xVw3f8RD+ z_bO0=Z1!$ycy1v*3kFdqd~W_AKqf}f$sj@kCL-hkHHSggMfp=3D@|QskZO=gg-g5q z*}8U6As*K)f)66F#VRZ+g9Op!KverO&#t79LDut@d@O3m?_)vNtzH;}3l(#;`N*%}$_3b=nOA`(U9E`ac_k&|E-5C7J zSSH0B0i_xw1nTilmXJXwIcNOnBLA6-TP&Vu!EL;Q7C$O>qZ80JV>rTo!{dY{99vn( z3i!4^9SY|ax}^)fLvy(BrS|XMF^Xi6Jx#szDON(6*DEe|ug93WNWNWoBOBf{39gJLZ zFtM7Pb13nK!L*006@<1BwVZpF?*2aqS~10WzY!0>pOhfaz!9fUZ3mFA0rZrJ zwbKrm_>YQ~jh%g@Dc!!kT!Z-7^mjDpcmKu*!wGZ!7O|@{xpLNfZo6UsJ%iYQ(OxSp zFRKQTK~$El-%^7d_)q%X!@53O1}PkE(t%SQ{=y(GPKCG98%HBg1|fKDC)j0!n0E|9 zumjYO+Sl5Gry9hJD4zdi37wk@gVY`X;YypvEYUncMFST|4DAPa5t-7;{qe^s>JJj9kgGivzidF=PGRe7T{o%17XBMW&+@BHnWKOsmWZORxrG`_~6Gx&(!_m#S_0h&B%=oK;<~s6pb?yNL*$y4W z@iUVM!*dO6hipff3S{b-dO}{c8e_?2T>hraU5JjMoPZcnO6FaeQR{FMd_BYes#zQ` zcGN}@V+HtO<``_YG;%ZnG_i>7>&Bke$NtD5YLE=ilBFQh;znN? zL~7o^S5B3{0|#T2bt74HoFrG&hN<23p>Zb&Sk*8xro2;h4gR>%0RTiEfQIWc|9D0W z$3w>K#`11f2TNis16gzU*f&>zcUdiAl%5lH3QXHuV+2IqI8Wkczx1a!JivfW zy%n@t6FN1!XB^34=Hfkr9F}8JZ-Mhl(cGI)^6TF-2r$L?UM~#N8LyCo%^=rK=_IbWUgA!D|- zw!eg_B}kFzOhC3;ru)W1vFie|o=lr6KwnsCUA4p!eWZutot&u+o5F6QGBPd~y})40 zP3epobfX*%KRWG7A%70w6qiiI%Xl2Cu=6{P1kX#-FX$I%R#}JURC3*PY(RTA$sh$h z&(vEcEXeksK}}!89-iwBgY2U0d(Fupx1Z21ldv;mhV54);63|@K5EDd203N-e^;Jk zmWOD^DucKY&&)2eRE@*IoqTIz4O5S)SpAgGgQcwrN)w@L4U)K@uY4uFGK-v`ywCYo zU+GXla|RvwG zB1@2gqH7BLCxhJE58}~Th@79}@nCi1EpjCc!ot?`l|gWN=Jsf42mX*0B zcB}d8eMwpB^mJ>ZK}>N?yXpk7LTDYuOX@op#s|D6*i=SI`f1rQ*WmuFgk0pRrT;(x z*X(g3yh>?EsN`F_VyKO=SAmuV4VVFrWZcJm6Pa@s&*-DciEkNXcj5q8G!uoU7#tCPO>4GVn7AkWeJ zft9Y*d=chn30W&_Eb3X@(~anSkHHAG+8)|%BFB0nl74S6iLce0oB>-QIO7qs*-6A3 z_f^TwNCIR%KO}o@y`zm9XF0-IRck1C?ZA8OG3WF-v+&e1CX&9fy>=Yeb`KFb1XEG@ z8#_=CkkQSA3{uxKX<>dwHsnV}K;Ml}UM3h{E<-1KoSp`OvHCl+vDd&oU=7Djx+4RdQC7}u9pJdV zZ>nvaXfIO5>UuH?Bh1B?8jd!>v=CQDKjwYDS7$+?x%&5uCHdN=9+{^}cNTuaQ z*sVW+PHo`GbDjfzvJn6_|E_db)U@3ak@@vD9BT@U$RM|&I>h*LTt5;Gx=A?8t_Fozh8fLxMATn$LgrCCa>}8??5gOL8 ztv%#GB-PzomJg*k_I-0AwGgDMkcTw@PR4B(4)aT<+Uz6KOmZq*Cm1 zHuIH1j1n?Mm+sZ4xO{xR)`uGV`khl(eLXKpJqWUHNbR$CVP48bkRB({d2cj`*T=k| z?|*;&^(O;|UJ@6M5q;Gl3`n(rRBx2`jTdp&xNePzCuV8(?7t&c)^M1@B0kk!J7`xJ znC(d47RT?EVXT%_?;S!a^$imWs$Z~vK-JEmZ+g*j2d$yKqn6cjH{e`Bll)?mb2ZmSAe+zOJG zLH?;brVR4Y?ci~Bu$l*0Vfj7`a@w)X8aIwBgGlxt|9TDYRU5thY6xi_) z0m*kP_&W{ac?KZ8Of70+dHvIX5ibV=tgQ^RGvT310hR&^%8)!6i+#>0BS0EN^EslbX+#s#ch4x|l`AY_& zdpH5hS5^9OctU)G&VkPSr;|aNt(+@Rh1(WW6B;CXXgJ)WtNVZkQYkjaOu=gqU9oca zh-^jp644jFjUu5oiNmRu86zC@z#NGSo)&H?v9AvfPggnnCzN<@K)ga%0=81N9Ub8gHvFayy z9qj6^K)5@8VbG{-C`k$6?*AEs(7YOd(O}xq|HyfGWe`F{?-<13pv`{H0)ffi?o_q7 z^ZS0_ZF0{oQ=QWr!dWVwm#5R_azsO4t1oIQ?(nR^SV>56;u;{8q+C2k!w(LG+MSDH zvSz_KtMhOtXsSG59auBG@bFFQWr@zf|e!Bkrsz*ik0@{wq<6uQ_QG|=))R|dPE*mV@ zgwgg5F?Iyq&tLZdvk_RIERv?QvBK~Lv&Z*k5B#k9xL6VoiXzLqPkxdiAc5Z0gY2oa z=!E;dxz&HpAfkEK0u%l=-aUJu8l~W7g3B8QnV3(AltY0$Y1VI(?dmK8%VsgqSjbhA zXM1fm)0t<~h-r?`%4(9F1ey48;>lcaZaxl{9nCQM^E2&rL#lwJMjVKpDuHQj9*Fi5 zIR^?xI-6qSQUPHmN4OoYIn_j~VJ{fupQBj*>8vzkyKUPpFkV|$8&v3w_QF43nRI!T zt?$M{R#F<)s^Md}0yPLNXYdV2K2!}7*i)F;I zBT+D0guSw99<=K*-nrv}bw08Q81Fvh@T0P8Bv_k=xxxn_c*zg7V=v0dU-#f7>$`Sw zv59W328)FXP5jnwLMbi^8o^9jN6EpnpbG3C1kaNBuzX^sjXmb?O)L`vzZ&j;=f}-# ze6oqr@X8=CZGyoWfA+#AU z>1Eu&WO#!b%XdDAU2s7o8W%@lT5&W*EDGw}p^;i2j09~QXL%M!1eq-V5;}e;2()-u zM|`h=uag|&hT{?zCY_FC5aJ4h@VV>@PcN?5^7Es7Jc#U>1szd-Gy(qF z3SNiFz5^#){QI|m|MBO?_5EsP``3>@nNmL?CoAYs9AGP<6m=@~c7ORF4xn~+z@)U1 zU2kru5MWgGI|j*C5jNr*Nj2@4&Wis_262Sr>qL$?26k<(^IC>^&C`hxuu{q- z$&U*H=rw-Ge%dkot=WMx!ym?vRXva=CJ|EEQ2B5l++Yii>ep#JVbDiw3#@XIILLGn zkrMwJ*m=*`nYVFE)ESb(vRxSY(XM7msm?Sm7Z+BSe%pOuzhjW!|NZO7|Ndko)OB5R zJMM1%#9d#}au_)1{2r1)Rx#53_{+X;{lx#%kdq9a2Nzut7i8$ zg&<+N909#ds=yR>+B#(1Fpf zJ;Z0*C4-o*qkwRpT#p;Qc+uxqX9pbh zm^fr4INmYHCPCC8r2F|33<83el-k~fE<0!r`S5oP(!-;F`fHagIuUhkT3jF5R5;uZHb9OwEKKq zFOY(i2+t)>INJIIW0cA`E+)(@gXd@7_WnP=y~(St=~(6%^GP}n8p=i+GDreBM;-mN zc?5)b_Eg_&?$GJK3J3+}D8gn_Cqdq2+jdI~DP!@=;OuGlON1O_(Jm-Z0&OK@T`t>H z%gXvGP{bfavBtt6HaF9W+Ts7liYj`38S!)uVl({zxb^kPAZN32V_gSH{`LL8|L^-> zqD-{19%;m98mgHkH*r>0AcNQjd%1{OAN$3`vJ6sP<@J6LbMqjC%+@<69crtz8uDS| zoM7R&lj@$m=Vvok`Z1JWKo!*jt=pvW$4km)m)zQGvm4on|@&B;vt@4fYAZWUt72A&iOK&fQhQIejtnA@2g^_D^Cu00Q5 zLoh(QUP!jwHxRt`R+m92O(B@YpJ5Pfwexy>t378#V67%`3JWj}&j0tg0()-RQm;j# zvqUI7-&BqTc?X3YBaFe;eqsQ6BoiQcb<#;aYtEy4ujTRaQ}dP*+4rBh=qNgS9&rZp zU`y07voK0!kP4!d7Evd_``KO{6^yTr;GznCV31-TydbGyUWkSkKZT=t-+=jkYOTQJ zVZg)-NW{}v3!6@|E4#}e#Gz%k*%*Ddbi%}vFfI+k!%01dDKTIPBx?CE<}XjQGEPT+ zh&nBubwf6K;nxV&C(|K6knYf|&J2lVESVc+)Hfe2-M!Z9gpZggt5|lCOalz-XD+hoPhw%jp@KfzOQF@CLoSsD znBfBS1V)blna9+Ws#`<8t#kgZLOLquNKA1H(Ae8qjA*SE%wigu387;o)mWku7-q&s zBjiwIE@+10N);U}7(mvZ{f!z!b+$c$!SD-_4@{vCJsmA$U{kzmauco{LoT!g#w2;C6GY4ur`GyCF==_RR*Cf zKGu-l9d^{0m+7=NhnU%GFBn9+rky0B0`-`frW(ZVtmOGa6`El(2Jlu z`&EPR&a@kTtR;mx2Pqsf1V>1XZf8Kf>ag^ph@1An&GK+-V(Fw~$T4Hyu8NgVWBOem zr1;?XaCd!F+{ffBEtu893QrEH?w`B_y>HDDLz(DO{_I4QM_lHX_yQv0hi+xD{=J=kXW2p&3|T4}rXLXfU>^}<1D znl2h>_PlD4g^(!C0T#mn^&lNv09uAgC^E=FI0$T%;>;Tc8G&X{e(xjzqF7KX3TF1T zwRaKzx&o%h_b%Bz*r7H)oBD3+l|g1^U=h~CrV{A9z_Y%BiNJV)?-&I8ihkoW-b)We zj|HsvLf!uK<;xo?<#gNBO$~DD>NFRH5=E;7VM0@YPC_<0MUIcw34CsL)8|@DFw)*+ z9(c?QjuLPbbyNHsVWw*=cMs~A4=n=H;skl^LN2h=%e>Ik*tq7EL110u2Zgd+?`Akf zqV41qY}Gl9g&(;1o!%Gd$Bi#@md8~_7f@0w-_nwc{xHEJ#0Jk1A2PUCSFoP@GJdQa z8@xf3<-GbJap)y2Al`VlQwEWw5zWZlDnMJ40#@3)fHG2FvVbeFyof}%_qwjX@j8Ax zfAlN9%*dQ26ahHT{h2|i!?51~0bL-qA#UMPJlxDb@uQQ-OeHhqu_@z`z7F zdLS+{ly%Cy-*T_z(e zS)&{-%Dz5&_iT7&kfMFiSOT&A&}suqJgODSFR&96>rBxN8wi82`&6mFVUUIOx;!3E zHYv1s8YE>N`wjSfJ)`pkS?o)$DJ~4SXAq}pJb(Dt)mr1%-+ue;_fP-(?a%8+zn#v^ zK?rRa6OnxPmi+`UWo{JB{!{`qd#yX8Ycr|JOKDEUH-fqRVUH~or#AclRL0B+Gc zwV9YG6dPE#`C{CTdJ9`*(px1d2Z2*;*hGXfJV-KF2GQE?6rUr2+)7!U>vfAKw%#eK zGRR^#c1mpa8xyM#GIA3{*?vDmGP`pxP~uve;?16~CRUVEgHvc#QYWuYdeZa*>#y*K zMQ~sCCk8=e!i)35Ahc-=e#zjUkU5Zkmd_KT4>nz8Ibbo)iDuMDyxWo#aR=HQY+964a;a{JfW&I`~f%Tzgy zo9c_2TWT;sTMiiM>%~ua{lex)>V7!L1{nG!D8GDSkR3g3SfShigTU#M)UIGhQuike zY_<_D-VeHlratmgCVQ~ud+>`p?%ekLVC0K#iu(t?d@fX zpBwh|Wy-xP_qTI{+ z)wc`+H)D>%X(xj`AH4TvpL1#uV2wj% zLgU$B@1)QN!+ITJ}wV3iqjJ zV{TX}ciBnNj&-=6AwvCAtUs|Plk#RFgYV*K>ueKabsR0J77SuYw#XlPZxdN|Y}orT zwghmUisp~WAjhh>dSE{sEpY@s*o4vg^Na$O@qEsCijTL^Kk_*oLSs|+K4W4DdmF^6 zPeDY-amG*+7RzT#HgU)|>l(}wcV0~#;(0s(Y0}J6E5I%R ztzNdZrO0)QL6f-@)|OXW?8X}gfp!oh9taikCxcu$jR1P);YJ(%n7?I^b#47}9)Wus z8A8wa=hyG<=)oW3B#5e7<6AQaaG+4s7V8b2!L`a*cJWe9q@zvh$so^Kwcu^%rUrGVWH*V@C`fHYs`mzS5nAmC_bXKdcQVG!5Z_jcmFwb<7cYgX@Y7D-5b z5V>k*9@q=MTQ^z;aU)vRyLc3ywcV^<8H6PP5~WL(#b_ToW7b^dnwRqUi=vlT{Xy^8 zTMvEyvHDtV$RCl04wZH?l0l>u!jU!*l#buokC9@V&6t7W7SN9YbJdI5@L5(A!9mMx zE7sm12}O#?B6hDri4hpn$!P*&+5KX{o?W&@lVg)2J32xH4REoL!r0em26=vvUx9~n z*~nKs@nNIf)84_jq3_lerrK{9WWW#DF5;CzJdo*9SCeGk?Y@w*oB->uq~>hyhmIEBN8Cwb<=TbsrST|K$+@?>1;lRVL2%`GmU%|9X_73TUNv8D)#7<#MTl5o(G+uta?-^%+L69ymh`0RnTKDzKUw`~+>G(@GzGu(fFyb8-m z78nsxQZ~fwv=Ar)C3;g=2&MREQ>*3$)lTZIOxu^dj{vi~OOB)qDR|mr!Zx7v zX~ht>@=&S%$j1l{?72Q*ZH{3XLzq-Q-kmotic$7XoN@DHM`u_@@>kU$vZxl)eLgjp z(Y9p}ms9Lqi(`>z<~csc85|G!)4jIr&AkDm=!2b83E}iMO54uoi(x_q)LDCr-D00M zb0dOtRCmn=V&R(=k8xBBCC_YX4<3}USSfXSy(1kJ_%SVc)WOct9fm&+Qf)FcwE1GA z$o*)Q#7!&Wh=Jv4DKb{ypHp#{Pm{|XGc|<3IWGB~hc^YXn<82Z^Oza#>0Ee_vz#Nu&kTVOJjW>Wo^HLe)@KT>t9cuz7pNrjP7*_^q6~dy~ z)cb)7f6pJ3H%VWyuoUh5pj{F0O)WEDF7EWxx7Y~tX^n^E7v z2!Scu+CW@pHSo7N2rhtJBi0Qm4Mg9{oIo-YvG%UEP>gte@65CwH|ABQlwoG1_K zA=XQ|Qjgb~sYjXRvDX_0se?H5bol9h;2?40+pg!6J~F;@=rqO+>VphHdytf~v|%9` zL*uJGJ`DxPAeRUc=SFjh6zAtbTizLr8FRLv0gvg^Nx{)I&xX=FOPWnvstxP$G3Xdo z*x02Lso<|_MtLt>C^~E1jyG=hOt12Y|?-m54Ci`TNyQEO*gyz+CR7f9IOq-qm6oW9D=-IiO zYp5}UaL>8VXiAH=$*WBGen zx4Xo-+oPB_*&H@LsjxX2M4=Xwg^}u77NSEA3QL)7CP|7rAaejBN9A2x3x2m!j7u3{vt*O?7p&3}Q706g63T_{HXUdzi|xt(BCmVBc68# z-mJ|He>jSM$so7A{=g0V{eL)!;Kx}`pbZ^v4gBXH?(zLOLe{9fvJoxLCO$VKwy#%v zO7N#glQ!Qdheh^p;@E3qEpprK?FMNR@o?lmBr?|GWkV z*Lf~27)ciB{!}PNuop4Im(VKa;GOB|sKI3W_~47inUbDK zQ^A#u3E*gJg2^CRN+;e7IPuX}gu}6k#MnOyLxW4LCyCdzurv@sHN!GHA6S<;L{|C% zxBinp<^NGx@CoC5eq6Vm219Py3fv$|id`1jvnDx_owhn@DQ6e7mB1HV)xt!A-JBC1 zV=cKJBKgWqap`L7366YL-uVOi@Yf%Ie9V=7Z3aM#fZsmO@?(k(Ya3dj+VXVfNB8%S z!s!3cY}|dF9;Z9usNeqhHcyadpy7fS2p(a7neTu6)_ec{+aFimDQ-ENg8HW?)gQmr zzTfj0=M|w_?cH=!`^R#S=~os+5pZwRK$2Li`@-UU|MlK4dROE0A~g^`zqzGdJ{x+O zR?o3aA%Ve6s$S2p0Jg}oH=aGK#82e*sip80}TUUa7H&u{-N<~G-59D4~EQT z7dV`hEP`J^iy0tEbYgc|AFO`8&|UHW`*Ho~EB%3w_q_aCDE z_w)J@;s1UO9O(d}by+Ca;s5^oAKyQI#FQ$HM@TJ0X|E9_fBnjmuDi`@BUYj%jn-Xx z{XafF`|DrdC>FoCse6K+7a2VB_4~&+exxJ5JT<;+l9WW2LkpfCc-(*gc;8=tyaQ7h z4AZauu_Yf!oogk%{`kuceO`1+y@Ci`VM@>a_51bKAJFN$HJ{t#h-E4yAE0iLU(dYK zx4FmH0mHDjnuf`9-4FVa(M?2H^_gd)4U)hI;Cz!Kj`Ku~fBofO|N4GccX1t!aRW{m zx?~wR7^n(NxwR~|Y;vTZ-7IG>ayAII*)oX9!=ZTbY&L1x_$`&Sb}`eg&i-@Hz4(0H z*@!PdMQkMJw7T^B`JgPn?{$S8pSGq&y+7~IUYZySf!Fd1A@7fy=iVQrW#?oT!1gat z2+!fOjNT!-#7A0fFY51un7KK-UXnWlg;Px1JhP?;L9QHDSpAkgpLT-{y*4}tp8|W1 zrQki6#mv-kDyPeeHA)z!9khKVg27GB8U2FqKR%NWuZ0s{DtS24!vVdf2el-IMn2E| z?FWPW^7VN;3~AQWw?pHT(rCqD0PqFprf7|$PG2mRJ!^p%LcEgVGB|xJIb52;PcXFf z{#9`UYZ%y$v_wTb-!}pnm@nJOZD9LGd)_w_Kt%yG1_m|5vz`u;;2~^3@*Ozhn%?_K zBBEX0rnpbnHGCE#=ON+e+5LPet;^YT6Pgq+o~<#iD`b_Y$l2y;H+%BB8!_T0xoxAE zSR{SH?9$M}{D=ZA5%@7kj-U6t0k@9s17x(5`Qt(N$kVg-E?|wxW=GyiJdF`uvf;yI z``5)F)H`0%sby|`+ek~Bu5djnICf0eeQ1Pj>*}ErYpKQN7{Wl@O^mzaZ>3?PM^QM= zoVt`EtD`8)tJoI0v&_I9f+$S}jbB+KgTj_uz$SB3v`FneA407I=GKEXNtVB_rN`ND z@i?v(huN!=Q*2(pm+X#~LCmZM z8x2gbWM&Qp4;fpimM!~k4#2A)?POGyDk6@BP8cK+!0oZi@i;6-F%Tqcx+3lYhI-Zt zwwe0i#!8jRw0z4M_Cc{sgP>`n?y;jcUgfG*^Vs2#8XF)O)*8-Ig@J9xKW?r0McfaL zjuk6F+u03LH2|}~nsU+Joh!Il0v{Y>h>eO4zK5iZyruFqh@;*p`_fN#px(}kHeU5S zc1$3}ic_ofpZJH31c~ttvBq_yCRDdnU^|SxMtz4UGffvi5alpsknbPi`?2xj1Tdx3 z5$h^O?Q$?hYKe8W0bpx<2c0cs*kD2_tel1b8$iAF&u2!FgVTXbNdIAa2-fOr<9T!y zFisZCv=H9x+Tc<7K&f0)j-8YXZ!ESBL?tFI=~r-!q{UjV}aI%W*{%Yl9fV7JtDYM+|><@SNLEB21x6kqTp*k)t~P zD}H>qWNoUPr6KJ@mI2CNp>oD`LURwZxiSGuWfE3{HcrHa9Qh{eNJP^amLd;o zSYXyE$a-|ut=<8P{~}+^S{j(M;}eGrv5I~Om*vq#~ab37$A#0C6{+N|hv0M29vhe#~W#M!Q2zkU?9UMj}I zBcLmxx^1I^o94zSUCJL>eqmf;ZF+Fw973>89{?I)AX!<5Te)5T;?dC|e6<>5cF{fH zE@5hGm|z0%eSz~3BjXKYL+Ncd2OL|>3u1+eu~z#`Xg%EmoI2hORAAUeolux`FB=U8 z8-`ovH&~q~gOFM!L8EN!fgHe{l7l0Z(sFe z_=ZpzE{(en+gyk^MQI#uUW;7^G!c>LwS#CTlUVYzUHB>_O-?U`Fv|?4|@NoPw;Stc4?dp&_9Bk|$dfU|AUP zINPhvLmQ5P0%y;w9_mdxc0g))tHC-P17a&ItYHz@wDxV2JqFFZ{W&yaAOrsiQiM|N zsB6NwyEmiku1Ux8>DvYuLP~^O$H+g41&EMqtr>JPJWZUId|?Dc*+IPzopOM1yAwv5 z97sLa!V9^0{|m->a7^UBjO>9 z&459yIT8;Rq(M$gwc7n@uVg3wqVw*5bk%%USS$i^HgaZf^H!1wA0q%KAs->I8tnAp z5xbGG5+6vgUtp1N$(?v(M-krxVmRq9;3D16xt@%IY53r1z6;myxwjdDG`0JDeETmi zj4UK7;wu0!#o{8jXn&m^ht5p)6=?L+D~!q^i4LS{~B2 z4XKfofmo==ZfG- z*iHI-8+h#-6aJ3dYTsoY!Wej{X^WZUDy(~XHboO))PeD@Bq&^%0hNut-4xMc*84$5Nu)j z2sX9@{bSn|>mI9Zp#$s=-iL+|k!vi3b&%{r^XeQAVggA)dZ-VA=nS_Q;^*7W?7~IY zA&aOhJc_}B#Cf?V1|!IqjU0*x*kWX;w)OwKwL)oY_YIZ)5JU>1Ia?aPL6BLiv8`;Z z4BMvHk;DiGyfK&sAx%uMKIBql@{y>=p#7Xf*-Gf6=6{^H3X-$9Dna%hyE zU^$X-$Dv~TG;7`urpV;IO7Bb1NomWUc~O^iXeRWp2>7qDzDY}@!E&n4+e z(nKv{nkf0(%9*{KD;C}`*WBYbY`}hTfgG&{aDg)fkOhsJR%OYFy};~~N%sQ0wa^@$ zT|&KxB`njRU%WP49*=q@?jX8`14iV6#j8g&!VhHdIQpg_O?G!}aH^;(K$6evjlZf% zt{RcG_N@kc0I+Z!>zzTo6uQK@vv(CTP*mFH6j9NQu`GQMHOO|PGVIQwq+A^@l^mk} z;8g7fhU3|=ilu~D4RV43KRZx5(Gt}`bFoOtA+pKFFsLh7C;QJvw1Qb(QA|3OJm9wP zJh4&WL$~mMr8{95^;?%yg&}YmxiPldhn3-KA>`9bCl9IofxNHXS-&W4TGSi&h}jVY^4m^Da0g z8S>5F`6!H=_eT^G*XAzDEYXhksrHBPh7hSvGe%wD;pds8lOgx$Uo3OF30M+GFeE&n z3uE3RfvknGKq#F{ha!H7UJV)UD$NMy^8|Z&7;`}Bu=biJ5cFNywFekFDugia!yu2bcrr3|MKR@%RQo9HML3@c z{3w{-{LWifY3HcQ6Sjc8*;;%PPpG-#wLB_m(W1*S`N?gtN3LHncM`5?OC+85jT;32 zgzt*D*~U)GjKH~z7tNWVHp!X8AbFhNno=2XS+wcFAhkM;cu_o_Heo0!wmke)wuaxfnENyLpNvdqgK2J>LfSjl@^Y!EjF zdGBI92P!gByzn3zO>{rINv<HCLq87;*MACSwR6rAsehv^{+?={hOOd2N4TDv7E8>*ZG)t*2 zS5&hZoZS9sx$s|CDu&=F8guZgP4Ci9N0e~(7qeqJ1di9;+t*M-z#!uwUs$A(rq1Ps zO`%e~eyvJixU`AxaQH^O5=tDjIwzD%iIvcksbo0$>^zW!ee7Ag!bE}y(&+dq%@Fn| zPM3CgM##D%EgV85=+E2Pp2z)4)-ZRlapEK70k}jL48U>TO>Ei-PvGt7!@`MMt`Gq! zz$mzMuV&z6+wp9e;;`qm{SJfLLTuRIs=@sq2 z9zYa@3KK-q25O2HLP}qWFQ4dR5H@sfgp42Y1GZ7g5adFX zO?xAin~}xUkF+vP2t5lN8RRiCza49YQ<*!%eC$P#uffNleewpN zP5Hz@E3I~NTWMHjysh6L93m{`z~86U(j53>^6F+=NINMRcoi6p0pelJ_*%{sTFuh4 z>O)Gd-~k91y;OWC#Og@;Q&g3ii(Pn*tu}d|vGxD#mG)T0bTrltz&H{8;yJ0E+0wp(QSR#d#yN6B0oXnK^*MyP&XGNG68?|KXCz60u4G#A4HBUp-ZT9z?W@ZhCO*YfYhrdVKzqPE;jdaUd-ikcTX8#w@95rQzN zDOv{7nAcb%5JcqRiL>5ai?D`D7R1_&LRU!Ah!mgUJQfQ(D_Uz;MHa<9M*Q@l+`Aqi zj|q`_q;@|oB&vBW^Y%%lHLo*t+=*0;Go~8kxgjE>atRu99!|^;BGE`}sNSh{zd z1cIBWoKxMbNFSju%ttl4y+ptoj3q}dDDh++s>O`xugRK+uoQ}!O@$nB$aS(!+sTqv zI1^oadiv@_w--OV8n-(Q#7;{u;*GY!Ln;or447r0qj>&D1Gyy#qh7(N+1opFBWSfCU zX6qoBvLpvu>j?%8#7CUXh~RDsoaRcO%jg)2thS99CD!bJ4L^xsH9z& z%&hE~onu5rv+QmVrZYt5$nv=r$hXJS(gD7h&5Pc}-bZ3frTwT?RG%uNnieAKR^BRd z`y99wmG2}wWJt#$vXf+N z?E>Q)kzN&B5hf~--51d!N`$O$B{oQ-N%zU6QBKa)8`}q@I8Tetl_>E;46PuTfJDs{ za%|g`H5Qwf(M5o8khFl5ZQ089;5OTxSVXVZF{AmiHyBQx1IX7|Pq7<$k;P%^rPj(Y z3@+>xdE4DJ1B;V^iiPmITda}iU|@8cr6I-9p1Qm^e^4=+kDG=S&<9|wi%YGO{4o8P z2g2-WaO<0SXHzt#5!I|%`yJe1rV9WZ}ti-3dm9{ zQ?39ZJ&hLH^P&wJcY`cLU`OtBhuXms!dMdg+pL<~qSYgAS${hu&SP`x5FB?G99JI0+Wy~;EZiF zPDY&;430*?eotN*&j2pH<5Sz95U2%Jk;~j+5LiyGfOtu=3DIXTM{2OG8$VSR zSqAT~BqoTvKZ?|UxdvS=xj@DbCW{(3i+?CD15>~RWV3<^P@s=VnFER_23=c#nsQdvKteVuI(sg9;7CWHL z`?kB>YVo3NJ1Sm;{~Ika`djZFV)RHkwPbjZ;wDgL*0?qGh=_BKp4Ny$RgwbfLs5~j zzdb8R8ZEeW#uGPhrILX7aBf5f*Jy01sY=%~V3u_Y_&*=PTGTkmBR33R+yhQJwHit@ z$W@DxieZX3Q|<2uOx@|w9s`*%B^)0Ro=1}?UTk_4$5mJJkhd0b3Yqi8`Nn291FsG( z%RPchoiYJ~Ol~|hXiGZP!;P*yyjhdh8UaT`p;j|v0*AsoxRxdZp~@n*j^6I4lb&71 zfCrW18a#?3W+B3hTN1h@m?jn)mk39SU`nL5a^HU2W7i#Y-JSsgVF=0eAzq#fM2}%Y ziyhp;j9Ij>PFqjMlHzHWBAMCPCdX%>XkUREo{H1GmNXdoYm@=KQ-;*!W3TE@hiAZ@ z8etPVu*Jy{w$@T>GBY{RLg#O_y0Ko57++%>^L&mlVFxD&7`56mi=<@~_oIcieP>1o zu-MqzdEA1eJ9-dqgdlM0`9Qt0!2Ka`(`&L7z_&oZte{hqwxGx4$x2B&dL--o+{jRZ z!X!(gx4F{^|AX$};ywatd%vc(HQ-SFVZB;L=3 zC4-3b9q`}MDc>3l2xrv%;hr0#_3b>v#JTNCg`m_xDcYPHD{&tJa*1umX-W#VxnaZv zl$LM~Z@S49*jI`>w8XmMU8?)#giNk6;jelirAvX-i}@UaID+h1j_)6u?$25xy@DhDO)!&GI!4 z2Kf}$bnlxtvqhgfu!V&L;Ar^M{yZUg6IPL1gT0eTgR*c4$g>twn;G$k%B9;^n|ax5 z(7d3^Znd9G`u~>%;Wu)=NCIiYyc1xcFj{_vJ@tLFsZQ>K5@7IJQm5fhR9KDKL$jBM zfZqeoM7#%VrA;PE^wSa(pr0(C&@SO4Fh%*Xn-F6h>^Z5HoVSD^%kaWzX>%8mvzh>V z2i@Oz5FZGK4uZ{C6iOJnnKc{h*y9%y9x-nK1?vjxHeXP~QZ|oHsW{pArm^^YQ!A(B zpgq$nvO5l9qPL%F9)nBJ{>@gchSzI}oZ=qMx~;u+m5;Mv2v47<;XAyAB)#^C=XO?> zt#P;CJ%(2xur`c#l*^53Id(s6n^7au4~$GSw)vD5^t7SpqdRm_;>&hky32#bapPKz z6d1h{O1F1X%kY;9or5*96O&t6PRzKE_v9oOkFE5BZ5+|%m;-%*Yh{w8Q>b|iIT|C)HWYgejOaEJ?g`aA4}<Rt<>5WxooWr zfkBoJWSXdciCsZfVW!q$O^}v$Yz(831Zc}tL=w-ATh7@*b5k@geqPS>1Dm@YcE` z#l_y)>^B*m;jD;=5w4C@A)it)C7{IqIN`;5w~%IUEOvckfhkB?x^ndBF@w@?oKeju z>JH^}7o>!GH9yQf2pO;dY-W>tItNnLnvDaMq4Er<+%1+cpvx}v4#7$;DrL09YQrt= z&r#wL5xeguq5wI*6{;)LKow8nD&hXdLrl+Oj6uUVj_nK;BG>##B+V$X5;CAv)2D{R zN+pi`OAOdZx=ma{Dp`m8$f_4Qgr(9ZHn~D0F$PmuLy{QuWHkmKlj5LQ3wuUN50q|k zCG;Dg6sUj4F2NGu5tj_YFVMa8%*Mea4MAt~QRO`fq&g&Sb{w*hS*+P{ghkGJ2E(H4 zWgJGZm}VLqC7MDSw%s~sRa~i)<^`xLD^)$<4lr>Xt?MueAS!ZLh2NRVb^Jj~5?rWt zh@|)GPlB$C4;ex4gc6@bT5UJh*rF&%Ruxtg#%1}ENr z_k9Zq}FZeVLQNKzm|!}f`Po5wkVZ6brL_?V<#*qG7;G|(O;%lp_mC7Ml}%~J5$ zG6=xJ4qY*_ne4l^={EzODfk>xQ>>?{ zE9d|poZ~S1O39Qtv2Hv>F6Qwpk4ZwAy^3{)zE<7y?;^AdL7c?V;AmtxFO{Cmq`_xv z^JAsMwZ^of$T8U4o}>Bf)DrQLWzn>--LfaWJK|P~T$cJ{bGzaY>bRp?YKxl_7>l z(fk^E7LM@yY#A@}O?*Tr+|5!#aa@uhc2-%Hztio}SV})pvx#Nfj%N>hSnUQ`j`osV zGNFIiPbA{V+I~S^#;uEypkJx9S!EE6|B2heKC!uETT~SWa1rw@>w}Y=7Qt_gr3x}$ zoUE1>slOxdqJXlW0Y;VVuyXP|(Z+M6QDoB8w6>AA01qxjZ;S&ZP9LIjseu)t z-h0_o(Ph-m#f0Yj6+#XcO9vT8u_&D?ndGjJJDJAOyCXLkA+lX?G-)}H2k`(BMBqJ_ zolVR3M1oOa!njHj-tRz%I7OtpnOC$(XjSs(FWiS@QZ2245$#5ck0txv47?g=PYdY zcnD~!(O77mQ7#iqZVEp>b3<&}F(E9m$iu1A7lWk5a{D#Sbsi6nY}6np_?C?@MhXUI zwJLT@VaJX-2j0y^=UuhkeRxzvhkeAMYg-5!f=-46SrGiH1)PTQTH7cxqNkiEb0cmO zK(vhQ#P7l77&AgN3CD$^7=vhM= z&u$+?Q5v_;+42XDTTue<*46Y>ZPI_VxyP*H?}S`o5EEV~x+Zo4Rp#S)Q7N^(0+u!I zn2VwU+0&tM;=&s0OK9357=sxh!ir@UFHx!6I2rVH7Py+2tJzvX0mfc?mn1X|^;;`F z0`G0#CR~#JIQ!%P2U1`q-4kJr7Xl5=a9^QH2BmA8?V)qkufY^zsPhaDf0g~e1?jk|Bg-$;eSDSdt% zA43(=4pSyAXxSEL_r3=2Y}8O+fqca5HSOHa%CQ6xbrxJ^8KS=Dj&GefnQf(vz7>T} zL!h%o^_QtB?-?$#m@C1iBHTnQv3zs8W+7C2ymtgoB!FR|(?;UH{R|r`&exg)-lYa2 zs0f9bcm@zYB9#fJ$p{>DZSt_L#O!MxliE#uIW{1A*>V9>{V)g;ezqKv42y;1NoL3( z=0k*kl|@b2?bjG-+YiF6yo_)PP{QW>Y?D~^h5yJ0M6;&J)rmU_6_>!B+iv8LN8|n4 z!{4rud>_$}7$ppX&s@NZ(gq47jA)0Fb_xk*u?*-+?i=CTd5P(rXz>8p}3} zEQ+iTFv+d^gyMv9+2d%Vx)iaDt!id9o%yMF^leO1`B+1{+r@=tWT=`n&IzaknYF2> zKm=uJ^DqTRI6dA?>vBcon3Zo!zNHLZTC}VwPZ03G%JOSuqECvOPY zrtTMLr3gd4%QX^6@O2ywCK=1018fcYS&_Pqzaym`%8lRdV5zb_AC4A1P%B1!ST%7G-UtRM(wY~u z>=UKJGj+S59XTTxYO#P_$!(p}b=3xJ8cSyb1eqEy6y|VbhMf-M`W*u^^;GRfHXYS# znjoobJRy}}3W&yCjcEhjPP?wB9eM7A zb>>Ki;p&rsmqB)=3*WRYft`;H&6+nguH|5KcB3^k+UnymDB_pWJa3iLGiWr1aO>&B zT2cAGl1 z@9EaA(S-_{uJ`o88d4lf|EQ4+GDeZAZMOBG^@oS|qd<-FrbfIu*}a@HKZ4|v8uEDQ z`p2u_^uj^Xbn(TCGH78jIsl;_IYm1`EJQ1ZImt_p4Mm2P;7z;f^{{f<5-Amw#=3$i zA%b7U#2Y?cf-V_0!Lj?E?0B4WE8=*-(MDOJDA(=`Bp{7mi;7v_xf<*p;ZHLn;QQK6 zAd6&4AzMLzhKSXS<;oR&XxbBGKp-$cedCeS#w9#jaaM>7wyui=}^Te-tgj`HxaE} zu)jXR5!|spo<=?i-w1vS#5L4=h_CD^|IP_j#lzXyjc1>2?GcXJdb61T6Z5iZmW}}oGloGp>xQ*Eq#CIbSdD2oC{Nq0;lZ-? z4(;&8827c?9KTV3va_j^!?klm=B1YwDWVws4Y9T;kv3^bRaO_4(z)W<1vGQxyoBh& zS_NDL>1#e9m?aMOqR`GrkK!JEje&r5?^bT5D&y=SNf@MfyLAW$LKa*JnGBrGRzf!H zOi)Z-VV8K2(TUrrtvbt9YB#VZY=bIrBMoN$xJ7|k>exEdnp;OoR6g9uyJDTUsN8E+ zHc=FLI?m|gVWW#{^I(HBGKe-kBFH{kfggazmcPV+-s=EDq=N#FJx3>%mn>`=(?s5ijb}1g|gRSjpN}x#)piHwFD&Lg5<=zhH^wbO_PN&H%HoV1SIsE< zUSZBiuFJ|3Ea-eEl%iYh@e1FWP%BmqcZ^9S3$YDu)|`rIM#nBT$?)Dy`T4%+m?Q`h zsl%7FiJ{ta$YI!MBU`t<=XXnfO;T~f9*-s9zCaxa=t2pM0oxFo-*H2TSGPF+$Va>J zcKX+Y8E7sa-4?}?OdDOUy+*;m9Npjyl6Dmn*B)PtC#P)HsiJ5)={AbPkeDmJymMOW zn6kFj+cdGdqllHJIT54qt>Cayd{@il;d!O|j%$+tvSKhO98a1H7a|-lma0%KmSCu+ z-k#fvP>A+YMFy+g>*n5 z=NGqK1~4FfpfD@XYNlkN%Cvz5H2zHM_H%v64H!<33~rS3Vr{xM`CF_CokL67v`kqo z#H>?F7RL>*iNH0Q;F1RcxiCTaBhX_d9>-N-qtxL+JT|mtp%R3NsMjEpq4DmyLvGi? z508m=W)RrMM72B@-V7GUyt);kZahF!*u@6!db=zReE333&R`M(^^*2DhS-P@i9FRDX-7J2R=r{N@Hm%p{oiR#kXTicjbejN9_B@z3 zLHHe25^ENjKv9q9X9X~+_6PuVlQ6MH7Al&N=wr|GL?%XHp?=-s&WV|sC0X{{Ha&iU zcxSJ6^d+pus_8&xklEpr2rq4W+a!#GXp;|hUK?7F#>KGTPSl;hup?|2B8~(wLXsW> zwjQ-Dq1ltwa;K$@Wly+fm#lOq*1=%;7BVX8hUUQJ=Wu+>JB~)Lv4lp$Cg3WS$!>g( zSdm%xVhhz+WV9TyL8@zNlq12pM+4={nu!+m?rE-FQQOi0(4#wpstp&EAxNN!L zv}4)Mt|7)@ry7DB4kjxdCycXWmoAIzZdk!`%Xo0xFz>*na zYX`}esdBXdL~u!p_?CHI2p3|?Q&aRT<)SM?7fno~<5@LA#~PX%coXu6K}4U`LXqjk zH}MUE!Gv1kz~#hlzkTdLpzY=T+s9~P$=;^dm<_m^TkLyQkqs zreG=)fNdeKx;8XEHn=^YD!n^Z9V2>Yed2CoAXv*Pf+TA^-)*g1;B-;~bgLkVwBBKm zcr?_#vp&$x>~TFs!3H-^VO!#;Z0E<1%Bu7SA&VPC7FNUf)3It@_UG?&QraQ`ZKxTa zYBsav#7V+}DW1{r&kj}w(E&;uB8|g^n}FicsAH)iVUfkn!-qb!%#JBgxIYm_5n>BZ zu&KvT1Xa&g+v^XbxG-ddvkV$51&+G2Y9kf{1qhF~#4R8hTXQFGb^y=CAT6tP&h80T zMBosZF-9Wr_N{8Y^Z5(UaF%Ol4>0yAf5Ri1FxS9r4p3_?ih#V7-d7y@(be5R^Ua1J zT#C(IxOdn>{_d-aJVNsoVwIc7?6X0%x22gim4VryVa=xs>PNL0$Tog%NiZ}M7srb5 zB?>*XuA;Iw5fwjY;L&`H4Q?%$LCno}UYHQ4?sidRMjc38 zvuCn?PpK6~2g1H`KyaULEF6GUqy@GgT4TKy$4D72Aai@Qb?_^1S98ll)~2>chbdQq zu&X>88MrB+Zfus1^#00gLV<=NWRN_{*b8JMKy*4t+(4ITbnTWsia8hrTU4sU3v;%l z5wHrF7;xg6CS(=Oa)Q$sKn$Xb;s%Y|LB>O6;o9~DDT6E($hJLcq$GWDEN-lhlkjdX zHy>qiaH?jEe2lEUA=GKbzkusZ8<@7oG3v1JZPZ{WM(tysCQPY*XyUv=i&@F~z zi58In=6TSDF%uwWv*aAJKyDcf!U79UwE>>q7EcK&;=(~s4n#9u)WfxKN5?I)7>+pm zf%ukuoDC;0X9*~3cpOAK94i%#inl0FZU!A=GT?oS=yF;^fUL<;Ds@NbSpnQpaI><& zNqTnGh>Sp~^qYokD-wiv8n#L2n%LcAxC=V67T>76CBQW1RTm>v?EMe0H`k1Ky}T)O z-u`_Kti^_BiM^Ig!R4aGRB^H<3Rzkul3Z?{4~r@>O){{`TSnh<6;Ey= zCOOX*_xezWW>dNzHbVR1N zSVGf2eGIYZHZGqwK6h}!6{g9XoVbu6~3;uW4{9% znFv1UK0`1%&CVz*99m|^X*m*Y2ITHPf)uSas(v3!NNTkaO&OT_00r|A^Uh*W#QCgc zvmG0=AnlD5cOrL7`APRWrBE`d!!R>GVaamAzBgf^;{!9He=I13#em0b?jkSYHnR84 z<0BRwn~T1UaaPS>N|3y7fncVOmUa*w(KLn-Dh0pPa~ngZX~L%6jO*Y?Uu-5E2x~HL zf^ExMjAsy7S_f_5Vo!v;VvZLq+yV(fRF9eH7HlWhOteF z0`bh5y`4W7lwfnr({5`@W|Cpz4+wfSuRZY>=q@Ic?gQ-!i>I8NjwVhXh8c&C9u_R6?~;k*7EIbor90*iqP34lIn*#7JIwv>a!~NJ!Bm<+Z_- zfH}--92E5Gx1-UzT6QGVMlInuAf^0Kr`dny8Th&P>S4;>(CsxnDBOJbkw(hcA9jgG z;{6dS)_ysPr8E24U2GWTH^NO8cKwy5(6#-;@`Ne~3di>9EK)bq1}9sPhyL?KXO_xH zaUjJ@zKQSwN+OnUglEb4kR=bL*uQaDsSOR5-PV!Cut>r@KEU!R>(AMc!#-(t&adYH zBK;56kU_TPik5gEC6#>Ec0TDfx zbi|OjUeeHNtAO~7D|3Vye$fj)$vPI@`bXJ3Y-&eSS{zySs!}?Hau+Ae5LJ?8oEUTd zrL2Nv6+INGX}2m}%hnk2R6`<~jsq*QY+guT81^$4p`d`-@*R!<23aIx`$B37u7PEu zyOS5QY)`pZ*xPxP^RZ%#d!cb4fvG*(kMfI|WFFc`Om_4{`V<@4%01JZd80E|j;q!% z+3KoxKwLbZ^aqy>=$u%%=_pF3xIJ9gkv_8r<5rJ0Jmt0Lgfm-bUoq-XHMpK#SMqmA zJgGxl>=`&tNC8JMimGgCL3l_%?~!E+Hn*RGy}!&ts2PsL=ho-oVVz+ru1Db&ygbcf z6M01^Vum-(irAW@+ne`aUvdQlJRh zU(&V&xJEUWt`s87KE9O>wt+%DhuwTA(OM zYoq-IN`TNL)vuz&5x@(Gj4hv(%eI5yD6y@JI@`Xbq6I9M+ek}+%m#WTa#KK+FD#*u zd!vh?Mawh|?|^LZP_auZ*U(w)M2o!_&;<@u>NMxHONNEoBM|tSuY;84FB9}IJZ=}) zB2173j;mAG6|joa8miLT1B{NX=VnF*`U$KJ^9e4|7%3LD1@1ch#D2=ymMmm}K*`G!qL z%5eGTt@JhM3Sy`;l9iz|d+c79%=yV6(m)zs+u*mKFd52$&QzMXp+X%D!VB=n0%V4L zRl~|L*Djgj`Nv?A^1=@60irAIM}GHOLLjE|c311Elt@R{@xl7j=66z5-9^Q&Mf=%e zmkPwi`dP@Xn%i#EQ6Bp85iIA(Vs_AuICW3lpx`!=uhRIdap<{$#Z~`6?Och%SqL}r zmn=n8gBwd=!M5qc3TSnVQAfV%Lb*WM2lL~w7U_cbJM>xkOAH0?VU%V$rGjgp{c7b7 zWbE0)0Se}Rl#rwLI|zsgvciSoqBf^MvGU$Yx7xRFJ5EAIh2Bo7z}2_p3iIjYvU-54 zoJakr>7h;1Mi!GfVR;o+$Z?fHWEvVHz|nbd=NJR_X4evv1lUn#8r-dQgB+S)EvnJW&^9SGF2FoZhe?OC;r#O$tBqx*R5K z;uY4?730LQx^W7r&=Y4k+}rSmd<6ylErYn_G2&{H8jhtcZWcaATRF-E61X=!OQqC= zL8j-|QcX25&+2O2q_eXJN5lp=ec~)g0tPNQ!=eEjhdK?D&IH$0W$0i8J{e{`-OD8I zlEHGV;J-=O3~|)hf)XD$8f79Y2rb6?V>=MIHc!=tJ0Y{e?JZhUO=l{ornsKzn(rY{lu2?472#Ui+eFZuP?cl1EX!_B zp%;*@TAx~!iJU}#sPQ=}EFS~fc~VbjwtX>4zuB_SJg-=O7&_*R7SB;Jlmnb8h9tY; ztRfuZF4tZHot~wH4sg`_53*>%H9Rf6U~Sz1aMKM(TVJG%7t^0YlL?cIuyUgQz(diN zFat{n^K5!zRdFtsbXZ*ZS`MbcP)Za%WN&ek6(}2MjYQ zu}zrSY+5wWQ6f<@3!h1BRLZWgY zD_bQ~zNYPf#l&PJYbD?G(Vvnwbu^`*dt;-%Is3AlW+HtCsY#e0xY{WPlNdv&H8+w#hl(WeuTlhg5Ze%ucc( zBjTEagq~zdN@j~2W-s|Jwp7RYC@Mr{>~${ww>0@VUJ{8|o8IN=!w(ronC2 zh#Uo=216L3mQj|2m~@zEGiQR$2z*r4+-Bf3s%ca6CFZcTT_=2b4-E{kL3^TRT6xPF zrX}!0OE|8qxD@+eBfRZ_*3~EF=kcv6Z^WUtE!0-P*bp0QrA0Vs#UpNHqx5VXGF6O%3{oYv*U_h- z_XED;R|*=iC$v`lX*+mu>%^s6+JVJd(vtdD#S12jVpd)u3LTL{Ldo9i(< zO{Qy4OT+;&b0!!wttkkz=LKf@;`vUc=C1n3jv3NtsNwQ#IK9{+rsgBmhK2bEKB& zODG}PcFoR%A(xN+EH|RWXnw|pikFW&4=>TTZPzoCqUTJk>@E;17~zKPf&y^)XI@e2 zhc!ixA>oxV*vy*TSsXvsieFX@a;Q$aMM|@Tk&?Mf3=EO=N5P$7(;V)aW+9^JVAl{4 zG%I|3jSi2SIG?6UAJs92i&{)wGs9jPjuR8pdM^fCUUkzb=bcu7G^-sXq-L9daI9pu z5?zKO^0n~1qt+r{;44w-Vo=z+nxebykSs|96ItS!srl~!CiZ7i-r!_er-L-g;J{mZ zs}C~WUcJTDiQ6*I!$$Tr)hH!XNPQ*f5^RGMfHWY|js{=_&~Vuvjl;q@MTCIu+jOHx zRCRgA797L{!*vF!JSeCpJ!+2`=5RcmjjYBY=t$9!C2U}O#9DfuPwvjsIdFK{46p`* zaHi-cnTNlL&=Ri~WX=rb-UYdDekN{@cQPHeb(8cyjI)>~K!e!BEEK`7j` z;W}B@6a9EO3LL&`ZlF^O2&ja0I&7RNmM;1GVI%`$6n|uTbebJk)=CRda zftA%pgh9|_Y$>dcGXVu3{&h9*c%};9`mu8cwD}ThPbmh0G~Jc>BD92h7Q-2~GSG+U z=j{MnCg^Bw9Z%4*8w8qDdVvGLtM+hHFKYWCx5``W9=lxQ5n9&nhL_A}Bd6*}Ozg}(NH);fq=Hm68U$3jCze4_(IOp%qmQw68N@~adOVBfqe2~7phjl@mxTSPVrehLGmc;C3qiYi;!`BvvA!l1q7S| z-b-UZq%Az_`jJkZ2omKo*_PsL6?ugR;BBG{tP~A;@~mzU2P)jF6+Jm}lTFS>#>i*? zOL6ua)NGiC3=-H!3^R^jff4$K;PL70-x6e#Ty1Y$-(fA&!kYT}=_PEla=Fab>{$>w z98Wyda~Jt^0&gcTD45?a3u950=!IhasNJdq&F(&!gSs^2UY;Mei?LW((->F~}k#1fbsd$)xMHe!Gt%kr-0y4@S4EIe#s0 z#STq?NjW(MxYe{61W*!*Zlf%GjYsh*Zo+!nnH9QH%d7F-1_VnN&M}zAhFOxeD=})M zA@3%>1}?n^T4+ID7)UL)bCQrd^lQB)QMF-*+W^3nQy*h$4M_1)h+0@$tnHpQrdt_n+2x$ zYuKpGVYV=x7qMFgr3&-}uFW5W3cZg>sz(7xd?GcS#PZU0khbwL8Dd1*3|1aDq}d@Z zr;=QGRMX73Iy|HxG1CPcI3z@Okr7$pwIT_feFE>3^z03rRYjOWZAnTpoL5|5Gz?sI%X)WZ4*L@u9^JPGme97#p=AbWng!9>lzP3QS673LzI@9#njX-ka6=Kg?lv-O3V3^DbU(D#3H||B zz)A6=#T;6qD2|E%Hz$yYQG;UY{ZUIE=QUBKcoCEBu+vy9AMY1`1l7`H!#3Ils-JI}Rz`FYq7*!h?9Zit z0^>u=kPz13_A`QHj!wp=Tz2SB)L~~@85xGRHJ*U*+1yES>(DU@la{R;EX!@-^H51s zVdm(6!=-~7D}A6nf+yoRsN!DX50Q4tN~sJj6{oi z&lU{HxL{p)k=G)#$tEQ!3A}Rgu;vJK8Q=t#V+Sr_bJKSPQGC{C9~BVbR0ZN z!#@ZF4zLUv4L?Z*h;#wFR8!lYp=6#_l3tKH3_{%=CQn=nJm4tYDF)>Tk~i}+*=hT| zvv6UAG?ZYgI7%)RTIG*{K3F!+rF$=<+0gO`I*%XYK>Y>WLreKZ{`X!E^YE?cJRlM9 zq4s^-`fHud%xl3a$PC*!TeqR`FC92WBhn6P?f(&T=CnS!-WoLe+Oi1-Tf-nnSv4YW zFSVdZtwIEBl7bT{%##p3Iv0Xh*F|k~m;pqfjRb{RrBcE@6L3;bwb{lLv1Y@_OryA1 zixc{KX;z7;7tFKMw5PE*cX5jkhdl(880_4;W^+o6JRY#EJU;|3%r)!CCW!ijc46s+ zSRe5*o$O|xEe#+^%}Kk+v7kQ+9HWuStGZEOsRS7KP-66{vDvxd9ERtE77QHBo2H3tpM z8d^CvIqSn~b(D||?^|t;qBo=iCD$gF`fx2uU}CdWA($dsY=;R&KBtG+(tMPos=x0k z48C!qrEN5!kz#nQJXT7~fGRAM6o0!S=#bxPbk)8)N=O76)=3u)#0gRlg2ZCO?Uu`} z^lV@;5*e0r<^$&h+O$D*Un4xpN7(?z2fZY}&H7u02-&kt>nXAz$qY~lEg>RC%kV<{ zgjsNewq#l(_73)!V1k}uFd&==g2$9+buwacft3Psq9|}YVFkU2;V_QCy{^Y_V{Gs( z3@tFgOfeH&dZ|ZV7>7SPvaPJ*@+(k^CL>;!-h`H{kL8QDt(-A4OTf`p5<0KFN;=q- z9oFnkfZZ`Fzz%Kbo@1Q|^MxuAJElMYtin=KUt!(GMKf4Pw5C3$!wkX#K&Hynjv9iQ zr9`udk-(PjKbosQJv-7v3Bah64JEt&?vVXIZDKwV#)va9d&z=5>hiKjjzVPNagnv) zV#GA;GoJQXxLCm%m!uU}x`H+_Ucte8y7UDHNg+x(7uzyrCKU^UsTJ}p0)MQNWUHo3 z5ZCJ<-)T5wcNjLprT{a8HPWN=nghvbpnxZi!x?q`II)QphkH~}X}@~$=|W18*Qk(g7k+CV-b|{d9KYl72bxT1b(l{N!M$X;4vn$W*p`IBIJWDHY{(2c$O$mRY<=?h>BN{>bVJ!?I0@$l-i<%n91-P zAFNPz=>5^6FT5G3(WEbd1b9@=v+5Q^D~})^9X#CNd`|vgISSLJ>9}sz8wVG-e>Ib4 zDjg6YQSW-0s(<68Xk5ERRq^od=wc;OxEf^)YZqpurtKBLjPZWKHWtFs*ymsnBeDp$ zhGz_Hxt$EQ6rY(IO4t++BOI2{(SGCv9N@ zUv^ZL>-K3!E?n&koCLZ_bXmN)Fd3j0bB1P?tXdC%4SRJ&O7B|q3dB5o_PBk^SG6d6 zl|l3s>ssqQ*}((q((#n!*x;QQs>oLZ3lv63R+Al=AZ|5;Pl#(h*aACCZJ;-JFS6o} zt8?(f(LlJ^)pZWgjKw-#g==Eu9$`jJEN+S#%fFN#lAo7;{vT=Aw%shR1Hle(P0|JU z{a#Cp@=2~JLGsC5rH9+%U5Qs+5Sos8}kjUrp zUc^9bx@qEXa)6_LkLV1|yyXTVfru`&YeyKP!!1*ns4No7(PAV;AWB8392WGOq&Y2I z_l^nOl+D7)ME*Z&JfaEJ5L9kvgyqVg3ooeDA8NO}lu=gN-l6PJ3P~cyG>km}eW5yD zi0U7`H&kAdV3}{7ZmFPrvSvynN(4KmO=47tX0>~;+BrVS_Q0jVI@r#p4RR=nK>|@m zB@QD*9OR`eNFV_FtT4D%D>MgYm=w!ybfAn;s!F~$733$^%De&jyp{#gqLVe-FtRLVi|&Ms^6rlMAKpQ|Q?|8in}$^} z?k*VFMryjOU#AUkoIZ5)mUu3GtT;gvh9R0%b5%Ep3`?QU+BqdX$X>KhEQd(pQlc~^ zF`7#yh@lZ#?3}W^@<bDJYpwn za@RO)ljFTnnr?oZ;F^Z@tX5crM0`TfCf`%>p0$|B@g0-^8=BTImH z7kmn$WQlWflP49;NpG^Z$#r1KFMfi0ik!$Dq`yXcn0FeBsRDYE+qm#agb9T!!ww2G z;!>yH=vq-=KA?pTCK*!dvR#We0GgsW1)5|B3YTDgIPoYbt4yn|_2y`RqMcG=r)LcL zML9B{qp`A&;y*E1L=j0bE?{L1a;5(VRe%E`C@kLtk0YxeX_dL4V$O5lq=G%e#|9}s z1TClRQ#LTS&r0A8R3luutk-$;pKV)LJF8uE%d&3$XupO$zSe%MA6)v8A;C&C1ya-} zZCRI+J3TYyTX8IGC0aj&{b0Qrj6Qn9Az&=e-S{Nga}7s07-;ZVuJc;zqn279kB4`v z0sZM&dQ9uN@8>o>{HzoIvN|l~Q4Jnb??kP+>%or^2>mIrdqL;g;gF6Axk1ZJH3L*H z%cVtxURKS~Fv!3WH^{V*+Ds-5mg=3tS2awq2tdta?3X`1xzNPwp-Lr5^qu_ykJ?e^ zysnNSr7Dko2HerMLNoa|_M5#>6GwJ#kX`}wHY$yZL&t-x&C1G9RL_A*Mf5o6LpFGF zoK`~ltcEwMlYDh>JeZbif4yGM{Wv<6bhP4D!fM|?PwT%^)l_{zj$=QTMQSaHAdq=C%YJbwQ+P$TPr<%ZgQ>w}g`b#%xvG;|F1zyNB4jB_^)<`hEg1oe+uTERGANl@S?C~!=ulFyp!pWb zACwVFbsY^DMU`d#r>RB{e88Tsuh;W1LCm(Kr&dN1^&C)$LV?ry$s9-`5QYN*5m;|D z8t$Tfntdh}A4ex9UuRH??#XOeoTIzL%lfsP&##UV+iKbq!SLXCzMjvQK}Rb?7=wA~ zC-!|ej4>?1fEaWFnWc+$U|=4kX9-Fd%U~nwW7^Ks@NYKu+%aqg>fkF?8ru z7$Vs*E_t|0STLZ)CU8#-X0WQt-6}C@lX;=R zNrRP{uYAEagEeUHvY0LScCC)?+SEct7pi+Yf1BbDYJA^D*#^u9Xqzff7`ZOfu8@bB zcVKNVrXUn`TzS~q7-OEF?CwS+Z^TaSw@Qt*%pCTsjA?YIVE9m4Ey zeg01ZC;OEovMl{~J9opDr@ic_9lLh>+~Hg*`bBL|vlhGoQIu#brE;x{-Q#I3ST}$0 z>sV`+vA`rKfRO8RiVqc#VbJnSXT#K=5rAIx*Ffof+kfNy3sc<50~hhqode<|vKqO> z9r7FT+hMTS` zVhJPUt%aBm8Ahx(58i65ug|j&Afm(y$Is12b z@jo#lV8oa6I_&yDi0MJ!kHVw1V?8D>{=DG@gI|_&2j&7{gW9leNhwQK>da4DCq}l)>J%?pb(OPK3oBGm+3kC(3MY>vxtA%yFpQ@d z@tGv;gfkR6vE$*unqBO0k*t6|IQ0TzDJg~6^bY#s%he*qp(^0~wx+Gh2bB;)nOLQ} zT~n|vjRRE&Dg-$;@byA(X+C|ZEKwfQ7GhD9{Z1!3E(xNK6e*w#{PAo8&H~6XigHf1 zRFOk7bIZoyc)mBpGD< zChQvMX0SXE4#xO{Fhwu(;DjLUr4+j_?CI386zP znyUgT7_>5E{bSt}B8h{y;T?{(l-mj$M^Ix|=-Ae}S_?;Rod}`5eRV*Sh43GN=hZ(S zbjpl4m!$BKJnqL#%c_v*W@(usp21+T#TCD|Ix`37=j0Yo(X$7-!_Yxmg?Dz)Lg$_&aBdu#8 zj>8*)d?t~^4iU&wXX@CPJjI0HJ)x#u1P67+|M?MKG-+mK6{JdvatF7%y}8Nx1PiMU zm`3zX{TtP+H~PRo(E#NMN#G;!l2L|GRp}^&@#bCCl5g(UG4#N5!PA%M+E^EO=BOa$ zJ4q;_nv@1A!vSYH!{MaaHfv;a`WRbqduIZznYafk5g%{uH)?^_Sd2>gZ;AF6AAn%g z>7rwaQ0)WCjrv%lXp#{#^dC133^D@V+U=gEAHWECTQ9e^VIh@A4QR_2X47$+rXhzV z4N%Dla>##^AkVx&1mYeW3)dfYM&DzcT#qG4-yJdxz{`+VO zyj|O-OFye;_<){Ci5|ZDBexa!I!HutyD%>FP`X>h&W9l&@MEtxDi>VZ(51xx+!mqS z8p@g7CiW;mZ*F4pX9|&_qJHuwKMc97kP!m=_V9-N3L1Vsmmh}P!5}ekZPhHBshVmI zk4!LFn4S?`Lyy;E+IV%H`qb=X0Pc_cv2EZtzXNGVE+zBK>7y?aS*u+CGin_oWe{_( zrH}Y4nfjd7ZcK$X&Wncs1;Q(Pe0QnP;jUm02tnZC0ePe;42ZDSYOP*YET~);Y4kO^ zQUxNAk9K;knK@CF{gp~jTLuaUggp}Lm2Narf|@WK1TCqDvc83-_<4iRNAuRdgQ#pI zm~o`Pj7WTJxk_n^F5x0;i>cSmsH2j2>`265KV~C|{lLZ7x!*}oeCkJi?|0A)ID8P> zPmAVpmrCuJS-)<7Uij;tjR_DKJ-$0ND_=$eyj_gj5J z_ZR%%6ZHc7YqvYPtjeZL=$^v#?`w{+1Ab-b8i{^2| zG!_`)e<-CsiXC?ArBpa*2s76)N{x^X;Ork^|NZct(F*H7GsYJ|*d<8_f;C3K zq~bpRDnj zPYBpL<73{eyoIzBmFAO9onYM0!E zVIaMB+TXG}H1GeUJsIV8_9R_Mv|fEV*+nc_*=9!tPLm(48eCi94_)iM zoN8m!+B5*OmO}>{9u+Q2Weg!5mkBe7JUb~qbZje>P=3%LVJTXCWr>AEYKe?@@d(mCA-izP78YRzx~iRv-*YJTa?T7FrEBvbnq;|ldpEV8RR0x zq$NwO+CpKXDaq!49prd|0A-R|C<=v=M0*5$2xQ=Oz!C?6QUb{t1oF_>F@Da=ikY!u z5MRg)2C0M+Vh|NvkLzzlrAVyjpWVGNfR#IAJsy2|CF*rP>PO&*KuqoghwG%kVQ-Pgc zINv)f@Z7VDc<9OzT`8{hqFR<|OW1$5nqJ-CKH9U^(v^ffVgWv!HWqz2j7`NynG0ga zh#>;lGJmWv$eSs|yTg43>5OX4q^zL_OPR)2JLtBT8moDHz@G+;u*68P>fja(5VEA#dXod}}KJ4l4HxK5&R$qn{- zOG@&dg2hVDMM5HgqmK2IOmHLv{GsI$REwllEJt1cu^g{e@agV`vG4lABb@L$F}`XX zo3U-iDfb%aZv|M;fmM9)CzN{x6VWM6$fw~XLUlTd<;jkC-6I6R!O;p;VMI?OBrZ0A z?5G&Ru-amsRzt3$1-w#~LGVaYbzYp>AgWzZiL;d9NB~O7SbtYIHoj_P-4W)+m;$W{ zVEX}{+>ebLCCQX{h(G}Xg~6rRYpLV*v?4Kaj1?}v$6I7yT}neZLgCc=swBN2>cBss zp+yg3?LF4P!G5ocA;uUv6B?cAQr^tU<1t(zgb|L2tQ%Pqss(`1;SG_iaR8;Spp20J z)tzaMtvU>Z*+MY;U+eqPNTp9@%Lz&M)6E?Y!{HFXmGT&FR+JrX>^_ny8A}&j%?I@l z#X?kUmYbqcQb^y{iID15eXI(sD}-?Tgw4If9(!p)`R%;I{MX=)SV&lvcIEkseU}ku z%HY8D-UK-}__Mn5ZyIR>_E39K6>U6PT@WH}96hS)gd;v9Ca0i>kC)=Ev@g6}9CeAh zeP_(+IFM}>kbe=&m_D^eR*xEqT+UD#q$>8(G!`1`bcm1M29=? zt`Aw-AOs6=6Ck6fkTD69k3C@CPTbQ3Fqiwf4|RtR5aRftNhN07Yb;+}Y;G$#gJ^$9 z@IFuou3wn$Z#`qMbKpo659Yz0^EPv4fn{lmjWZiM^w|TX!O2Ybhc6B-wS!l#U+Sj=HztxX~f-a_QAsVyKiCcF1W()>n&IW@d zZqyAOaMY=c>^%Df>o&@~v1N?-{DjdxP;UwGT@k@yYWdNsK8p5>w1d`RFPODyk{+)m zG(aEcq8F{^KQ>H|(VMz5)F-nP=A@0?Fve*6t$%(DpS0MAMtrqK40Q)dhBWzI`-AS%0749l zn7lEN90>vmXAl5^)x{LtTE9xiZ75H6BxM=ruqAAu9_Hug%zcx{=o`Yn({!+PdJKUG znenDFY;}@BdgKh-L;7=@Smwt@le|l1ktor#p#|Zis!x{fL?fLdN4-F&cM||zhOsPk z75Jby!_A8>bPgUkB2o?YP;*Dt=mmZsB`TSKp2b;W362$n^m5M4^9mRrAPmAy{(z8a zI20%>5-9*txzYJGJ0SS^k|uu(D?(ww@2lRhk}naSaMSN{~^dY;0K!Kk9E}NE4oIVmCV-StWKpjf<=tGlW3Y(d#1-ri*jdgAALaXJQ z62#F}J*ZJSwmn&6`!|PqRgFWTI~(c?3o(|eyVtrudR40;5V0W)slgXXid8j zO@icr!XUE0hq#!kA^FrI2X_TKuKMDg8!@Oh~gy*<7JOQ$7c_4<%Y5|nUHRn3t zM=QOF{QEKITZkUXu7NTt?m}>J2_Y@yhaqDUL7kE@ErWu)B5ey z`wAXznZnWQFZTLeKQl~N7bR+ZbusH^Ao2lkM*Zf76&33v&GufbQ8~z`iOtRO)ZZ;T zl}@6fND$my4<6>l!UXPy4k*F65Jv~m-N8e@ouh-)SPclYKIqI^he%W#BAzLucJ~`B zM#r4o1|Psgn!tjQ9#yaQa|K8s+4KxOeJ~bC3scbz&?{k*#-5|15ZWLj3K_c?l3^fL zY+#`X9Ld(aFE>ptVsonD#r8$YqcbUOLx4ek*#v=kDgUnPSGKegNr$Vkgh6R~`1*HlIYOaeg6e2pQYqyyi5{}ac>fi-;hzvYT1PypNH?XT%&AwFvj2&?X39yNF zBi+>@x1Np#oDRk6z##6qIS&xdsL1=_HwuZ_G1Vk_D~>Cz`KDq2i!xq>d`P$gB|sj* zOd?NOdvbMCHqj-5UCBI#S*^H!r3dC_XEN;8FIym^ybPj#02AsD zP2Nsl^6+1K0Q1SngW`tDqiwN$|K-Wnl*0M0(FDh}{M}FwE7fOK1NZ4BO_?AYNu3M6 z-rPig^wA3uV?Zvjuu;p`W@tgbh2Dtmo>x`4q{0?fd6)-v#q2g*)koi@OP`>J$_d8g zPg2Ed=giCjF%kwTHIHL1EW0c`cnb${H5PKQAbgD(qV26&!f!`#9+iecSiVGj_|2#i zCWr_~6$TnN$k^RW5@+Qmi9!TGR~Vt=8arxuKnR=;{m-`Zk>CkB9hY$AaWr5s8|wrpar51I>wSd ztD>bvrAz?#a5AQiH?+!Ys!g2 z#d3+@9?WG6saCIpZ+eTIVxtNgsZ8@B8@w^h9~BGIW|j~@kv1zU><=Kd)IKLBXBsBV zp5L@T2oSEEYdxfxG|kP~m#Jhc%DWVeOBJQj#zFd=0QrW55J6Sa1{V^lDP?zPFnCwM z_w|dKZST8MtN*XR@_JX1g4kk#TbyRJ%xB>o<6lXy3aG+Kd9nB2M6I<_MdPRujon6H zz4L|XTZpkEBcruFrn5T7+zy|3F+7k?0@1*y?XbD8+1qty?q2OZuSDVs( z`uEm{e0!lgP%+4paJ+8vv~lhZ-MUewB4i}x_!e&kSV6`ptaaxKGh(5Q=_Airl(+IK z3Rayj*e3a)KA1-kTWXb2M2z9i9m(TH^_x#lUbp@DpqrG@&J4yF5dvHNP{v#6{Q@0e zL*HnFFcN}+E#yqfh6R0EZbdgai2ea_h7OBgz6?T!ZCp`S3tV`3``Qmf9{K_Jm*E!4 zg8s6%UnMp-W6bP1uWRwq&(3kLuOrWU%8SK^nz6-34h>9@ltOOQnLhfCf?ayRmS2G^ zi@Nj_3?hHdRKEMg^h4e-G7IohkxZRm!lM~lVY5JCLt0RL0FddZb&U|39XjW4HTtmA zfjwIdJ5E0THAXNuuSFQDz(-|PyW22_1WCw1q2~BtO-xDvj*yj*TumVM z{c`U(K_UzaFEnVbVAkFz4`Zw8VhxLWE5uKoqmBy#(LVo-tjyRU;sXvJa> Z{sYqn)g6M51lj-q002ovPDHLkV1nG85+DEo literal 0 HcmV?d00001 diff --git a/dist/img/idea-sharing-icon.png b/dist/img/idea-sharing-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..c8a9181053b7ba4502e915e5941334076ee08f7d GIT binary patch literal 4067 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 literal 0 HcmV?d00001 diff --git a/dist/img/login-user.png b/dist/img/login-user.png new file mode 100755 index 0000000000000000000000000000000000000000..4fc1fbfd2a212026c1696b1c2d206a4f842e2c63 GIT binary patch literal 9784 zcmV-8Cdb){P)BoIOZ31ppYlbOsUGnsv#|M^X;|Ms=o+SmU7K|cZ} zGr#-&-h1vj=iU+FU-WhLf(1#2amBOq42H=vRbpjwN^+4-tIO8uw0fCLrUFF#74roH ze!IuzGk;5Nvd*b;m z#(&mx{!;>e{Jz^)Oqf3F_N=_()xv`fnM`PIZbnjY6c>g@aK6Kc;o)JF8?rEG`ZU-X zc{ z@@r75RVX&(;N+~YD2@1<5K%+~*;6QI( zYs=|hJ@w1y|KY&@p@84pw85a!r9Y$3$X^@qx^ceg6q?U9ps1jfx7m%(K?~Gk2~;{c zOapcpigS^gl!5jOjVLr2;E4n=Vz#4qun%&H4C%R9kT7tE(+j)HiHcGKs&dmXZ&n2w zT6)md(~YXC8JID90d$FaTxxCEdj4$vPo95y^EXcQZyfNJH(&XFPT{!!iUI2O*3+=} zb;2DC#_MpuilZl*P+5`z)36np8M#o&mH5%EH{sp4e~-rVJ#hHk@CBk!X*5ts zrASQDA{3Iq;Tc1gJ_%yP5Dmq!Z0=O(G*X;A+XUN~ALT{am^gh7$|g)jG#d6Eul@Mm zM<0Lg^>32q-zeby`*yyhNl3ZFZXLprPxr!N9Y95X8CouNpmIVLPM>K(wjm!EyG>Au z0?;NVLd&40RaN5H{v9~f)Qb=#NJvmZ&Oi}~K&6mDrcgksN`TcdhJeQlG3$8dl&Nqz zESOv~4r4AiTD$s?%o@+mN{2|PMa|@y%$#zxHJ*9-_IvO9;olqd-xctOn>Hos3v#zg zWXh%e-EFWAcHvx03v8nfNTO^myutAmrReDHN0c}1@c5CTPee{`4(z60Xu~eFFx5|W zjG#0p0fs~+QJR5@#1M%j@bNVi{BO_j2u!0sjE1AoNF~T829)Jzqo}NeS<`@;nkq=d zfX5$#*Ez=9o{cFp=VPePc;KUh+t+U1{I^@#-wgPPCmzb2K5g!9U4nj^-(|!3vkh>J z*boc_&~&~HK|Y)}6hu`?IlR#*`b>5>`7pDlPDDqa2`i@*!PI>oCt6Kt=^4hgvx_l% zLIu*Y(;$un5DrBU2}THHYSjbe>?y#;jRWVfO|w>U1MHS&t#} zFviBl5aIhxoHzwbR;+>5VrtmE_083rw|!*(y4(KRfbUzkE@{QL)*etOHPgn1`!Q-Y zBM=M_E&E_+(7hHLtadl_L{KR~N~+SJyKfLvCssiei=n^2AG7o2i10uToa4{fUAS}g zbQlUtkf7HC(Et<*F_BsVg@k|fd*ZKqv9k})Za)pFR*O^xFk@OxyaX&xAJVdNVICer zC>(;z?Seuk#<=k{Sb6ooVc0y_@XqgES-SJck*_2zUmNhw9os%hNy}W?bg~Xfi7KX( z1c87LXBy8S6b$2%u@8_aFutS&0oLQN)kY!_fmSXTUks>ceO|Z&EVRjarfe6m?J^j7_ zOG3qRh#}x7Rg02&=ZN};wU5%1}l+*@iJ%yq-;^4a1djb9=x-o7CRcvs3|ibH&qAcm;HE8&}!iJ`QvphfMaRJc&xhW2ApX)@$!8SJn~n8?5_s=#w#y;zjS=fYu)Xw z_~hUo)RdH=u(T8s0?Fx9^-Sv!>RZ|%mC2Etor&z!G~RYU28JwbBWg^VP>%YBMpPS; zU^aF`tyIG0k6?CX0ft7xm^`Bj<;58!8zQ!s2m=-qnUxG!0x#1#FlNIipElt6edm#v zk&LP1i^$G=C@Rc^kC<_$qYql%a5&^=I}{@vj_|fcP$}hDxM&$>%~^=;+qc~I{PQpV zMa%k&fS-QiCx+PzuedO38&>b$`2m3;h#5pjZIT``rfPe82RgdC&^=&f;9;b&hpLon zjCsBAySqTk2665}Csxj`L{CR6>0$&4DmAK0@{ydD3XNWa|9)o|Zn|+5GSU;{ zoLa{AB$cb-V@mrSBiOsQ4lf++M6ynb#nZ>ZXc*{bw;TbaGwl#~{Uq&!x(s)RCGrgu^968p^q6s21B@vxwFSecTM^#=T=1i<$?G7U+ zT?--qogu&(lt3wqA{Yq7+h8mfMTF0oKmn4Hl7c($dJyN%HEq57?t5w3Ik1o;}-2)D6KnG|c)5v2JZps}#`lFs4kb zB)!bThaVrrs-;VCq5dFGoLo688R;on9=pfEr6k- zf=C=flvLCgjAC$*yqWcB9q7ccPlA2*mspDmjP+e&`6zI(bpQ{4dodhiZgg9mBqQK! zrNZhHA;N(BnQ21S#Ry_PpATW8wh*{hsenHa#QhKcyU?%e)~&l`-WRw0Wx%g&e2%w! z+1``KkD%quDP(2jAeT))8j3=}7c~tLohkA13yb2ld(qen+lVXv@af43m`tGR>+gfv zM$$2PBAU*ggHFy280f)*Sv6EnNysU!V6Rq!eT5_=j7Ut$+w;S1v%p6JGCbxb*S>^Q z_TM9o7jdF<7(cpZHvADWI*1u1`ANhB0$f5Wx`s$R!r?fo3oX$ZCn5}sh^^y$um_;J zW-_k5_6EH2$}211dFP$@Eq@vC_HA2tX|%f4AH4S_*-SEG%tawx)P#GXCI+a0!hD02 zv^02GHtGw|$BH>qkipv>7rIm16efXhe$P zATxoIbY#>@>8M4Jmk?z-hKc%#Y8~mP2VSzX#~xpgzP{ewcinaORbK}D(uSuE6Q<7T zxzN&x^XD3o#x^6QvyC?zjfRlM+wLE*5D;`oOV2<9Q#rttw%JAyqdc58wFVd4+o7QV z(2*l&r|YrrKrL!YvjL)RRemxOVs@lvrXb84kn)#fG{V=-LJr%SgCaqhsDYY--!nRd z{rl_ii``AgNln5PQw)$LCZNM;gN7PX&D$6Apxq)ZgYv>nGa;{&0;3rj zbwbRVQZiNSb|+#a38$M|K;A$Fqb5@82}CBOBqt&*S&InS&%RIUFsCM;)X9UX<@rcg z2ar>kgZ=Lu!DR~H>4Le-a)Ka)T!~!C7gu%HOoQAdQj8*p=Db8cr2!(B1v8e+LFefn%wDh>ovlrXl5!>_ zs7O=Yu=+>XM*&l>6OX=k7)HMw^DEM!m-(PdNk+&QA#YYP`x4R9+mE0$fq_a8WX1@E z>vp^UNJ2t!+N)yUr~ZV?<--FHJR}gDx?69(b)IO$h9{DyPF-v_^>ty8|0eMSM@H?e z3&Bte!B18-IA|u}FXa!rF9U|^GDNISe7fZW?RBZyw3bIuSV5%T`M+3S zM-cs^9+D3^Jml{pNtDmvA?j=5=q(~a5kSn#j4Lgvz{3wdfQ=hpTq$~Y(`%3AmsC8} zc=8aH2Wc8vlOWyXatQ?cxVLYJsS~Eo9Y&ZZXLC5?Juem$k-&RURbI-35@W)+a$I8l zdz`~4%`@Qe=O>VI0?7hxPWagfxTQxJoCab)QfX%gV=nu2X3|% z6>HByfgdG4=(S=@Gq9A1BiR%Xy}d&)l$Ma>$Z)cy1D3FgeVt5;X)BWnN-h`|I0EYu zI*bsHTBD+|62r^C-H2U#_B<|n|Gl@i=u^_yHr3ZLpa@ST23{m?1=%UQ|N6%tMQ?xqR?)%zAJu!k zo@u6mF1S2CYD*1I#sAJio7F@9+II00iNy%=(o?YH@d zNCGmz0~WGLLGW8pT>-1jhyBswh;T1Q<>WgokUjG(6^u6W}p zEu-vI31UKEBTVnxZ}~2beqDp;;K5G@My%!>Q=buT)ICX}p5NbrPMEW-22dEa{=20T*Ru$J>;R zH|(H)6^MwajUA{kq(T<+k-nB9IYB}Y3-NuzFpi2aO3POuj83wyxFN_GMDfB9GY%p1 zqL8y)uDbF{ES^8lE2^uji`s2wk-)OFngk*(84;CHfao@4b&xOf1SuqVaI6U+J0k<1 z*PkMz@u8%&2$^XaFq3E7sbP!LHRv*rp(r~Uil86W(=WrbZ|{bdb*@q;VEKxvWMPRo z@i|L_W=rQ^h?6Tzk*ZfBk@C^$ z4x+Au)RO-{==U>FFIAG9L9-_lW8&?JEK$yjQjnP~U2-{AUb#FL4|r&>N91*lu+Nfz zQfeuf)}e?W1Ljczf&^irpUrAPer`5rMlJD!5Yj{->24x*NkIYoofiSe5JANYJr7Jy z(NR*6isrTs>Q^N+8Zjx}3jBWaPK+xnMR!{pl1L(~<{>0x=f%~TpLn4phE!K%#oJFS z$&H-Z*3&wZ;E1tujiqfsw&JvRY5YGl$s(Dk(R2=#R zW$|YU@^S>L$U|%q{u`nF6C;M)bp3T$ynrcv`0$}PXmz%=u1i-qhT)4bWl3eFypc3c7xW2gcsPnNWT+tL?S;tplypqO zJRC1Ma|(?KTa&1N06MFLft!pwvJv}FN!$9NKMeN>GxsM#2O6s8VMS1y8VNgJiY)5DwCE= z)XEMYB)qW@n|_cK^UB#XG0awHB`RAj4x+z`s7YbL6jKDrx2bU>DJr%(8##LlDI#x} zAmL{~xk*If(J=}I9csoELB`%{GW8>!ttm(#6^Ui=$P-|srWS;R(0>JfAd~WN*w%yt z5fEu z;T&n0z$GAc2z@l*HB4Q9AdDVz;nZx_aF~r=9$~shv3%Ziet%zls1^y(P1Gh)@g&Dz z-^ZyzHa%_ytsezxroe*Q`^|hP5i*jJ;u^Q6FpamPfQQ5K5r++hsR?v0e6)7M$jeKm zO-w_tyoT=OAgn}lZVxbMK_ST*xG=sE#YIejtxC9IIRWf9>z{zJZ(ytFH^2GSW7DV4 zdg|z>`O7--q21LB1lBd1WOQljR@uuC*)o-E^5~izndI46AHqAU1KMw3^J6{ zZ117SC?ndB*{monE9TF*=!t1?{$f98%4x_-NvEGS0y{Ir%u9?ArQ;G&a6eeTLa_WN zp5j8?3(QN!wz%oV4cNYG-{YcZC>~~0JRJJ$6EdkzrZ7Q@(}m970Zgy1f+0uG7n5R; zL_IWSVUTuC>~(0Q4SV+k_oIj~Rk_fImtC|HJ4_-kMQeIk&NACR*o)g5w)mLAg z^x%UJ+E1PQoP?l0o*w2AD_g^OWF{+-pOc4E7mS=9aEwV|&~35vwz!iLQeeaj6qhIC z;rqTL044U;ccG=rgnAN-3O!X0L2xYUg`BpH;4y^>a7;Li@#Jq@F`Ew zreDn)Gj?2L|IOp=Wa4;z3)Ze)Kwr#=bG4L*YB@)wa_BfyF3J%=bBL)fXI8jSQD|Vh z3&F(O9OLcg5a2?ThY1Py6R2&XTM3@x*WeO*au+DpOW;Nd3I_nOZ!tW3tOfQtj@ zA{$fCz_Sn=1S%{D7#YD-=r)3A2(z~HXjQ%N?0Rh3vFqU%H~jh!77x?fz_jkEJ9Z3~ zzHSygT?`2c0(Ix9(--*gv`VOxO+@DmQcIs}jA^DPIT^xz_k1UAt(>eo0VV4t5|qI@ z>}Or}VB_l>Xv+wcGztqj^{cOMgGiNz(tI73E*_7!wtb3HMGo35y$I4E(<#(A*LsnF zOM(*%Ldlj=Gr@q`hEDcsF%0QRD9cNye(uAdP#zLB9ISnT`1B3-(}fW@G>HZ~g^4HR8r*ozD%}0hV}(s8|7hX~LBI0qtGf#F^HG(Tb1k z$Trl6yxd&!;~4Vu^tgH5jXYH)YL6a5Mv9JUU4lo~zknBC`YlqFbRyUby(A2cja@i& zpou6vfaNTM1(z}49fuGyGgW!8A+bMR-#(_TkLaEt_tPt*51mMn!NnGtnuLU-m70=V ze0Hi8+MHtaQ?`c5+@uW7F-96ph9)DsBJ#49iP{9RO)or0gRyt_kMFjLM2v`sc zGWPEn4?vK(^Jh-S4{x~%Pd>MC<)^#1{kahzcQ1GDs8uMGb3fa^hyAvXyjhE;)()~D zdR$rDyJ8*IpZc6#)Q_95p2@N2G^C_wQ^v*MwmWF;=J1WA^qlO}&kTa>hx2`mP#D~M z&vS6cbTr%(aSP|fGPaZd`1Q+_oB0?el1iAuV%DEZ9zzc4?X@eW)14e5I7S$Z4d$^} zyv9?LM4WMjam?srD~oXqOXfzh_nd=slN*xyZ$%YEOhXJzcL1V9k}Y(MS$nURcOcOg{l{0EXO5thw%LyuE1?&N~+hy&vK%hu&i(96rAYd0ASL zfDvS|C+5;@zv<>xoB|{g7|3oY3X*k67_nP9naGX17GbZG+?Ir&?Q4Lg@$-!z@TLQp zRg{5=*$L2R72-c%eU}?R8Y-RyiUgYLVv-LcalT&7iDfyr4J?>9eQ8ozSf0N;dZ42Sjt&)bV0odEKA6u=hr`u&l}EcedNLWzj|CM1bp9p_Zf)V z7t9v3di(Aj=TvMDL0DWdteRAeK~DD76bMRb1Z6c9 zm^OJ9$DVXBY1+$pQyQk1o2jhSX`m!p9-;!9#O;BPYFn{+?-}+d39el-6^8r_Y<=%z zIINU=1im0yl-Nu6gT`TqWThxwh3c|gx}IjNCiv;~skD^{(O<=%52hviKP)unktPGZwPKY;nIeVy|v`)gsG{F;=^3R>^ z=TS(PUgT?~H0krO zWaV#{BHVGOD>x+Ke2v{((PVHf<7qeCPMD|8VWgzj*x7 zzkjLai=a2X`OYULMFmS=ef@RJoS2Q)?hve94VX8*id#JeL~$`CBx^dy!0`+>0myn3 z-1iVR1vK=Xr6dlm&5d|u;|@r)xwLPou5MV)OpxJM&%K6(WcpY9y^DfD<2R!`FB?f* zc}SGSxPr721+--ajVu`JQChjezV)`vTRBIj!N-G*k@p*eTvs0EgmU~iJo3Pg1l&1r z&z-k_^R*=*Xv4$>Nsm8p+kp~8-n7FfYVrQABS`QIC|!wVE0^*+m_}?bGN}fMWL|rlOyx==#unohNp zk;I-#)BUc8AE4tx1SXA)5*S157JeS&iDM_YS#%1$t^g|1lVPFQPtDH9owwaes@vP} z)Z@QdYBVmf0)k{kl)`i%#8A>_ zQqcAhEYTndgCM%u6yXZ6me2NJ=O^`;O|6`%*ReznbCB-i?aJfsh?*=bS3}Tq*-=@T zj+r&%F@4#RcwGtuh4`?{PcgvYkJX*Ro_)tKKu085*t@Q&!P*9opoEsl@%{N+i-$I?jBseWJz3q`UQnT??_Pjf{`Z7jODCVUw{Zr zr0$`sc!B}jI34)Gw^z~;@nXa4TVWpHWRJBTB@cI7OnA<=o3!h)eCA2VQvl&9zNmvvT;gDE+4}{-?ix z^go_>Y5C=g@9?^;(5nd|oWTlKii&d}Ifa9dTviBPF!Fu0Z3QEL)4Tf+Rp(Nw1@P_b z=U~(_i0ylhvM$r$BM0}pt*~)SJF_Mi(>PB~O-zL@HHWjOBxqR@jF|_^$wW{n6AyMB zJj9iVE?jlpbzC5-9z*sBez0x@%1RQ@PkUy^zN55kbCH;xjmZr1(1+Wx_S%I! zC?Arz_8`}=%}HtfvR=ZhU#Vc)QG&{8)bIVQ9y8}I6oi5I)i<}^yY;PC|8)!EUj%;m zj|^I1;_HOw~xX&FpBR{|8lzz=eSdSuG5I> z>RAx0#VF2J@Us#fSjBdg&gB^~C7y_4L`Sq&kjV+ORKjV3pBuLV9z>zDn#{VrJPe0Qc#RRN4Xg0$kEHy!U(4q!k0Aa-@WIf zPhS1yul_%OjOTv_-gfq|!R_&0?+;5UhSgtwP)it>M5wDxq>2`9^l_NMo77Ta3H45X z&QHCh(3BHPY3uy)OB@Z zf?Sb8smkW+(;q*ICrn?%oX`W$wOwz5CMlZ-k;YO9*cf4@Ynt#bh@%|5C@<^)^ Sjcj`W0000xhy&WP(%5rZ;#!ls?lq}SAkossO zcacp^hh&k|mM}>+8rF=BvF&%!`P@7{zsK+Q-}n31@yBfM_jSGB*Y(=-^?W^F&-X4J zJ>t6N2iOk~2xN`h0q4I%AgdVQ{U@k0c-1w5r+|M-*u8Eipx`eV8vGjsVghk3c;qkn9r%sVy(SwpG&C-!r>7r-X5QW6p{`Lf9t?y zGq?CHmvc9{tusI7a>L9m%lTMdu(O+si&k*3l2Ztqm)o+q*!R>gbSkEs%}ZwExp%0n z{>54mRV)-m-NvG7+fYzP$SSQ=h>{6J0UBZPZMB{B;@S`8Z{-@HEpMjDs@X@*{d+{3 zx{?-0-78q*pA*1bG&lsWQ_B2)h2@LAbcCS0ukPo73;y%kS}qW@#ym|WG}x_j1PUZz~WSJHLopDkKK}E(gmj$&tZ7-mp_!) zjx7!3&pnQ1Q+wp`dL=aZTnk6;H&IPiDaHAV?o=~Jk*8MuEe3-Qu<(3+elw;*o(^`JsVxSDY(V73seBR-^rcZ)N(`HORC%@L50Q zD%{3R48MDn{t_)t$d=>E|G+tzFnr$T!1XLRMd~yCX z-)}M5k%ZI@p*)ZjW{G|6n8M~!Z=Y`gHIKaFLqqF zUqahFSF;?}Z8n-+eBb4cDKsuf&3!45MlaorgIMybc}~(#1|!&e20ZSS&+mE`OUs>j zMY7C;p_=A;P;681EJ_I~JR0?rI8ZypmVQ^!gt4!pdf}5chjW0a@f+NleA17WmuquQFIeMZ2niGFvoSbAQ+4uIdl(_%xw;7hTDuJe-r1VbTedD~ROP_q zt`c%GQ{izpvNSR;f{PK%30{~-XRj`>jMB&cK*X)7y?JVI)7m$MCj2GNbT#6#=SxW4 zy~t_7T&z81d*57%?djQ_vXAj~?Q`K1C5Y#AjyPdB^nL!<$$ST6IVk;2)1ydJAO_m0FJESYHc@U!9tt3%h^K4#33wvZ-g>A2Mlx#UoWuK9< z8jN!Cm81uATw96Hn`L$P<`PxURU$qGPW9vozH-~f5j^IF@tm1PvsC6YpHVSeR`!a! zZ`R)L6%odt~1>xG-Z?lz~@Q#WHTLLs@qA({TWaGdReP~W^>Az#G8y@N+>%z+QYk+egGeKw#)f-a^H zx$O!(wCho%1GF~Vvw;Z}KGxe$(&k)*AQ@e>jmuCL$Howv8nd<{jR*-|GWP&OwEs>; zu-7cO^`g<%Wek4@@4unEdKtT`K_52Bjqi& z!CIOAETMH-TP?`n^Y-KOG4{nr^-F|Hm2c(i>{15wT4Umof+iG&&NUAwdo0|`pP9U{*p-kZVQy;#O`LTS#% zt(z4(8CQlCAE|F*{!RYmV^F^`w`+{AW|TuSp0#7yEQ776q($QZV+5P`x<-%cxx1%Cfc2o*0io}Z)s`n8HHZKg1+s3IbPy3-F}y z@b1oGU)C!NXERvo%q5=v8VY~pgN0C<2B@=Rkmp3UtnAS{>o=NQbm-gVCX21CzJTd> z+_Oo<3Ub_TJZ0p4()t!w^_(Z_$-&*en>*OB&>^Sy9Y;kX+=F3VHg_v;iNB7A~aM_Q^NldD` zenz<~#qfDKcf2xC@=-FrKVfB2zTxr*P*rT`pJ|Aaap?38Nas5(Y~Hml$#>1swpO=*+}NKYW#TH zLjh�lG?SABo}~o|FU#dMyA~;Zp>C(liHD;f)N3lwPWKh%uVb-%%aL_c)%H2DjZ$ zO9!Cc#MtSN1;E9<0OwKQymhlJn3e^mA*Qn7{B}3Dc9FS@n@eBgCk=DGop){oe~5oQ zRG6o3eEy(K#L|||M}nD#duIEfcT75ZI%|G7Zl&OTy%OOi>8q%Zr}SVBf8<3g@Uf=V z1@RK!A*Rr4H+#$mLJ6zS@xa8RtQBU7+a3z)sm$WA!-doLy{m0Mri&@UK2c&{k4LdW zjQyF{pY^-vKT3;c=smXuF|G@iIv!-?RLkJ!p*d-EZq|VXZ#is8;y1OzuE}O0uOB{<3}WFlzcqUb_+ z8>{f(kap!9OW1lRC~$3?lhLY>Ql^>X{LlAes$B7@g3P5WxZ8Lp4wfh20!K@8#cNZf^FCTurVCY`zH zaAp|E?v*t9Yf5ATT&1^($-TVyc0+$WHMTJQFlum(2}zQd4J9T^r1JzUt-pELWNmY| zos)D(QR=6JiMQI=*GlployynH^-^RErpzH2Kp}qC;xzD|^(rZ$&lbtY<&GN}H4B$> z*xm=UIpbM>w7Zgm77|NM8GEl9h79EWN=!gngDABDgtRT{su21`3Gabw`geh?uLSA{ z>y&E9`RLOgYqS!-I)6=Q?UeMxe+{hmC;7TD|<= zaF6(m_8NV64j#Fzk{ExLuZJ?Z{;gZ2bK6r+wzuBY2-Q;@xA%2*m)m9wIA?Rx6? z1eC%-o82j<2Jsrg>fmH9tOJwCf=>*-}u`OBL6dy-=l^7qg4S|o-cg#N}~mw700-*+p-AqPSqWHmdI`oZlF z{KxIna?MlW;(9p9$Nu_F+9A3QyZ@Y`#Zh2B`2=^+K5VIj-Z}E|{dZlakM6#CY&cmf#JDwrs?DL< zTn1@!@5f8RAA zEAO?~$HqAPW1~fUZgI-nCL`KLDZly!@|SLT2#1HXX0S~Qp|w_{ zKs^>TfNHVy7;r)D>36oq%O%4n3UohNn;3bTK+0GHn244CpJSl4Vf!~RHv2w>nf@7< zew(jF%LKX{ut853ut7PO(QyWmX#Fyo(zB54EFn*QX>6E=3P0M=aI`-aJR|XgS&4YV zg#Ce&-b`3Dr91xakmfrO)}1f@|Eup#e$+Op z^yD$P(JLMQTifUiK=QW`-`s$&Mq?_|CmAaAf1S?(6(RoNplJ1TjU8moqLm?vU`WRq z`V#UM->rQCWjWOvG1)5OfOUI1+5rvd1-hVGWrs_SJlJR9m%W-N-Zau=;|PX|TD3fX zG(F2b;r_7TRL~mGU-NhGLju4bU@{*o=b%z zh1(0^s4YVKj$QJ&GU@P30kJ(EgGtFeH2)zOa_8nkOL0UBr2>0Vsg8a8P2wKPXqYSp zS4U%y3%c`E4GoG;vFBrQHsDd=L-z>QA6oxczd`jgL{D3pj>T(*1f_tUD-CF2oWe#%yX~nN4ir11 zq+daV>!+DV<-o^-LI+I~Fm- zI@Oj1A7DZ$8^2qp?pltdf)d$8^(8ny@gzR1Qv<7-Wf(HL>UX>E%=Rg0g(ubiT-eTS zdWC=T(LVq*e*S&Gz6rx+sZ>>X$)=T?C4A3m>{1(!X)i^7pB|X4q*373x~+q_;qExL zy7kvdk2S*Bz|dC{9a&)cr89KT+k(Q_fMsk9UQpFm|4#RB2!I}yMkAcGLQKPf1P+{p z>+5R0{&UfbswRveD@Cv*YY?mdSW>LEBdNoC9kh0PK&fi&5f4mRj!m~*F-)Fdm-2pt zwU4kZcyHt1?tDV(@WX?W4Rdo?8_s$Pi^lS8TNG6IctVz3nVZbMDPzG#_gD9bf94%W zp|aYHX$wZTo-cIkO&q^G9n+5Vk_3Fp5+_aID|YxdOr!Et{icgQmA?(Zm9M`8<4h4W z^7^bh1?LgZ@`bvc3)JrTs%gwa^vOU_f>eJ&x~hRD;INbD8ZC~E;YuGc{dH>hVxShM z|Ju`SzrpndHEq7Df`AB116{#)44^A3!pKh+nudI`IXm>WV9u^qA{|j5#>L^}a$?qe;HWygK!msM zh|(K9))t`{oAWpP8z#;ZBTZSVXy-@ueY=ll_dAgeySEQ+KySOYBEb5WZo-mh9NxUeZB~Mi15Dq{ZL+3 zv_0^9R$8GO!6e$*%&085CYk>0DkwG@%~UCuyKyR!o0wzv5{;G^nyniV^H3pcDybUH zoOl>%zvK+@4PjL8WN~4b?B5*{kP-eR;)8oA&wF97+Y91|eT6Tcntf&sc|Kabfnv5Vv;v>k zhw5#`v~5qq_-Tqep|hK{_>j5HcDSk1}+664ny$z zE!5I(86I}16Ivnqk)T_|Of#Xixx450;&$Zdo%m z^;74EZem_m1J7zV4D`<E`ev*4QR4DqTuE8**JPodv~|0@}mFZZ6qJClkOKwi$3Cnv9MV zG#b+l78AZ?=fEw1Mefw6a-RIf&naIfF<^I;OV>vGR-R|VoGDJsLMuMjCS6drmIJf) z)AW8^f_x`2w#mkqwUpR~F{nnfY96gx^_ey8m9aE2jPr4R4waRAkmxz~MC2QVI}#mf zUsu)pej!J+ZZnm;Prlcyt3tfgr{hRQRw9b)`D!@){cpvShL39GgD7*4HMQHF+Bx2D z%Mhz&2$B3 zWslC@6%2tP@Au+a44O<{#x4vl;rV?U0)IjpMu)|)hE*Y7>rG>h#@Ki}NO3ldh{{H?ywM+||f%s0Py z>Y7tZMh?X99vPVx3X#$Kac9rYrrt;AZ1!zu^|(@1OeA+|D7EF8{j?2QA;{X-Mj$-` z8o>S&<2x18U+`+0rN7RsXvy zC>6VqTzg8QmcaFg&rzfDwB7kOUCE{o5eb;5Tqolz_gmGUMtz&}*QYT9+2)2h)vFK0%6`1n zWBXWg zk3KZaXu=7YZbr6VceGY|WqUdcjYH}JeKhR90t z-d6Biq9$Wx+Ok{!lU37Tc64%ufml==8BXH*Su-mq7F|&uJ=anblL=!N-@$#(9L8LM zM{zUZ1<6{RFn;X=s@4nF-_;-xl^x5!1>ijR;y_y_&r9%v7GM`iypk{kyZ#^k84mHB zvMXtTqX--~XMo;;%XjBCD}VusU_c0A!E{x<&h4gQ85HZY%)%BRI0GluDY`#~L}d>S z)_z=;(~qUOhT{3u1vCF*K7Hx zjS^Vzo_0Nx& z$O>^6En7=u#5uKrc!T?Z?F#(11FRUYXpS1b2O$9&K(LFIzW?16l;awZ`=@B`uCAnl z?o@%~pORx#|7E`cn0woOOC6GKaJdm?fUepEYgVA|IVAyARuAnzefSE%Oc#YF$=BxW zE`7NkiZvS=3o6P;SlGB@m1f$$GVIiI@w=n>&k`%qqK6rZIFzNrg%0o0YN-){ozef) zs4lZ!G4QKh|?;l@ZvXpKNwn+w*1vEf7z4pMF)>W-~@_qYPav$sz6Bi@NWAz7p2FlSktYQ zs@JJzL5NGizb|_zn}9sOcHxr!Dlmw!^^a`eh6T9?FWW9*pqB{yd#Cee9Y>PIMfbOB z&`0tP+*1HnjY%GaZs1n%!4&i(t}p*SxIvqb1XRg_^bN1Z#?9SYKy+s;oQ&X@~0001LT^$W$002mR%a6!N zZ=ac~w&>dqq-Kbw*d*K^RpO-fg^-B!vRngX-z;@RmAtQmsqx1;KDi(4WJx3_97e+`SdrddAs#l7rUs6im@-&2 z{ePa`V+z%ah@i3-$2+_x93Gq}z$K{86EHU_YP}NwT1*^SEA(Goi{Y)qua)ry=<6d? zAp1peV^IHA&ugzPbQ`bg%}nim@6Mymqkmo>hQ7(OG6oa&A1bO`|Ggdgx469`{;E|E zhajyLQ(alsgx}N$9{sJTHfFjca+jDrkRiMZ4dn<8eT;huny*RhV#^4bU;MsJ6?wo* zN??Uox5~VK5;L<%ah`_hfMh?{V6SNZUlhvZB-|1!7ENy2BJ3C@x_Ub^qWd8`2mH{9YTmQlt5 zEo)>hf(>aU*@>tF&ajw8nikJOX>kc4wSF#1+rKyt-|F_xR9<^V)POrxfEO*H8<*N6 zw|EyX7QUc>kB3)t5#GbAvWObo=~#^TuqK2(uyUw&2U|7OiPALNH-klK{D`8}f}E9b zR?_bc@}gm}(gFkO}be>ARVk;Gs) zf8%iJYCB?n0v--h-UkP@8X}1bPEsnMf62eJQHS*=w@nr_`%=N6Qe}>k?p!{jmV0>o>Q^#^9DDffp%UTe5IDSjXreXb1ls@<&Ej=BviroSiT|C zOrpd``j*=z@Xhd|d=`}e=~>4uTQ6e$CA za9>E%T*fkaj>ELHKu|*a7gu749+Plyr`r%f$czu!4Wtyh9Kvu>{Pu7a{$W*kgAQkY zj~95s*Hjy=)Qj#|fiw09X>4&p&eJif)MlddeQ5oI;P3@ivL$l*a3T(__mp+(7Da!# zK*6Ji5LD3ck(Q^_+ENq=&|{1lQgmFXR3oTFrcejzEG#6Wnz?IgKS^{*?7QleWh6Ti zwfc%4)3wB+%KuALXVqw81}GKxW|xuh5?)k4=~@Y5p`V@Ilh14Kd14@m}W(?nefd8k}3KAD$SB~mpy*CQM-IZ(HM z4hBLV9?)qkhKc&pyixpA83jnNl6CyB?_LgXJ0YgxqKc$Fye zxz2Ep?opjjLo3=jzgm=ihdtF;cZN_BaoW$CRk`m~#0*XM$G2gU!9m;KjR`q&92Wo{ zMBqJuIxPL;f~t;~YAW!j>!Hn!OIbzCD)$R=h`Q-JSK-hOQJv{9Cexi{Pk%!#RNlDk zj!Qr3FErn-R$ z7O)atz!BMA^2=wFr%G$NJATYWq7+k9rH?k7z21hI##%)fbwAG>d|Wc8&VnG?O!G?^ z(k=EMNEMn`0{3lT|N2hsi3pqWrr$R z^h!_1hB$xoQpLAnfbyfF4S9N%u>F+lQu}`oYe%_poqrNY&m>qjy$4zfVT5fNyrtU9 zl2M%3^RJF_s0UF6^d-)@wBu4j(d!!;)^qQS!O6z3XH!~f>wlP-sR6?*BUk@K0vk=nU1=_vqK>BLvrZ~-kgezU>CEOn>y%aWboGrR z;)id~%s$%U_e^UJkwqr}x(!&ibih^$UO|SB&H`4QarI!$6%F7LD?@gG{4oZ7Wd=6_qV(7Jos*6?3A2i-!kU4RiBvPBybDNcb&r%1H zxty#)*K(;`p6h*QAq4I+rC!yzdChov0FVtK#*ZFOgZx^)@Y zgs)?zFmV~t>6O|W*Kj=C!xoHPOw2%?HNvF@M)22mfL+$0@V49c14R(YL-F{ud=iD@ zh=Sm@N`r(XV)AHk8;ffm4_yTQi~wDciTfOzZPy!6<|nbH0@F!#ow~`*L|!ILKMBXI z=O#U#-sGu|?dC&0111E_Noa<8C+eJd$DK@e5HVMkwf?61NSCQ>^4|6NQ{&G08yM}tY*8+}|ThQ5U+(0zW|&d?30ueroU8ZhR%O1K*k0dRTFlG-Mk1@257 z!;y5puXp#Q*oWPOEj~rF+9c972U#S#@j{0ACEQY#$I$xvfPWsn z2~*@|XV&JNqB20)NFh+CiFP5vIyFV(WXj{;mQ)tjIUwH}Phhgc?iVM=g`fwY9&ufI zi(U83>>tR$O=Jd!)zA$1`$5x&bPnev2X3c7(J)&1d)ftcb*ugwtt>^;V_9M9&UDrl z#qj!dB6jw8uaR&)yJ5mZ@Xd$t<9l~B^~bI$!{uJGA34w(DE zAeWYAUu7DGJP9y%!jPmmGB>9~Pm@^eWCka~q;B#@q?wte`-PZRID~}(n~D)B5}L|q zB*bE{#ZBD#CAD>Y3ex54MDM>n{NT_b9Wm*~mIlURR0oNu40+Lijy4F~TUaHA2$lOfk=E%?E{7L@q#d~KOv;5E6e-~*6O-^l(z${7 zuAIu7p-mYN@!o?pcy1$zHyldK61hH>?P5QyC97jV0n6P=Tgz~JR!;M8vU7W5b^(he zU}SRhfgM|MhpmMkl~ML`x@b;O?4t_f>fnOm^|Db`1gG~LxLAc!y5d7dC-=RXvSqb3 z){Dy0!sO=z&1ua_Ypiwj-$R{EB!au)c{~ni?C{ z+pJ=q@kGUa?`*EZ;U~QvR5gi)8L~s{+*lV;JDLp7KeniAswfx;PIOQX^PoOtLhc)V zKTI4ooL`(g86d>kIot`?ohx`o+4-bqQsP5~v1RX!h)miaJ+`brcL$=O4 zhW?L9rC8pP!f+l!9xl@@J zHI1>lpP+h8da>9O+Ps0%e^@fCycaj5?Z%g0I2a&yb-9ic66^@lW`T8~Er~B0>Pq>8 zW>vj>*D_hGcMbfH_Aw_kUWp&A)YR)`Is%DpYLqdkeJjUB)C0#o?;k{nncEeGtwWOp zOvJxti0Ibl%2^nzP+^~q-_LV!ND55gpfVR}J@;mPdk&<@__*e=cmOKQ*kHiyFHt*2Kir%OJyA;+^#-96w;n=i{wmG zHWX}&Docl?yQHGR+~a&E?(YC5K44uLa7e{XK+es^cxI|duw|mrYBKiA1yK4i-Kf~B;uX$ylT*m7bbWF;*Yte+q5@k@?uC4RS1`kBbYuJH^+8yH7^9Q- z0ukU-{F%fYTHU48(>wo}saL^etYbq`#Xzx9P@BGLyMmA)T-uW1+e7l_)EorrxZI=j zb)^pDMJ8u_MyB7iHWe%@?|Yx>2G{d8&dF)h3Btu&WHeN%h9Q2&3;&~bdL8ssdI}J7z!kmH#~~@?c5@!?uaO=hF~6KhU7#-;VIL;* z1As@%<=DVPskcIdAMNs-#ZJy ztsnLl3blP!zm0pKM~QME>tIj7R95$6%rjPOg5Q;4yTecJg0G}Pgf?dm23U!Wmho!} zk%S)#@J%T{mu!=0Z^JBcTd$KsuK;65l_-k|{Ap{c;KvQ^^nKd^qSpU%=drx9scW(W zebXA@+wG~S2O*dC{g`q6j$yP^K_JpRjI_Wvf@jn^ErFf+qarVM@tJ$fv=qEsh6og} zhdJbyi?T$$*?dd0%Se~)LH01E{OFBrOav2G_^**H9l<7M4n_ZH$e~+s@eIAnf7x2A zNj%2sps#g##Jh|*E+`m_>h5l@mXljOKXOt&3li3uE<1QC9+o(v;LTm{>uWEHtAUuX zI>Aq^g0J-wYnmh$2V8gS#qLij_HDWNsp)gUdyNWe@54R!dx#&K=TSeMusLtM4n?Su zW1ei#kwa+n|M~4v`qnOFAU=0&|BDzL-LaYDC!NDJjbJI;6mcHiEnsJWksap4IekUn zyaPhk{oYTq&=$|%7AC6%$omshpC&*Kk&gb;ARDrXwJx337v!vUNXV3bL^nh8k(ckc z8Ozxf%5{qCOia=PFDgsB(rw=I1F~t0A7?1L($u1G$3)l*{2iu`w-0ge?U zeJX@M&8s)2W$KRY=3gQc!a7-9UBul##74(^3&+;^!C8Y}YQK!~%qToA5ax0}$!u5G zIWp!vdr4b-dj6KmEPO63`s*NZ#~<5;moc`xaWVHEpA`ge-6L|CkN^IxuUvzphKW={402s_U7_id%U8(Cj+^3D56|NKbt6KRn05yCYop0$-Tbf4V2gnJ-(^ljboG;2^ z6o?za2|b}&$ScY9X-wE_FWEV%p3066zK)6BXA++j&(13B(4=r6rQwH9?+do=wzVAM zKPZaU9QQwz=czN2?sR4mS*C|-ALPYuONHdslYR&JtUFv-rK`~JJoh1AG* zR7J6{g5UDL$DQNKDsQlLTDI$(YqK-K-(QhAufDQpi>OX_kQ~fY=NwD7jIIojQdstL zcFb=xO7e9X7r>`ceQ=Uhudb*kTTrhW#f1IGJ2Xo^<3zrPU7n>SDC7?~a+hV>gk z`qjOpUtHC+R2EyS9T1=>1SBYVD7!^f*78P{ypeC@cQ+5(S3W-R54~~b)8Vw`*_E#Dkb63hlj!) zp!dy~B!_HwhfOp#YRE?L4r<*ek38RfLUL~)l2Bnn7l;aa^V zs7wI3iiqoCii!RdRAOFfht^s^Y9#*tpefv{(zG1RZutDg1kUh%YTkZrC7PB@`^R@3 z;2Y2CXk^Gk9Rz7e6RGoO8uhWa(?cnx?=GKfjttctAHbPV)N;|i*-tvt>yxa5y^Q%h zBpzyu#7vG0$ggEnvYwevPzIAMb)6~MJHzht+kQVpk<5LM#m}3PnmT^S(pS+l2^K?1 z`GRs|EfA%iH&BDA7Jb@i=2k&1hgt!UAM!Y}E>`RWz{pySB8L!`oTSC_XmpyZ?wY1^ zn>G0aTVcYOOw@p6`v;T`h&<24w*qp2vOp6J)rl|qNF?a4#4ie%8yPb7-OFG!<1<8@ zT;BOF(KoXm9F0;2&@G1tp21fPq=SiDKNdM7r_C@)GftO+Gd5@>5q;;|5raI+6@>{ z`QB7wmQInvIlv<N;bM;v4jeOaOb`Ox>v6O|usdFRw|JJtHC#>s=;}=ibqk_o{{- z!zRfD8B%0S9`Mg2CGf3kylc>l-Y8k%J{wVdP{-kx9xY%Qz0HJD3Ps>Bj|S6tl<(rF z;YTu1Q?{*K8E8NFz#hu;X3?pEu~F`h2klg1!BzZt82NQ+Wg{G|-md^{i0(rIqlP*= zgi&2Tim$es`UUKniiF-sOOH&8d|(zJp1QQJS)DYCLTSa@4*bgBu^beUu|b9u2!Bq7 zYk?(U37cQ{_B*@Gjl=>?>-ey^+){^Q7P+uZl+EOz)d1*pKpdAgf9=rd6P^GvZ^3|3 zPB(Q_#}VLT*rNrJihT?_HlwiaycLcXs}+?FL?*s#w1Pc&b)J-uFb9UrbKi63Z8UvUvWH_1i17hzKc$?Fw$C-# z8G6bP6uB!;%36hW>Kf2|Z1m}6>c<|)2A}9i=`YV{8em&({#3iNb3`5YQ41$n8PHM4 z&>FRGS5PFrG+7;BmYDx`+tn?P$a$6X3>AxX5saQtUP5N?urZ%rHs1zV16!x2p50I_ zFH;&@+aY6oRCniTJ@WZ_d+)>M_3%hCY;Q*T))ytHPO&cWr?htoJD%Hnb-X7N_JLZ7 z#$xrQ!8G?tSu<7?Mrn+W{V=apHgLX>q=n}vdWVZ{lT6AYVc-b-&YEWl3_^{uD^j) zD??GFS^ARYhkvt!*S8-Ehp77SG=SoiVoMI39tCtj!HJVIemW{!f604ZygX0x{LQUP z&R3jBBBVKarA|G1Zg#dOj9Cr>D~mD^1orPTq+BgWO^m^h&5p6vb4muB`bqtq&L1w0 zBzpDUb6b^Ost7`h1UXig@9Jn6DBFAcm+ysv`E`EKqaMc#siW@VR=B(oBG?bxvN?(O zRO^^hBs(=u%&Ss!cquQxs*pV34@wtfQL6gu*k}8vrwcZqL8hm=UI%6~&M~fX=3dcR zwfk0=5d2-9EJ>}PD|%WNdJX^(ZT#m2(D~uK$8!%17D*lQfLVuW2bZK5idqkr{$j`V z*H-*tb@!B`WApo577Dq?x?`Z>D^4;O<-G3Hx>nJxE4#@wKF?~`0LhUA+O2%fxerV(6zE*`!n@}2q z)T%HzV0yN}brpW6LYnyK9ZL6FEGI72HPk;l?wN5Vcu~&GH6mk%_QiE@a->M1|Z19gmS>7e~yH4Wyg8_f~7O8=2;5Qr`*(tE}Z*&JZZ@tOD zmIZpdA3rE{EB;4GFHl9Gd?d-iuoJK3a8y*W!My$p&%9?4#)fu4Bb2iYU)@DpP_U{? z>l6=k>+moV4<9W4s8a;NB9D`u5E_R{%UK&n@umT{dysyQK`bDezrGZVQuZ0K{di%0 zG}CORhQ`##4p4=4zoqRXqB^l)gY9ELo#-cYJ=cFz@jpmkQQ>sTQiRt^gib=Y$L++< zCO_FP&V83l6Y5~B{$RcFoG5N8tH7hH5pMTY>`Cxf;#8;9L7et+f*etV$(k zS5c+z)^*{76Vk5ImTd|-i-F#nEjVBb&K97D3yD$xV>i49)AHm0R3F@Dviw$V$p3g2 zw=Dkkz0bqy_);0 z)c*gew;W0Hn(pP)Eop({VwMKj4sriuYK~o=U+@1@X;_)MQtq!7{*T!derbN5x*@vU XhJP^5wluo6!vJ(O4K=DB*o6Ndy5Tmy literal 0 HcmV?d00001 diff --git a/dist/img/logo-small-old.png b/dist/img/logo-small-old.png new file mode 100755 index 0000000000000000000000000000000000000000..8263379bbb2f28b0d6f9f1d399e0f1fce80cb665 GIT binary patch literal 3207 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 t+NfD5)8+u?>;AX+JC z=~I$ZUc{%=6pq9@ zZEkiu9svMTwM2X(l_*;-)Q~!k+GfMC=nOO(03w!J3~Eg#PJyX-I-!qb-EBC{0tsy- zDUi zXm3VsnlKKLKJ!JdB3T&}We{??X0w@N4&ji-bS^9q2y7fY9-Fpcn{xG(+QQbGd?y(Y z+@vuQ28tl{pp8+TO6E|JEIQJsDd-F`*>hsO=~>n6BNwJF*$l(Fj)<3HnmhSqQ1g(cyXuLn2x92}et4 zg%B@P8it0Ud^ntsqA)BLAW|_b;7PWjzt6D9zhZ?FBd(@MV?0S_O)4NZgQQ4P25A5#icm0t z&}&Jv$#ywUb473?u^QJ(jie5osIHKBfp;kMzp{Rc)&8G~ap_>VHfj7rDwA8Z{%q6d z!lxI{TL;(E{bHmWpzM<&xR#!BJ8|>H)RWh4a=%Or_V$H> zq^mZ!gjiSxw-KM-;A_V{%jXvyoKnwl(dCzn6x8^2ktHy7I{A&Ygp9e${g8CC?dh4tsMrT-|X8Rn^q{ zl<*K#L3B3%Hj3{!?0kIvq9|pIsGADtz(!vF<-)P9^n%<|nT1!q-#y%y_|@Bf7nh+Q zM2Gguk_zwaubjKyC1?6l%_UtW=KNEt+egBREsxW5#Uc-XY_G$wE`RLY5w;==(H1$3 zciVZDzg~mm7XmTod%mf~$pLeiO2*GzSqXX!37URFEs#dz=X3e2$vZ2&}_Lx{vBU{-ey^*I8^>wVl z@_B8W&>=;_K5LJ4kDs;HdC71xKOP-=AW_upiyLx}$u$wx=LJ{aJ>!r0FdWCKgWoBp z!`(Pm+IsddGHwoZS-O&Qb4qXpQ#lG9CEE73lc9bNX=o zxpq5Roes1(eQ9;lTCF|o;Tpxyj8OF++1~JYo@)D(B_GdlvR+C5?CZkQKGyE_-NY;R z0>+bE7zgCBYr9cZ)renlS#wg*D&^T%llSnN5?ZHedOA&c$-(_6$o;3o*y?fn@sa^~ zcDCq|XJEs<2OB+J+dgBIQ<C6Acg)($=%`rd?s7-*Y3asrwCUr0BYVSEoVd=2?r%#+KL+|je3O)V%1Ta*NR7I-_{sNOs_>BMn literal 0 HcmV?d00001 diff --git a/dist/img/menu-icon.png b/dist/img/menu-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..0ee2d1657ddba5a82bad1983776470ead18a1a26 GIT binary patch literal 1486 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{T%CB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA){ffi_eM3D1{oGuTzrd=COM+4n&cLd=IHa;5RX-@T zIKQ+g85kdF$}r8qu)}W=NFmTQR{lkqz(`5Vami0E%}vcK@pQ3O0?O#6WTsdd7@4}6 zxth6}8(NsVx*8ffTDrJ78d@4TI~qBF9aXcDfq{v^)5S5Q;?|ov{`$<067A*F zvzj}86g#;bxqJ1jZ2ZCFMN@xp`01_d6Owmu+F>D}>9zIl*Xm>~zOxH1y?yiTr>cKO zSn9Wv=gytE{qk7kG}k5nRWuwFm`-aMH0$#nF$+)lKT|Z6<=cGsi!KVy987{90v!%4 zV)}+m|EGHfzAR0+^Ld$a`5s^WUcaNh=e;in^T&t^KdL>lJMU4L67R=v;*FiZ*%!wZ znzFC_ZTs6>+;8VsLoQ{3Mh+DY7X_$kN)r?W8WWF(pOY$%2;92+2F^3YwZq^uX|Y5b;oX$7u~P*SEui2;ykA1M>j=io_zZ%=E^4-mp646 zH9Gg~vYyVj*x<4Rix7*FK;vSC3w@zpMe|I{^$f!kGPrZkKU>7QT_{rfVC6RUtzvyY zcWK8;Gy)yt2y{+|Lz4qY6AMUy>E!!Ix227hpDjKw8x?j@w(RNEZMSaft*$NoerBIi6Ay#h$3>cg3gPvj64ukz K&t;ucLK6TmY74;t literal 0 HcmV?d00001 diff --git a/dist/img/notifications-icon.png b/dist/img/notifications-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..d636e5897b11e2c5559c4f0eb5763b4bb05acfc8 GIT binary patch literal 3641 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 JYGH%G{{c`}+4cYc literal 0 HcmV?d00001 diff --git a/dist/img/quick-action-icon.png b/dist/img/quick-action-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..ad9886ccbfe9b47ab243ffc0a899c54aa498c016 GIT binary patch literal 1209 zcmV;q1V;ObP))cJ{cDmcdov^-pHm`WL=q;m$xP% zA>oM-z;MwxFfec`C@AQ(t?d}J-rnA`VzKxbmtX?3c@Yp0u*_OB4J|h}ccn(7c_uIz zoaMH*wq94O)q5=tG&F<3U}lS;d)o#d-nRp~$2p&XuZ9!|nS3^^SQW-9Auup7#%MIw zPzOZ~4Gq!Z;o z2d&_0IaHK3(8f!$^Sy}&CoL9elyPZw7J`YuFq*@3k<1STRpNfuIGV)(z8;t!-f05p8)P=Y<8#>`YO4Gm#5hv_2r z^@E7a^Q>`_&=Y|t-b&QA0etLrbDu^Yqv*F$j=v*#f8_!U=-ZvnH2+`)gzjU1jwSOn z47>yyfrdc1p-*ra z6beNWrG#41Bu4w#hizpI8;9X$Q5D)S`y71$z{D@r7_FuHu%(eINK220>HdCp5rTt* zcOg!{EzqE;sVPk^m*-%dOAszyU0r&WN_AvZ?4z-@bBN+|RJmLb6dVvaI5^lZl}Zz> zT<$U!95yyKUJeNfNp>KnSDW_t_Zws~8QqVK7V7&Y-`Q4a#%Q(LBBfF}&#Q?{Ag-sU zr#mVtDjj_;2W>eUD?0R-cC1fh@n4AQB7_Q!MRy&l>$22Ov>uo`7A|mjkC6Vawh;dS X&MdWQ^mJ=c00000NkvXXu0mjfzi=s< literal 0 HcmV?d00001 diff --git a/dist/img/quick-actions-icon.png b/dist/img/quick-actions-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..ad9886ccbfe9b47ab243ffc0a899c54aa498c016 GIT binary patch literal 1209 zcmV;q1V;ObP))cJ{cDmcdov^-pHm`WL=q;m$xP% zA>oM-z;MwxFfec`C@AQ(t?d}J-rnA`VzKxbmtX?3c@Yp0u*_OB4J|h}ccn(7c_uIz zoaMH*wq94O)q5=tG&F<3U}lS;d)o#d-nRp~$2p&XuZ9!|nS3^^SQW-9Auup7#%MIw zPzOZ~4Gq!Z;o z2d&_0IaHK3(8f!$^Sy}&CoL9elyPZw7J`YuFq*@3k<1STRpNfuIGV)(z8;t!-f05p8)P=Y<8#>`YO4Gm#5hv_2r z^@E7a^Q>`_&=Y|t-b&QA0etLrbDu^Yqv*F$j=v*#f8_!U=-ZvnH2+`)gzjU1jwSOn z47>yyfrdc1p-*ra z6beNWrG#41Bu4w#hizpI8;9X$Q5D)S`y71$z{D@r7_FuHu%(eINK220>HdCp5rTt* zcOg!{EzqE;sVPk^m*-%dOAszyU0r&WN_AvZ?4z-@bBN+|RJmLb6dVvaI5^lZl}Zz> zT<$U!95yyKUJeNfNp>KnSDW_t_Zws~8QqVK7V7&Y-`Q4a#%Q(LBBfF}&#Q?{Ag-sU zr#mVtDjj_;2W>eUD?0R-cC1fh@n4AQB7_Q!MRy&l>$22Ov>uo`7A|mjkC6Vawh;dS X&MdWQ^mJ=c00000NkvXXu0mjfzi=s< literal 0 HcmV?d00001 diff --git a/dist/img/rewards-icon.png b/dist/img/rewards-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..108c132a608c9f8562b8a568fd3e296f5e301af0 GIT binary patch literal 2775 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%0AtGb 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�|t?fOsbC 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 z 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ˊ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%0DL>JKkt{|_!bniFX^B+0tKZl#@@ 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 `sg%|}rU6l06C?~7 zIfITRjyYy86BpiUIXaZxW^fj}%STW#)yjFyqV!5}3cHxCiIN5D1fKIUOKO|up!hq8 zzF?K=0v6XDr74$cmTF&kyxb|@SOxXz0#U;(X?GR9+)@L$J>uUmEP!#$rcs6^^ARHg zbtdr-8kCJL;yuo$<%e-P;s*`I=$;G<%sDt_SQ$pODa$NiWjsa&Mgh!GL99)6GBQlA z{9&0DsX)e{J50a~aW9xl*%`*8y)w$v@iB3?YV9_UvJ^1XYxYz--`vQtTtsrk<+)s& zo(Oe9_eX^?xXMc^?gL_6!tA&(*F?C{v5ruR=56QVELHtSrS$<^d`rnVk1_Qv;C)Kf z)A18nU#XFU<~=~N#Jql?T+}IR_XSoWyUT1ss3|xaK69KTIuT@6<2&s>mH zTY}DU1uQ$AF|DUv<{Sjgr_90W01d(#tQRwgIlJ=z03b1*0I21=d_%I|hy+3+7lnCpr5;#^W9GnbUGx$I^FHuyMw70WzM5S%ZCH(EQAK zADBD-;DD95U{|y|lRT`QLawzFp$FB7YX1Pl7or>>!BkyAw){g3x6%YOW)?G3C2=&t z4KtV}*6+Ntg&=ouqpyfBK=+oHDdKQcM{~Tr<2aYL0$prclrD%PE4T&sU^+f#cqOV$ z(?&Ij7mAi#9N|GnA`yB^4SpcjYs?zai14eGExz}}z_fUP(%%x>5MJDNfVxZ&>F!%w zl(V~*4b-KQqBt#; z(1QyJhs+vF9A;wm7a1klsd%a31-wGeka7OZuJXBnKr6)41vvSggEpX++*Y}R+FMmE z;E;8xZj(1N0gdioK`#|icXJo1#G~R-D81q;QM<&_zmw9W%1}y2WvC&$YYUTG!Sh|?JK)iZF z^>rMXNoL9zn86&mlwTv_G;`OaRq2i)PKdfvFIAb*OLGPX;tAmp_X-<{(3Qciu`!3@ z0bi*?1^S7o21a5PUl9=pc}01RlYv06bWUNL+^Ox^R5FFX9VI z$@Goa>M7t?!2p@Rv=KZfh=r=E3TPw9`+H@fkPF;pHTY2vg?CA`Ch&1Qv z4cz)n)zFmg$co$qFwZbtgw^LQ~l zf?&MB{{R>*QERx6Q`IWfa051l%(8;gU1eOucQO#(W_wJ_Vk+uW(j&Q>)VHKm;&-Zw$Ad2# z_$8c-Quh&jKt~Kg1F7Y?TwG3SXNIG7jmev$WNs?Voh8ecW-1_&5Bn(H$}5|KowAdg z?JeERIX)&!`kljOXK)p{!WwCX-QCRc zL^VtS-87^>dOnu@f9>bQ58x+7m~b09!rRICmVxjSe9ucjwek0#LeO& z$#5(hrpWDmLnGoFcVz?B7#@#iArxwuLtxnUlpc!*i5XT;1&bWXplsgdMeI*sfmroI)m*QBIFafDvkQ^^?w;7gdxPjMF zgP1L=tiTW46Qp>6w&%32PsA3zr8*c`t0Rql5pjrLA(&e6xFMgJ(qp8w%mUU6+y!=5xw>VwE*)w^7?<@ydXUq$~xE9|KCji0s1ER+aa9?@6-P$IKnLrav&wR_`44QL4^q4d|iqyBPd9AaVc+_*F zUvPVIEUT3BDj9>sRqfg-a?0eyUi;MON3bR1R|bq?a&_i>gi_=qcB4hh!DeAj@ihxu zwh2_h;nr}>ylzMB9 zcG!MUB2H@;#6SNwuqOFbcN7>QJo6--iBND0O>05P{t$cHh*nDr-m<*cwo z1Cj@rYd1V4459&FQx^@?ZncQs>MAnY)D}^A%&*L@(-#VbjJ!ZXA#MwqZh4lFP5REL z@Fx0`lMbl^n5B4&olD9~=@{x%qU9nvrse}two$p^1{zFMda+u`7apMJqz;6l>O|`x z-?>e}R(-`yM$Qr}Ja>w}_GP9w%jy;`-7I>wy6uW+z)73KSv#*nb4y2=oBf>EPE^PY(cWK^T!?Rm#`0klHE z*vf60%k>`C#pp{$P?YUHAi6Tzs%Nwpc!%Z)T3oY@ca2LE^D7mH)lP&N>|80J`+}^B zUW(61*$e*wlCMDfhe`r4Cz!i$QFJgwAW{%G>n!g(gafn#it{S}0A_IJ-U7r8+NI6GeEPLn(q&S(WP4#ZhEj=jJyWnba?%E+Z5$vA(gY)xjAu_LjPLxwYMp z2lE~c%pE^+#H)bZp{Qq4-4JvPOmy=-GT$>jVArVPaZxSN0O{&es|CA=oWbabP3gSA z(8~3iULrnX2ETEW%Js|@DJ5*Vp4#ay`IlUkFIn{(OKL82DwvO0-ib@hvzV0JDpf-3 zj78>fiPBmco?uN3TV^$J-A*d`jvvIQsR7mMQ_CE%z?{UVaWM;SR zN^y+HuJRG>D=|FE%s0A@ptXHxF-d0;c)6syf>cCOte1>S%2dvxEWk4j)Gy6Ucw*6V zwYcS|4NB{@Q*=vSCSoTNh9GG5msNngR;C5iVZvskF3F32=6GI7QSA{5+(QuxH7MdG zk)x=cFU-ipDXP6hYY)^yPh?(*2RNnl-oEE^^6CNS;e!`%5jRT$`9c=ujoe@>FcPhLl((Go zDAnVvtZQCjvt@T+4Na~Eg!mw#Pl}EUx0YGb1!OVa3xPDc#Jpsl#1MR@YqW7#tUyre z7R;_)Lw%*+Fj;N6gw&y;VVHr5ea#0j=|0l6Q3gxTiA7q*x>PSx>!fSkx-z(zh@+fE z4wuZxrPOoP#?fQ`2BTgk3tv$U zT+-uCNC?{tI4^J!2x!&CU*9MLoeY8i)?&J|S0H7@g&V52#&k0oEr*bG8S2 zm6%SvN;<}jEWqw#S2WzjYj-S7MK>?BTxo_4Le2=CqUZgIhT4xb&nyNU`nN@5TPFyv+>6{%9And6B| zCSfN#Kxn|7CHANVd4*PKnP@I%?t)vgE^5d*eOA|UX2%s``~&CABOn??qljTad3XTN#$=7_cvmz!#W|Z{}L)H7(wyuV^UTvi0=^ zf8-9>@ezs^P+bU0W#Mpc@I1um7bv=+b4mo&7?$Z#!?duh+|AAjTNsCSC9Yg? zQ#d(v6N|mT=Zj_eaVq`9ZiSc*BSP3UDE=jPK+MN>Rl3&@E15=H%;w{DR|~3T72bZL zb(Uv3nBh+H_#0vc5ezVQM@eeLEXqaE3+cX+=~WnTPjhUw0C#KwfS#pFH4RpAKBaT1 zP0H^BylgQWx1{?-0DZ8fTW?qvRx>Ke{{YHmRa~g|S(_}3sZrt=(gh_karLb}X#jdhS(>t=k+^^Yrs>}Gnz;N}2Y z(? z*xY-kJjIhEnOV~iQ%eI9lBIPcgr+*<;#2#g>MqEJWZWtX9RBQX7%bhZ__#lTjK&(BYC?R-oST7IC~?gAADmnmw#H8EcY zRIjz)7UlMX{{VD20=Jan%LS%?S%*EIAbft(w+9D0`$aS>;x`*!(=KyEck7lo_#^v@ zhgp?VicC2iK(%zl4$yWkCZ+PkLu9PT5~iL=U3jiD5NsadV$QrvtyX-&^3%%-7mqTm zhCIYMJ+iGU*)uN>jX@$HZ453K@G~~IPcsGsmkmaS%Zv!?AYL*=VcwyMp)lr=EC7HF zI?hM}mL~DU##LLGsV(rcFmKRBb@qr;SHcEU;6XI1=@r#(Y>e+C@QXOR%%+OD%urg_ z90Oaz0y)Xq8YrjCrnu?2hQRW~5)Q0l(=r0G#ZW;!C5;$+C+xE=V$Vn`jhzv(WgTN7 zPjHsHJHo|UnZIx@aKd&NBWv%Dto~t6`x&b|4=2_n zWPQqv{F93=;;sC#JRZ53)$_|DVx_LL7N~u|aK+8QZvJ=}UzRni`6IticrHwDScR{; zQ)^#%wsCb}WBDVO^T$)E)<5?r4L)KWQ;fuc`Cvl1)JGosgIn^#1?1x5_3}oOZi}3v z^8+|qmQ|5VabcJ!(VU_^a}Y{W0tQBJTJZ$UK41kInY$^85jA;c89}%jK3qVm@zy6- z*I7^$-*|#sH<+HWyu*&uysWq6gUv^ne|H21W&+Wq4F^c{8Fg_69~Hz}`=Bk%5`?_n z;H?*VnZyuv7Gtidf^5_-WAiWpzLDS>+@+x$s==k4#2AJxK46Ms!&3$JO^VD1**Hc$ zpO}MH`HBss5M4m;2ADG|3#L#(b!=-zgOcXIw55K@uqblW>zR9j^8j)l;v9U_7Z;hu z_CnnJkq_+}GxEZr!Q_QeVZXjSuyXVCV!z&7-R~~3SD0aEJHfRdG+trud{X1I78B0$-VPVDiP*A1juur_8-kh|iu|`69c3>!>LBHqw(YYK<3DlL zTPe%;9VxE!EPoP#zqkvV^vcDbEZchO%DgdGwgoEVR@2_4ms;Q!J)&k06#c^?1E(Lk zo>oq%Tvu^l(FR5}lqd55<4LlIreXbbixzgn2nBH9evAZE7eY1jFKKOq`lYbS!Z`HI zRt!9${IOg;GMw$sBO;vJ{{UFpW*e@D8I+Wt^~^z5@w4|X+UVpz+_9F@i~j&JfFRjQ z{If?QQDddtQrumNc7UM}!xPSBm@v6H>6j`D2L``!vLW*4IIRQz$(`~6pb}fubpV`Q2InbU&%nh)?gep2rWm$2YYjTFFRvO}$S@XODv;-+# zo(L?+#&CoK_XD0#U5cX9KW_50Z|@65 zIvH7GI=Mp78?r^URfn8j(0$^U0m_(Arm}0Fa?Szcgf5_!iXuosXn-^>tFk1shVtyk}kB6dp9&MB{?)*d|*7Z!Q=?$i5}Pb+xn$ zL5e)K(8Ea6UXAV73+90k9l&O2jI4@IBhR9#w|XggM*RENC(6?h0POKW(0g*0Z0tD z^U$DoTg=367UFufNug6Yfm%x*mXP7@nZhYR-Q&#z&Sas626Kz08|tGKI}TNGFcFeO4kWs@Oz-J#gM?l)^1g$!mnb-iGXHNE!y3H>cATwO|B4Q5OmAa16 zHf(DqA!i4TL}iD>sL4HIRHHsK6LjOnk)habYzNf1Bb(miTR8D%Cn%3(9CAm44W;C> zGKkilNvC&8Vs*X1i(NHwt#&mFLJXZAV)z!e9KzC?)*n0B$ik~8 zgNCZB3qOuCfg#1LBETsFGiiSnt zztqMLrJML6-W@d5oT>^b)&#KDfbZsGf$C`&;wH5{Lj936p{xEdVWn`5CtOC-6xKAK zQ6eFO{{R@EK*ghHNu)uwuj&Lvz~4W_wAs}zbLv{wfH!`VuuU)gOQ8sMlDm2i9Pd|9 z{vcf;v8T8N)wreeD#i|rzY>lygOlPY5glK}QH?w~1N9Jk#Th7}__$D;-J|guN!|j? zd`dv;&DxKtnFD*~`io`Pz5Pouzl&`{E4FV?I1d<5Q+K9hxuWUM5i^XyIbe99IDjz& zjiw01GJ-~^Hcjm!YJhEVOtc0|Hz<^Y1>z0zN--P0D8)cP88ypk9P2jSKr-OFItiT4 zhb}WRSc#7Ald3@sE@GN5TU^Itmz9)I0*hVP)+}7#2s#UxqF%Bb>LS6eFM1582JnLk zpSmLid;mjBaIDrgKvV`3OS}L^0yo`Wd_uEp?K(X21;@BK;Ha?Fe3;>EfCqlmFKs(_70LaW6 zlA?w?c_z_2wy_qY;6Y`jn8n62La4pu;wM2jWsWahRJH+1LAh&7+ythK`pTSDw8W%>>laXRBFsEpEEz#LE)^5^6$LkovL&d> zu93W~I7NtXwCPfaa=5rn`>ZU75fIYMu()Em6o7?+i?cC|W8LB?*Pn>lkC2%mdy!k& zh^s5SmkWlICLpK+v1GYs8N%3%uqQZW0I@qJNVR(<0Zyu{h;cKkiKDu>{^xMm^Ni0o z_~8Xh;87Hs$T1qAJrY%_Z)CJbGpc4NtLJ1e0q15TvfcB!KsGa+M6EtpG(|nkPl0lt zP+$#E9V%gx?@)%Zb*Mp7;{m2~9OS%=7T;k|dqvU+mFNaIj9@y(Q)f$yX#p%wj&_Th zF~ZEsTs74cLG!UME|ls_JAHE}4v#3*Oqy4+Ky5BMjBJz+%))w(Vk1wcW4q*TXIK~B z8H*k)Wtun2Ay>DFrkF95Jr2SRk$KwdaR8w?23bhwbih#h>PAi{N|}IMwT2cC9pa;> z*5!IsU~ZVp9Zf3n7$>HR?mH5-xE^gaPcdPIc}N6%W#MN7nGQo-2#HDFaKug~q zD&`)&rD~+!B|BFouuPAJaSZ`Y3n?TH?M@XAqLnDh;<@uGg(>BMqvJ|A-?7}ax*c-M zR=xL2fXA(}onnNBdO%foy|V$cr!xW#dX^{_9u!_(^kVdNcH<7ropSdOy=1RQP8i_n zDFkYqkQImotoTa~7pRu$`b&2D=E75z2O>;1Gs^o6IcXa6-xooUktGyMS1C zeG=waabo4wfW8(lr1IiY3IjQ2VZmIuc1W39g6s1FYBSY^U{25cn~?^YU|WjYWsBZX z10k8}#k9AZs7APU163Z#9_J42(sWS5k!C$hEkC7g(_crxGI-uS5m}qTVmmI z0ffNEq)=s;ZVkD(#owGpOQD3|h3f;%a*EWsu40#h!baIRxJ$w~jV&&aivt`%&LB|^ zB6WiEy!k~Fr*J8>>S5X_UO(zT7l1VU!5S%7{{UliKpnrbuF!Fh?DUa8_9IDSKl+;h z@BaW%`SnU-kZ{_u1Sl0{a@dwfR|DTI;wdh^7N9GZQUfJJsh!M+Rw&5UGnI+1@A&beTasj;MD*%VOC@c279xOUq0}qXtmXy|?5VzXKoSbMT+!scl}* z@+#8vsQ&;amRD!_5>k#Z{{SVnrw0rcZuI{EA&=YsO7}BaALPw>_xzTYb=j7(_H<`G zr>011J=UcIlxuJZh~+LKboYi)Vy-aMxG`e-WJ5Wy@Ur#K-w|^AF&6`hs8;JaBH9X< zm@|Y$F>1PVG6mOpn5a1}S}(v1OIZTrI+b^uxeSJT;6)I+1S5zMSG42(gF&p|BjD><42@iYMEFgD0`!yZ$50sxv2 cvE&h1_9iyu#VEW?UAPwl4a?GnR+dly*$9AqyZ`_I literal 0 HcmV?d00001 diff --git a/dist/img/sample.pdf b/dist/img/sample.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cbc86a5ca5958fb65c5f0b582db8b496f436f0e7 GIT binary patch literal 1349240 zcmeFZcT`i|*Di_$Q4mm?O7AFDKza#^NC%~Nr1us=FHsQ?q$9mbl^Tk4LhrrzPUxM` zOL8~9@9(?c`Qx1P&l&fQafTTKMpm-fd+le<`OLZId^Qa4-@aqxWPgRtu(aGijLk#+ zlG@JD5?fdpn?u~r+77I2Z(w9X&GFX6*}}*~5^Ugx&7tgM2ywFqK9sgGFf+mCkTS6_ zGlx*~z2xP==6Gje4KV>zbG)-QfS9~BF|soTj!^k?xQ3#krHK&)n?v2g7-CM%$<51+ z%^_!EYX%GixcT_7Io?=69N(LO#qDhD?QBhKA=LcXqN3Q25U`1X4Yq6IcH^yE7#J9z z!q9nJ_pyO@e_wwQ_=~__1pXrM7lFSB{6*j|0)G+si@;w5{vz-ffxig+UyZ=0NuN76 z#Q+Ry^!U5?s()X95%`P1Uj+Ul@E3u<2>eChF9LrN_=~__1pXrM7lFSB{NIj%1wP*W zn_9rvD}7zbn>T-7e-ZeLz+VLZzd~T3oC)*++r-xRU#$}G?nXuR>VK)GQj&c0e^^YV zEN|dwMSY{;Qu;4t6(=`0KM#+<|6W`*>jEJk{R!GXMV%)l*4D-l9!AvOjflBR;QstG z#x13VTa9-gPJDdGzQ8Wa4i0CSj5d)~D|6q2pU!z`9s@t4s*|IZ>be)YR*8e=<-cUD zc1|5v?K9$pxLr&O`B8m6@Y16H)9aDY+1R+qjIn+9>iE_+(f|AFaJ*u8kkFaH;tt(E zmn`xKpZVvbFQ7l4H0=5&v@?M{Qald_O`awTx;VE1=WYZC%E-%klFJo2-_Q17EI7MQWI@q6UF>vC{yt?;H9kZcGE z)ogBV#^`&;-9{>?K&FV5k6UV8yd$<$;P78VEl`>xl=;}UFEAkmlqSmaK!5zsXuGw_~PRuBq-Ri87g|Q-q3&% zho(XwP)SQmt2`sm?$jQyMG&greU!N)_2}*eHY;IydctG=6L{PB0 zv=rGB$E_%OPG3e*a-D)Y%0{73#+NDVhP&{zw54_ssyH%|aPod=dyU5_d*|i#^)-O2 z$H}DG%J{!{ZdqIGXIB)3>`erylZSD(I z^yxfQUspG2u8%HMn1FzwX{yfOAB$qm0(8Bhs0q8^UwUiJv~8XUL{-e*SjwH%$z<@ zSJyKt^jSOL%8C*azT3axa9su5e_W#+FZs;JaO&g!-qzOT+-aTU$~F1|hE9{blj;LC zFreW+gQCvYAp1~cFQ1c>(}qN-$VqH=_F4z?7j(b(2{-c@9}my<0v0Is9?35lEQa(d z?jIw^m=IiF#t*dcYDCYv%&&l}5M~ie(97w0JY3xHloY@;yu7>)#kI7i04t+oK8v(g zIOG?xpFdb`@7x^eS5s5Fx%cUb3I38Zc=yfplai9?^6sOK@@@l$Va&F9?2UtiW4a%s zCH@DSPX#_7u3vK&aQvAueJI-UgQ+PaPs-N=^eGxO4})HB-B`y+j~1T#q7n2zI%kClWvKdx51jn` z9f^~JgCA5?88j=atE&qNf-kB7U(e4E^1iF6MpGYAP++mw+uO^-!-Mc&Tr^O^-BkTN zI`XfXeV>?^kb*~w(a5^w8Ul=Et9&o|53yii`1=0;NPGVahW+`EwP9@Ac6iC);r>}L z41i&GmBHr!3;>1&r$mVVL&O*pvtgG%$VvbC3Lx{DY{bC7$2s#ML>c_={WAi{{Pcyu ztA7RnnO7-x{=L)<8vg@;pIGDL;{nH=sJCfY4h7kon3R=De*SNmW(ay+9KE9j4fmNs z{~Nm0()0v2YMV@yUPprz!X*Fwo1BsoFrg2K=FxrUO^yGyR-ZBs4-b2BQR(UFLQbsz zZL!4&zJRt#Zx*{KZE|w*{QNwr5EBEVplY-3}?uKt?$3+Orj&2omB=se#x zx5;7Vu(7cv`Q9p|O92Et z5WLf%D_wG{?(SCFK?QZ-h>uwLS)pir?|q+$2m&RI=R}3E*N?9ZvQq(zeqMEc?k1X| z|3Qm@kaBYu@zKm+)zB&``NzQgw2${S21aU+nn2||K=4ZH>J>$?*ZSV)CU>Fl#cp8e zvT$~Gw*Q#=``1f$u9^Pf+19?Pv7VOx=7N%1Yfn$lY%3tyC_<`%a?wCwjm*koEWu9c zzhUFYSFZ>ETt2F}xY)0H>L{b-J+vN!Ls8vB+e6k--(`I1%M}f!-9KmG21rY@GZEE< z!;x>K+}zw8Dtve!0FLMeIEj~{qH`Mh{hhru;liAP%y>{NEnvE&_YiI-$==DC9?-#&JI{#78g^CHw&ch0y1&8aLe*&|n`m4KJi@)y=5_|WmnaN4b z+}n|agd_dH?Kk|sP`}==MbRI3Z>)wc;0s~itoUVbe}8CDkZ~4cjnGuh)U@B(Ib&-Z z(G#LqJiOqV8m!Apf7jZ@pEPp|ANB3*%p@gcm6dhnolG<}9d0oRi3AgcVB&HwSE&c7CV^gDZA#c4E6nO1Ee)L*i zQ5=$By2I${@fIse#4+RKUx} zCrRt3=AH|yNr)^6u1OaUOHl-SS{vymNzqSjOaa&Y1Yx;{-h-kq$??n#IFIX3rmR@z z7{vDdlm4urQwQh{mlEL)TaV7R%^gqArS$Yt?jf?REzH}W^Hmv{m=1VEZp^F*@LMTN{0-PrEvpD)0gc$WdHAxe8O7$>^4hAQnWais=Nj(Ad<*5-q@>3`8_%l*wkSR7 zi&9gIJ{cJpzT)C4sbd3XgnseRQC7Bei1kA{LmOgn zIrOqe9faOl+k<*)J}26PIE}$_v)DvRgXE%A*@SdsqMV$MmCJg2awaya8%SS`jp+zG zBUXuzJ?>qcKHRGooM38i55HeO_TfU(&p(~6sgs@vdt5i}#uYlgO;3@|?Cv_*-Q)$& zqoSe`$gWl%9+r+$2F_q6ND;tU!MG+aU#MBotxaK&hMF`3Ci6;iyp5ijAM?a=Kp%Hy(9NV4&tP0BIzMi zQS<%n*=V-65*Pw`MaMQe*G0?AZ0KrkP8W4>dLW}HJqCAni*29oa0Vvz=~2MjgxHIl zB+mmYRHD(5%9=;Q7US`tfTA$E%ot&&5DGeV(oi{37(ZHEUQU6a0(s(gH8G{xuXlex z_VOF%lBuY7&ubxDQkHz36<_V#dHX)pIekYXnquN?eMcGrki;GT-79V zkmfTUqhECl`!CA#HYxS&m!ME<1D~kDnxC^{Q($dmp!q=!M$*m>*$g!>y9nhEA13n` z>ZNB^5~{o}c#lZ`QkdQaOGQlbTW(Kcz``AN(Td zMCA#V09)A24+NBE?Oh{Fl9XFc#%+$LraU%y!xGh4H8C3XQNDiiubaFrZmnHRDo49l z;2@DqjEou4&z26rTtlo!wtA>tGA7wlG5m_kqOh5xk-()ifa9mN;zy&R$nvGNt?~v7 z5}Za=$L>`}ejmNRe>k(i3%IM8tn5~CJLR+#0(y1OZewHPa`K#r_q6fkeb2r38an8S zy_4a%-Pk|}$E_01!YUCT_21iZuxmbEryUg=s&_SX__Sv*a~Bl73RA3mtHwed2x z-5W21!1SEUim?w4@b>L1cxyebn*{hgYUYwDHKPt7j=|VC!Fc!q_&B-Gd(uVM)MH~3 z2%gk?i-czK8%;YDUP|3T!2xgRN(;BDla*?+ z!HriTKh>2iflYN#zKvi_d)WPVSy`)>&4&H`{bt5dTL71g!ptXyswD6aGoXHS?BU`C zQeDc9o1}trthYN9`gO~>${yz1t?L}@pMN<>9e}V=n1Q#~U>XUUn8Y!>`ISHhrTxfO z&mqGPkr+nIW+UFk9Is*GD(;!<*Aqf8Le6!=J*~{S@f&eU>P(SR5VVBhL5qr%>+0xM z2m%qtE$7YXh!|IXPK4!eVm@O}e@tI?{6H#8bU=((%FeTulPpKsYa^b*izvnOr+k6z zrr49nhp1^c31b?`wRKVnUI~S%;OWAgjZBsH{n5K4J`w#plp#qwYO-LPA1m&hQGD&ix~Zjg>7y$b(p_g@oi}lJ9TR4h{e>PcKuw?m74x zyZ*EB)|?nrAHO2ICZUIF841Mi+C*|&J>mHo2wE}fl~3d6TTl+g>#eCwU*FosTR+9b zY`%iHhDHY;udn1}I~C+tN`dKb5u9Jw3g7XpO>chl20kl^K6YsH7nuZmh{>ZT@*1xqbe(Jx@(l<&e^I*1R^^UvkkXVGX0b~$v_Vv<*Z20qqE$zKP0VEL3pQ!3_>PAVM~y^U$@h15 z>HaL`_R3|*7D>^KWPSGq?X34$Q;K(l`_RsmNp`bGL$=&EMgTLj9PUWI5gv0IP zQFHdKX!SzyR!aX3pJNCI5xqQZbXNL(kD4fOLjxk$>e_mUpn{)c^0*~ha+Q^xayr;P4i+;!tK#W!U;dSP6@pZ>{WChBS zt?O6No^@BzX7|V0ED?vBI6Lo7JTubNzC3Ec9U|Qz?9g&42zEPeL`T>8U-iZ>I$}H& z7Z(Re@nRg7$;1@&5dQ;gn2%6iUXMK_0=^;LqbM&!zP<>Ln_;6~-^k6tYkh6l@)Mm&9GUzy2aASlsoUnwz0acwObRZ@)jqT$2Ww0|c!WH&RSDcQEB~MF=lPjeVKgU^ix`eV0p}(h3UM>+og1( zLT4n_=6+izAN@{pB!mHE7d#bfC`mY`QCjSoCs(++G)$tGhH%!`fTuAxNOlJ9_Yvq+6F7mf31hQhWEH#+cD?iqgpd@ zGn#tTC;Rn_vqHX{*WL1xkh&8Fl_)_@c<9U%hc|b!#m`Y|9+ZDJ^E7-7);bW$OEuH0 zLzA>n%?rO^IfIpP!VcfWMDq>FqAwbKE8i;UqhH#6Q{+Vf4*%;Mkt+=kPPYa!YGne$ zGLB@N{lm?zou9NI->(k%W|B|Hz7KuzT#dY#ijQx;JUxMwoByJCaP0gzRCZ7Bbp+3Y zsWk<1AveT(!#7JAze8^i{364QQB_E~y2#Vsd{W?Km*Izrdji47#k;7kx$vlx^?nqV zZ)jjSGd(Rk&im@6*bd@=Wo;y1UcSl4ClCkc^5Wtx?PJYXoSd)mK2O?wu1XpVUp!p; zlCi$Oc}P%f?irPh2N(m<=d=~k3DdwajN5O9*6B+^)N?F?<#p??uAhuJOBEU)t1%kv z0JM~8L^Rr-*yb7LwOaeE^v?12HaSw0JD{+KIPN>@5ap%@!o-Ss?!I9nFQi!phxCRV z!*(zH6fWegm8e!}=NpLJ6D(u$HSn>eL()sp#B3g`wC6^31&n8rouk|#RS;L>?WhWc zVObA%|5#bj6=Wm%!B#Y$KwkF9E@wrp;eK|$w|zY^tiv~tw?|^Djb{6*q@ncC!OR*Ae=I5c zy|lfKg0L_#E1Qu?B#FXHWTr+?h>3~u-sPqE)m6THFpI2g4#({xA}~KthAqUyN8!H| z5}KZ#W+A0wl7@o85iOovl4C;mZj07`jodRe^E&m5J}B6t#4AtSW<_<}N7mi+E`*7Q z*iIXHm4Dw`Sg-!ksz$yjk9T1Nr9W3PIx22qL<|doky<1lHx|%GvXZ}Owqq+rd?4{- zgN|nGhHX6&CGW-p>F4T>3rWk4;7~nN_B8zp#tl2LOxJxa2m$mc;M%iM>6NP^XMA`7 zy=_i2afGmJW@`5C^pW+!ZPCDYUeGVi&#(KJK;y+&PmiEa(SXcCcL zHIux#X(_;QJ}foS-zmihFNjQtM{I4co13VrY6^&ovgg^BtEm|lPi)VLxQFD!Sw)Ab zUUYRkxfBf#R)SF@0eNeq+pKJX*!)24h|ut01VNANg@TK`L`2q6K$~g*{rlfDSkrQY zq@SX$hq|Z9o~b0dmtC%vfRK`?fXmHkd`d;An^a8IH#`&&LX^fc)s2tGvW-T%p`tIG zB$)lso(}v%tDf%Pgu!P@>g1Fp11@As1Og*+5#8&KD+>e+UajGrIoS@&jVbh+oy0X& zK9F0hMur}1QtqOY-$ruhIFF{P7wVUY-ApLX7z zz3UZZJ$%E&?zE8%#xtUph&~}iy;MZitv)FzF$DJJ1--rQ>KtYajQ7v3h^gx4xhsXZ zxFRAVXr1cCh4sKX`M%+e464MV%kvic!fTdRQ7K70FJCrPM~XR*%#KDyCmP#X6gr$7 z#c_z%fRD(`(rcQ1w!?2qbz-+(XzlvgWSQfBdL}S_{kyor?%UkANbTSGhDYrS$=)0H z9YrawaOJ%+3#CGlieLs{$PJobhO-(##B5%Y~8)b$HV>uKLo zu?9`V!;f7LCo!lP`Ad6t6EPP>M^mbS;LQ0i9I!$L=m>(~F^V$q~~wDQ{5DtI`8{ z5?3j4$+mVjaE~3!7feu|_9b(h(eZIfksPMuHRSmN&cTZ*t+fy@57Zgwj_jr$y8@FDl7W4lKRzl9@(J}=moWtgnKQ&>As!y zrlB8%o$a5sL z;uqljpr&G;?+CBXhw!Z6Iyp%NW_wdUd-eePzLd0#rL8T={&`bzapULD@m*abU++Q{ z@mc8Z09#w8x-;u}4=CtrqkSruSs{xt;PGOxlhY9ifZ760ra4d*h)d(aFujOGdMb;q zX5Y#Xjm@fbZm4Ds{#^Awp8 zPTY=LMskOr1ACu{Hz9MXPElS|Ni#^ZUS-L^LnM87%9*vIi)77imGUi0g#?Xeho3Lm zSw|L=9kdBOCa|S}nl~RuUVl$dm|*BbT;jDAOxJ3%t-0!4@I?#CYyQfyzY|th>8&^V z1|1Sws{BU9n3Ji#rj&5@1Sl~$Q~k$WZua9q`v3l?(O%3HOY{>(xmn)*5x565EuD%x z1<2;Qv|`TTye0bXC|)e6sXN@QolP`H45gwxu29esv{p+~HzLwi(%XohS;3l5g{~9~ zm*lpP&)S;#psQiu$T{k~6Q>q3t(;4`2BHA7!R1{Yy$i(_zy^0JB=ThD0TrbjiNo<( z`9OZRRlf^Jws#g#-7S_<(Fub}ZUxqj5xbD#z`NIszTCO{-Is}pNi%7Q&323a?On5$ zRy|?ww_vL+MsmW51k$&6&w^w;s}z+q9g2(lf=4PRWZOeLk#jZUT~+k2A)KPz;-(frCzc(| zj&iLUe|!TbddAJe%X0(8$OF@1upvPxDhFzcqPk=Lvt7Nhl(f zEE>BguKe#|^-;{gs!xq1jnd0|^KQ1a|JgV-+-rED<6dz-E3&CnuOu0l81KC%evH+) z69CryMV_<#m25%rUon>#Z65zOIG!$5&o`l9wTO3&8i0n_|& z<4K!usj0i*iwDKtdb{@o$GMf2e{r0CpcNO7STfYzvBnH)UkBVF7weQsQnIhtW=eg} z%*?F$8t$dLE!~TVAz#AXOjfS)*xeS>pEup101%#3yd>V50zzVP4OPA9gg9G|etug1Fuo3yHW?+Q zvy*)hFVC~}Jtn9NeR62XLq{Q@nF7|jv&#gEf{aGHzNEST;($ARxm$b^BASZ?>!XVl z#SX2Ysy}hAHaN__zTtGl`NBB}WKQQuDEwhqeBG-no^!Jzf5qGIT_%0=QukF`=sp#Y zLbU^lSGMN-DxH~+ck$xETAgWIPf1{wWXgmh8?C^Pj1TVNQmDBkrq8Tj7u;c5H@3CTELh5ayhw?b~b(wcEWBQ)rM^r|dDsZCM)pEdA( zrF+pR5(kvx*4MV_9w3moaz7QOlsPDEZFLt9P6fj-+}=JcDJeWTNiOW`TB0@U_E^J*I)VGq8~VafWGyMw z*wwpv66*TR%*^u9?j9S_ed8z^C*UkxL$w5pd*a>1xlh6%A8qt&%*-?4j+gj=kVhEBr`m56bUNK!m8ACXw7)69z!p>pSc%oRS(rv zTer;2Bz^*EeNY1OJ6jXO_o^QN`Vlvcj*8|T8ReWuX5Vjb6P%uoNTY@H=aFBx&nxVB zsp~HrS}6}-UDa;j%Hw0zaQ^K1T}NtsX;3$p>^wFT;;d-`l&za)tb>;&;oCN(Tbonb z@m@*WWeT2a#;LFpyS<$LQ?L*pviS?J82gVtOaR*p@o+LRS#A6W{3U6$JYE+o$A!DM zG_}7evQk?}ja36a^X4!K=}Uo)daGi+YnO5^)7Kag#8E{OK-{yAl7{I^MbvG1L>`Z$)I}JmQ+jn+D@NjK&q4wNg6U8a* ziVCZlX$SO|w{!B^@yYZA%+hj_lb$L<7ee!GGrV{v`pvB6is~8(+U|a-{PwclqpjDe zObI8<@(AMOcj2Drb?w{Nic}v}QNi=_T8|V#DV!iQOifJiF?>{7#;PdbVlG)uYzW57kZI!e!`dz1Na1MPI1mwY~TS06phJ3W;tU|j*vb# z9B=BwMEkZ5jwt5Fm&{pGw=490%1@Q2aj@t&8`sF$SplW|cD^4uYNtgXKTx;Q^sw9v z%@a0Df(h-~?|7>D_HdQ2{ir{Yuhb=koU|HE5AgzkyP} z;CuV&;3(`mB|v7EqU4U| z=fS~A);kl-p_&t%_O{$EneDx2v(?~19mVmsiEr)8=N^^X&*n0*!?x`#3?b)70d4W| zWxF@A)ENu2->YbpGWs46uET3$nZohkCV}I?vG&UU(aMipG1LDQc_tUYcX$vFf!0wKU!e zda4i|JwuttliQn@Q{3Tfk$z0)ew~4pBDFlT#;IXey2|71Yt2+!!(&6+re=`@R4jRt zp0Y+ps+tyn3ZP+HS^Y8|?rY&`99xdI4H(!Z4= z3B#oVrFUZfQ0c*0dfW@?Lf&ZNR*C!(#qzQF>Bz|VZF5tEfz{mHPz%}90X6k4a~m3l z>lxiz3hRxgH$Uy?lkv$5Sl6|0CYfsek4VTm6d)7{+ys3T3dd#7wKEeaqEqdSrzxRJ zp~8YfHB+bXTf8wEtbl~Vp|rxJHzh7^V{eP?1>)|7t7iPua}Re!Mz#bd7JodM8GYM> zGuad()>V6g^mOZB-1WFqp#{g9?m!%Fr3mc=QXAYO&&0%OZEdp^Z^KZKU^A_B2p6VTBGA`j2fx%TRTJ8H1?{Uf0I=<%}MqSj%$tTZnrUXk{ODU&Wbjg439OI0yV zctu2#h{%jAQu!w4C24u3XMlQ9SroBFz=O|ol;x*Ev)k6R;7=2FO)%GFyH!64S?8WE_aPe`aofDam(og$)rSOkW%PL-R*LyID2)uqy#Lg;uO|^6o zzqxfaqjOwV#-$w5e)sm+ooi8czLx3c-nO&=PCsQv0tFC(|_?BvYFO};!2^#_4imQNUXilu(U#e*-WR;qKE zErpDi%SK0IMpbZaWzZcrU72mef24TjnjfUEZSM3d*4Ls|g>s>uNJNdt2tLJlg-eL_ z-nzD%$tN4W7Bab@kbQ6oOHcPR!uuMs&3CS>SXiWg>yy{OLkFAvz%zcP zX=VSBnuCRIV7hs)XE5N{y-c9&Az+YUU^|ay%s_qw^cq z?K6EF=erkn&~J7jtr>2;{SX=BQ&H5o{>r6^NyId^DiNkziBWm1^~1y#vJmGAt^3duM5V(U=Ocqp7OL z+x)ampOxeZF$p6RRH4c02}}O}1veo}K#CkASY$9OYszy0RYfHr9;~Q{sWKsG6A}{4WoDUYL&99oQ{hzs zaWlZqdpW)7jWC0{JtsQ$A9~(O`JoK{4Nrd_N z%Z_H7;eLV}3*i4R3ox-L&Wq9vOHh8N1F^JLdHV^Ll295`>XTh6ZfyTi+y=LE1PG_C ziM6r&VboMG48>3kj#Dwa(67I~os6k%+BU>~N=c33mMZva+@O7)MoP%!^ zLPcmgKteQyrI~Th&R-Pt2HQGE`?^h*mX?l?FHXevokwQZUHne_{q6kC7g$-q=je-; zud!7Z9sBz(mnUjbQFCzTvZ_McKVkdff7ai~(lWQMgqF7hG}6sBGEK+)oSH|pyt?*> zu`@wMCvh^X&_9hB|KrrYrITK4#9jK`2 ztX$0DmgHrvrHyJ-*5-@OJ$&GKgN8!?e z<7RG>*@Y!>4K=s7=kc(}g*kF@D};t7J>r1F zL4v{=ZYLR`3EY5@CQnWd8vM$ZEdk|;!gUHS0_c)#Y+@A2fl9beH_go*v;RjFJ!Y0# zKYw;nR^0{G#J{+7_uy70nBC5&VC%gtJR7lW7F%C(Y>K+R_VjygZKVe3fbS3NT^vek*KDnbmzJduy}i}mSt+L*w?ogRq7}ad z-rt98?d{Nf_OiDxDyd~*IfH9#K8*fqeg@_03Jy3ELPM#_j z-(l;e5v4>aI43yo1Jl@l|N1`&GcF*zv2hIF_`s9Mg}1Fcpx3jrZ?3$6v;+qU-ehLE zaIf4Vld}V=X)FSBO8V{Xt&Q!igJUBdgF`djtpY9c99;YzSGzk_x!DRkXgOrQ%sVjn zolHqpC^743>Z$!)si$4Ea8SfY4ox#P$zVfkXzl-v$ zETDves?$5ab6sF=2~NwWmXzFyZ3_@jKH;?pIA~40ith@{^1GPmc*$aPhfiqh7d85* zaw22he3^`|k5V)?DVo;J-vA6gZ29a(v123d<6~BLVGRz3-NcKA!vCx^ueq^nWqCET z5FMM~^M?M`#?h{s&Y_vnv8nN12433V)GYAg>XPE}>cZ;W@~rBd;^KN(=v#2-PETLo z3AidJ;DDVs8gI32(OWMwv9|D}`~W)pu0u{95C4#(r{BiLl6)1n52&;krI1j$EKY=< zjFEKWW-&0#)PX;5v+%LZUY#7XfgS^MO8xb(j=n+gAwI4H*s)eO3CIs`i_8K(QK}q? zQ^F;4i0t}~9ZCB}gjMc{BdNyoh~*l`Z2RF}<+PUD#I(S)#$ z*eNfM6yjq&w$)spEqOKIQdS%g8uaTq8;zSjKX046O#|RS+ydbUuhkwJ%Dux4!iYww zv-8Q>6OTMuSs=Q|?ar|F^vxVb-aLR5i2ZLo$e$Y-QBifvsVMaUqQ0Ct@IT_Et(561 zN=sq>+C81ej?OO!stqB!bQ8TabiBE&AQ*sQW?@!oSyfG`4-p-D$K1-s!WwXhoV?t8 zCgtPnoS#{_IfYqOb#uvIr(uJcol^@2pP|84kqrM!+`XRrrVaborN7z!gcE8$llX!V`V`~ zN}iaQXl-W^baeV^tj^F5%tzY*qvlJvdtSGz(Ad%O;#&QM9zDoy62&fA4Qa35c|Gya5sI%^Puf*f?o0Bz1J=$4b0ieSB>(p zhGs)BB;Jj=#b--SN!!@cI*YChHd7bwSW(@O8h>+ zHOD-7Wfu}m`P70aL-#ot$}ZEz;K9tbL6i-1HP7CHZ?Dmd>`+^yc5c>A8WM)dTvXHDI$m&i;16w8-S z9I&l!)H+$6FHX#g9$i&PYQIq&D^qeOz%2stWyLnu&(t;UJhKRgp8v?!<^+|Z?5Z0> zmYrRy1SZbiD#I(~y;xyonXQ9eGkrakX&J5%SE)lB_XHC|!?fR(&uRHn3#$Xme#LYj zJ2;QL7kKt;9W*e_;?_??C-7kz@tAoV>&z8syxDwUxS>IV;w?w2j_ilH4SX+Gd=v}G zMZGJ^;4wTYAt%er+qD4;^&)|CR&kPoQ(cr$xm!NazTm@A{TiatrgKeWv_H_ylQYl@ z$t?Dkd6WOCKP4rFNm^JybZlybo{8JY^;^XY*ipA+gvVnhSboMg(rGC0FlknGS6|QD zwY2#9?|{;^K!e^8_p-j|tm<=QikC)LXQsEvMeAH$a&kc-Gl1W7ev=L_YJV<13}0+i z0MnszKXF$)7mo}d{5JN|PaKqLVQ<8S=z^W}!Td^QGDqOqD{-)eukvu;*t0Q9b9?HM z{^{w_oT{JRV8bt8x2C$lk~qWrVrWX+Q-r(!wl-D?hpoE$J8)X?!K_uTS_H99xf2PA1ML@Z7-mh_0-*KHq?)ZN-(}VB2 z0`+nyUG+omxYAu8pw+X-@hsQgGA-+(!P#=vHKlTkp`F;r!dYVG=Z$>!9upQMCttob0{DpLj1&+<%#Gp7;iZTpkEfI}a~ zyz}P6Zb6_Ry8K0B$w@;Vr3ob-AVQgnK(?`tCC{*wJq=a~)r=d!SI%T~2S=yX^%zFe zujy~z!^(Tdq8kr(V($2CtjET%R=^DpO%%`ZjZ=|?$K(O)Y$ppv@$Qt`MPeMg;} z0Kafj_025)9Gd4y6(j4Nl$^YZFijv^&tzikaBr%s+CAOkV18Lw;3%>3Be?jrg8P)1 zeu@Ttmy9%XU%%$T@+V$D_lmx}6Nj1{eR$HgU7|=8uI|l_L+s#%%C65&wmI%X68>mT z{`G-3TW6-E!qWi*VZQqKvR8C9iF%}ulf?Vc*Es&a;sE_bzCc7|T``}kAMsT;bG#nV zpUB&Hgn6@Q2CHhh>~oYAW{)32g~EGiG$)X)Pgln}JYQd)T@N8~Bu*_E{D0DUq$KG? z8)}?a3*^eadil7DBeE>5-|B#kbGBqtZEaq`nXN3(V;}1U{SX(9$2F&#!uXk1idqga z9hQ)QAn~yTNuIF49kxMPVlo?Iu9%3Y>}5?WC%8R^^pRZx$l<1EV^2}nnaw5G$mwYH z1srG04hIQO#!P*TxLW;yJcvbdj8t3?*Jv^uVo8R=Cbgj`ULaR&%9nO^Xm|TFF+LlD zDyJvYsyhEw#4f-NGW9^+B}*eIjZ0-D7(A zbu!<}M~EG_!-lmdisWo8%!aeZzt~v-(Qi0(t#PCF#7Ui!V9fCFJB#JavdAhPje8lUovg=^la~;_HmKVM670o{Pd2hJsbH&pv#RQ zR%Y!n=6d(T?kRUSix1KA4^YV*tzp|6C%=DKOK=H2@bhKlDT(0e1fIkyIdn2I&(7D7 z$s&cRbq1PPM0Y+o#9yjC9SYpSLCHVX<`Pft}e6G%{SP?;)NwW-ofLwGHm+~LUYfDt>e^Q*B%^jmw#arqw{W9AV zp6Req!*#Ku<02yq;VYH%T~?ZpF4I%Pu9ttlrFTmN6D1-&(!Xn1+AD?NV0lrO>86VO zqBUAy2LTBQY3phk7r4*~a9NYh?EobMVE@FP#80}qH99{Y6O~NzjG%{EoVNa|AJY%> z%pxa|eBEomOD3Z}WlH_B&38M5`-Vh+|3?`3UTI9qY!j%ZuciTAG}9&2x}*G9HSiz{ zSDE?zxM0tDL?ehZ^Esm^dSOuLXzaH5P$xOpC?7=0B(@O^2+G6J-fmLk%}g}RyyO4T z(4Kndz(eR}e=O`(pFP)9E6P1Fckq(YJ2Z6uWwx>f5W`CT`ib?3RQe~)JOFUDXXtwR zcb?IU$m~iJ7EwY8Ct3{+yZxBR3*Ei?ut$>ho$uG?*+GdRdK`@ecBi-1N1waS%W?pOd%Tj6mopSYV8#4tgPk{RJ zM)85K(U-~rYDq$$!t!Xgf`+3bh>=b3L9bQzDVlp=R)XGrANpxC@bD2x|5i%2X}c1P`U#JrZvSscUTR3Gu6pM>tw zp>Ko^Uy3t}goU}@F*z_*n6Cy#G^UhXG+uWgHlMZY$T**NX=iU_>dsoB_;^_=!!>?D z0_m*cpK7_kh$p`4{E@5H(fe$DaUX1_Ds@k+WTo$SUELB*39Z#fLDP0ewK``wh+bEv z%8L%LH$))m8^MY2owuU!-R+UYJu+F@>p8j9c_yZ3r7dY8RkUlnKK_Ggp92m=Ik$w5 z5V#R>#_^APyK-a4yNeMT9qd|ZHPSp9vK#&=XujGK+K9&NK zfV@~#jq;_NZL{VPuKIT<<)Hovtdw(_2eQ~4M3o0riA|f_GQOE;GFHu1dQBV+(8j;?SDkTY4M4EuoA%X%@BO)L* z3QCa@dXyG1KnMXsfRH|OCqB>ju65UX|AYJT11p)#%$c*#K6`)mXYX^y*(ky`=#IMu za>7$h8;Z=ujy#~|+ql_Mc|0Aqs@^#R>X6b=bBLS}I#=|!0&JsNRP153TbV!?mz=Q* z=dWmGupzXc=Qe#^?8-IkaG7KBYH0~mK8sz?+{Yd)!yl|AIP2=4teV?+KgJ8?U-w7U zcJ^DObd;D?iYaVN^(;4<){~C04sYxV-<})nLy@R;ZgvgHK)lJdP?yK?7fJA??j79|IUV`Xq_X+bZlf|4-_&U!g+ z_HVRsYO^n@^}2FyueapoQ&PH;6Q7&VQ2jKq z%E>UmJoxg{#0IYr!^5Ti5w>351`ljaR$pYvD8Y5Um@xlfV6%A`wzd%*tp0iNx zrjw69=_?U-I{4xx_0X4!zo$|@jI@rI{U&DAc)P3KzE%-ndr(^TS&{R^`Mc$Z=pN6U zbBu4i4s^Sa`YXnoW|cO%O9U$9eOEQ|+id=eya4SS{7lRO5La%yDBf$cisAT#9+6+HEJv}r% z{p3!!J8G&wxO?0qt{?Z5KYQ}gCMaprdHLEYhSAn-6XtN@9b0{KaQfSmw3Mc$ z%fko%T`H zU*or-i-`wMg*{ZfOFL5cS8n)lUeAxJo}2b%d}Yk2Tu!nC&*a>@Mvv~p8!N{1Zhq|M ztElLjmGmbK*it7Tj3&l&*cn*fm#B7tmqF^iS=jEDz9rdm=iKE}hgG7}o%Xa_-K$%; z&KQoos|bwg%*yj>dJbv&pd8C=hjNCAdxvg%-|nif^#|8mp0E9e1-oCIeGsRIRiI{@ z&x~~2@qskf!KBz3{tt7MTl40YkDM;8lbJ4)kNoW;gC8ETd3aIP<5F_kgQAy>=Z=Wp zN;?ofmVRH^e9jlJJ$_tEtFKk}=kR3za?RVyi!M93fS7&3i-F{y&;8l9qOk_YQF?~z z)uWkNu5ND7DsY9}Yu>vUo8P{*y%7q@^5^b*;Bu#zlmzxW8C#w z`WjTma+$By(Ey6r&$coj-3z%l@n9KGx&pcqWw(MA-9VmJbD4*4IAuyvn?>+3UiRCy z_^NF6?)U9gyNuD@1t~mA0QcE)lSEk(_0Hhd#~>g7Q$ZcB0z1p9szKu-Hi8$KPkxJ} z2ArKJwQr8=>Qb~uO!aw=B)=HS$e#LqvJL_}9hz1FkKojQ&M0k5Tax_n2=~B0IgCQt zv#%`eM7YMn!#$8?wdU`+lR~4?>$JqO0?E#s44*yd|BAX;vHo~$5BSXx|>>J1S*)(DGM;`bfJ(28@R=^NcporY z8*CEYhxx&~b>b|-@Afj{&ScDQAbo3W`r}LEG^r1~JZ3%YZ2#WzuM5J*7*`}8jjW#O zzJBpUpuNlGo2Ij-mUofgPTaIJNRN-X=w;FR`9??QkD-PTRT;(G=WdVp9uSzF?FUqt zUu$l5Z~d}3)t^zHrLCbR8xFZ?xLagVBJc^bu8_8+?Lic@Eag<~v)}knKYqg)w!vk} zr>ZPg<(|nJcRMStL@GV|)_sYTS-4zLskqPhskRtz$E>)Bis}+h$=sKC1yAQVEi8O1 z39qj5Y&jf&Fz;*VT*6AtYaDxB-R#pi-_Iqj`dwf4i=R=h zJ?1Vgr?QD?TuA=F3H6@-XzprI)stkOVP*1|h!}z0^$7RmOB>y|09hB?QN-PV0OgZs z`hVQO<<+Pw2da>)~G4lKsi7yvR>L_8i_ZDvZk~Z|Z(%U(rUVVet>6Rx>VP$^1rzyUc z%b1*Or-W7nnIJo7w?3ge(!i9gD@!iiJUBl7b>myl+e|P!Yi7mj)}2!%v*+JW>Ni6C zv2t)|a7}G>NKGv>pbpujt7~tsYoFts5e2V5BfagEUKY`+bMrj6TNr;>3FUbIQ`qeC{V{2t@$}jQ zy>Lq0@Jfc9<8`xaYiX=p`!M1}K@mhq z<0hO@YaocC#U?vk3Jf=T$IsNX-M7wKJbTn8gi3nQ?5ry`4sBDkH<2(tbSE7nDY1W! zIyJjE`^VeM$Ia2z(fh88x4Vn;-NMi@bFc>c);`j}-O<+<+QuTn%gf8c!U{@tn&Ia< z{@Jlo+Pwgk7el;ZMser*tZcy+b|bWYHdI_%E_%{8gP8+KN$Af1q;%tUzk$mYchL*Qc-X`WO6GSACC}!O% ziQj4En@8Mc4?ogMKl^e239lez=hqpvqr8|;!k0}RT2=cOD@WXZVA`XsszzeEZVU`P ziZ>EJbUU$Tr?Kk6gNQ_|zvn%Mj|l&t*Lo?tzjpPuxp#ehrao}KCK$;RPmT69@B9>N zLUb!z^>Y$)V7knVm**$8ke;SjF1h$*5o^4Mw#;7HC-SsEDXERaVWpoI5id%AzFhJ# zxn{O)r0`kE%12)I!rH5MYeUo7W!=g7`5*t}ue~!sn}yn1q(p2D^-(yt(A}-GxcCUE zlX5RVR)ZbS2v)cr@9gRO-p|W(-ra|?OYoGrh;!YN=?=+WOdZ&4-5lco7D9d^h(k(Z)aUOcdOvq96bkj$pLTNYmI zeEBw4A*IqUP?$k8enx*xeM`M@8^46II#~g+5({A65YkJTrTjt!!4xug2A0 zu8-%2qH&Lu3#nQM0Rw5D@CzXyPE_$Lj&vdM#nS4u@J zjiyi>$$?6<+!iN&)# zkZn5_cEMB5X|wnPp2cJ7vuwkk;HZ*L-HB^~?4Q-8nUW>b7LTZg-_kapzXPyHiJq1& z=H5a6ziYC~%37oM%(yHi>=->(NnMDYH9kUjIbQN5zqg&_vk$J>(Mp12LO`8+*_ZLRg4%)*4OcW1!CS3sdasfEe-Qu(tY(psNF z%}^t~ujbxJd7=0-(b#5I$hwg*JgZ@i>qk(qZuFR0@xhhvo~YMU(>Q%bInvGhmUlb2``}k6RX^m7^3u1Q zKMX|kgX40#3R>q+!?nGby|3PX=z~h+UkvEqpUT52SRbi6`Jp8L(Q{6w&X)cab>DG~ z;6DcJyyX1svb86l-+xgUyRCr0v5FWb2cLSg6x4MW$1_yWe3^!Pfrx~z4ZaMPe!uC1 z5YW#bwlC1KY{cf5+3~s3JNX9Qn#k*?rk?6sCAj6v*f8+6v#@_;IrUonUHwC36UD#@ z@Z9t$J7Gvt1BZD0VD{SZQ z5p@E&&b^wJ1D%5riZ8cScJ&VJS7ldDHnZ9(EyB~ynV$xo#rXFbrW~<`0JeEs?{s?K z@0Rg}9J&&;%UQd;{LX-nHDwO_J~`SCC!PE}e^k(o(9M0wo!f+kZgd}}hH8=b*xkc@ z<*^5>?hAdncnj@n<7sE$eiP+;)%#ZX)j$2MF2(niaQu&_-3Yx|>Q5eu3vLm$RX7OK z@^z!of#?GO$mAkyV%ejZv_$*Z+-^G?;+grY!wk-(cHf)2Ao`_n&#TuS%uPPxz4|RA7V#C(M=LuLu z*LcohiH}ZxQ@Qpr_ltK_KGn3oC`owcJL&(?#)23jSnn)!SM|SM9WiHBO^`qD<6Zed zOY<6fv0Fn;-Pewok|MG1$Ye-xNwyWiCI(z|ZnC@&q>!+I?hB@9E<$ zLZ|nf=7E44R)C!)`A+dR0Tdp7TBrQtvayO-jJKYO6>UxWm7FX&ru`up;;X@%e0 z9qNLLo0$TVPw0!`8}5NU2Zi3)l{Q;1TbxnvJzx?k#LxMT0J+>N2Eo9i+S0htw1rJiax_kIe0Vl(DIu{bWab5%E1*Dx&fog? z-aqL~W$CJlxoE3?4b~y)^(&!aXeG0d&^Doe$3W=I;#jT8It|v*!{;-JSo^wH zX}R@C#tQG#P!@q+nJ75ffAjyIgvTah#9?-y@AElCG>Ck+cB9X)bp2h?SE^uKqFRL} ziu^waKD~vO9k%Y`|Gi@Be^)>kL8;WA7no;`ocsG3`seTczeoCeL__Ugh4}C1Ba;7)?tfnscK=T- ze-E^8{azyFhv2mktE=!7W!O;gyvWB>Q; z|0~A-tE+z%;s2yGklp?7@BhwB$PfPe_x}q!q_Mn_B?dit5`um|{qv<>6%#K?Nzi9?#A&t2aI>d|+c-`L`eKXabp1Q(e> zM;K;EoVY-cp=!Gk%!f7wj*3wnV3Vi-Y!oyT-$K7cX(v7_=3dC@?>iVJ1uFA|1y9kM zu#L?@;RIE1OQ#NJLIK*fP1Zs;m=F`_@Beo*;`h3TpD%4eq{76MOr zSYt1+v&iA#g&r9+63p8PT~PDBj)&zkRRtG66qwQZ2OEYAR&2RNB#hvSLm@glgxCUC zd1ucPTuX7+mb+Qg(O)2!8{IyuBGf0S>W-2Tw5nw*6!MBU0_d^@P>b=Rsdv-QV<2@_ zS0Fd{--1)>t%XKPP?BpXBxnf<;mbj9jZH#}e{U`zAq1#tu(5egw9#jDJuP0)gky^vZd%H$L- z27VF^9qo&%oY#r6W{do7C4EZ^Vrpn|~ueuKpC%1}=ys|qtif;C&u^%;&Pk9~39n2`bT@ME2YRj#AEA^eTUkCUQL`F;Rx%|}-WFIC)8 zb*sccRTEpY>1=o%nU~R&)+^l{x!Aq?A+I)ey_PE}5YNA38iEjVT|`xtU|#do{rDAn zsPelsc6Z}ou|(1SP${!3x<}LUV@xU%t`7`5lXMhg)DzXMNOhU-%6B}PuALNThR^< z-Eo|dDm5iohA7%PsZuKE<23B!Rfi5u={!cL6nM&_b1!?vxtn@^s&S>vTK97@eJWgy zN&|yl=a3CnXEi?=Qpk1nbupP;*swo`3pz>oRpa;}%aGooNGHpbdLwnRm1~3V0RxY9 z|J5r!x!cXdRyX<#A2>Aov_33v+)n+)3Dr^g+?2x=<@I^}_}1a?EhYQC&+M_H4c`{a z@Lz5Eqgm`Yswu&}vfF}EvKEQ)ZN~pY#AeY%QgUb_7E;GlZ&|etwP{+2EK@Ju-#ybK z@~q@)%g{FcU8^@18=t^oQw04&ujibXzNn6WU^1$AtTMvRXp7u_ol)vyw|iuywLUED zdA-gx`+YZ&=Vw35&kWJCtJ37L6U||^=74QJ-;pCQGLVUBZx;SiQ35847FCEZ!f|I; zPu*lzYQ_5d( zyFHp<>OogAd-!%YiU-J6RZeMiov505qa#@JMKhz!El#zS^XK)XDi6C>sQLDvLFROm z*Yur8208pD2vx^KpRKqtzSGPuw6y<-a-g?fEt+vl+N zAr;bj-3C}bL%(QkID8nJb)x{LPVkJ>y7X@Lc=mu?fCHS+8EHy0>DFxWd+%AoiMQQ# z6?ZsCUYcTWVYpBi}fYo7*EX9M;Kif%e!6* z*w&)pk!x370m|o`VI{)?zh!31QwOwnavw9X>I+ky#9D1a)m#nZ4<|RH&68gd%*clA zhy{kpt*>E1xir`!E4B&cDCUk%qTzG5-E9OOsFGGb?k6*GiVY+SKHy)i@txj9qJ@uu-l(2^1b2s-NOYGJdIuJV| z(v;^rLmJI!XCtcS1s_=*N5h}yUs1(V#kl}aeud9=6N+obWzsqEB^VB%(*z?is)pw% zRjP67L_8L1>KzR>#ZqyAXGrf-oq>KcZ%6!QL~m~b^dqsD@`IYd@$e?t&Bvdrb*`10 z>LQo=W{7^)^IXy+G^C|bn*^4(U^(p*cT0)j)fu?(#gVTACJj|)F?=MDtp(g8BIa0< zk!btsyXh;OlqU|jrwQnMNQn83lW7vE8i014JcXf>0GirLp^dQ^GPj*x;*tO-tyDGR z@(QagN2!D>9AGOJp|HpmUTf~4inD<>&lYCdAa`pThRldv)1xxHzBR+4j=g4Z!iE<* zAkl2ZBG8t&$r<%2h6xAQQiw#8ehGO9WG8O@o7+V}8e?%kKM`Ogt|T8>N%MP1fUWaI z{x$?g^;4~+&%@uZTLoHcqihg-K$-By8sIus=io$n$68Z;67uD4-28N!j^gIto|Eq=ZoE?xrExY>q~rQv5d zE~~&0HIb|hRJtkyu1Ijrri0~nK0OXyqbdP5+H|wJra3Okz#}`{q6B!wsRD6AaMj6k z435Vn(SPfO@3VZFCLq(5_dN{!r1&3kRG*8v@IWPr%*p4dbV}@nj-F zgGrs6iX<2b$ilPamS;ago!fyWuE(JpPm}O?F5x^$S}xl*gDyV9*#Zf~p$$G!Apu_d z6^DDq;FRN8D$Q^yrAt`c9%Vpw1z;y9;B=LNh*MH%TNPjURRz>6AIOa zMqgJ3@*s_K!N;MWXKHS`>(ho%SmPHc|Eu_E5&?XdYi*cWeta`}ptFjrI3NP3l=6=Y z-bWOLhNgaE)4`~o5cpUt$SS5=LkhI4+U(#5m4y)poARhgEfzxD%Sxj4ET$ri(=$%cQH5xF*4?Rk|eD3O}}W5jrr% z6120(i2n7GZlxlDw#Fg`m}%V%liUp-&XfGw=<2WOWY4g4jzMpoE#cp1Kez$H&7Q`r ztQzk363mU_=Hyi5k2yxsb7i0tQuF(_U3fhq472H8p+iV$iqQNnw!u3;#-Sg5Vb-1^ z;pdQQG}yvCHkGo7c>Gttq}^mm7}@M92RMx8mtTrLOr+L!Fl!NQ@T#xQyuh+fRu&}G zS9Ghc2mApE^y7K#{We54mF&VBhDO-pG?i8QEdk!c5SQe#C862Wh~BLNIDQPwCE#cI zUg>m^!ElbN3XrM=Buk+0!@<1`uDr(v65w6Sy01*^RgL?Ve|93bB@F=wGl7sWQNec8 ze?y0MMd2@M4H!#)t?#(}&rm&Ix9W=&+Z=kL$w6lxB&kr-FPTucUN_@p_`GrkUxCT- z!Lwo`!CR1tq{QKFGR9KrR>DmvNB{|GbfOO-4*l$}!l;h8@rJE8Vlh2jf@K@rOv9}S z`mai$AyZo%htnIy-h&iGg(U5{K=wnn zVah%0;?N!+I_M%wvz#pnpd&jD7qYqdN9%dHfZmDEVJ2n&ft8H{uQ?%%Hf{hp8CjZJ z+)g#3l1P5-ad0xLUG_Z^X{+ivH20d&{7IICP3q!GssP3-66m*(nc?&xR{i8j_|r(L z3gGE5fOtiR@P=arhQ=jm{MB~~83x&hLM~)5*G9WpS;0J7Ssd;?23IYC9-$JpD+9@O zD0)aC23G*}#2D=eb?`iyxvs9k4QR%_VDMcA`BT;Dbol$MEJz0AILN!!YLF0Z*g_6_ zH3b-A65i!#hE5gA6vCefZ1+<^0Ox7Tvc1O?ReXi`RnX82Z@Y&j{$@$80LJqQW5Q__ zS9k52JnPR>=w#u}Gn`KF?Co?R`3+PzF5f8gZvd*wl5t&kt4>G|pYDQW*v+{AZE}zB_!XSl#?_SDc&B zI~AZUb6-eM{gOk&qaU6pNx1frIGhFn=X;SQda~#o*R%8(1<@LZo}WcNjNPAq+jTnn zXv!d0wFk1EXdh=DH0z^Bp?Rnzfv!G7gnygkn#^*(hoMVVfUhlQc|IL13nET=$)JEE z&%Avvk0LS!#gZ2u3QWo9USPz5jOMN{LOC9p0;x1eF?2*;p2(pSKP#YHzEQ4c)t^`X zy)?DDuv+!#lE~F?K2c$NP$;vomgm2|Ka)CHsx^nR0NohjmnB`FHIqKiD=6AawU6(-v4aGy(1t7p>d)4 zEiB?8_Zx|}g`AOVB)Gqs=4aA|C@jTIC_`|F_?s~pe*Pop23v+xhf=K@#m&+lLt6J= zARM{jr+*Ia%aRc)}AI|PERq$a_QpCRWh0Hl}S%bnOlTx1>zOt*6&DrY@Cdb5 zhlKM+`Kw@3olk8(`a6LC@a&-}zdr7tIIs}0f2pCiQq&(VRlXKvjZx3cQ18Mtz8gekrqT^9#(*i-Q|k88ec=*1@5 zZ!T+#Siv|a5>ft-c1xgD_`K^ujI)Z)$wjV%`M8F5Y-Fvj% zPmqYk7JlXRG`*-EM*DZGWaOK~Fy;i)z%W%#na|^{p`Lp)nY0TkKpY7l&UY>OXTt9U z6t8m1dstqlAaIvQgRO962KY5@yvq*g%v)_3EkGnl`oKpeSdfLDt-kuKOtjUzz$X5T z3UE7&KjO;U0s#3~wL!7{wLa3JJ#Z>3tCv-@pz-R^gD<0y2}sa49^3O%hJ>+#bnzLP zyQ%^>?{84^GkYLLriD^}#x|ZyX=`+DoWq71aXgOj)fUkKf>Y;)=4-c1myXH!rkOzifX z5Z*8&8u?cXjOg8s5N9)Z;R#6Zu2Rw}z`O9A&drgDbzX=PPFnfZKa5qgk;sO-lGU@) z5^RJb$*hLOt_EfZ>5E^v-x9#W@~|M16#}c?j|c0>Zj>P;spI`lMG{!GbPpvWB0YL) zxq(&_5Q4U|n`vUI9ha0d&AzxB`H&^Zi5p3@5Vt!4G!PMUvt5#-wQu0?E`qEI6kL1UP{w+j|o3TJf(T@`&u5QncDkag)CO^W$?R|X>UWb@Gk=N$k3Hhny0AWo|V5@v!OTx@ktI7~K zJK6gb_%rFUpxg`IkuY^l zaaXwGzfVG7Bf?0tsf0X8AO{kJrngAfS%oGqPl%Hbj;WLUS_GB>F-jGwI!?ku81LiX za5RIOrnBj;M;kGYClp!z$1o+F{^w? zsS00E80zFoKCg}~Dq3Xm^ym?XOH!cGQKZ(X{8!zZG^hL^SBHjPT#)9S&Fi+c6L=Ll zSxfNK>A17zyB;{t^(on81q?{8alm))=D$CS0&7>*2EBwd+TpVG z_ZHI0v}W$n@arp4K;mX!g}u(aTAxm7-T92Rcv^wTpZR(A_^Vo{6K8ixfSz?;0FM2q z)|AOSA!0(i(p)W$LBo}152evD1!KDrnAC?^EA_z?6TgF^w+)*B8TeCX_}%T|v2%UR zV^)}Q(|B~kqF=w=%ZO>-P*;uqtjizMi8Zp$Y~@)!I}{_t%-y*2Bvw6E>k z9cIA5=`m6YpP8s;s;`2PN;0lP%d=ju}ik$bb~==V4^1Jd}AjQXoVATtdUuFtjY z`=%*3?Y`mWTD_FysN3d@LGT_Mj{_~fhy(qlAGa!V;V$EA6*pAj@N21vfCRX%+?xgf{HJLJ6Ud9!eP^j;YFd%4!({qN zi`st;<9k^Zg&*SVO^!)Pafk?6=sT%gHe}ESR%dWbABPfy&BoMnD8bvGL`Pr$9SK_d zd4#r(HH5j@KX|xb@^+1i!zyK=;QZP9w5IDDZ9=DWL)(Tl0}{Z@f|xZmIPB+FO<)t3 z!adrkwP*pE>TU~clERYjWHt#-r>D*JjN9qjazl^7EtGNO+_qTp%{!V<5Tikbs$=;4 ziAEH_(G&ypx5fp9uGZ6<3oEv|OyHOw2t~+zBtNVEvql3&W*T{2Uv1ia5%>LAXOU@t z#iusrxCv_W+O_TMFeLqJ@;UuUxNeE(T-43Aw(CoQ^*Cgxl^c>6lQ@};5qmo+hWggp zll8iCx+~NzGDFHIh=)1EZ!~RHYcdiyEy7<}(_=6trlj?;8y@gwtf$~_2>*oVz~y)Z z*o!;~v^>v9B;usX)o1>K3#R~Pn_Dtv~v+i?bEZ6j(FDKr@0pmuw-CdVw z^>TaewByi;c?!W?+WfZ#uoV;wVYr3!k^l7g@0rh9gdl(m68z_88+<&njaWv5Vkd0k zdg;$eV7;3aeVEI(#n9bKZ4^m}!{-8c`f+urha~h*yEaU(%v0QMrT>pELhczilK@Yn zqvsrb)IXT!L`Z7$AjYL!vBKsx6GHTxA>eTYq>DQEz7r-vQA>)J|L-dSRTcK!elMZ? z{Il=x*naSD|AWX6vZ25or=o)raD}0?ZJnvPy4&O^@P0E4UG9^6zbpIWgO9rMf0pNN z;``zQUBRnT;FHfKA&d2D0~rhxbbKCxht>++GW?x%6n#;VBwg<$y<2=&guk8h-0_k% zM7RT%gtC48Lkoxx+VK>NyCW%Ob9i6mF&R^_&q~pAh>yqxC;Y&w(2ko%vhZ?Cs=<1N zZBp`KSU1ChNNjJ=tm_F(A?8znSLs*tA5kpU7WsS0tk6EBg_EJ4eiML&TVF<0icDr= z4qIG4fHb(PB*vI@Ky~gj`o`x$paAc?DWt4xj}4}0@vVuo*N% z_~ffcIL*sR+$`yK5B9wCJ!-P`6I?r#)_wZ5j0C!+w#v#isln(rk~bS!@6z(#t(YX; zp#^BE!%r@_d*1lfD^*~Jq~QEi2XYjDHlFJLM8dxQi8T7=d#*cnz@V&WX*^F(j8!SQ z^F09EUZdl}LzN(|Cjq`V4eMZ4+4Ct1q6G2%m!+$;8cLUrY-H2Fm-oDdV)%IxIYfyA zW@SSY;mx*Z^ahTJ3$OKZAj%K@xC%0arFV!3wFzm5SPAfPeH{e_g!Hl?20T^;aN&8D zV9*~R&ajsr{nx*5{>xtN1za})Hti4*pgxAjMI>IFhOr+$HfsOq0MA-88~C*6GiKa% z&B+2%dD$Z%+2KK=HxzKD_OPgJl778j?;1|%DwkxtgIk1a)dw_(`uoN1-?v?1v9hea_7C%~tQwrIym0VGwtDJsj` zTeRPO*1ZL-<=$ZUh(gA*fa)ZA z+R~!5r+ypayEAXNFcRGRmIlk9ij(=}y{v7**yUPP5;h+qh*~g%z+OSV{lMR3x$cyo zqZ`gv>(mj@If;a)EfUMyFO)x3pH_NE!m|N-=P*#N?fDc;cT))9rIZ$#57gc872OvC;^ zmeXC%`hMWiiE3j1vZL9JcCc8^Eg9C-$V=WGh7RYWZ`|F7?8d|GWfm5t@g3+^9ku+( ziTNRGKkD^qYd&BB>_Y{3E zcDi(RE-Z?Mv%~DQIVf#jQl2+DTG>=nJN7O{<-0u}iUn^rgc2uMxebzoSB=OCA`tt= z=k8KjUrn@3Jfc^bw8Q~-71qL=X5KWPgp@E%TEQuT>-ODKi*jydO22Jq1eeNTw{KfQ zFim*hlwf@geuxZNGOJ1goLPNbm4N~Vi`)^qFcImxIEaOZNBXGk7LSWqlc*>~=Qfgv zMciXZIrM}=Rcq;c5TJ~~2dKQUPXi9a%dF?%P7WLA;ePIm2H>eiGMkSzYc}=mE4B~K zq|+uW8%oq+FTBDr7Nm&7Zb{mPB{A7@lG1Ynh$6b`K@Eu8pwq^DUOF(0Jg-cM+7uJf zg;~p6ApsHt^M_p6uzX?9N>p+J+A~{LX?}ZCqvIqQ zm!vRs0nu=t{x7@Iaqj#-`zx%Akbsh1k{wdL4b~q@FRUg@gzJc2} zL@gqK7E|z`FQ+SN;r)zph2l1%=gVm?R6^%aJG+>MmEbR1I7cKZ@;{&5aIba=Nt&tC zZCEFV3k7)F*2SXgrR8`|n(dhF=(ZnZy*k*~-YKU4DrC$89nd!Jm*wm?@%H%CFYGy^ zzP1YG6r=}2H?LZwM(-ysabB2B+Fa3Q4=#YEcx1;f{-pc1nSH zNW%|l8(!uSK|(W>XGAu5V1*B>1~ocRjFurIbB^Q(5z#Rf5FrKfRXbVHFOcZhx+*|E z3K)Ux(j_94(OO#HL{J-CsW=?+jE5<= z!h*V!8iIV-X$rA!*ljE(4ir7=pyeO6{%Fy$Ro1@*)5W4b!A(+&u3|)iA-c5kw9<+T zQLptUo-r7_LiqgIeR0CdHBvT%p19}i+q4<=0p!jL7zdFAG_Rme8XQeWW&g6(X-Ayp z?Z(iJq|k2qt+mZf(J}2GwzbDJp(^%BoX;GmQ{-GvJ@FF5WMvU5G#H}=JDf?Ibhj3K z_p+gGT%k3wb$hs2+X~Qqs~-%0V(PmSM_4)r3ReT|`Ga*owxdlMMeXn7TOi`y?T0pC zGldOYuha5mr8q}0dy&NioQH=pK?eI2K|Rhl(qj%${jPK4e0Q8`AwG)3-R@UOfROu) zGGHggd>_)Ur5e1$;dQT%dJbKBJajXIvwIZLx&u8=8x#>w*PKC)(B&9oB59PTI4D6l zG`=h!&ik!v+^z=$gIh2?tlDAw`hOy3b&?1$%-;kCfoB1MApsL89}@?G8Ej4*PKhG$ zURiW;O#sT6)~yN^Hlk4V5E+ekSo}-G3q2Q9Z0$B+K`Nm%s|<8m72RMjb8J`N_e)De zypw9W#?MgiOcM=G`{4!eh2?*1i9?fnM}hT|N5ihFk^DZ-f+=RzBSk4GUHO=5@zsXU z;ipcO)R_W$dI}wFTZC&GsNpL(5HQ<1?AOf_mI4j(NZ_|8#nWB0sB-IJGeh^~4dG$D z@n0q~QlL5lEKFKD449G6nIu>Rj#1h(JYWoH9t(%k z+(#0po25pBZOz8W%x4B zpqxlBubR(Or3~ozK*k(89Lj@IrgN-72@nf+=yl~8FXj)v6WJXe=P+d^JKg1~r$A6h zASnZ0=!Cpbf;Irj$)KOwh~kr(N(nd(5*9ijjmz^J`fzs%qOk=^aOnw@+7;IZoIi=o zmGLhhTKU{hC&Wvnxcx;SP|DajPNJge#GkqyDn(|fv}<~3uF*#&gV2NdXndZqn-}S5 zId7vz10tIaJD)*!lLAkqB%sGLvpd8nl(DOysbCld)!@v#t^urfuuLNOj*!t8w6OgIrCdL$rf-8_pm zy{mld5w%=Y1!l<;oWEIrkS`kaBj-b~i5`Ok<=P!sUQ*~L8qA-E;{-@Gaj`f9$RmeN zaw?LRUOam9CI8ho&q@;9Fk~n5zOvTLW@gxTCP#Czb>SXANcqv}kICzC16Scld zNO*94OwA@<({VxA#tm-TGrR@ivvc&NNfU6snSdM1Ci$`K;7)A_8Ve${%SaH3jum5F zYeTnZ?#eukcAHH*Pa?J<#;*REahrs)fF*o*7+EenR5Ss7kVwa;h6)H8D(XcuS8;Jz z7OzKtag5|7!)(1!a=wU&evOk5=j0rR6_ZDV5=T-*C28KL9hsRE6lfy5IU0YXSFk z{?gj&W;C~<|OxF6}K~8+bZJn`3ZG2 zxZWKMtVp1fNYawXcXbG_a`n*?{%riOp(RA)>G4iuZd_~h^}TaQ-$q{kx|n}3efxN_ zS*^j-*XtvUNGh-?*hdIPFzc+LfV)Jv4>F05~@J;PnTw$dBvHJsGRhF3oO$jrv90i# z<&9ySQ*eD^nsgHkN|P^}Gy>OpL$!BFpyQ8`Fh2L&;JzkG$QKDd4YJ-7SqC2c^Xnh; zjUt&nEON#VmRHMdx5*+e!f*263YD3*8OUs8t;QR4493S_gDl$>;d6D=iiS@2NPLsj zSWsRLuPztWTkrB=e(cz26O_*YZ@?F$UDqjUAC6s;p|Hd=pi+s2_lNpcFIvgf!iYez zEL0UigkO6_7g5L1)v4U9A1vxyzI;tB4uT7Lkgho5m1T(d+`e?E*dIT`;DGRBCz3G`@b}tibcood%%Z6WFsR_`2Dz! zu%<33Ic7GmVlg?J>%N+*;~Q}=*|j~PX)SZzuznrLCcvO>Lq$Z@Um#zY_C4u(riSXk z)`LqP#EMcJI)anl!?%fE_<44n<1x{w7n>XC9}pm+@w@-{W9h(<5U=5qrc%YvK8hqP zgHMcH^r{D^tC4TWze9ZL`?@3}kv4|j#I(cMg9Y69X7H0ZL(ZW-Wa(}2dayN+{xTWl zkrkm;OUW9(4W^XR=-m<~U>CktENKk8KzwfY$aAkd9=I8aX^T0~+DOVAhans`M%#jux76uaHuZ8RpD z%!Ad*B&|aLZO|Qe%2^Jo=8y~ix-e`|Qzb&BEa`HCksrSpv|(=L)49wcjC&@BSiAFt z>Mbq|utWRCyMx(%PNRzh5>Rf%Y#08r!)63_R`aV-Sq}@#@{~kAi8{Dg*1?L7o#jme zTip=7Osh($rl%g>cu)n{792Rp=PhQ_p$a{S{_SE7--3g8W8%R64w6hX>=J8}&=;u< zn%jwuVXJ?>$F?U*!y{S#7cX8kH8u71^>uV~3=3m-rpRF(nyx1NWHe>%`7e;gd!Pqf zFrMIQG>q1*)9K2)9>E`fZZhKiGgaO3&!@s`>cMhyR$5^}L(cZm=y-_PayK}$cm>78LYpExVS|7892zfhRB(J)xm<07nzIa-jgC6f9W~AuNAZX*KKz#67H<& z>e$Mu@H7utq(N=p=-aUh*X_;Xk}$r4p+mWD82@VO0v%#A5P#jFzh!3D#al zn2kAthNzGDY!Ysr{Il4?wZHV(c0Gq4IMPokjaf7b@(Hu|`Tq}RZylB8+IBZ7U7llY*Xv7lj0lY*>ZtV{s`8cB2cD?_J8~}H zKjc#xp6R_e6&~ZD9zZj6^wHJdYV4v1IJHmS?uB!JD*KXeYwy5Jp-j|p8?YJ_r=5zlk zPB_`gaxi;c#k;nsiE8H*0egRnyfybD${Uy50{2q)V1P06K0eMpMR{mwB;(2w8KLIB z2;563+jvvOX=|>;G4j*PzAU=<6&iU|Pg^ucZESNg=LoMB6hlA6& zO8u~6^R#;0m~*mnH$yvz#lC<1yZ6PEHq*xi3=x9JI?Ty-iLq%fpIT2A6uSOra*^`np7t_cW*z`O*g$9X{%7U zJ=K(wRb-zuq_}A6?`q~SP&UOGdvT}e?ScZQao;%rr0S+1FE3F9Al;rb;Qig5T*o}o zIq(xZLWBj{6yz0d&TgvzWF47;1m5>Myg-wp+(X=CKSsjMQZ#=gJ-*^xZ#%wYVn(KN z5-s4bgBVZrDxl`enn3-`*tZu?*VVEoIPrAq%0q>S*8bL=sule>)RvMbIf2;OOqZ^z zi>#bc1D~Z$0XeoZ*`^?(Ysz>@t9i=C59x1@S`ilg>gpwA-u?^cS3DyTBAI3PgVo z4~X(*)0$3DfsnL#PGF3oYB33(!a_i~iAQ{ghyQ<$%)Wsst9yu|t?vCjMzv_S)Af@z zBR}Nu=B0M(t>H)Eu9(Ol84>Z=xGPco3hqfcp^dZS(eD24-hp`mWv9k5kM%%}A0jv= zU$YdSCPPY|lTlNH$9!gPWo0T?>H>WpsPOE?izn`fENoYP;9X9*_*}b47_uhW6s1nk z*KSV9^&0(~l8l>bpVY2<-p5YVr+cy%BR(jQE#2Mn^Ow_vWz*0DR zGn}*%H7*>vvRycI=0JBnAJMgDoYyEj-RYWy0u>$GzA^;4pE|V1XaZLAl4DSpM7OM6 z)e!*rt5B!)9epf!t4}_69_%d^IVjZ@Zq0Nb?inv74y9OaAH6A@%04HsPv0+x2Gs29 z_yxWS6d?Ph#W&v`shx8)b73SRySwbuUG1M zQAiod5Pci<}8EQ}c z-^b4sMV}b%&NDKKaJbE9+!WoPe(H;Rb9D%5TyC{7R%Y5;^QPEHWOI|P)5Ehl)ZL@O zpP(g-@2B+;i;TDK^g?UDXF4+E$55uOBe()xagrbLwp&$X`c_vIUC^ zr{F-_%PRrj`T>`H^BUhvfq|4LCNPB?W8j0odR=}f2^G)$9e9QM089bQ9OT_A1f$9G zA^wax>-ANzvh=ZRpElJY1i{5EcY@x9cK%$7>GG=LqqPIPyqY2Q>=9J_gM!|gT=jDX zaL(r;!Ge8w9w&Ex&a>BGQuWn%2|~Hfb}Z^^rmi*lLC@`d?33lsu68S404oYl9Ym2T zQ=$^TkJvwLpWoZ)RuykfQEvdlG5pd0rxY731CQnuw3v`ACM$}5qDM|wE^Tj)&7U8s zb8>MZVPJdaCc)9c;oiR4WZly&j_~jVp`~cGN9s~iQX3=1Sv56UnJP&lo~KZw=MUAP z8r#fBI6Cr-=xAvrMn)2mkd*BY(QnlrZC2PCR6DKoe~&AV&2kSW@iJ%@E_2zLjfx_+ zD=FNv-dDIBlY$)-7nYs~(enZHkQK?g5OvGHw%yL-zCSKtXaG@Y|M6Hin1V;ZF3%W$ zaC+Mh-tMLO<2rF2a^!y25xoaujq=jyxqIGsJU~39tKYb5CYWDz%FOfC^8)|+l&%Yo zcjvKvS6zkCo8{w{)>Y4^j0giBCeKG6@Y@Pg{{5PrVTzMlzZ^N|kB5+G9@p`bnrr_! z6L>>P`>>^}2TrZ!OE&}1c^aX#JE>*5zvg2m+Ktc>IxVR24-5lQWVqxiqhKBY_ zU6g_jvI*Y2tR9;CZmCp7%f8yp&)B-)Jw&B&dlMgRL?_>OBk&bq$z zeW<(rY>Rj4%s#nJstys#g)Z_rGZwy>=^z#PIIjB3lGN?INJR%ZGwRjuiNNDR3xLws zd3^bo7z{2TcYY@l`L-Oc2{;_5wtQ3cavqDK%b1MaKF#DpgXALLoWe)CbP8fUPxQ{v z9q4f~7yaL`Med10g(sdX!)ni}see;rC>cl0wS|)N1rm0)whsR^Z2$B5(NMl-Y*dtr zva;>TuA$v<&KBi&yw>~N4Yk)%@4b@$7i2fg83CrG|e1!OZ)Lw znR&D5Q&1h3JwstQrbuM2u#4CQJ`%Ek6YcuDGQRD2Zx;=gXTEZgIrjb22k(|*-l2j! zz?}hqhUNbavx@0HR;N!AEWjP_G;PZHH(}^laIMG7|+V=g?7_dd?O{JaT7_X(Lr-z_} z$;E6iyOE*c$V3=p;Yn|X%u+{OU#YyYvvc{`X7x~aw>278Gjt{S9#{)p&VGSM+-}Bt za35)R&|LSF^d*-f^dFtT{%nitG)D2*xgx*?`%Glc+5y$1gFG=ugPeRX6I|Q6o${x_ zoM^#JXn*f{UXX#aFznJu4hqO`2k;xGutBC&1wXqH)`m{@xZ+N)FZ^z`)PnAiDed)Ma3!O?badwX@V_Ds{dmXeav z6LoBhyQY8u1l$x%>b&{4QVQ>4rorEO_=k^0POUGqK-t!0t@~;_JMMA0ovqdE%;w?g zS|KSZX~s&5-~aY7Z?N~EW7(#dL~Lx!yDrZmIR!u|b_di(+>Ro#+c}9KI*7#WJZRTV z*XZ@^@fLT|j&by5S24UC##bf=rX<003?AzC1sL2xltPW{IpbVGKYuu&I~Rh~klrfR zK{mew%RE^E7y1P2a)xTHaJ8Ic&N@8>NwZ=d5Q40~99jBrP1!Kzp$@Y}aR_v?;q`&= zH56txSF814X98cLR;3*rm0(hK9i&$h3TyC4VE`Krj%KOd!g6nhMw!{l#@xo*ntTZ& zOCd={L~zxQR40+w^VGguRMZP~oc1)J%zSJR?lha|9O&%qY-$=97^pP}IAc^yuJJrO zl#gW_I68Vu&8Az2Iw93{SpC~sX!vM%gOr41&e)z2O&JQ6AoDt#FDHr_Bk*Y3_%Qx!K{Q1BxSoWL>)N#80OepFU`#1 z+>595yJ#%{+baL382ejHfSIb0Vv>-}O7j5uc!FQz#N`+GAvDjoFj{JUcC zzOQU!wB~TsTqc|-P5JtTCRsl!pmBLqBwo2lo)oM_CV~mk);izy5D)^JZ{dYX0q>DhokE zua}|f(kyZ`L^nsxe0Z(~2BzTC6U}ItZSh3FJc^5GNAq2=nQ zFV?-TAuzuCp>RyO;{mLNQ3(8edRFFD*BS46cI-klv$nCeu(6VMzO=fzxHvOeBNZG# z?FD$NX<=a@%;ANQD|TQ9#o2K7p`~W2g~ImQMD>uO=(*~fH_yT(>{@QwvD?+qk|FjM zJ2Rxi_V;$2oNb+)tmK+|(w_GH{o7if8-^ru7q44bUS3{Avz}v(KG_?$cl>@@>B(<9 z+o)+>*IV^DCAM5Wt1Bt+Fks92va@GUh^-g2UEa7)YI0d4bGg+&5^A-w3noOm8>uh0 zeVSmLQ_0Df?zhz{PFZJh)L*v|qdx+>Tr0Rcf?EayHaLulw z%{_&jp8M(Lz&&Hd`Q&Ps^*^EJe2uwN64lh02n-8f6xHXL7-Bymmu)d>YG-Qdo9Ty8 z@H}cgJ!(BXp47&>x}CVVxVgKzy1M<9t&WZ^4i46=F558fjQ<=L=ejXkdWvQ+`vXwr z_iu>+0?KjT)J()9h-zilX8pA&DFsY(>|+-YA69S zs{?tZ3R;Fpb6g*9B%e8K77~~*~LFX zc`1j;|DKZQn&Ti+pnwN&i2{P)}{TUkC)RlRKY4|`8h8q8|)QudY;58~THIPE`&H27cV zBUL?bCGBL*TbPx@G(=fI%Bx>kDfKh}j` z$LvG*nk z8K`xVbmcwk{Htc9)7e$r^*^fy+WAEz?a`|BCtU9A$&YFs7W#R1Nq*H*zAiX@dvrzV zDVuiH9SRCzxBga=IxmrADjgjwo#aiC$w|sF=exps)59&z&+m%P1lfXIb?cBTg@A6mZ>guXniAh?CZbzG?K$SwJ!JPMTBjQ0v7^RRuA=RDfsh_2Yc5rLEY>e`d zvT6O8No(E7`uTIWogKM8nV*-J7hD_+)k%A>K-<0L1U>&n7^E>m%2DT)QF>b1^hv+N zoR?XPU2%QQQ&WX+ihDDpN&oo=s_wrt%0=6;)v&gBL$R{UCUhnjU;WaLfiWNUcRe!k z$#44rPkB{jP%sKcL4T0!CICq0IGYO>bTV1mSefkTYwsS*@=Wk9GN3v`6)XC}>c3)R zMK!g7>y+GolOrRG9NS~qMJ`Z5*Kd!Oz};~6wvLWgqx&M()`bsWe!D|LG8sf|Btyso zGno`UNb9v%tfNhviVc`SZ@-JV$$WXgVCWPA9Z;j{leS4A6irJ}irZpB} zU}R;r>D%C6x_fl7m|#sN`%=cO6G46v!FI%`QTFAy@k2z!t@NEX z>%6ZG@|#j+(NntVl@d>%wmd;s;1XRZyhw^4Uz?rfw3+_Z*w`r49zZ`ucoI|XxB<~> znBe`2z3%uo;EMHK)(9CkHa03DqmXbm+TJuzp>QXh4xs{v-Q3~ODum;VbuOg z-$AXAv_i7*$@-^dd{+InBxU>JvQ ztaBh4axW>4xq#dLGL&79nkSwfHRm3l?haeL2sCPMsax}aW}fu0g&JY8v9&d>+71&U zD}VFd-P}$o_vK|uPJRUV6AeriyvQpuklva?PK606QZci$hYQ!m#>Q4xn@`o%9&L<) zaiUP|aD#Po3K@&=zWDh0(VDyN2MS>qo8un=sB_JO<&li^^z=ICtoxUbZKifSCUvGs zd(mW!@m=sAc>SqmkwS8Kgp1$kk)CQ7lwZX$vahsSH_kK!P~Y46k&suMm6e4=v@2&w z`}_HgI0^8bW!6Ijv*1q z4IdvT=lQm^VnA(F6IJe2)sSR6zKCpunfPzFvj?A}Jlev4mXws#9Z6ktedhcAJ-jfe zP8aR$5ZHe{pH61r;KIU~qAje)tSEZ+V^VWO-yl*99o&uaMdWgyOsZF;un8XF`Z|ZM z!mfO-7i>jyT@btM8=EYCY3P%!9tD>6;(k& z0TtCIoDF?7wa=7CmAo_o!SnN9-`;#OT&G+Bc1Ouzg*?TF*rs@t>53Og#d?1NO+>HMndE1~!0 zRvT6nE5|u&KN{c!JADM&y2hx<16j!sUtr#mgw=3A9!3Q#!*^Uu!+mUUHO zh2t45o@>_e;h6Om)OoeT>QDWqk3zH>D#rg3sn-}Wy4&no=d6(zm+l3D{~Qq^H$1{! zIOBe~)TAeHI%plK$)Eh`>zwGDIG>q$P4Xp@`fU#auj1(_Mb2Su8K`PlZ~6Yx~pLzt9ed*leK zI{OkjzHYT12^VGA-#f5%cDC#j)T>8fkCkCZP4S+Iw8N7zyojG)ot<5spI=*x{`9H; zG2%AVnUncwMPBp4j_#qgq890auT4G+7Lz5Fu6r>BR#wT$$ul!Ej@u!;VqQA-OJ1|{ z>)ft?KDEcP4;^iOd0+FUBl$`7=ai{w@hfKRIkt@drVCTd*Lmlb(U-5%MgoG3jK=8Z z(CmYn(kSX&Y7Fw>a%gAAbE3<0Iv>zPT0CnII!21rG^i>FsL2>84e30b2njERbwb{PUn? zfXldhabZD9TDm|N={54x(0uUwbpnDHii+J`ZP!iu3UZ3aLgKir`KG_(_^r=$+~We= zDSEu!faB#Uq5W?qd3~&zdET_E>w)vD@fk)U1w_~B@6iXv$HQzQXuL@p3#D`DwOwO+ z_z;@hq1AcO3Bm3CrZ1P+6A{IOBFbUHoF~P7EiK(m1Nn|?gOd7uCC%pV5JsKx3#;q1 zGpm!C_Dh1-j$gKN*wnxG>-31PtgdjcaQm)ZUAB4i)%;ye4UN-{@+m?x;bGC#(r{fa zY9xtBUA{+r>8|-enPp4YgxjH$)1LWw<2f=qxzb@pg>oyIKvG)jgm;fz!0wZDM$VR} zDbr=}!AdR?Geq(3)Nd{f-jqu>sZ#70e(!{VGb4IYRZ$EQ2`{)SH0~)K+=^{q?PMu( zyxah3VsMoU2OGQ8vafz%qG4iUF0Zie=NvBXF!oQ;@F#~~5`q&F^2WB`HVl|KP6)FL zm{~&UdkRZm3#bYd3fPgT-3^W6{*|ejc^Sp90zQZXkCWY%zASq?0M|)CU@Q#q5C7r5)iNqJHd|=i&1*Tf zu(&vQRL6Y>Vzw(+Ezj&=$8r!&@&_T`b-De>52cI~fBSVT@3_$|1=3sW%P*88-_7 zgP^5>$kd%bip5@J+|O}O+v9o6Ei5dKQ%^JguKSj&kW@q>-WtEKHh#d?@>p? z!0?Si*N87L;3l=3>*@Bf2Vrc|r%$g*f+@%@&)4kitQg8w*e697W4SVj^!GgoSQx?u zjC8O%0B0ob@momfa}0{f!k}|NxthDSJP92Wb+3!_c%D4i7F=!E&VWkdFwp4x7CJsY zVZj~7dsv{BI}|Tqz8S~01Q>Dd{OsuQ%?;YiUD_`a_yRtt8Q9a^f2-DcNG$nm8^9#I zoatB-`O|s%VRwDtm-!(vvFg>o4UqT24+u_)+r2bWqXP zU%bZs$jV0A|250Zj*DGo4MgkUr-z2;o4ibB?J@ZuXgN~Y_jh*%?dE0UNYquw!TCPW zlynhvTpSghu(Y@spKtPbZGN#0tL|Dn0RAy_!%e?aHvWdh#6-Xi2W-E9rj}WZV4Wgn z8-rl0{5S~6;Fb@kdg8V_f1T;E#^FF-Y@sevy87Z^C!~ z@km$%9hQ3*I};*jV7JmmpQ5OCwG+Wmo#$DM%?|*sy46P7Ha0FxUD};Far$%6P`rXm zID7r-6&ymA%d^0}bMfab?-eHIBR=U1yxJ>bQ@7zg;1I|^RX#7{xUjaUNqr+qKqiIF zubuZQ{{)LDwiE6hA?Jn8(L#H>m7ypW0)1kfBI5Z$qDYLUr1<65cx7L@;L1exkyhfk zi!fVor%5j@HZ!MYFQkT*!TbbSn)$sGvrxDC-`Jzwz-e)=1lVJl*Y{b3CNw`*TS1v1Hu5vP`k!uCtEp#=DCWB zO0iLAmGhQ})p!MjL$W9WJ(#a4YZ^E8w!Z}`nM}ythqr>qN-WKljb4SNULFB^G7Krb zSNNx}^9h6d@&GjaRm#p|$63gF@Pv$;X?x5XIS`iDuyDPC#Y#`F$GPvDkEqx2cG`11 zDP!E6dAk$ZNZFi{kqX-k4mVA<3dDs^bsnScuchtbpr99>0t3`F)lim*BLlmaa#VR= zetYgy5ctx@(1i5IZek)uNw4#iCvL6?)GS@E6KvwBw&#ryFJ#;nOlnN)+-yZfrS;1P zvSb%XapH6J8<$H1r=Ijq_9tK^V`~%c2pitx4dU(Y5l4ql2WM3+#E)E zWi`~7U8hD&9#k6hjVedboF_r}jN>x?)fk*r4j(Ah^c*gHI18 z>pX?tqOJx>>J;j{ud50idkBXdJr^#z2|_(&U|q!dL4VFm=ur!S9{q1Mv7-|4INn{5 zr#l(P!rQn1{UAfB0{ryI8yTRk{;;5Dv zt-=vW+JiTx>(e+nIgdRew{P#1kLbNsMCsPL{XU88!H+s>`CDkN!>9 zbq;sh1`;@(KDDPxH{jD42~9!VgTkM{XRTA^umX<@Er1#T=y0qy$I96m8JEBnW_X0T zkGPlG+_Rm_!j{se|G_^XluF2I3Vm+)qM^P?(0P+3lKHBBPEs=_sy+Rb#o{|iDipl2 z?03dSO$n(*EXvZwWrZA;nLf8l>HCDr@uniCQoK%AmQoOPZU@ZAi-=(UlqnkE#3`d? zNzV=0V@5&kPG^-%&Z3`#vzEwfS*2pCiS%lSW!Fs-cC}mW&w2Lj8KxH|p&6sGyD^_k z7W4g?&UoGzrh_$RpP4rctelu}D^=-?(!pu8CsmcFbKr_VAHpv9+lX zYagBya($O;Jnje*-59$l3ZXWs^Emlw+9w&O)pR@PiEyo$MSDqwz8t?yJ^&8~Q`Po*v_%}Kg`dIetSFF3g{qPJmv^X$eBHtN?+`^MKj=2^ZqcMJN5Cxyzle&V733Au*o*$87m-grw40LS%P0j;vgWB z@ZKXp3=yzjEHUflq~%sM$Rob);=wjH)s3)wH3;PgnfgY0q3g`#6FW;I#z(U0-v2=n zbGrWeH?J-{dEd+A2?k9ZVUyN~G;vIEi8@KkrMtIZaMtoqD6_nM-SHn@`3o_i*|=j<;u~js`D4D1&Abx5;#B z+Ef1!a-nYsx0J#B_?Bkr(=)eb)!@~?MeVzW?Y*QoY8U*9aBAoNX37VXu&obf%9jS( zkXLH45H}7K@VFm-2LfJi{s!&x?tV?Uv}^re{M2Ee6p=qd{+X9(gRF{4icxoR?w`<~ zzX8gLOFYO`jg);SSIJ3Vx$rl$y(>jD9E0lny!D)-p138{h$FBU+-6i@(XFci)>XjP zB_X0{X--Z`ihCOVvScB`<#7GYSlI?0CwZ9I^3s;5>+Yw@y~SFu^Qz}~AR*LdW!+R{ zB6{`}YR%Jx7*pFO419~@A4C>qft^H;->d^TQ~si5dY_%W(0WRQGwwOFnn`~=t7h3J zHzJxcE~CyECROqJx6S=%$hMYaWt99j)9_Rm-^dNO@dX3~Ry@y|rPXe3A8sEw1n0go zT#g7y5=FZJSWmCZ58p?ic3Pkue0!0k!6?$DU}#XNJd~|$usvNrGBU!hTgQ^2@#zLj z=uz)uE|xwFISx)1$4^$%r|iCAcDK^BEA6m1i~8}Hs}oIoj{o{(&q0A|%m_d{`r{sw zuIyjox@T1T;cA=~!<}nu{W--DBeVGyhegvuCeRw(=&h}myFa(*YWJC0AhYRY&p*Y{ z%g+VOeG&H?KFRTzR0QX>G=6WJ<75GKr@#J5hgT=)~ z;PxU63>r*#AYYOiXF(1D@vjY^FZd&F`@AQ22Tm}LH?&m0W@awL9y9!cvIk&9owzKl z^*%lQ0^o>Y9k5w|oQXJH$s(4M!g^m>SqUDk&#(L$^!u}w;aS;SMW9rEumj+|AD(On zRgUGe+#}WOTSP?4yYEYsodjZuN=oiwOgx$7sO2tiP= zel|9q=Df>8)~~4a=d(l|6CK?=oGHWF4-=%AOqfM6ayg55nK%5H4O$~?=NM7wvyGpR zcDj;;pwA!s(82{PGON5h@`22sg6~lPopE<|97k9%eVYt^4nx&uHK!_f+7SGluRz+ret7dAZftWTqxr0{d$6V6Y&rD%?=S zb?vvOr>C#4FGm;!SOWlw0o-Stu*JvvQ$M}7u|ZF~cZ}tvr-b45N=GLd`!6DR0Y1nT z_#p6zW5dJC6fE3IA71Y6?DT%4n(l`ke@xG|Pqt^CO7;RsX+HFU-QK@{LwM^(;X6ho zCXU0mkceJU&zChB`MCfM)i!M{X9I1KMf5TJ?~6BRk^siOI$KvWBsYklnaF4tDdWxqn7t7`#1bG z=!c=nIuhM4>7FO>va+#-je`xUhZ_4iX6|^N`u#{&0{I4b#KC-RQeq7$rq6s%yx0&`nw{XDOsVpDiED9;^Ij z87`pQ*u}ec>)AVxvN+U(H_C1xPUJMI)}1yWEpd2Qof~}-HrDj z;qapjo)!1A#6Z%y$ufw6PmG{kZV9z{88`;!ISH!B_J!?9`XH&&AcTMf(o9N1R#w)` zjJZ;iq)`{wtQ0N_^rC0~od{v_CrJSw;Wid<**urnmgZ(RclVcB;u}hhz{7X=7#Xu% zus;i3evxY*JR(w#*?4`Tj`oS&l4;-m^2S`A_!>aX`A&8xP&AaC@RGnn=%ykflJcKU z)vegPGTix!pNZPSL4g@bIPh8Zzk`u%=mR_Blzz z(jd#}Xjh}m;zU$xDTrFss|Mm@{$VsZuj%~CTz-j~P_?UCcUJ^%Z@G6)k z_X}rA1;3)%0?xzp#CTuQAsWb#gshfkt=mCQPelK#oc0*DYR_tX#sH5r?`OIoXoBuh z?}K@xlAE93WItOO#4{G@gczd#{SmT*M88PE;laYfnw^^i*Y-2XYfvEo8{{Z?lku3* z*ts06{!#3V)E)0Ng^F=%r@#Ii=d>YPJyJB+7Q)v0pZNS!2#Bk zmIXjWsLkrFlEQdS!yAOe0=m^s`B2BuXtb@ZExgfGrULM*!oguI2a8Y@C`^!2pZ0@{ zLR45p&2NK&DXh$MP3$p$zZ=XR3`_k1LPM4iu)RLQ_4R%sV6Ar1lof9;@v9Mg5EdC3 z8PHlvEdjNg{I*U4Q{*4#1m`V?x0G9xf=ZEAUC!rsADDIFB z+Trc7X0kADVavB66J)f+qHg=w3U0m;XU>il&U=cwkN+IYQ6`%U#IT#xA}E9RJ}bVz z=SNFS?bnAnT*wW$==UwBsUK)xf0Gu}HtAz=(fa^>$Ll&nBshv+VVH!wOx33@_2Rl( z0-p^L=HpYB@v>Ck+h2L8mcoY1%FV@L>H`gaxfYX;QIX<9j|IRg__&g{)|XvJc~!NQi*>E&s? zjGsAgiWgfWGoZbG{Us9E=57F~-w}>ti&zk5p36pXp3Md@T%xtXpu)Mig^3E~2l#=8 zwPf?Lfi*S4k|CkwgXL;WHNxY4eWC=x3#|PY4f?Ls1be^q3B2DQLrD6x%=yeUoY1ts zdwe%vqx84!t&cctOw2Aj_j6@nuirg=H{c`AT+#x2r8g>6WeYtXCcz8E}9-<75 zH*f9_^S&-cz30Do9ony$J{)vupHdL$H=>A;YZV^?vx|IuyqT`CJg=rvBHtyR?=UKc zi(T)FzIP=F_S+dv-5$MhzZ~j$zBX;el`cR>CBXQzAHK$rrB?t^t@VpS#BqXko#}W5 zM?6Mu!{OIw(Kh3HU4j+%ON2M#xr_;2ufC&@0p&$L(!MUOCD^2q!=QPdwDBWT@5ICt zI=ZVKP_P?tng*?imitCWPoXM*HL_vtxUz_g^YYQmF%i1!3N54Snc{c9N~U1BH$|3PPeC&p99kUMVrVA6yVci~ zi^je_yR9TZi&dyzNcE0)@by(OfojLK7~LNG0kcvkhpT;l8WH3!Y+u-)w+~A^gA0s7 zH<-6lP$2y9rqt{o#|BgK``SCZdZ($p0&&m3spO<`|Ngt5W__i(ia3#cx1KGYy!O(xcXF|&!-OKPx%ym! zE%xa@1}$NZ4h|n&e|6v87Z&WPa{`U#@bK_4hMnhQ1CbZh5h?4VACP`t)8%kg8t74= z3iH2CQ<9zJOSO3@sGug}0|L9AAY@p(%AYS=x{Qu1$fYfR+<#0eB;;t(sgb3a!nQ`t zN}*@ptK6$q5K%wV${jz=tY+s`t-PA4r{sP6)}0?-MXG~2FB#>%##3}@wt+>|)OzN} zY2o-by)6b|L1)!`vle6s^}=L1@=6I)@VA8iO3k*{zDz&R#{{&l`I&*6&H+>jK6!%? z!Bt`o!UCPrT;&G;g02E+8Hl*;XZw|ZJHb3}NH|!YoS0~88)_+bww8B2>-c{K%Y(1s zp`rAiqfi%!c8NSlHm{9cyXMFyjvqcZZ~p=C{VfX#YEYjrbo=U9dqAY|ZM=rnVlP2V4&5b|fnrnM~~u-o>2eUw8kPFVN^Xe76*neb*xAjIlvy?c6;Y$!G) zlwTyh4}7BuOc}4N&HWm+h=*7YxLZAaN66^VjSsJ0fUHedCQk6{X;7BSRWUs&+Q|9^ zkI1`nVya?Pm}wXrv?J+GT{z015eEidvnw|n$SpM=V&h(t2tq)hGwGQ1Sx17pOdNYV z{+^%%lkJTMoXa{1yq1C5_)$VOR=<(fpzJ z-WZhW_ZaUa339%wJbX6Wv-udOM@6L{R3>wE0%1WGmX6m=J`Djk=W<~%N1q(gW{EW& zvfR~p2!S3K7Z>!SQBNc_R4)VCw6soX93m;??+-%c|sOW7GG@ceWo{Ck8)*l32lyu5^*)?4{D zRi7EH{rvFtSpBw?29ouqO=P1iUeN0VsTdwpJ|Z!Bp6=pvXh<_ z%NNT?BLB}Ol}>EC1-*~TRh;k8Q@(yoOhP_Br9m?ftA$JN@a%0)2=Q|}-*nEA09OQu z>+T(jhh_}8H;r(ykImQDpG@ljed(3CtIg+*_f(#qYH4f-go=5u<&A@#7O2i`yWXm)VN$H!G(z6{!Um9J4*T}{fICgPyq4|pUh3!J(>c+iu| z(Jcj0_0NLchDVvzgj|OT@9U2uJ45V&73P@l4UCPC0!RSFr~^v%9f_AkA&zHo6RVsy z$l@6JvBOfe_xHv@>sHXNb^9#*zCIH&Gqh}ax<_clLL;x#O9B->=;WLFu328tlZZ!; z21c04q>7YsDEYu2Elf;Jt(*6Xb%Xov_j>WT$6wUEF!6xyuy7#X^Xqr~ z+E>nQ^Vw2blWf7st|rFb$vTwB#Kgp5Wu3Y@TZpg(HSx0?{X=h#ly5gZXW2=DOK(4p zyL4obUY;(q?`GV8D3=#;Z&EqfJA=gpMCv#JQv3k*mLF7i?#@q7b6cM77kXrJx>OoH z>vXkXYmcYD6$n02ko{CY(h;6ym05L?%DK?`g(fvX*Qc{hQT{zp7l-v>Wg23xFCCEC z-#U!JG*wOw6;||Et-G`8^OEuASIp(6JwMXAdJJg&3EO^@7dzTIp~2lE&!(pA<0NU( zhrGbh)xCi52Wac0IPD2iZreb; zUvO%})e%$!SI}Rt#cNu19`~;QEG{O9NmoQ2;GHhS>i!6&8A(OqSW70zqQqqh7IV%u z*sh;5V9*g?7oe_In!TyLbK)^u#Dl)!C!zo4TUVvhEE2quA0-YnKV0SEdg6KNAR&Pj z&>&9MBR0%61}@p+GGNYd}6T1&WsHzPIjZZGFrnme#0yF$&#X#9k-g zRrAzs)6*VCbaNG5DHT&9GePk0J>zacXSgir6Cdu6|hT3g6lE^TxaJ>CK-`d^|Orb`Jb}o2H(3lOUC{drGVfrjSdjX&iHrG2@V*U{CV91P7 zqHcPChWWOhxM9WT<-CVg=_`#$uLYPAGe2s&po~)GqF69gg zYtquv5U= zH4c@UurYQ@o;xL`y2PChL|2#_n2JMlZ!$Sr_6+XyyXATt}z<9HRkcYRI z0F_2Y)0gA{KgjMiNmbDw5qobMrGAh5v8R%}4*sm-e-4SAogFRX(pst#B#{j;Y`(pT zv%tHq9dW2S0za#3cXMhd1_&egV<;C%l&) z(Kts}LDY@AW`{oOW@@=V@8Ylh zd4*9S>S4OG%!;LqpR?_lJgKAqa6cda2I2cYwz3n;;U6MQJyQdnmCAk6PXh>i_3lc8 zitE1Hzp{p$fR1l{MoYN8eTpywy{k641`Pi9vvd}2%vC9tdW{-8M*z+N5LCa6fUR>w zXr68`TZ*;K3xzBY{x78rpFe&2dQKwj_u=$$ji{OlR7VDp{tY6wW#!qS7OWOs{4QVF{}7G_CoA>ENw35~vuh3{*A_L~2) zukC(l@mZp+EEyEKPzi$YCw9#zKUZfh4oFAF5(aB3YORLOh8nP z+719Bm*2x0Jlq9`gvkX~US46zI%MkV&epm&sYP`!XsoBisHdiq^#yikEew>v*h zIvjOPxY{q`U|;?E^=qOi0)4PH#P4_Y;*ax1si@`CTnXHH@%CQt{{^Tp0+F(Gqq|5N zDmmJZIO6Rc9gQ^D$=H(w>2hp$9(tP)^+gFxY8-%xjZL!*e;uceiIx^?=WCIB z*Yqxy561m-NRWfy-^|UqrH6%NTr?{2v1_z zEurMb&r^WdQBhHCuS$AIiK8O9T(p#wdLWj>sh}U#xU?54)x|)Jzz~q7ivlT&MzQ}| zW6$K|YKU6jWG~W{l3{?RJuFA@IrBOMzfy-1#)K_`vT@KBG zSRuJ_OJfOp-M9Mzobgwcb_?+AYZNK` zwzO3kv$)(vDmfuxVbZZSO zsEzgYX@ZDCu>{& z7%$r7@7L?R&^wugX2@5%Ktvr;mYl@WC}647pzFrz?4mq7GKJ#R#>U3C@j_K@A6#iFC~v91^mv1tP*-1hcnAx6 z?F{O8b4F_BkMdw+i3G4u2RB)cmE%UTIL5UTW@AY^NxryiKcg)ZO13aR-D>nBpV{Y3 zUH|c2$F=_YY#)yI$1ZGA4A8t6`!rl)nl47CzlS|2L8O>=t&ptl?VP{L8;)rZv|;wJ zk!cDr0ST+-KuGXS{NU~DHx3B#osO>C9B!97?nDc@1@mmuW)_QmeQW#md00<;Td~pZ zz2lN^JqdoXcoYulH-p~fr}^tyR&w~00=A;JB%$?MMe(p&G#KpS;GqN;T} z+#D*r0PjoMbN)S`x%u4 zoe5{Aw;JM6icOt~9QL3LMl&doiCT@r^eot0aPaRAXDLpVlq647IW;^Us>84xEo)-W zlxlDMYIHzMtgmmTnxpa$vbA+pxwp4;Zgv&Iq1>ug0}MKYFPK~(#oqYe0(9V(%8EC> zNxgm0N~1TZxQ8m*sjHHK5IIh}H2(Q8&_Vl^j%{aeFQXzn)aUxRkL>mLVnr3YXk)o+ z%j43i5lXlaT}iob>9F43|2S>Kzny-k==N*Yolxu9=y!J-Q(6Uhd1G4d?I2)iC#1H^ zNN@+&P)vm8nq=8@RCA0IBeC=PFwyr9w`c?e-kjA{0Ty~KN`W5RPvpS3MTRpm4CV3$ zXVUS~g>~?c5er}Hpa-ev#DcQ)!A-OUzxlC}Wp~0vrSzx!P8+Z=ZF#x5Row;Z_xBz8 zNkc*cs|mr}v$`txRq}J2%ot7(vb>zHwOahIOie?<#aDbfQbQuVmLyTc4G^zBU3OkZOU7?+ z+sq0@jlTI8@yO~3¬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�=ptC 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%0DkVVmU*hFpynU-KKG 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 z zA#djS_hfT-MR20IwKzjLLtdS92KDBceul~6BF>u)cO%LTnNunAJr*MZ94n(u%WIZy z9l0CBA*7}i?^-SFpyVsYw9>fXw&{N(foPAnBquhk3sZ$asUU9-kBu=a22X^JXLxKi zt)n(5^BQd0bguD5TJo5YYmv^71*(fE{>Y%qQBTTzUFpF>fAwmsC-FD&F0uk6BEnz7 zcY+;_fY9e9BROC&U_;7aS3%C2nzXqOhS~`Yq8ag&m!KTWkErF#x&{>PeJmC7Y^K~Z zt8TblR_Y7i^kJT#$#+28^;SJz3$L=A9O=!f@D((|<;(D3ApcRJkDFKMtUAFWy0!*q z{rucqQElVmqCu$@Ll}h)*nwcb@>7z^WBOa0Nt_6BketBso?!hoGLr1*DD4w_Nq8uD zn~a^UZOTu5c>aFY)W9FASykQ1%dy(Pfsldtojte30RAZ{-N$_XE^wSgZe88ot5e

Fa|E?;x^=17uU8dlGTL#B#Qb_ndUOGj`jnBc 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

xML_lAqOFj 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%0AHw~b!3Yt7Uos=^!H=r2#F&`T1+v`CxS_&}MB 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»Q7H~oZ>HTY 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

+ + diff --git a/dist/logo.png b/dist/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..458558c72d6c30e224599ec83c60c3e6f6d56b89 GIT binary patch literal 10120 zcmeHteLU0a|NlhHA$N6>xhy&WP(%5rZ;#!ls?lq}SAkossO zcacp^hh&k|mM}>+8rF=BvF&%!`P@7{zsK+Q-}n31@yBfM_jSGB*Y(=-^?W^F&-X4J zJ>t6N2iOk~2xN`h0q4I%AgdVQ{U@k0c-1w5r+|M-*u8Eipx`eV8vGjsVghk3c;qkn9r%sVy(SwpG&C-!r>7r-X5QW6p{`Lf9t?y zGq?CHmvc9{tusI7a>L9m%lTMdu(O+si&k*3l2Ztqm)o+q*!R>gbSkEs%}ZwExp%0n z{>54mRV)-m-NvG7+fYzP$SSQ=h>{6J0UBZPZMB{B;@S`8Z{-@HEpMjDs@X@*{d+{3 zx{?-0-78q*pA*1bG&lsWQ_B2)h2@LAbcCS0ukPo73;y%kS}qW@#ym|WG}x_j1PUZz~WSJHLopDkKK}E(gmj$&tZ7-mp_!) zjx7!3&pnQ1Q+wp`dL=aZTnk6;H&IPiDaHAV?o=~Jk*8MuEe3-Qu<(3+elw;*o(^`JsVxSDY(V73seBR-^rcZ)N(`HORC%@L50Q zD%{3R48MDn{t_)t$d=>E|G+tzFnr$T!1XLRMd~yCX z-)}M5k%ZI@p*)ZjW{G|6n8M~!Z=Y`gHIKaFLqqF zUqahFSF;?}Z8n-+eBb4cDKsuf&3!45MlaorgIMybc}~(#1|!&e20ZSS&+mE`OUs>j zMY7C;p_=A;P;681EJ_I~JR0?rI8ZypmVQ^!gt4!pdf}5chjW0a@f+NleA17WmuquQFIeMZ2niGFvoSbAQ+4uIdl(_%xw;7hTDuJe-r1VbTedD~ROP_q zt`c%GQ{izpvNSR;f{PK%30{~-XRj`>jMB&cK*X)7y?JVI)7m$MCj2GNbT#6#=SxW4 zy~t_7T&z81d*57%?djQ_vXAj~?Q`K1C5Y#AjyPdB^nL!<$$ST6IVk;2)1ydJAO_m0FJESYHc@U!9tt3%h^K4#33wvZ-g>A2Mlx#UoWuK9< z8jN!Cm81uATw96Hn`L$P<`PxURU$qGPW9vozH-~f5j^IF@tm1PvsC6YpHVSeR`!a! zZ`R)L6%odt~1>xG-Z?lz~@Q#WHTLLs@qA({TWaGdReP~W^>Az#G8y@N+>%z+QYk+egGeKw#)f-a^H zx$O!(wCho%1GF~Vvw;Z}KGxe$(&k)*AQ@e>jmuCL$Howv8nd<{jR*-|GWP&OwEs>; zu-7cO^`g<%Wek4@@4unEdKtT`K_52Bjqi& z!CIOAETMH-TP?`n^Y-KOG4{nr^-F|Hm2c(i>{15wT4Umof+iG&&NUAwdo0|`pP9U{*p-kZVQy;#O`LTS#% zt(z4(8CQlCAE|F*{!RYmV^F^`w`+{AW|TuSp0#7yEQ776q($QZV+5P`x<-%cxx1%Cfc2o*0io}Z)s`n8HHZKg1+s3IbPy3-F}y z@b1oGU)C!NXERvo%q5=v8VY~pgN0C<2B@=Rkmp3UtnAS{>o=NQbm-gVCX21CzJTd> z+_Oo<3Ub_TJZ0p4()t!w^_(Z_$-&*en>*OB&>^Sy9Y;kX+=F3VHg_v;iNB7A~aM_Q^NldD` zenz<~#qfDKcf2xC@=-FrKVfB2zTxr*P*rT`pJ|Aaap?38Nas5(Y~Hml$#>1swpO=*+}NKYW#TH zLjh�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

IL=g^IB@4&BD0uIiSm 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 D$2`Cz literal 0 HcmV?d00001 diff --git a/ios/App/App/Assets.xcassets/Splash.imageset/iphonexsmax_splash.png b/ios/App/App/Assets.xcassets/Splash.imageset/iphonexsmax_splash.png new file mode 100644 index 0000000000000000000000000000000000000000..6b82b7a17cebbc5284b72a513f23f8d8beae0332 GIT binary patch literal 74314 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 literal 0 HcmV?d00001 diff --git a/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732 2.png b/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732 2.png new file mode 100644 index 0000000000000000000000000000000000000000..6791b57848d24f5ab1a5da6a36f2490586f5b7a2 GIT binary patch literal 148539 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 H#p(Y7uI_9Q literal 0 HcmV?d00001 diff --git a/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png b/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c1af99f2878beb7493d5cb631f7327e72b142193 GIT binary patch literal 147288 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/App/App/Base.lproj/Main.storyboard b/ios/App/App/Base.lproj/Main.storyboard new file mode 100644 index 0000000..b44df7b --- /dev/null +++ b/ios/App/App/Base.lproj/Main.storyboard @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ios/App/App/GoogleService-Info-old.plist b/ios/App/App/GoogleService-Info-old.plist new file mode 100644 index 0000000..623c945 --- /dev/null +++ b/ios/App/App/GoogleService-Info-old.plist @@ -0,0 +1,32 @@ + + + + + API_KEY + AIzaSyD6x3V2XuZ1DtwR1KZxzdV4t1W1vmvIWWw + GCM_SENDER_ID + 291717009680 + PLIST_VERSION + 1 + BUNDLE_ID + com.stratawiz.rapportapp.Rapport + PROJECT_ID + pitch-perfect-9273d + STORAGE_BUCKET + pitch-perfect-9273d.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:291717009680:ios:d1413cff45e558315d5595 + DATABASE_URL + https://pitch-perfect-9273d.firebaseio.com + + \ No newline at end of file diff --git a/ios/App/App/GoogleService-Info.plist b/ios/App/App/GoogleService-Info.plist new file mode 100644 index 0000000..623c945 --- /dev/null +++ b/ios/App/App/GoogleService-Info.plist @@ -0,0 +1,32 @@ + + + + + API_KEY + AIzaSyD6x3V2XuZ1DtwR1KZxzdV4t1W1vmvIWWw + GCM_SENDER_ID + 291717009680 + PLIST_VERSION + 1 + BUNDLE_ID + com.stratawiz.rapportapp.Rapport + PROJECT_ID + pitch-perfect-9273d + STORAGE_BUCKET + pitch-perfect-9273d.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:291717009680:ios:d1413cff45e558315d5595 + DATABASE_URL + https://pitch-perfect-9273d.firebaseio.com + + \ No newline at end of file diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist new file mode 100644 index 0000000..116a4b1 --- /dev/null +++ b/ios/App/App/Info.plist @@ -0,0 +1,59 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Rapport 2.0 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + FirebaseAppDelegateProxyEnabled + + LSRequiresIPhoneOS + + NSCameraUsageDescription + This app uses the camera to capture profile photos and upload. + NSMicrophoneUsageDescription + This app uses the microphone to record audio. + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + NSLocationAlwaysAndWhenInUseUsageDescription + This app uses your location to support features and services based on your current location. + NSLocationWhenInUseUsageDescription + This app uses your location to support features and services based on your current location. + + diff --git a/ios/App/Podfile b/ios/App/Podfile new file mode 100644 index 0000000..745a607 --- /dev/null +++ b/ios/App/Podfile @@ -0,0 +1,36 @@ +require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers' + +platform :ios, '14.0' +use_frameworks! + +# workaround to avoid Xcode caching of Pods that requires +# Product -> Clean Build Folder after new Cordova plugins installed +# Requires CocoaPods 1.6 or newer +install! 'cocoapods', :disable_input_output_paths => true + +def capacitor_pods + pod 'Capacitor', :path => '../../node_modules/@capacitor/ios' + pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios' + pod 'CapacitorCommunityDeviceSecurityDetect', :path => '../../node_modules/@capacitor-community/device-security-detect' + pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app' + pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser' + pod 'CapacitorDevice', :path => '../../node_modules/@capacitor/device' + pod 'CapacitorGeolocation', :path => '../../node_modules/@capacitor/geolocation' + pod 'CapacitorPreferences', :path => '../../node_modules/@capacitor/preferences' + pod 'CapacitorPushNotifications', :path => '../../node_modules/@capacitor/push-notifications' + pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen' + pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar' + pod 'CapgoCapacitorNavigationBar', :path => '../../node_modules/@capgo/capacitor-navigation-bar' + pod 'OttimisCapacitorVolumes', :path => '../../node_modules/@ottimis/capacitor-volumes' + pod 'CapacitorVoiceRecorder', :path => '../../node_modules/capacitor-voice-recorder' +end + +target 'App' do + capacitor_pods + # Add your Pods here + pod 'FirebaseMessaging' # Add this line +end + +post_install do |installer| + assertDeploymentTarget(installer) +end diff --git a/ios/App/Podfile.lock b/ios/App/Podfile.lock new file mode 100644 index 0000000..595446c --- /dev/null +++ b/ios/App/Podfile.lock @@ -0,0 +1,173 @@ +PODS: + - Capacitor (7.4.3): + - CapacitorCordova + - CapacitorApp (7.0.2): + - Capacitor + - CapacitorBrowser (7.0.2): + - Capacitor + - CapacitorCommunityDeviceSecurityDetect (7.0.0): + - Capacitor + - CapacitorCordova (7.4.3) + - CapacitorDevice (7.0.2): + - Capacitor + - CapacitorGeolocation (7.1.7): + - Capacitor + - IONGeolocationLib (= 1.0.1) + - CapacitorPreferences (7.0.2): + - Capacitor + - CapacitorPushNotifications (7.0.2): + - Capacitor + - CapacitorSplashScreen (7.0.2): + - Capacitor + - CapacitorStatusBar (7.0.2): + - Capacitor + - CapacitorVoiceRecorder (7.0.6): + - Capacitor + - CapgoCapacitorNavigationBar (7.1.27): + - Capacitor + - FirebaseCore (10.23.0): + - FirebaseCoreInternal (~> 10.0) + - GoogleUtilities/Environment (~> 7.12) + - GoogleUtilities/Logger (~> 7.12) + - FirebaseCoreInternal (10.23.0): + - "GoogleUtilities/NSData+zlib (~> 7.8)" + - FirebaseInstallations (10.23.0): + - FirebaseCore (~> 10.0) + - GoogleUtilities/Environment (~> 7.8) + - GoogleUtilities/UserDefaults (~> 7.8) + - PromisesObjC (~> 2.1) + - FirebaseMessaging (10.23.0): + - FirebaseCore (~> 10.0) + - FirebaseInstallations (~> 10.0) + - GoogleDataTransport (~> 9.3) + - GoogleUtilities/AppDelegateSwizzler (~> 7.8) + - GoogleUtilities/Environment (~> 7.8) + - GoogleUtilities/Reachability (~> 7.8) + - GoogleUtilities/UserDefaults (~> 7.8) + - nanopb (< 2.30911.0, >= 2.30908.0) + - GoogleDataTransport (9.4.1): + - GoogleUtilities/Environment (~> 7.7) + - nanopb (< 2.30911.0, >= 2.30908.0) + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/AppDelegateSwizzler (7.13.0): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (7.13.0): + - GoogleUtilities/Privacy + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/Logger (7.13.0): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Network (7.13.0): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (7.13.0)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (7.13.0) + - GoogleUtilities/Reachability (7.13.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (7.13.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - IONGeolocationLib (1.0.1) + - nanopb (2.30910.0): + - nanopb/decode (= 2.30910.0) + - nanopb/encode (= 2.30910.0) + - nanopb/decode (2.30910.0) + - nanopb/encode (2.30910.0) + - OttimisCapacitorVolumes (6.0.0): + - Capacitor + - PromisesObjC (2.4.0) + +DEPENDENCIES: + - "Capacitor (from `../../node_modules/@capacitor/ios`)" + - "CapacitorApp (from `../../node_modules/@capacitor/app`)" + - "CapacitorBrowser (from `../../node_modules/@capacitor/browser`)" + - "CapacitorCommunityDeviceSecurityDetect (from `../../node_modules/@capacitor-community/device-security-detect`)" + - "CapacitorCordova (from `../../node_modules/@capacitor/ios`)" + - "CapacitorDevice (from `../../node_modules/@capacitor/device`)" + - "CapacitorGeolocation (from `../../node_modules/@capacitor/geolocation`)" + - "CapacitorPreferences (from `../../node_modules/@capacitor/preferences`)" + - "CapacitorPushNotifications (from `../../node_modules/@capacitor/push-notifications`)" + - "CapacitorSplashScreen (from `../../node_modules/@capacitor/splash-screen`)" + - "CapacitorStatusBar (from `../../node_modules/@capacitor/status-bar`)" + - CapacitorVoiceRecorder (from `../../node_modules/capacitor-voice-recorder`) + - "CapgoCapacitorNavigationBar (from `../../node_modules/@capgo/capacitor-navigation-bar`)" + - FirebaseMessaging + - "OttimisCapacitorVolumes (from `../../node_modules/@ottimis/capacitor-volumes`)" + +SPEC REPOS: + trunk: + - FirebaseCore + - FirebaseCoreInternal + - FirebaseInstallations + - FirebaseMessaging + - GoogleDataTransport + - GoogleUtilities + - IONGeolocationLib + - nanopb + - PromisesObjC + +EXTERNAL SOURCES: + Capacitor: + :path: "../../node_modules/@capacitor/ios" + CapacitorApp: + :path: "../../node_modules/@capacitor/app" + CapacitorBrowser: + :path: "../../node_modules/@capacitor/browser" + CapacitorCommunityDeviceSecurityDetect: + :path: "../../node_modules/@capacitor-community/device-security-detect" + CapacitorCordova: + :path: "../../node_modules/@capacitor/ios" + CapacitorDevice: + :path: "../../node_modules/@capacitor/device" + CapacitorGeolocation: + :path: "../../node_modules/@capacitor/geolocation" + CapacitorPreferences: + :path: "../../node_modules/@capacitor/preferences" + CapacitorPushNotifications: + :path: "../../node_modules/@capacitor/push-notifications" + CapacitorSplashScreen: + :path: "../../node_modules/@capacitor/splash-screen" + CapacitorStatusBar: + :path: "../../node_modules/@capacitor/status-bar" + CapacitorVoiceRecorder: + :path: "../../node_modules/capacitor-voice-recorder" + CapgoCapacitorNavigationBar: + :path: "../../node_modules/@capgo/capacitor-navigation-bar" + OttimisCapacitorVolumes: + :path: "../../node_modules/@ottimis/capacitor-volumes" + +SPEC CHECKSUMS: + Capacitor: b4741ca7affb32c1b70debd03df92cbf522d8a80 + CapacitorApp: efc1e9748a8ea5d3e789cd82a4f451341cc7ac93 + CapacitorBrowser: 45c681e7abc3b4384e54eb52bafeef1347d98fa8 + CapacitorCommunityDeviceSecurityDetect: 6ae8377599edc16e2eaffa4f8e533822abd5dd11 + CapacitorCordova: 435121e81a2df4d0034f0fb11fcefab5104cfdb5 + CapacitorDevice: a50a45f0d075e55e2392c7a4be5404d4f69515de + CapacitorGeolocation: bcd9412a99fd542b585561238b210bd2b162b8f6 + CapacitorPreferences: b583b5deb74e564c35968189d25d32c0fd41200d + CapacitorPushNotifications: 6ffcf5df95f17d71a1b02893549bc4727f80540c + CapacitorSplashScreen: 8d6c8cb0542a8e81585c593815db8785ed8ce454 + CapacitorStatusBar: 5526833b87fa9c96a2a90c1322bb1f663c04505f + CapacitorVoiceRecorder: b136a5989c9a306d57f0c9fc530be79a06ccf7b2 + CapgoCapacitorNavigationBar: 540361dcdf457cde63bfbfddf88ac6d3f98613ac + FirebaseCore: 63efb128decaebb04c4033ed4e05fb0bb1cccef1 + FirebaseCoreInternal: 6a292e6f0bece1243a737e81556e56e5e19282e3 + FirebaseInstallations: 42d6ead4605d6eafb3b6683674e80e18eb6f2c35 + FirebaseMessaging: 1b2270e66c81bbf184f70184db1d6a736ad0def5 + GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a + GoogleUtilities: d053d902a8edaa9904e1bd00c37535385b8ed152 + IONGeolocationLib: 20f9d0248a0b5264511fb57a37e25dd2badf797a + nanopb: 438bc412db1928dac798aa6fd75726007be04262 + OttimisCapacitorVolumes: 0ef88225f9cf44244c308cfa592fa8dc21e30f75 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + +PODFILE CHECKSUM: 0dd6b24f9b54ec75dfbf0f0129476763971a2872 + +COCOAPODS: 1.15.2 diff --git a/ios/App/PrivacyInfo.xcprivacy b/ios/App/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..b126e7b --- /dev/null +++ b/ios/App/PrivacyInfo.xcprivacy @@ -0,0 +1,18 @@ + + + + + NSPrivacyAccessedAPITypes + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c72eb80 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,10672 @@ +{ + "name": "rapport", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "rapport", + "version": "1.0.0", + "dependencies": { + "@capacitor-community/device-security-detect": "^7.0.0", + "@capacitor/android": "^7.4.3", + "@capacitor/app": "^7.0.2", + "@capacitor/browser": "^7.0.2", + "@capacitor/core": "^7.4.3", + "@capacitor/device": "^7.0.2", + "@capacitor/geolocation": "^7.1.7", + "@capacitor/ios": "^7.4.3", + "@capacitor/preferences": "^7.0.2", + "@capacitor/push-notifications": "^7.0.2", + "@capacitor/splash-screen": "^7.0.2", + "@capacitor/status-bar": "^7.0.2", + "@capawesome/capacitor-android-edge-to-edge-support": "^7.2.3", + "@capgo/capacitor-navigation-bar": "^7.1.27", + "@ottimis/capacitor-volumes": "^6.0.0", + "@tanstack/react-query": "^5.85.5", + "agora-rtc-react": "^2.2.0", + "agora-rtc-sdk-ng": "^4.21.0", + "axios": "^1.6.7", + "bootstrap": "^5.3.2", + "capacitor-voice-recorder": "^7.0.6", + "dompurify": "^3.4.2", + "filesize": "^10.1.0", + "formik": "^2.4.5", + "html-react-parser": "^6.0.1", + "install": "^0.13.0", + "lodash": "^4.17.21", + "npm": "^11.3.0", + "pdfjs-dist": "^5.4.54", + "react": "^18.2.0", + "react-bootstrap": "^2.10.10", + "react-dom": "^18.2.0", + "react-dropzone-uploader": "^2.11.0", + "react-icons": "^5.0.1", + "react-id-swiper": "^4.0.0", + "react-image-crop": "^11.0.6", + "react-infinite-scroll-component": "^6.1.0", + "react-lazy-load-image-component": "^1.6.2", + "react-pdf": "^7.7.1", + "react-player": "^2.14.1", + "react-router-dom": "^6.22.0", + "react-simple-star-rating": "^5.1.7", + "react-toastify": "^10.0.4", + "react-virtualized": "^9.22.6", + "swiper": "^11.0.6", + "yet-another-react-lightbox": "^3.21.1", + "yup": "^1.3.3" + }, + "devDependencies": { + "@capacitor/cli": "^7.4.3", + "@tanstack/react-query-devtools": "^5.85.5", + "@types/react": "^18.2.55", + "@types/react-dom": "^18.2.19", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.56.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "vite": "^5.1.0", + "vite-plugin-node-polyfills": "^0.22.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@agora-js/media": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@agora-js/media/-/media-4.21.0.tgz", + "integrity": "sha512-X4aV84/gB4O7GOOkwP3+NGTHtT2IVkpa4DFBTlBNl7hrkjDwUeanzCQZyva92Zyw59N0NI6dKh9CjJKoIL5Now==", + "dependencies": { + "@agora-js/report": "4.21.0", + "@agora-js/shared": "4.21.0", + "agora-rte-extension": "^1.2.4", + "axios": "^1.6.8", + "pako": "^2.1.0", + "webrtc-adapter": "8.2.0" + } + }, + "node_modules/@agora-js/report": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@agora-js/report/-/report-4.21.0.tgz", + "integrity": "sha512-c8KIdomuPItwvri431z5CPT7L4m+jLJrwWWt/QS3JN+sp/t49NnoOIyKQf3y5xCbyNPCNNeGofrwkaIRu4YE8g==", + "dependencies": { + "@agora-js/shared": "4.21.0", + "axios": "^1.6.8" + } + }, + "node_modules/@agora-js/shared": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@agora-js/shared/-/shared-4.21.0.tgz", + "integrity": "sha512-oqaiuIhG9ai/NXUDEmj9b3uGxxU9I0OZZszNaJexjakJuVZPM7ypzrCLUi5SzkTh++QOf68yuvD488fjq5WQsA==", + "dependencies": { + "axios": "^1.6.8", + "ua-parser-js": "^0.7.34" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capacitor-community/device-security-detect": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@capacitor-community/device-security-detect/-/device-security-detect-7.0.0.tgz", + "integrity": "sha512-S/pyxHPud0UFwAuI0qR5jpFeOR4P6+5cF/439Zfb+IYTvByzi5SGMC0aOSIbx6kRbyeffdF90b+yEA9aoKszNw==", + "license": "MIT", + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/android": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.4.3.tgz", + "integrity": "sha512-VpjvnOcmYGPLgvXRhe3CGLs62Cg7sxOyp77NddCr+Y06qqgnoaj6OGeBVTc2DZlqZ6bSmh15JvFu82pkvmdgfQ==", + "peerDependencies": { + "@capacitor/core": "^7.4.0" + } + }, + "node_modules/@capacitor/app": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/app/-/app-7.0.2.tgz", + "integrity": "sha512-kRWBF6Wc6OQxhL+N6rsegyfJY37Lj9/VJhtrmgmH+y+rdxQLQwUOpMyxXStym7cF+QzGeVpItyVxyUT9fE5ByQ==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/browser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/browser/-/browser-7.0.2.tgz", + "integrity": "sha512-5kySTunCtH+2sezmTjgDfwvspW7GW/hslQECZeLIRM2qefnxjGTc3fmCTeILYK5EuvcxMs+8sF5BhmzzKqOzuQ==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/cli": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.4.3.tgz", + "integrity": "sha512-SWozpdDgrbQ/ry1nIapugDFvE9z+l22BmU/+fpgL2Zv5487hGdXvCX5+1SluuFBP3IPpx6b4LjsKnBigyJoUWg==", + "dev": true, + "dependencies": { + "@ionic/cli-framework-output": "^2.2.8", + "@ionic/utils-subprocess": "^3.0.1", + "@ionic/utils-terminal": "^2.3.5", + "commander": "^12.1.0", + "debug": "^4.4.0", + "env-paths": "^2.2.0", + "fs-extra": "^11.2.0", + "kleur": "^4.1.5", + "native-run": "^2.0.1", + "open": "^8.4.0", + "plist": "^3.1.0", + "prompts": "^2.4.2", + "rimraf": "^6.0.1", + "semver": "^7.6.3", + "tar": "^6.1.11", + "tslib": "^2.8.1", + "xml2js": "^0.6.2" + }, + "bin": { + "cap": "bin/capacitor", + "capacitor": "bin/capacitor" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@capacitor/cli/node_modules/fs-extra": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@capacitor/cli/node_modules/glob": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", + "dev": true, + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@capacitor/cli/node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "dev": true, + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@capacitor/cli/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@capacitor/cli/node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "dev": true, + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@capacitor/cli/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@capacitor/core": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.4.3.tgz", + "integrity": "sha512-wCWr8fQ9Wxn0466vPg7nMn0tivbNVjNy1yL4GvDSIZuZx7UpU2HeVGNe9QjN/quEd+YLRFeKEBLBw619VqUiNg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@capacitor/device": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-7.0.2.tgz", + "integrity": "sha512-OMGMBjLbh7ApaqW1oOJIV73iyrFK/T5v2MzuQYq3GLT+jnGvCuj/y82Ofq2Fz9/hlJ2fukztPwG1K80jyk0i6w==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/filesystem": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-7.1.4.tgz", + "integrity": "sha512-BdUnOVulHAtruW2GeC9o7e9LO5aFcVYqNn3dLypJSOck/WipUFNfI0QWoUS0FVGeqBbDJgFGi3zjXJx0lzbDkA==", + "peer": true, + "dependencies": { + "@capacitor/synapse": "^1.0.3" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/geolocation": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@capacitor/geolocation/-/geolocation-7.1.7.tgz", + "integrity": "sha512-7HZNcWEmb5eG8Fqok1VtcNPrepPDi2aA5K8H+zy5sp9JRWbR7/fr+v6foT+BoaapnIjw0ddzf70BEllRLjZbLQ==", + "license": "MIT", + "dependencies": { + "@capacitor/synapse": "^1.0.3" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/ios": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-7.4.3.tgz", + "integrity": "sha512-VNm7cHODgh3KK/4ZC2rXU9gBlvHii/mYFLI+XMXwq24nhB679QxHhz+pUuI7PatYoM2q4MAL0NR/dRgehKCaSA==", + "peerDependencies": { + "@capacitor/core": "^7.4.0" + } + }, + "node_modules/@capacitor/preferences": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/preferences/-/preferences-7.0.2.tgz", + "integrity": "sha512-JVCy0/oc6RsRencLOZ8rMqjNxAlHs7awPJU/MXqangsJ48oO2PnYGHfCvci6WgIJlqyC0QhvWZaO1BR1lVkHWQ==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/push-notifications": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/push-notifications/-/push-notifications-7.0.2.tgz", + "integrity": "sha512-naw1R61V0qlEBa4CsF7+w3ay7V1PdZ4bQ1cJum+lgZB/yz3ASb6fRHm5GPjJFgTR9ET8zN0Q9y7lfgMTBgDOiA==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/splash-screen": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-7.0.2.tgz", + "integrity": "sha512-bchh4F73CnVONm6XFEgXKEhbSEDQh2CQ0rNSoasIeJ5pf9JqHkkPS3t0Fnm33qHkLVFcaPoKPW69Y9zMpT5Vxg==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/status-bar": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-7.0.2.tgz", + "integrity": "sha512-fYYkkdzCbQV+MjZVnaQTFl5I4bddnFW8ZrPVxDjNoGVPTUG7H58Ij1+NcuNxHLXjJvZOoZeYJ3w3I16Wb2zssw==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/synapse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@capacitor/synapse/-/synapse-1.0.4.tgz", + "integrity": "sha512-/C1FUo8/OkKuAT4nCIu/34ny9siNHr9qtFezu4kxm6GY1wNFxrCFWjfYx5C1tUhVGz3fxBABegupkpjXvjCHrw==" + }, + "node_modules/@capawesome/capacitor-android-edge-to-edge-support": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@capawesome/capacitor-android-edge-to-edge-support/-/capacitor-android-edge-to-edge-support-7.2.3.tgz", + "integrity": "sha512-WtwXeU5Clg13t3SO6JvtIfJlpO+E48tHC+vNmC519zcS6GV9URl705UOvwOOvEyh6GFxAi2dHi8lj8iqIOYCdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/capawesome-team/" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/capawesome" + } + ], + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capgo/capacitor-navigation-bar": { + "version": "7.1.27", + "resolved": "https://registry.npmjs.org/@capgo/capacitor-navigation-bar/-/capacitor-navigation-bar-7.1.27.tgz", + "integrity": "sha512-TXRQnRUS5Ye090cl3X/JTwhYyqNMDv18/cBKCV+w594Ysy6yj3qDl3XBTFm+uL64mrEsIHWl3JdfYgvQyRQQUw==", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz", + "integrity": "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==", + "dev": true, + "dependencies": { + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz", + "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz", + "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^8.0.0", + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz", + "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz", + "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==", + "dev": true, + "dependencies": { + "@ionic/utils-object": "2.1.6", + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.7.tgz", + "integrity": "sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz", + "integrity": "sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==", + "dev": true, + "dependencies": { + "@ionic/utils-array": "2.1.6", + "@ionic/utils-fs": "3.1.7", + "@ionic/utils-process": "2.1.12", + "@ionic/utils-stream": "3.1.7", + "@ionic/utils-terminal": "2.3.5", + "cross-spawn": "^7.0.3", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz", + "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==", + "dev": true, + "dependencies": { + "@types/slice-ansi": "^4.0.0", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@napi-rs/canvas": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.77.tgz", + "integrity": "sha512-N9w2DkEKE1AXGp3q55GBOP6BEoFrqChDiFqJtKViTpQCWNOSVuMz7LkoGehbnpxtidppbsC36P0kCZNqJKs29w==", + "optional": true, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.77", + "@napi-rs/canvas-darwin-arm64": "0.1.77", + "@napi-rs/canvas-darwin-x64": "0.1.77", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.77", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.77", + "@napi-rs/canvas-linux-arm64-musl": "0.1.77", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.77", + "@napi-rs/canvas-linux-x64-gnu": "0.1.77", + "@napi-rs/canvas-linux-x64-musl": "0.1.77", + "@napi-rs/canvas-win32-x64-msvc": "0.1.77" + } + }, + "node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.77.tgz", + "integrity": "sha512-jC8YX0rbAnu9YrLK1A52KM2HX9EDjrJSCLVuBf9Dsov4IC6GgwMLS2pwL9GFLJnSZBFgdwnA84efBehHT9eshA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.77.tgz", + "integrity": "sha512-VFaCaCgAV0+hPwXajDIiHaaGx4fVCuUVYp/CxCGXmTGz699ngIEBx3Sa2oDp0uk3X+6RCRLueb7vD44BKBiPIg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.77.tgz", + "integrity": "sha512-uD2NSkf6I4S3o0POJDwweK85FE4rfLNA2N714MgiEEMMw5AmupfSJGgpYzcyEXtPzdaca6rBfKcqNvzR1+EyLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.77.tgz", + "integrity": "sha512-03GxMMZGhHRQxiA4gyoKT6iQSz8xnA6T9PAfg/WNJnbkVMFZG782DwUJUb39QIZ1uE1euMCPnDgWAJ092MmgJQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.77.tgz", + "integrity": "sha512-ZO+d2gRU9JU1Bb7SgJcJ1k9wtRMCpSWjJAJ+2phhu0Lw5As8jYXXXmLKmMTGs1bOya2dBMYDLzwp7KS/S/+aCA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.77.tgz", + "integrity": "sha512-S1KtnP1+nWs2RApzNkdNf8X4trTLrHaY7FivV61ZRaL8NvuGOkSkKa+gWN2iedIGFEDz6gecpl/JAUSewwFXYg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.77.tgz", + "integrity": "sha512-A4YIKFYUwDtrSzCtdCAO5DYmRqlhCVKHdpq0+dBGPnIEhOQDFkPBTfoTAjO3pjlEnorlfKmNMOH21sKQg2esGA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.77.tgz", + "integrity": "sha512-Lt6Sef5l0+5O1cSZ8ysO0JI+x+rSrqZyXs5f7+kVkCAOVq8X5WTcDVbvWvEs2aRhrWTp5y25Jf2Bn+3IcNHOuQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.77.tgz", + "integrity": "sha512-NiNFvC+D+omVeJ3IjYlIbyt/igONSABVe9z0ZZph29epHgZYu4eHwV9osfpRt1BGGOAM8LkFrHk4LBdn2EDymA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.77", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.77.tgz", + "integrity": "sha512-fP6l0hZiWykyjvpZTS3sI46iib8QEflbPakNoUijtwyxRuOPTTBfzAWZUz5z2vKpJJ/8r305wnZeZ8lhsBHY5A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@ottimis/capacitor-volumes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@ottimis/capacitor-volumes/-/capacitor-volumes-6.0.0.tgz", + "integrity": "sha512-VDcc1zQEWMfKyNKQ6AKvNd3zSC111sgtkl/diRLb4/dDs135tkd7ux8nuR2A78dG4zqHWdbZFvfEXdJflchuxw==", + "peerDependencies": { + "@capacitor/core": "^6.0.0" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz", + "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@remix-run/router": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.0.tgz", + "integrity": "sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@restart/hooks": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", + "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.9.4.tgz", + "integrity": "sha512-N4C7haUc3vn4LTwVUPlkJN8Ach/+yIMvRuTVIhjilNHqegY60SGLrzud6errOMNJwSnmYFnt1J0H/k8FE3A4KA==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@popperjs/core": "^2.11.8", + "@react-aria/ssr": "^3.5.0", + "@restart/hooks": "^0.5.0", + "@types/warning": "^3.0.3", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^8.0.4", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, + "node_modules/@restart/ui/node_modules/@restart/hooks": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.5.1.tgz", + "integrity": "sha512-EMoH04NHS1pbn07iLTjIjgttuqb7qu4+/EyhAx27MHpoENcB2ZdSsLTNxmKD+WEPnZigo62Qc8zjGnNxoSE/5Q==", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui/node_modules/uncontrollable": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", + "peerDependencies": { + "react": ">=16.14.0" + } + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/helpers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.85.5", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.85.5.tgz", + "integrity": "sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-devtools": { + "version": "5.84.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.84.0.tgz", + "integrity": "sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.85.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.85.5.tgz", + "integrity": "sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==", + "dependencies": { + "@tanstack/query-core": "5.85.5" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tanstack/react-query-devtools": { + "version": "5.85.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.85.5.tgz", + "integrity": "sha512-6Ol6Q+LxrCZlQR4NoI5181r+ptTwnlPG2t7H9Sp3klxTBhYGunONqcgBn2YKRPsaKiYM8pItpKMdMXMEINntMQ==", + "dev": true, + "dependencies": { + "@tanstack/query-devtools": "5.84.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.85.5", + "react": "^18 || ^19" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/node": { + "version": "20.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.18.tgz", + "integrity": "sha512-ABT5VWnnYneSBcNWYSCuR05M826RoMyMSGiFivXGx6ZUIsXb9vn4643IEwkg2zbEOSgAiSogtapN2fgc4mAPlw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==" + }, + "node_modules/@types/react": { + "version": "18.2.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz", + "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==", + "dev": true + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/warning": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz", + "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", + "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.5", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agora-rtc-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/agora-rtc-react/-/agora-rtc-react-2.2.0.tgz", + "integrity": "sha512-AELqEjvZiWNvSHc/uS5Cm31dvcrtE3oLNcLuSRsYayokBke9fx1GhsFIvVo+elXIuLXCDm0XjhTLoF/gz780xw==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/agora-rtc-sdk-ng": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.21.0.tgz", + "integrity": "sha512-EAZMdhbqIXl/PtFqEQn0O5Pmj3Tt+4oTXtd76MK1CozgbcDsc0TmFZK3qM25eaKqhzTz1wiVCwzBCWs3pF5OpQ==", + "dependencies": { + "@agora-js/media": "4.21.0", + "@agora-js/report": "4.21.0", + "@agora-js/shared": "4.21.0", + "agora-rte-extension": "^1.2.4", + "axios": "^1.6.8", + "formdata-polyfill": "^4.0.7", + "ua-parser-js": "^0.7.34", + "webrtc-adapter": "8.2.0" + } + }, + "node_modules/agora-rte-extension": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/agora-rte-extension/-/agora-rte-extension-1.2.4.tgz", + "integrity": "sha512-0ovZz1lbe30QraG1cU+ji7EnQ8aUu+Hf3F+a8xPml3wPOyUQEK6CTdxV9kMecr9t+fIDrGeW7wgJTsM1DQE7Nw==" + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/aproba": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", + "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", + "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "devOptional": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/bootstrap": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", + "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "dev": true, + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify-zlib/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001585", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz", + "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/canvas": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", + "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.17.0", + "simple-get": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/capacitor-blob-writer": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/capacitor-blob-writer/-/capacitor-blob-writer-1.1.19.tgz", + "integrity": "sha512-2uZjL/y6F2yblA6lc5SP0JE+rQhxZcinmsLQKwGuSIDQySAdrcDkCAoQ07nqQV9qMtaeWsVTD6n08wo4R2sSjA==", + "peerDependencies": { + "@capacitor/core": ">=3.0.0", + "@capacitor/filesystem": ">=1.0.0" + } + }, + "node_modules/capacitor-voice-recorder": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/capacitor-voice-recorder/-/capacitor-voice-recorder-7.0.6.tgz", + "integrity": "sha512-WdFFzv5B++FhTifb+/NzYnup7NvTHLZxP8D20qtolr2lLgxnwI5aNSKc3r8HpVlZn04b+GWrmnLIJ6q5JU3h8w==", + "dependencies": { + "capacitor-blob-writer": "^1.1.19", + "get-blob-duration": "^1.2.0" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "devOptional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "devOptional": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "devOptional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "optional": true, + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", + "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-3.1.1.tgz", + "integrity": "sha512-4MEa38/QexBob6gFNwu+EGdWvhJ1OKuNwdYY3Y3NyeWDQfnGeDYQUDfIRzWu5B5gsv03so2Uxd28YC6zrsx3Lw==", + "license": "MIT", + "dependencies": { + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0", + "entities": "^8.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domain-browser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/domelementtype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-3.0.0.tgz", + "integrity": "sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/domhandler": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-6.0.1.tgz", + "integrity": "sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^3.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.2.tgz", + "integrity": "sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/domutils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-4.0.2.tgz", + "integrity": "sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^3.0.0", + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.665", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz", + "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==", + "dev": true + }, + "node_modules/elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==", + "dev": true, + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/elliptic": { + "version": "6.5.6", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.6.tgz", + "integrity": "sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "devOptional": true + }, + "node_modules/entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.16.tgz", + "integrity": "sha512-CREG2A9Vq7bpDRnldhFcMKuKArvkZtsH6Y0DHOHVg49qhf+LD8uEdUM3OkOAICv0EziGtDEnQtqY2/mfBILpFw==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.1", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz", + "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filesize": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.0.tgz", + "integrity": "sha512-GTLKYyBSDz3nPhlLVPjPWZCnhkd9TrrRArNcy8Z+J2cqScB7h2McAzR6NBX6nYOoWafql0roY8hrocxnZBv9CQ==", + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/formik": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.5.tgz", + "integrity": "sha512-Gxlht0TD3vVdzMDHwkiNZqJ7Mvg77xQNfmBRrNtvzcHZs72TJppSTDKHpImCMJZwcWPBJ8jSQQ95GJzXFf1nAQ==", + "funding": [ + { + "type": "individual", + "url": "https://opencollective.com/formik" + } + ], + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.1", + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "devOptional": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-blob-duration": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-blob-duration/-/get-blob-duration-1.2.0.tgz", + "integrity": "sha512-2xNJa+oKznR21eC2ThMzw4a1931a3ogA8aHoY92xruZufc/02G7pl/P793GJZytkyI8xMJ2DepEQ7MWvg/tn/Q==", + "dependencies": { + "@babel/runtime": "7.11.2" + } + }, + "node_modules/get-blob-duration/node_modules/@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/get-blob-duration/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "devOptional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/html-dom-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-7.0.1.tgz", + "integrity": "sha512-loRBDTCY/05/jAC63J1X9ID+xjRucmpLkIcQO0IRbOubBo5ucnpUpyXXob9UMXOskMZlu7KPsDP/2KOMelzJNA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + } + ], + "license": "MIT", + "dependencies": { + "domhandler": "6.0.1", + "htmlparser2": "12.0.0" + } + }, + "node_modules/html-react-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-6.0.1.tgz", + "integrity": "sha512-tIie2HSIk2Ct1tdupjd/DhBjskxN/NL5J4ncbUnk2smBr5UIfpPpitUo0imGfBM0BlOL7ac8RcqEwne1jXTcsQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/html-react-parser" + } + ], + "license": "MIT", + "dependencies": { + "domhandler": "6.0.1", + "html-dom-parser": "7.0.1", + "react-property": "2.0.2", + "style-to-js": "1.1.21" + }, + "peerDependencies": { + "@types/react": "0.14 || 15 || 16 || 17 || 18 || 19", + "react": "0.14 || 15 || 16 || 17 || 18 || 19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-12.0.0.tgz", + "integrity": "sha512-Tz7u1i95/g2x2jz81+x0FBVhBhY5aRTvD3tXXdFaljuNdzDLJ8UGNRrTcj2cgQvAg3iW/h77Fz15nLW0L0CrZw==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0", + "domutils": "^4.0.2", + "entities": "^8.0.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "devOptional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "devOptional": true + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/install": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", + "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isomorphic-timers-promises": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", + "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-script": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", + "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-cancellable-promise": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-1.3.2.tgz", + "integrity": "sha512-GCXh3bq/WuMbS+Ky4JBPW1hYTOU+znU+Q5m9Pu+pI8EoUqIHk9+tviOKC6/qhHh8C4/As3tzJ69IF32kdz85ww==", + "funding": { + "url": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-event-props": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz", + "integrity": "sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==", + "funding": { + "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "node_modules/merge-refs": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.2.2.tgz", + "integrity": "sha512-RwcT7GsQR3KbuLw1rRuodq4Nt547BKEBkliZ0qqsrpyNne9bGTFtsFIsIpx82huWhcl3kOlOlH4H0xkPk/DqVw==", + "funding": { + "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "devOptional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "devOptional": true + }, + "node_modules/nan": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz", + "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-run": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-2.0.1.tgz", + "integrity": "sha512-XfG1FBZLM50J10xH9361whJRC9SHZ0Bub4iNRhhI61C8Jv0e1ud19muex6sNKB51ibQNUJNuYn25MuYET/rE6w==", + "dev": true, + "dependencies": { + "@ionic/utils-fs": "^3.1.7", + "@ionic/utils-terminal": "^2.3.4", + "bplist-parser": "^0.3.2", + "debug": "^4.3.4", + "elementtree": "^0.1.7", + "ini": "^4.1.1", + "plist": "^3.1.0", + "split2": "^4.2.0", + "through2": "^4.0.2", + "tslib": "^2.6.2", + "yauzl": "^2.10.0" + }, + "bin": { + "native-run": "bin/native-run" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "optional": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/node-stdlib-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.2.0.tgz", + "integrity": "sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg==", + "dev": true, + "dependencies": { + "assert": "^2.0.0", + "browser-resolve": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "create-require": "^1.1.1", + "crypto-browserify": "^3.11.0", + "domain-browser": "^4.22.0", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "isomorphic-timers-promises": "^1.0.1", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "pkg-dir": "^5.0.0", + "process": "^0.11.10", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.1", + "url": "^0.11.0", + "util": "^0.12.4", + "vm-browserify": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-stdlib-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-11.3.0.tgz", + "integrity": "sha512-luthFIP0nFX3+nTfYbWI3p4hP4CiVnKOZ5jdxnF2x7B+Shz8feiSJCLLzgJUNxQ2cDdTaVUiH6RRsMT++vIMZg==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^9.0.2", + "@npmcli/config": "^10.2.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/map-workspaces": "^4.0.2", + "@npmcli/package-json": "^6.1.1", + "@npmcli/promise-spawn": "^8.0.2", + "@npmcli/redact": "^3.1.1", + "@npmcli/run-script": "^9.1.0", + "@sigstore/tuf": "^3.0.0", + "abbrev": "^3.0.0", + "archy": "~1.0.0", + "cacache": "^19.0.1", + "chalk": "^5.4.1", + "ci-info": "^4.2.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^8.0.2", + "ini": "^5.0.0", + "init-package-json": "^8.0.0", + "is-cidr": "^5.1.1", + "json-parse-even-better-errors": "^4.0.0", + "libnpmaccess": "^10.0.0", + "libnpmdiff": "^8.0.2", + "libnpmexec": "^10.1.1", + "libnpmfund": "^7.0.2", + "libnpmorg": "^8.0.0", + "libnpmpack": "^9.0.2", + "libnpmpublish": "^11.0.0", + "libnpmsearch": "^9.0.0", + "libnpmteam": "^8.0.0", + "libnpmversion": "^8.0.0", + "make-fetch-happen": "^14.0.3", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^11.2.0", + "nopt": "^8.1.0", + "normalize-package-data": "^7.0.0", + "npm-audit-report": "^6.0.0", + "npm-install-checks": "^7.1.1", + "npm-package-arg": "^12.0.2", + "npm-pick-manifest": "^10.0.0", + "npm-profile": "^11.0.1", + "npm-registry-fetch": "^18.0.2", + "npm-user-validate": "^3.0.0", + "p-map": "^7.0.3", + "pacote": "^21.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^4.1.0", + "semver": "^7.7.1", + "spdx-expression-parse": "^4.0.0", + "ssri": "^12.0.0", + "supports-color": "^10.0.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^6.0.0", + "which": "^5.0.0" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "9.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^9.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^8.0.0", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^21.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "ssri": "^12.0.0", + "treeverse": "^3.0.0", + "walk-up-path": "^4.0.0" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "10.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "ci-info": "^4.0.0", + "ini": "^5.0.0", + "nopt": "^8.1.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "walk-up-path": "^4.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "4.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^21.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "6.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.1.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "9.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "3.1.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.4.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "2.0.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.4.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "3.1.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "make-fetch-happen": "^14.0.2", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "3.1.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.4.0", + "tuf-js": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "2.1.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "19.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/minizlib": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.4.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.3", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "7.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/diff": { + "version": "7.0.0", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.2", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "7.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^6.1.0", + "npm-package-arg": "^12.0.0", + "promzard": "^2.0.0", + "read": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.2", + "@npmcli/installed-package-contents": "^3.0.0", + "binary-extensions": "^3.0.0", + "diff": "^7.0.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0", + "tar": "^6.2.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "10.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.2", + "@npmcli/package-json": "^6.1.1", + "@npmcli/run-script": "^9.0.1", + "ci-info": "^4.0.0", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0", + "proc-log": "^5.0.0", + "read": "^4.0.0", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "walk-up-path": "^4.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "7.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.2" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "9.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.2", + "@npmcli/run-script": "^9.0.1", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "11.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^7.0.0", + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1", + "proc-log": "^5.0.0", + "semver": "^7.3.7", + "sigstore": "^3.0.0", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.1", + "@npmcli/run-script": "^9.0.1", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "14.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "11.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "8.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "7.0.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^8.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "7.1.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "12.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "11.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "18.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "3.0.0", + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "7.0.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.1", + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "21.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^10.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.7.1", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "3.1.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.21", + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "12.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "10.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tinyglobby": { + "version": "0.2.12", + "inBundle": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "inBundle": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/npm/node_modules/which": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "devOptional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dev": true, + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path2d-polyfill": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz", + "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pdfjs-dist": { + "version": "5.4.54", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.54.tgz", + "integrity": "sha512-TBAiTfQw89gU/Z4LW98Vahzd2/LoCFprVGvGbTgFt+QCB1F+woyOPmNNVgLa6djX9Z9GGTnj7qE1UzpOVJiINw==", + "engines": { + "node": ">=20.16.0 || >=22.3.0" + }, + "optionalDependencies": { + "@napi-rs/canvas": "^0.1.74" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "dependencies": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-bootstrap": { + "version": "2.10.10", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.10.tgz", + "integrity": "sha512-gMckKUqn8aK/vCnfwoBpBVFUGT9SVQxwsYrp9yDHt0arXMamxALerliKBxr1TPbntirK/HGrUAHYbAeQTa9GHQ==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@restart/hooks": "^0.4.9", + "@restart/ui": "^1.9.4", + "@types/prop-types": "^15.7.12", + "@types/react-transition-group": "^4.4.6", + "classnames": "^2.3.2", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.5", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "@types/react": ">=16.14.8", + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-dropzone-uploader": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/react-dropzone-uploader/-/react-dropzone-uploader-2.11.0.tgz", + "integrity": "sha512-1DpdPMGKP7vYL5SeCh13HCl+Xrz0F6jGrDPU5Tj2ojEIXGMCtfflrZhyXdr7u40IkQ+hYjAUEEtJW24SiY8WRA==", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "prop-types": ">=15.5.10", + "react": ">=16.2.0", + "react-dom": ">=16.2.0" + } + }, + "node_modules/react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + }, + "node_modules/react-icons": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz", + "integrity": "sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-id-swiper": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/react-id-swiper/-/react-id-swiper-4.0.0.tgz", + "integrity": "sha512-BFY8VQYgc1ECkT1Ek6MYSF8MADjWYZctdeRlMA202mjGcdjq1Bugfhg207KHTjGWKWZlY/7/nxFShqQo74RslA==", + "dependencies": { + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">= 6.11.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0", + "swiper": ">=5.0.0" + } + }, + "node_modules/react-image-crop": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/react-image-crop/-/react-image-crop-11.0.6.tgz", + "integrity": "sha512-T+/RPBhwFxdf8PjD/uoWk+tBkS0Xf2XW0lY5mnsmClvnAujO81EEjDwj0M2pcHX3seXVgKOr/yIiL+Sx4evMNw==", + "peerDependencies": { + "react": ">=16.13.1" + } + }, + "node_modules/react-infinite-scroll-component": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-infinite-scroll-component/-/react-infinite-scroll-component-6.1.0.tgz", + "integrity": "sha512-SQu5nCqy8DxQWpnUVLx7V7b7LcA37aM7tvoWjTLZp1dk6EJibM5/4EJKzOnl07/BsM1Y40sKLuqjCwwH/xV0TQ==", + "dependencies": { + "throttle-debounce": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-lazy-load-image-component": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.6.2.tgz", + "integrity": "sha512-dAdH5PsRgvDMlHC7QpZRA9oRzEZl1kPFwowmR9Mt0IUUhxk2wwq43PB6Ffwv84HFYuPmsxDUCka0E9KVXi8roQ==", + "dependencies": { + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1" + }, + "peerDependencies": { + "react": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x" + } + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-pdf": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.7.1.tgz", + "integrity": "sha512-cbbf/PuRtGcPPw+HLhMI1f6NSka8OJgg+j/yPWTe95Owf0fK6gmVY7OXpTxMeh92O3T3K3EzfE0ML0eXPGwR5g==", + "dependencies": { + "clsx": "^2.0.0", + "dequal": "^2.0.3", + "make-cancellable-promise": "^1.3.1", + "make-event-props": "^1.6.0", + "merge-refs": "^1.2.1", + "pdfjs-dist": "3.11.174", + "prop-types": "^15.6.2", + "tiny-invariant": "^1.0.0", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-pdf?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-pdf/node_modules/pdfjs-dist": { + "version": "3.11.174", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.11.174.tgz", + "integrity": "sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==", + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "canvas": "^2.11.2", + "path2d-polyfill": "^2.0.1" + } + }, + "node_modules/react-player": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.14.1.tgz", + "integrity": "sha512-jILj7F9o+6NHzrJ1GqZIxfJgskvGmKeJ05FNhPvgiCpvMZFmFneKEkukywHcULDO2lqITm+zcEkLSq42mX0FbA==", + "dependencies": { + "deepmerge": "^4.0.0", + "load-script": "^1.0.0", + "memoize-one": "^5.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.0.1" + }, + "peerDependencies": { + "react": ">=16.6.0" + } + }, + "node_modules/react-player/node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-player/node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", + "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.0.tgz", + "integrity": "sha512-q2yemJeg6gw/YixRlRnVx6IRJWZD6fonnfZhN1JIOhV2iJCPeRNSH3V1ISwHf+JWcESzLC3BOLD1T07tmO5dmg==", + "dependencies": { + "@remix-run/router": "1.15.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.0.tgz", + "integrity": "sha512-z2w+M4tH5wlcLmH3BMMOMdrtrJ9T3oJJNsAlBJbwk+8Syxd5WFJ7J5dxMEW0/GEXD1BBis4uXRrNIz3mORr0ag==", + "dependencies": { + "@remix-run/router": "1.15.0", + "react-router": "6.22.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-simple-star-rating": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/react-simple-star-rating/-/react-simple-star-rating-5.1.7.tgz", + "integrity": "sha512-NTFkW8W3uwvI82Fv7JW5i7gmDjEZKxJmj+Z9vn+BjYIXT6ILdnU9qnSUP2cWrWN/WAUlue81f9SgM4CQcenltQ==", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/react-toastify": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-10.0.4.tgz", + "integrity": "sha512-etR3RgueY8pe88SA67wLm8rJmL1h+CLqUGHuAoNsseW35oTGJEri6eBTyaXnFKNQ80v/eO10hBYLgz036XRGgA==", + "dependencies": { + "clsx": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-virtualized": { + "version": "9.22.6", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.6.tgz", + "integrity": "sha512-U5j7KuUQt3AaMatlMJ0UJddqSiX+Km0YJxSqbAzIiGw5EmNz0khMyqP2hzgu4+QUtm+QPIrxzUX4raJxmVJnHg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "clsx": "^1.0.4", + "dom-helpers": "^5.1.3", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-virtualized/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "devOptional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", + "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0", + "get-intrinsic": "^1.2.3", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "devOptional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/sdp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.0.tgz", + "integrity": "sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "devOptional": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "optional": true + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "devOptional": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, + "node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "optional": true, + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "devOptional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swiper": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.6.tgz", + "integrity": "sha512-W/Me7MQl5rNgdM5x9i3Gll76WsyVpnHn91GhBOyL7RCFUeg62aVnflzlVfIpXzZ/87FtJOfAoDH79ZH2Yq76zA==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "devOptional": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throttle-debounce": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "optional": true + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz", + "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", + "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "devOptional": true + }, + "node_modules/vite": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.1.tgz", + "integrity": "sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-node-polyfills": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.22.0.tgz", + "integrity": "sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==", + "dev": true, + "dependencies": { + "@rollup/plugin-inject": "^5.0.5", + "node-stdlib-browser": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/davidmyersdev" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "optional": true + }, + "node_modules/webrtc-adapter": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-8.2.0.tgz", + "integrity": "sha512-umxCMgedPAVq4Pe/jl3xmelLXLn4XZWFEMR5Iipb5wJ+k1xMX0yC4ZY9CueZUU1MjapFxai1tFGE7R/kotH6Ww==", + "dependencies": { + "sdp": "^3.0.2" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "optional": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "devOptional": true + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yet-another-react-lightbox": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/yet-another-react-lightbox/-/yet-another-react-lightbox-3.21.1.tgz", + "integrity": "sha512-/+5YyPg61BDGsMzUkBluxjoi6eU1EXwztRugU31iCj1aaPImvofgewsOAifY0HzYelXmKZgRWkbRtleSy6Cviw==", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.3.3.tgz", + "integrity": "sha512-v8QwZSsHH2K3/G9WSkp6mZKO+hugKT1EmnMqLNUcfu51HU9MDyhlETT/JgtzprnrnQHPWsjc6MUDMBp/l9fNnw==", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/yup/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..468aaf4 --- /dev/null +++ b/package.json @@ -0,0 +1,74 @@ +{ + "name": "rapport", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@capacitor-community/device-security-detect": "^7.0.0", + "@capacitor/android": "^7.4.3", + "@capacitor/app": "^7.0.2", + "@capacitor/browser": "^7.0.2", + "@capacitor/core": "^7.4.3", + "@capacitor/device": "^7.0.2", + "@capacitor/geolocation": "^7.1.7", + "@capacitor/ios": "^7.4.3", + "@capacitor/preferences": "^7.0.2", + "@capacitor/push-notifications": "^7.0.2", + "@capacitor/splash-screen": "^7.0.2", + "@capacitor/status-bar": "^7.0.2", + "@capawesome/capacitor-android-edge-to-edge-support": "^7.2.3", + "@capgo/capacitor-navigation-bar": "^7.1.27", + "@ottimis/capacitor-volumes": "^6.0.0", + "@tanstack/react-query": "^5.85.5", + "agora-rtc-react": "^2.2.0", + "agora-rtc-sdk-ng": "^4.21.0", + "axios": "^1.6.7", + "bootstrap": "^5.3.2", + "capacitor-voice-recorder": "^7.0.6", + "dompurify": "^3.4.2", + "filesize": "^10.1.0", + "formik": "^2.4.5", + "html-react-parser": "^6.0.1", + "install": "^0.13.0", + "lodash": "^4.17.21", + "npm": "^11.3.0", + "pdfjs-dist": "^5.4.54", + "react": "^18.2.0", + "react-bootstrap": "^2.10.10", + "react-dom": "^18.2.0", + "react-dropzone-uploader": "^2.11.0", + "react-icons": "^5.0.1", + "react-id-swiper": "^4.0.0", + "react-image-crop": "^11.0.6", + "react-infinite-scroll-component": "^6.1.0", + "react-lazy-load-image-component": "^1.6.2", + "react-pdf": "^7.7.1", + "react-player": "^2.14.1", + "react-router-dom": "^6.22.0", + "react-simple-star-rating": "^5.1.7", + "react-toastify": "^10.0.4", + "react-virtualized": "^9.22.6", + "swiper": "^11.0.6", + "yet-another-react-lightbox": "^3.21.1", + "yup": "^1.3.3" + }, + "devDependencies": { + "@capacitor/cli": "^7.4.3", + "@tanstack/react-query-devtools": "^5.85.5", + "@types/react": "^18.2.55", + "@types/react-dom": "^18.2.19", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.56.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "vite": "^5.1.0", + "vite-plugin-node-polyfills": "^0.22.0" + } +} diff --git a/public/Rectangle-empty.svg b/public/Rectangle-empty.svg new file mode 100644 index 0000000..c8723fa --- /dev/null +++ b/public/Rectangle-empty.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/Rectangle-filled.svg b/public/Rectangle-filled.svg new file mode 100644 index 0000000..8d73876 --- /dev/null +++ b/public/Rectangle-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/img/appreciations-icon.png b/public/img/appreciations-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..73e157deace9b247d34e71f65606f66080c4b3eb GIT binary patch literal 3306 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 K#}u1;#{37Py3GLq literal 0 HcmV?d00001 diff --git a/public/img/badges-icon.png b/public/img/badges-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..406aa5768c9ed46628bf198e9d3f42ddc9c6713e GIT binary patch literal 3161 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 N9SF|&GV6fYe*;RzP7eS8 literal 0 HcmV?d00001 diff --git a/public/img/banner1.jpg b/public/img/banner1.jpg new file mode 100755 index 0000000000000000000000000000000000000000..22e673224528db8c475da11d8ebb04bdb2427dc1 GIT binary patch literal 30482 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 literal 0 HcmV?d00001 diff --git a/public/img/default-bg.jpg b/public/img/default-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e65e9552073005e99f23cb507d25419f802f1cf1 GIT binary patch literal 39259 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 z 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 literal 0 HcmV?d00001 diff --git a/public/img/default-profile.jpg b/public/img/default-profile.jpg new file mode 100755 index 0000000000000000000000000000000000000000..29f73a6364fb355abe05106e5573cdca4d3be584 GIT binary patch literal 15115 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 f+U|q28^{Uf;REHfYv1`_>BwMwaoQKMF9 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 literal 0 HcmV?d00001 diff --git a/dist/img/star-icon.png b/dist/img/star-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..f89bd5aef0935c4bbb9404549da577ba7b8af64e GIT binary patch literal 3458 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 literal 0 HcmV?d00001 diff --git a/dist/img/user-profile.jpg b/dist/img/user-profile.jpg new file mode 100755 index 0000000000000000000000000000000000000000..0fc5b1ecf2a3aac70813fac634688313d84284de GIT binary patch literal 4842 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 literal 0 HcmV?d00001 diff --git a/dist/img/user.jpg b/dist/img/user.jpg new file mode 100755 index 0000000000000000000000000000000000000000..097fd4b68e446c7e53d796f735399f61ca4a9d8d GIT binary patch literal 3339 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 literal 0 HcmV?d00001 diff --git a/dist/img/warranty-icon.png b/dist/img/warranty-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..e20efbc61dba9070405641fe5e54cbefd9d6b96a GIT binary patch literal 6003 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 z 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 UMH-*{=Qp^jq9&wL-YVq30FP}H`~Uy| literal 0 HcmV?d00001 diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..32efa3c --- /dev/null +++ b/dist/index.html @@ -0,0 +1,24 @@ + + + + + + + + + + + RapportApp + + + + +